From efc42efe4905fc6fc71198d780a2c487a6625430 Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Wed, 5 Oct 2022 04:47:13 -0700 Subject: [PATCH] chore: update stage0 --- stage0/src/Init/Core.lean | 11 +- stage0/src/Init/NotationExtra.lean | 64 + stage0/src/Lean/Compiler/LCNF.lean | 3 +- stage0/src/Lean/Compiler/LCNF/Basic.lean | 4 + stage0/src/Lean/Compiler/LCNF/Bind.lean | 12 + stage0/src/Lean/Compiler/LCNF/Check.lean | 6 +- stage0/src/Lean/Compiler/LCNF/CompilerM.lean | 113 - stage0/src/Lean/Compiler/LCNF/DependsOn.lean | 8 + stage0/src/Lean/Compiler/LCNF/InferType.lean | 41 +- .../src/Lean/Compiler/LCNF/Internalize.lean | 172 + stage0/src/Lean/Compiler/LCNF/JoinPoints.lean | 360 +- stage0/src/Lean/Compiler/LCNF/Main.lean | 7 +- stage0/src/Lean/Compiler/LCNF/MonoTypes.lean | 49 + stage0/src/Lean/Compiler/LCNF/OtherDecl.lean | 44 + stage0/src/Lean/Compiler/LCNF/Passes.lean | 12 + stage0/src/Lean/Compiler/LCNF/PhaseExt.lean | 11 - .../src/Lean/Compiler/LCNF/PrettyPrinter.lean | 1 + stage0/src/Lean/Compiler/LCNF/Simp.lean | 2 +- .../src/Lean/Compiler/LCNF/Simp/DiscrM.lean | 76 + .../src/Lean/Compiler/LCNF/Simp/JpCases.lean | 184 +- stage0/src/Lean/Compiler/LCNF/Simp/SimpM.lean | 63 +- .../Lean/Compiler/LCNF/Simp/SimpValue.lean | 5 +- stage0/src/Lean/Compiler/LCNF/ToLCNF.lean | 62 +- stage0/src/Lean/Compiler/LCNF/Types.lean | 100 +- stage0/src/Lean/Data/Name.lean | 8 +- stage0/src/Lean/Data/Position.lean | 2 +- stage0/src/Lean/Data/RBMap.lean | 27 +- stage0/src/Lean/Elab/Deriving/Repr.lean | 2 +- .../Elab/PreDefinition/Structural/Main.lean | 18 +- .../src/Lean/Elab/PreDefinition/WF/Main.lean | 1 + stage0/src/Lean/Elab/Tactic/ElabTerm.lean | 20 + stage0/src/Lean/ResolveName.lean | 2 +- .../Server/FileWorker/RequestHandling.lean | 118 +- stage0/stdlib/Init/Core.c | 42 +- stage0/stdlib/Init/NotationExtra.c | 2781 ++ stage0/stdlib/Lean/Compiler/LCNF.c | 6 +- stage0/stdlib/Lean/Compiler/LCNF/Basic.c | 87 +- stage0/stdlib/Lean/Compiler/LCNF/Bind.c | 276 +- stage0/stdlib/Lean/Compiler/LCNF/CSE.c | 40 +- stage0/stdlib/Lean/Compiler/LCNF/Check.c | 14 +- stage0/stdlib/Lean/Compiler/LCNF/CompilerM.c | 2656 -- stage0/stdlib/Lean/Compiler/LCNF/DependsOn.c | 93 + stage0/stdlib/Lean/Compiler/LCNF/InferType.c | 2851 +- .../stdlib/Lean/Compiler/LCNF/Internalize.c | 3846 +++ stage0/stdlib/Lean/Compiler/LCNF/JoinPoints.c | 11120 ++++++-- stage0/stdlib/Lean/Compiler/LCNF/Main.c | 147 +- stage0/stdlib/Lean/Compiler/LCNF/MonoTypes.c | 682 + stage0/stdlib/Lean/Compiler/LCNF/OtherDecl.c | 1727 ++ stage0/stdlib/Lean/Compiler/LCNF/Passes.c | 1067 +- stage0/stdlib/Lean/Compiler/LCNF/PhaseExt.c | 633 - .../stdlib/Lean/Compiler/LCNF/PrettyPrinter.c | 42 +- .../stdlib/Lean/Compiler/LCNF/PullLetDecls.c | 4 +- stage0/stdlib/Lean/Compiler/LCNF/Simp.c | 1609 +- .../Lean/Compiler/LCNF/Simp/DefaultAlt.c | 993 +- .../stdlib/Lean/Compiler/LCNF/Simp/DiscrM.c | 4749 ++++ .../Lean/Compiler/LCNF/Simp/InlineCandidate.c | 2048 +- .../Lean/Compiler/LCNF/Simp/InlineProj.c | 6821 ++--- .../stdlib/Lean/Compiler/LCNF/Simp/JpCases.c | 11077 ++++---- stage0/stdlib/Lean/Compiler/LCNF/Simp/Main.c | 17939 ++++++------ stage0/stdlib/Lean/Compiler/LCNF/Simp/SimpM.c | 12818 +++------ .../Lean/Compiler/LCNF/Simp/SimpValue.c | 2802 +- stage0/stdlib/Lean/Compiler/LCNF/Simp/Used.c | 1337 +- stage0/stdlib/Lean/Compiler/LCNF/Specialize.c | 809 +- stage0/stdlib/Lean/Compiler/LCNF/Testing.c | 8 +- stage0/stdlib/Lean/Compiler/LCNF/ToLCNF.c | 4359 +-- stage0/stdlib/Lean/Compiler/LCNF/Types.c | 3085 +- stage0/stdlib/Lean/Compiler/Main.c | 34 +- stage0/stdlib/Lean/Data/Name.c | 10 +- stage0/stdlib/Lean/Data/Position.c | 4 +- stage0/stdlib/Lean/Data/RBMap.c | 23569 +++++++++------- stage0/stdlib/Lean/Elab/Deriving/Repr.c | 258 +- .../stdlib/Lean/Elab/PreDefinition/WF/Main.c | 93 +- stage0/stdlib/Lean/Elab/Tactic/ElabTerm.c | 1260 +- stage0/stdlib/Lean/Elab/Tactic/Simp.c | 4 +- .../Lean/PrettyPrinter/Delaborator/Builtins.c | 4 +- stage0/stdlib/Lean/ResolveName.c | 4 +- .../Lean/Server/FileWorker/RequestHandling.c | 7031 +++-- 77 files changed, 74786 insertions(+), 57661 deletions(-) create mode 100644 stage0/src/Lean/Compiler/LCNF/Internalize.lean create mode 100644 stage0/src/Lean/Compiler/LCNF/MonoTypes.lean create mode 100644 stage0/src/Lean/Compiler/LCNF/OtherDecl.lean create mode 100644 stage0/src/Lean/Compiler/LCNF/Simp/DiscrM.lean create mode 100644 stage0/stdlib/Lean/Compiler/LCNF/Internalize.c create mode 100644 stage0/stdlib/Lean/Compiler/LCNF/MonoTypes.c create mode 100644 stage0/stdlib/Lean/Compiler/LCNF/OtherDecl.c create mode 100644 stage0/stdlib/Lean/Compiler/LCNF/Simp/DiscrM.c diff --git a/stage0/src/Init/Core.lean b/stage0/src/Init/Core.lean index 88299b463b..9b2117be70 100644 --- a/stage0/src/Init/Core.lean +++ b/stage0/src/Init/Core.lean @@ -1009,16 +1009,17 @@ instance [DecidableEq α] [DecidableEq β] : DecidableEq (α × β) := instance [BEq α] [BEq β] : BEq (α × β) where beq := fun (a₁, b₁) (a₂, b₂) => a₁ == a₂ && b₁ == b₂ -instance [LT α] [LT β] : LT (α × β) where - lt s t := s.1 < t.1 ∨ (s.1 = t.1 ∧ s.2 < t.2) +/-- Lexicographical order for products -/ +def Prod.lexLt [LT α] [LT β] (s : α × β) (t : α × β) : Prop := + s.1 < t.1 ∨ (s.1 = t.1 ∧ s.2 < t.2) -instance prodHasDecidableLt +instance Prod.lexLtDec [LT α] [LT β] [DecidableEq α] [DecidableEq β] [(a b : α) → Decidable (a < b)] [(a b : β) → Decidable (a < b)] - : (s t : α × β) → Decidable (s < t) := + : (s t : α × β) → Decidable (Prod.lexLt s t) := fun _ _ => inferInstanceAs (Decidable (_ ∨ _)) -theorem Prod.lt_def [LT α] [LT β] (s t : α × β) : (s < t) = (s.1 < t.1 ∨ (s.1 = t.1 ∧ s.2 < t.2)) := +theorem Prod.lexLt_def [LT α] [LT β] (s t : α × β) : (Prod.lexLt s t) = (s.1 < t.1 ∨ (s.1 = t.1 ∧ s.2 < t.2)) := rfl theorem Prod.ext (p : α × β) : (p.1, p.2) = p := by diff --git a/stage0/src/Init/NotationExtra.lean b/stage0/src/Init/NotationExtra.lean index 0f92f53238..a79ad63bd0 100644 --- a/stage0/src/Init/NotationExtra.lean +++ b/stage0/src/Init/NotationExtra.lean @@ -210,6 +210,70 @@ syntax (name := calcTactic) "calc" ppLine withPosition(calcStep) ppLine withPosi | `($_ $array $index) => `($array[$index]?) | _ => throw () +@[appUnexpander Name.mkStr1] def unexpandMkStr1 : Lean.PrettyPrinter.Unexpander + | `($(_) $a:str) => return mkNode `Lean.Parser.Term.quotedName #[Syntax.mkNameLit s!"`{a.getString}"] + | _ => throw () + +@[appUnexpander Name.mkStr2] def unexpandMkStr2 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1:str $a2:str) => return mkNode `Lean.Parser.Term.quotedName #[Syntax.mkNameLit s!"`{a1.getString}.{a2.getString}"] + | _ => throw () + +@[appUnexpander Name.mkStr3] def unexpandMkStr3 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1:str $a2:str $a3:str) => return mkNode `Lean.Parser.Term.quotedName #[Syntax.mkNameLit s!"`{a1.getString}.{a2.getString}.{a3.getString}"] + | _ => throw () + +@[appUnexpander Name.mkStr4] def unexpandMkStr4 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1:str $a2:str $a3:str $a4:str) => return mkNode `Lean.Parser.Term.quotedName #[Syntax.mkNameLit s!"`{a1.getString}.{a2.getString}.{a3.getString}.{a4.getString}"] + | _ => throw () + +@[appUnexpander Name.mkStr5] def unexpandMkStr5 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1:str $a2:str $a3:str $a4:str $a5:str) => return mkNode `Lean.Parser.Term.quotedName #[Syntax.mkNameLit s!"`{a1.getString}.{a2.getString}.{a3.getString}.{a4.getString}.{a5.getString}"] + | _ => throw () + +@[appUnexpander Name.mkStr6] def unexpandMkStr6 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1:str $a2:str $a3:str $a4:str $a5:str $a6:str) => return mkNode `Lean.Parser.Term.quotedName #[Syntax.mkNameLit s!"`{a1.getString}.{a2.getString}.{a3.getString}.{a4.getString}.{a5.getString}.{a6.getString}"] + | _ => throw () + +@[appUnexpander Name.mkStr7] def unexpandMkStr7 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1:str $a2:str $a3:str $a4:str $a5:str $a6:str $a7:str) => return mkNode `Lean.Parser.Term.quotedName #[Syntax.mkNameLit s!"`{a1.getString}.{a2.getString}.{a3.getString}.{a4.getString}.{a5.getString}.{a6.getString}.{a7.getString}"] + | _ => throw () + +@[appUnexpander Name.mkStr8] def unexpandMkStr8 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1:str $a2:str $a3:str $a4:str $a5:str $a6:str $a7:str $a8:str) => return mkNode `Lean.Parser.Term.quotedName #[Syntax.mkNameLit s!"`{a1.getString}.{a2.getString}.{a3.getString}.{a4.getString}.{a5.getString}.{a6.getString}.{a7.getString}.{a8.getString}"] + | _ => throw () + +@[appUnexpander Array.mkArray1] def unexpandMkArray1 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1) => `(#[$a1]) + | _ => throw () + +@[appUnexpander Array.mkArray2] def unexpandMkArray2 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1 $a2) => `(#[$a1, $a2]) + | _ => throw () + +@[appUnexpander Array.mkArray3] def unexpandMkArray3 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1 $a2 $a3) => `(#[$a1, $a2, $a3]) + | _ => throw () + +@[appUnexpander Array.mkArray4] def unexpandMkArray4 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1 $a2 $a3 $a4) => `(#[$a1, $a2, $a3, $a4]) + | _ => throw () + +@[appUnexpander Array.mkArray5] def unexpandMkArray5 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1 $a2 $a3 $a4 $a5) => `(#[$a1, $a2, $a3, $a4, $a5]) + | _ => throw () + +@[appUnexpander Array.mkArray6] def unexpandMkArray6 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1 $a2 $a3 $a4 $a5 $a6) => `(#[$a1, $a2, $a3, $a4, $a5, $a6]) + | _ => throw () + +@[appUnexpander Array.mkArray7] def unexpandMkArray7 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1 $a2 $a3 $a4 $a5 $a6 $a7) => `(#[$a1, $a2, $a3, $a4, $a5, $a6, $a7]) + | _ => throw () + +@[appUnexpander Array.mkArray8] def unexpandMkArray8 : Lean.PrettyPrinter.Unexpander + | `($(_) $a1 $a2 $a3 $a4 $a5 $a6 $a7 $a8) => `(#[$a1, $a2, $a3, $a4, $a5, $a6, $a7, $a8]) + | _ => throw () + /-- Apply function extensionality and introduce new hypotheses. The tactic `funext` will keep applying new the `funext` lemma until the goal target is not reducible to diff --git a/stage0/src/Lean/Compiler/LCNF.lean b/stage0/src/Lean/Compiler/LCNF.lean index 3068c3d2b0..dc8ed5af6f 100644 --- a/stage0/src/Lean/Compiler/LCNF.lean +++ b/stage0/src/Lean/Compiler/LCNF.lean @@ -34,4 +34,5 @@ import Lean.Compiler.LCNF.ToLCNF import Lean.Compiler.LCNF.Types import Lean.Compiler.LCNF.Util import Lean.Compiler.LCNF.ConfigOptions -import Lean.Compiler.LCNF.ForEachExpr \ No newline at end of file +import Lean.Compiler.LCNF.ForEachExpr +import Lean.Compiler.LCNF.MonoTypes \ No newline at end of file diff --git a/stage0/src/Lean/Compiler/LCNF/Basic.lean b/stage0/src/Lean/Compiler/LCNF/Basic.lean index a62d1a3bf4..589b5fc612 100644 --- a/stage0/src/Lean/Compiler/LCNF/Basic.lean +++ b/stage0/src/Lean/Compiler/LCNF/Basic.lean @@ -147,6 +147,10 @@ def AltCore.getCode : Alt → Code | .default k => k | .alt _ _ k => k +def AltCore.getParams : Alt → Array Param + | .default _ => #[] + | .alt _ ps _ => ps + def AltCore.forCodeM [Monad m] (alt : Alt) (f : Code → m Unit) : m Unit := do match alt with | .default k => f k diff --git a/stage0/src/Lean/Compiler/LCNF/Bind.lean b/stage0/src/Lean/Compiler/LCNF/Bind.lean index 06a4b7ecf5..5348d3cd9a 100644 --- a/stage0/src/Lean/Compiler/LCNF/Bind.lean +++ b/stage0/src/Lean/Compiler/LCNF/Bind.lean @@ -71,6 +71,18 @@ instance [MonadCodeBind m] : MonadCodeBind (ReaderT ρ m) where instance [STWorld ω m] [MonadCodeBind m] : MonadCodeBind (StateRefT' ω σ m) where codeBind c f sref := c.bind fun fvarId => f fvarId sref +/-- +Ensure resulting code has type `◾`. +-/ +def Code.ensureAnyType (c : Code) : CompilerM Code := do + if (← c.inferType).isErased then + return c + else + c.bind fun fvarId => do + let cast ← mkLcCast (.fvar fvarId) erasedExpr + let decl ← LCNF.mkAuxLetDecl cast + return .let decl (.return decl.fvarId) + /-- Create new parameters for the given arrow type. Example: if `type` is `Nat → Bool → Int`, the result is diff --git a/stage0/src/Lean/Compiler/LCNF/Check.lean b/stage0/src/Lean/Compiler/LCNF/Check.lean index 61b0500380..b248aad7f9 100644 --- a/stage0/src/Lean/Compiler/LCNF/Check.lean +++ b/stage0/src/Lean/Compiler/LCNF/Check.lean @@ -36,7 +36,7 @@ def checkAppArgs (f : Expr) (args : Array Expr) : CheckM Unit := do let mut j := 0 for i in [:args.size] do let arg := args[i]! - if fType.isAnyType then + if fType.isErased then return () fType := fType.headBeta let (d, b) ← @@ -47,7 +47,7 @@ def checkAppArgs (f : Expr) (args : Array Expr) : CheckM Unit := do match fType with | .forallE _ d b _ => j := i; pure (d, b) | _ => - if fType.isAnyType then return () + if fType.isErased then return () throwError "function expected at{indentExpr (mkAppN f args)}\narrow type expected{indentExpr fType}" let argType ← inferType arg let expectedType := d.instantiateRevRange j i args @@ -147,7 +147,7 @@ partial def checkCases (c : Cases) : CheckM Expr := do let mut hasDefault := false checkFVar c.discr let discrType ← LCNF.getType c.discr - unless discrType.isAnyType do + unless discrType.isErased do let .const declName _ := discrType.headBeta.getAppFn | throwError "unexpected LCNF discriminant type {discrType}" unless c.typeName == declName do throwError "invalid LCNF `{c.typeName}.casesOn`, discriminant has type{indentExpr discrType}" diff --git a/stage0/src/Lean/Compiler/LCNF/CompilerM.lean b/stage0/src/Lean/Compiler/LCNF/CompilerM.lean index ae9c0e49d5..534f65111b 100644 --- a/stage0/src/Lean/Compiler/LCNF/CompilerM.lean +++ b/stage0/src/Lean/Compiler/LCNF/CompilerM.lean @@ -250,110 +250,6 @@ def mkFreshBinderName (binderName := `_x): CompilerM Name := do modify fun s => { s with nextIdx := s.nextIdx + 1 } return declName -private def refreshBinderName (binderName : Name) : CompilerM Name := do - match binderName with - | .num p _ => - let r := .num p (← get).nextIdx - modify fun s => { s with nextIdx := s.nextIdx + 1 } - return r - | _ => return binderName - -namespace Internalize - -abbrev InternalizeM := StateRefT FVarSubst CompilerM - -/- -TODO: during internalization we must convert eliminate data that became computationally irrelevant. -See note on "erasure confusion" for examples on how this can happen. --/ - -/-- -The `InternalizeM` monad is a translator. It "translates" the free variables -in the input expressions and `Code`, into new fresh free variables in the -local context. --/ -instance : MonadFVarSubst InternalizeM true where - getSubst := get - -instance : MonadFVarSubstState InternalizeM where - modifySubst := modify - -private def mkNewFVarId (fvarId : FVarId) : InternalizeM FVarId := do - let fvarId' ← Lean.mkFreshFVarId - addFVarSubst fvarId fvarId' - return fvarId' - -def internalizeParam (p : Param) : InternalizeM Param := do - let binderName ← refreshBinderName p.binderName - let type ← normExpr p.type - let fvarId ← mkNewFVarId p.fvarId - let p := { p with binderName, fvarId, type } - modifyLCtx fun lctx => lctx.addParam p - return p - -def internalizeLetDecl (decl : LetDecl) : InternalizeM LetDecl := do - let binderName ← refreshBinderName decl.binderName - let type ← normExpr decl.type - let value ← normExpr decl.value - let fvarId ← mkNewFVarId decl.fvarId - let decl := { decl with binderName, fvarId, type, value } - modifyLCtx fun lctx => lctx.addLetDecl decl - return decl - -mutual - -partial def internalizeFunDecl (decl : FunDecl) : InternalizeM FunDecl := do - let type ← normExpr decl.type - let binderName ← refreshBinderName decl.binderName - let params ← decl.params.mapM internalizeParam - let value ← internalizeCode decl.value - let fvarId ← mkNewFVarId decl.fvarId - let decl := { decl with binderName, fvarId, params, type, value } - modifyLCtx fun lctx => lctx.addFunDecl decl - return decl - -partial def internalizeCode (code : Code) : InternalizeM Code := do - match code with - | .let decl k => return .let (← internalizeLetDecl decl) (← internalizeCode k) - | .fun decl k => return .fun (← internalizeFunDecl decl) (← internalizeCode k) - | .jp decl k => return .jp (← internalizeFunDecl decl) (← internalizeCode k) - | .return fvarId => return .return (← normFVar fvarId) - | .jmp fvarId args => return .jmp (← normFVar fvarId) (← args.mapM normExpr) - | .unreach type => return .unreach (← normExpr type) - | .cases c => - let resultType ← normExpr c.resultType - let discr ← normFVar c.discr - let alts ← c.alts.mapM fun - | .alt ctorName params k => return .alt ctorName (← params.mapM internalizeParam) (← internalizeCode k) - | .default k => return .default (← internalizeCode k) - return .cases { c with discr, alts, resultType } - -end - -partial def internalizeCodeDecl (decl : CodeDecl) : InternalizeM CodeDecl := do - match decl with - | .let decl => return .let (← internalizeLetDecl decl) - | .fun decl => return .fun (← internalizeFunDecl decl) - | .jp decl => return .jp (← internalizeFunDecl decl) - -end Internalize - -/-- -Refresh free variables ids in `code`, and store their declarations in the local context. --/ -partial def Code.internalize (code : Code) (s : FVarSubst := {}) : CompilerM Code := - Internalize.internalizeCode code |>.run' s - -open Internalize in -def Decl.internalize (decl : Decl) (s : FVarSubst := {}): CompilerM Decl := - go decl |>.run' s -where - go (decl : Decl) : InternalizeM Decl := do - let type ← normExpr decl.type - let params ← decl.params.mapM internalizeParam - let value ← internalizeCode decl.value - return { decl with type, params, value } - /-! Helper functions for creating LCNF local declarations. -/ @@ -472,15 +368,6 @@ def mkFreshJpName : CompilerM Name := do def mkAuxParam (type : Expr) (borrow := false) : CompilerM Param := do mkParam (← mkFreshBinderName `_y) type borrow -/-- -Create a fresh local context and internalize the given decls. --/ -def cleanup (decl : Array Decl) : CompilerM (Array Decl) := do - modify fun _ => {} - decl.mapM fun decl => do - modify fun s => { s with nextIdx := 1 } - decl.internalize - def getConfig : CompilerM ConfigOptions := return (← read).config diff --git a/stage0/src/Lean/Compiler/LCNF/DependsOn.lean b/stage0/src/Lean/Compiler/LCNF/DependsOn.lean index bbec31594f..baf134a959 100644 --- a/stage0/src/Lean/Compiler/LCNF/DependsOn.lean +++ b/stage0/src/Lean/Compiler/LCNF/DependsOn.lean @@ -31,6 +31,14 @@ private partial def depOn (c : Code) : M Bool := abbrev LetDecl.dependsOn (decl : LetDecl) (s : FVarIdSet) : Bool := decl.depOn s +abbrev FunDecl.dependsOn (decl : FunDecl) (s : FVarIdSet) : Bool := + exprDepOn decl.type s || depOn decl.value s + +def CodeDecl.dependsOn (decl : CodeDecl) (s : FVarIdSet) : Bool := + match decl with + | .let decl => decl.dependsOn s + | .jp decl | .fun decl => decl.dependsOn s + /-- Return `true` is `c` depends on a free variable in `s`. -/ diff --git a/stage0/src/Lean/Compiler/LCNF/InferType.lean b/stage0/src/Lean/Compiler/LCNF/InferType.lean index dab9e84028..2e9f7eef03 100644 --- a/stage0/src/Lean/Compiler/LCNF/InferType.lean +++ b/stage0/src/Lean/Compiler/LCNF/InferType.lean @@ -6,6 +6,7 @@ Authors: Leonardo de Moura import Lean.Compiler.LCNF.CompilerM import Lean.Compiler.LCNF.Types import Lean.Compiler.LCNF.PhaseExt +import Lean.Compiler.LCNF.OtherDecl namespace Lean.Compiler.LCNF /-! # Type inference for LCNF -/ @@ -91,17 +92,13 @@ def mkForallParams (params : Array Param) (type : Expr) : InferTypeM Expr := k (.fvar fvarId) def inferConstType (declName : Name) (us : List Level) : CompilerM Expr := do - if declName == ``lcAny || declName == ``lcErased then - return anyTypeExpr + if declName == ``lcErased then + return erasedExpr else if let some decl ← getDecl? declName then return decl.instantiateTypeLevelParams us else - /- - We need this case for declarations that do not have code associated with them. - Example: constructors. - TODO: phase support. - -/ - instantiateLCNFTypeLevelParams declName us + /- Declaration does not have code associated with it: constructor, inductive type, foreign function -/ + getOtherDeclType declName us mutual @@ -132,7 +129,7 @@ mutual match fType with | .forallE _ _ b _ => j := i; fType := b | _ => - if fType.isAnyType then return anyTypeExpr + if fType.isErased then return erasedExpr throwError "function expected{indentExpr (mkAppN f args[:i])} : {fType}\nfunction type{indentExpr (← inferType f)}" return fType.instantiateRevRange j args.size args |>.headBeta @@ -143,9 +140,9 @@ mutual let failed {α} : Unit → InferTypeM α := fun _ => throwError "invalid projection{indentExpr (mkProj structName idx s)}" let structType := (← inferType s).headBeta - if structType.isAnyType then + if structType.isErased then /- TODO: after we erase universe variables, we can just extract a better type using just `structName` and `idx`. -/ - return anyTypeExpr + return erasedExpr else matchConstStruct structType.getAppFn failed fun structVal structLvls ctorVal => let n := structVal.numParams @@ -159,23 +156,23 @@ mutual | .forallE _ _ body _ => if body.hasLooseBVars then -- This can happen when one of the fields is a type or type former. - ctorType := body.instantiate1 anyTypeExpr + ctorType := body.instantiate1 erasedExpr else ctorType := body | _ => - if ctorType.isAnyType then return anyTypeExpr + if ctorType.isErased then return erasedExpr failed () match ctorType with | .forallE _ d _ _ => return d | _ => - if ctorType.isAnyType then return anyTypeExpr + if ctorType.isErased then return erasedExpr failed () partial def getLevel? (type : Expr) : InferTypeM (Option Level) := do match (← inferType type) with | .sort u => return some u | e => - if e.isAnyType then + if e.isErased then return none else throwError "type expected{indentExpr type}" @@ -190,11 +187,11 @@ mutual go b (fvars.push fvar) | _ => let e := e.instantiateRev fvars - let some u ← getLevel? e | return anyTypeExpr + let some u ← getLevel? e | return erasedExpr let mut u := u for x in fvars.reverse do let xType ← inferType x - let some v ← getLevel? xType | return anyTypeExpr + let some v ← getLevel? xType | return erasedExpr u := mkLevelIMax' v u return .sort u.normalize @@ -220,7 +217,7 @@ def inferType (e : Expr) : CompilerM Expr := def getLevel (type : Expr) : CompilerM Level := do match (← inferType type) with | .sort u => return u - | e => if e.isAnyType then return levelOne else throwError "type expected{indentExpr type}" + | e => if e.isErased then return levelOne else throwError "type expected{indentExpr type}" /-- Create `lcCast expectedType e : expectedType` -/ def mkLcCast (e : Expr) (expectedType : Expr) : CompilerM Expr := do @@ -315,9 +312,7 @@ Remark: if the result is `true`, then `a` and `b` are indeed compatible. If it is `false`, we must use the full-check. -/ partial def compatibleTypesQuick (a b : Expr) : Bool := - if a.isAnyType || b.isAnyType then - true - else if a.isErased || b.isErased then + if a.isErased || b.isErased then true else let a' := a.headBeta @@ -343,9 +338,7 @@ partial def compatibleTypesQuick (a b : Expr) : Bool := Complete check for `compatibleTypes`. It eta-expands type formers. See comment at `compatibleTypes`. -/ partial def InferType.compatibleTypesFull (a b : Expr) : InferTypeM Bool := do - if a.isAnyType || b.isAnyType then - return true - else if a.isErased || b.isErased then + if a.isErased || b.isErased then return true else let a' := a.headBeta diff --git a/stage0/src/Lean/Compiler/LCNF/Internalize.lean b/stage0/src/Lean/Compiler/LCNF/Internalize.lean new file mode 100644 index 0000000000..e2bc7934c8 --- /dev/null +++ b/stage0/src/Lean/Compiler/LCNF/Internalize.lean @@ -0,0 +1,172 @@ +/- +Copyright (c) 2022 Microsoft Corporation. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Leonardo de Moura +-/ +import Lean.Compiler.LCNF.Types +import Lean.Compiler.LCNF.Bind +import Lean.Compiler.LCNF.CompilerM + +namespace Lean.Compiler.LCNF + +private def refreshBinderName (binderName : Name) : CompilerM Name := do + match binderName with + | .num p _ => + let r := .num p (← get).nextIdx + modify fun s => { s with nextIdx := s.nextIdx + 1 } + return r + | _ => return binderName + +namespace Internalize + +abbrev InternalizeM := StateRefT FVarSubst CompilerM + +/-- +The `InternalizeM` monad is a translator. It "translates" the free variables +in the input expressions and `Code`, into new fresh free variables in the +local context. +-/ +instance : MonadFVarSubst InternalizeM true where + getSubst := get + +instance : MonadFVarSubstState InternalizeM where + modifySubst := modify + +private def mkNewFVarId (fvarId : FVarId) : InternalizeM FVarId := do + let fvarId' ← Lean.mkFreshFVarId + addFVarSubst fvarId fvarId' + return fvarId' + +def internalizeParam (p : Param) : InternalizeM Param := do + let binderName ← refreshBinderName p.binderName + let type ← normExpr p.type + let fvarId ← mkNewFVarId p.fvarId + let p := { p with binderName, fvarId, type } + modifyLCtx fun lctx => lctx.addParam p + return p + +def internalizeLetDecl (decl : LetDecl) : InternalizeM LetDecl := do + let binderName ← refreshBinderName decl.binderName + let type ← normExpr decl.type + let value ← normExpr decl.value + let fvarId ← mkNewFVarId decl.fvarId + let decl := { decl with binderName, fvarId, type, value } + modifyLCtx fun lctx => lctx.addLetDecl decl + return decl + +mutual + +partial def internalizeFunDecl (decl : FunDecl) : InternalizeM FunDecl := do + let type ← normExpr decl.type + let binderName ← refreshBinderName decl.binderName + let params ← decl.params.mapM internalizeParam + let value ← internalizeCode decl.value + let fvarId ← mkNewFVarId decl.fvarId + let decl := { decl with binderName, fvarId, params, type, value } + modifyLCtx fun lctx => lctx.addFunDecl decl + return decl + +partial def internalizeCode (code : Code) : InternalizeM Code := do + match code with + | .let decl k => return .let (← internalizeLetDecl decl) (← internalizeCode k) + | .fun decl k => return .fun (← internalizeFunDecl decl) (← internalizeCode k) + | .jp decl k => return .jp (← internalizeFunDecl decl) (← internalizeCode k) + | .return fvarId => return .return (← normFVar fvarId) + | .jmp fvarId args => return .jmp (← normFVar fvarId) (← args.mapM normExpr) + | .unreach type => return .unreach (← normExpr type) + | .cases c => + let resultType ← normExpr c.resultType + let ensureAny := resultType != c.resultType && resultType.isErased + /- + Note: + If the new result type for the cases is `◾`, we must add a cast to `◾` (aka the any type) + to every alternative if their resulting type is not `◾`. This is similar to what we do at `ToLCNF.visitCases`. + Here is an example to illustrate this issue. + Suppose we have + ``` + inductive Id {A : Type u} : A → A → Type u + | refl {a : A} : Id a a + def transport {A : Type u} (B : A → Type v) {a b : A} (p : Id a b) : B a → B b := + ``` + Its LCNF type is + ``` + {A : Type u} (B : A → Type v) {a b : A} (p : Id ◾ ◾) (a.1 : B ◾) : B ◾ + ``` + and base phase code is + ``` + cases p : B ◾ + | Id.refl => + a.1 + ``` + Now suppose we define + ``` + def transportconst {A B : Type u} : A = B → A → B := + transport id + ``` + By setting `B` as `id`, and then inlining `transport, we would have the following code for `transportconst` is + ``` + cases p : ◾ + | Id.refl => + a.1 + ``` + Which can be checked by `Check.lean` because it assumes `◾` is compatible with anything and `a.1 : A`. + However, if inline `transportconst`, we can hit type error since the continuation for transportconst is + expecting a `B` instead of an `A`. We avoid this problem by adding a cast to `◾`. See `ToLCNF.visitCases` for + another place where we use this approach. + Thus, the resulting code for `transportconst` is + ``` + def MWE.transportconst (A : Type u) (B : Type u) (p : Id A B) (a.1 : A) := + cases p + | Id.refl => + let _x.2 := @lcCast A ◾ a.1 + _x.2 + ``` + -/ + let internalizeAltCode (k : Code) : InternalizeM Code := do + let k ← internalizeCode k + if ensureAny then + k.ensureAnyType + else + return k + let discr ← normFVar c.discr + let alts ← c.alts.mapM fun + | .alt ctorName params k => return .alt ctorName (← params.mapM internalizeParam) (← internalizeAltCode k) + | .default k => return .default (← internalizeAltCode k) + return .cases { c with discr, alts, resultType } + +end + +partial def internalizeCodeDecl (decl : CodeDecl) : InternalizeM CodeDecl := do + match decl with + | .let decl => return .let (← internalizeLetDecl decl) + | .fun decl => return .fun (← internalizeFunDecl decl) + | .jp decl => return .jp (← internalizeFunDecl decl) + +end Internalize + +/-- +Refresh free variables ids in `code`, and store their declarations in the local context. +-/ +partial def Code.internalize (code : Code) (s : FVarSubst := {}) : CompilerM Code := + Internalize.internalizeCode code |>.run' s + +open Internalize in +def Decl.internalize (decl : Decl) (s : FVarSubst := {}): CompilerM Decl := + go decl |>.run' s +where + go (decl : Decl) : InternalizeM Decl := do + let type ← normExpr decl.type + let params ← decl.params.mapM internalizeParam + let value ← internalizeCode decl.value + return { decl with type, params, value } + +/-- +Create a fresh local context and internalize the given decls. +-/ +def cleanup (decl : Array Decl) : CompilerM (Array Decl) := do + modify fun _ => {} + decl.mapM fun decl => do + modify fun s => { s with nextIdx := 1 } + decl.internalize + +end Lean.Compiler.LCNF \ No newline at end of file diff --git a/stage0/src/Lean/Compiler/LCNF/JoinPoints.lean b/stage0/src/Lean/Compiler/LCNF/JoinPoints.lean index 0c0505e4fa..604b30602e 100644 --- a/stage0/src/Lean/Compiler/LCNF/JoinPoints.lean +++ b/stage0/src/Lean/Compiler/LCNF/JoinPoints.lean @@ -5,11 +5,94 @@ Authors: Henrik Böving -/ import Lean.Compiler.LCNF.CompilerM import Lean.Compiler.LCNF.PassManager +import Lean.Compiler.LCNF.PullFunDecls namespace Lean.Compiler.LCNF +-- TODO: These can be used in a much more general context +partial def mapFVarM [Monad m] (f : FVarId → m FVarId) (e : Expr) : m Expr := do + match e with + | .proj typ idx struct => return .proj typ idx (←mapFVarM f struct) + | .app fn arg => return .app (←mapFVarM f fn) (←mapFVarM f arg) + | .fvar fvarId => return .fvar (←f fvarId) + | .lam arg ty body bi => + return .lam arg (←mapFVarM f ty) (←mapFVarM f body) bi + | .forallE arg ty body bi => + return .forallE arg (←mapFVarM f ty) (←mapFVarM f body) bi + | .letE var ty value body nonDep => + return .letE var (←mapFVarM f ty) (←mapFVarM f value) (←mapFVarM f body) nonDep + | .bvar .. | .sort .. => return e + | .mdata .. | .const .. | .lit .. => return e + | .mvar .. => unreachable! + +partial def forFVarM [Monad m] (f : FVarId → m Unit) (e : Expr) : m Unit := do + match e with + | .proj _ _ struct => forFVarM f struct + | .app fn arg => + forFVarM f fn + forFVarM f arg + | .fvar fvarId => f fvarId + | .lam _ ty body .. => + forFVarM f ty + forFVarM f body + | .forallE _ ty body .. => + forFVarM f ty + forFVarM f body + | .letE _ ty value body .. => + forFVarM f ty + forFVarM f value + forFVarM f body + | .bvar .. | .sort .. => return + | .mdata .. | .const .. | .lit .. => return + | .mvar .. => unreachable! + +/-- +A general abstraction for the idea of a scope in the compiler. +-/ +abbrev ScopeM := StateRefT FVarIdSet CompilerM + +namespace ScopeM + +def getScope : ScopeM FVarIdSet := get +def setScope (newScope : FVarIdSet) : ScopeM Unit := set newScope +def clearScope : ScopeM Unit := setScope {} + +/-- +Execute `x` but recover the previous scope after doing so. +-/ +def withBackTrackingScope [MonadLiftT ScopeM m] [Monad m] [MonadFinally m] (x : m α) : m α := do + let scope ← getScope + try x finally setScope scope + +/-- +Clear the current scope for the monadic action `x`, afterwards continuing +with the old one. +-/ +def withNewScope [MonadLiftT ScopeM m] [Monad m] [MonadFinally m] (x : m α) : m α := do + withBackTrackingScope do + clearScope + x + +/-- +Check whether `fvarId` is in the current scope, that is, was declared within +the current `fun` declaration that is being processed. +-/ +def isInScope (fvarId : FVarId) : ScopeM Bool := do + let scope ← getScope + return scope.contains fvarId + +/-- +Add a new `FVarId` to the current scope. +-/ +def addToScope (fvarId : FVarId) : ScopeM Unit := + modify fun scope => scope.insert fvarId + +end ScopeM + namespace JoinPointFinder +open ScopeM + /-- Info about a join point candidate (a `fun` declaration) during the find phase. -/ @@ -41,7 +124,7 @@ structure FindState where abbrev ReplaceCtx := HashMap FVarId Name -abbrev FindM := ReaderT (Option FVarId) StateRefT FindState CompilerM +abbrev FindM := ReaderT (Option FVarId) StateRefT FindState ScopeM abbrev ReplaceM := ReaderT ReplaceCtx CompilerM /-- @@ -69,17 +152,7 @@ private def modifyCandidates (f : HashMap FVarId CandidateInfo → HashMap FVarI Remove all join point candidates contained in `e`. -/ private partial def removeCandidatesContainedIn (e : Expr) : FindM Unit := do - match e with - | .proj _ _ struct => removeCandidatesContainedIn struct - | .app fn arg => - removeCandidatesContainedIn fn - removeCandidatesContainedIn arg - | .fvar fvarId => eraseCandidate fvarId - -- These cannot occur in (computationally relevant) LCNF - | .bvar .. | .lam .. | .sort .. | .forallE .. | .letE .. => return - -- These we just don't care about - | .mdata .. | .const .. | .lit .. => return - | .mvar .. => unreachable! + forFVarM eraseCandidate e /-- Add a new join point candidate to the state. @@ -97,29 +170,6 @@ private def addDependency (src : FVarId) (target : FVarId) : FindM Unit := do else eraseCandidate src -/-- -Clear the current scope for the monadic action `x`, afterwards continuing -with the old one. --/ -private def withNewScope (x : FindM α) : FindM α := do - let scope := (← get).scope - modify fun s => { s with scope := {} } - try x finally modify fun s => { s with scope } - -/-- -Check whether `fvarId` is in the current scope, that is, was declared within -the current `fun` declaration that is being processed. --/ -private def isInScope (fvarId : FVarId) : FindM Bool := do - let scope := (← get).scope - return scope.contains fvarId - -/-- -Add a new `FVarId` to the current scope. --/ -private def addToScope (fvarId : FVarId) : FindM Unit := - modify fun state => { state with scope := state.scope.insert fvarId } - /-- Find all `fun` declarations that qualify as a join point, that is: - are always fully applied @@ -153,7 +203,7 @@ this. This is because otherwise the calls to `myjp` in `f` and `g` would produce out of scope join point jumps. -/ partial def find (decl : Decl) : CompilerM FindState := do - let (_, candidates) ← go decl.value |>.run none |>.run {} + let (_, candidates) ← go decl.value |>.run none |>.run {} |>.run' {} return candidates where go : Code → FindM Unit @@ -236,6 +286,235 @@ where end JoinPointFinder +namespace JoinPointContextExtender + +open ScopeM + +/-- +The context managed by `ExtendM`. +-/ +structure ExtendContext where + /-- + The `FVarId` of the current join point if we are currently inside one. + -/ + currentJp? : Option FVarId := none + /-- + The list of valid candidates for extending the context. This will be + all `let` and `fun` declarations as well as all `jp` parameters up + until the last `fun` declaration in the tree. + -/ + candidates : FVarIdSet := {} + +/-- +The state managed by `ExtendM`. +-/ +structure ExtendState where + /-- + A map from join point `FVarId`s to a respective map from free variables + to `Param`s. The free variables in this map are the once that the context + of said join point will be extended by by passing in the respective parameter. + -/ + fvarMap : HashMap FVarId (HashMap FVarId Param) := {} + +/-- +The monad for the `extendJoinPointContext` pass. +-/ +abbrev ExtendM := ReaderT ExtendContext StateRefT ExtendState ScopeM + +/-- +Replace a free variable if necessary, that is: +- It is in the list of candidates +- We are currently within a join point (if we are within a function there + cannot be a need to replace them since we dont extend their context) +- Said join point actually has a replacement parameter registered. +otherwise just return `fvar`. +-/ +def replaceFVar (fvar : FVarId) : ExtendM FVarId := do + if (←read).candidates.contains fvar then + if let some currentJp := (←read).currentJp? then + if let some replacement := (←get).fvarMap.find! currentJp |>.find? fvar then + return replacement.fvarId + return fvar + +/-- +Add a new candidate to the current scope + to the list of candidates +if we are currently within a join point. Then execute `x`. +-/ +def withNewCandidate (fvar : FVarId) (x : ExtendM α) : ExtendM α := do + addToScope fvar + if (←read).currentJp?.isSome then + withReader (fun ctx => { ctx with candidates := ctx.candidates.insert fvar }) do + x + else + x + +/-- +Same as `withNewCandidate` but with multiple `FVarId`s. +-/ +def withNewCandidates (fvars : Array FVarId) (x : ExtendM α) : ExtendM α := do + if (←read).currentJp?.isSome then + let candidates := (←read).candidates + let folder := (fun acc val => do addToScope val; return acc.insert val) + let newCandidates ← fvars.foldlM (init := candidates) folder + withReader (fun ctx => { ctx with candidates := newCandidates }) do + x + else + x + +/-- +Extend the context of the current join point (if we are within one) +by `fvar` if necessary. +This is necessary if: +- `fvar` is not in scope (that is, was declared outside of the current jp) +- we have not already extended the context by `fvar` +- the list of candidates contains `fvar`. This is because if we have something + like: + ``` + let x := .. + fun f a => + jp j b => + let y := x + y + ``` + There is no point in extending the context of `j` by `x` because we + cannot lift a join point outside of a local function declaration. +-/ +def extendByIfNecessary (fvar : FVarId) : ExtendM Unit := do + if let some currentJp := (←read).currentJp? then + let mut translator := (←get).fvarMap.find! currentJp + let candidates := (←read).candidates + if !(←isInScope fvar) && !translator.contains fvar && candidates.contains fvar then + let typ ← getType fvar + let newParam ← mkAuxParam typ + translator := translator.insert fvar newParam + modify fun s => { s with fvarMap := s.fvarMap.insert currentJp translator } + +/-- +Merge the extended context of two join points if necessary. That is +if we have a structure such as: +``` +jp j.1 ... => + jp j.2 .. => + ... + ... +``` +And we are just done visiting `j.2` we want to extend the context of +`j.1` by all free variables that the context of `j.2` was extended by +as well because we need to drag these variables through at the call sites +of `j.2` in `j.1`. +-/ +def mergeJpContextIfNecessary (jp : FVarId) : ExtendM Unit := do + if (←read).currentJp?.isSome then + let additionalArgs := (←get).fvarMap.find! jp |>.toArray + for (fvar, _) in additionalArgs do + extendByIfNecessary fvar + +/-- +We call this whenever we enter a new local function. It clears both the +current join point and the list of candidates since we cant lift join +points outside of functions as explained in `mergeJpContextIfNecessary`. +-/ +def withNewFunScope (decl : FunDecl) (x : ExtendM α): ExtendM α := do + withReader (fun ctx => { ctx with currentJp? := none, candidates := {} }) do + withNewScope do + x + +/-- +We call this whenever we enter a new join point. It will set the current +join point and extend the list of candidates by all of the parameters of +the join point. This is so in the case of nested join points that refer +to parameters of the current one we extend the context of the nested +join points by said parameters. +-/ +def withNewJpScope (decl : FunDecl) (x : ExtendM α): ExtendM α := do + withReader (fun ctx => { ctx with currentJp? := some decl.fvarId }) do + modify fun s => { s with fvarMap := s.fvarMap.insert decl.fvarId {} } + withNewScope do + withNewCandidates (decl.params.map (·.fvarId)) do + x + +/-- +We call this whenever we visit a new arm of a cases statement. +It will back up the current scope (since we are doing a case split +and want to continue with other arms afterwards) and add all of the +parameters of the match arm to the list of candidates. +-/ +def withNewAltScope (alt : Alt) (x : ExtendM α) : ExtendM α := do + withBackTrackingScope do + withNewCandidates (alt.getParams.map (·.fvarId)) do + x + +/-- +Use all of the above functions to find free variables declared outside +of join points that said join points can be reasonaly extended by. Reasonable +meaning that in case the current join point is nested within a function +declaration we will not extend it by free variables declared before the +function declaration because we cannot lift join points outside of function +declarations. + +All of this is done to eliminate dependencies of join points onto their +position within the code so we can pull them out as far as possible, hopefully +enabling new inlining possibilities in the next simplifier run. +-/ +partial def extend (decl : Decl) : CompilerM Decl := do + let newValue ← go decl.value |>.run {} |>.run' {} |>.run' {} + let decl := { decl with value := newValue } + decl.pullFunDecls +where + goExpr (e : Expr) : ExtendM Expr := + let visitor := fun fvar => do + extendByIfNecessary fvar + replaceFVar fvar + mapFVarM visitor e + go (code : Code) : ExtendM Code := do + match code with + | .let decl k => + let decl ← decl.updateValue (←goExpr decl.value) + withNewCandidate decl.fvarId do + return Code.updateLet! code decl (←go k) + | .jp decl k => + let decl ← withNewJpScope decl do + let value ← go decl.value + let additionalParams := (←get).fvarMap.find! decl.fvarId |>.toArray |>.map Prod.snd + let newType := additionalParams.foldr (init := decl.type) (fun val acc => .forallE val.binderName val.type acc .default) + decl.update newType (additionalParams ++ decl.params) value + mergeJpContextIfNecessary decl.fvarId + withNewCandidate decl.fvarId do + return Code.updateFun! code decl (←go k) + | .fun decl k => + let decl ← withNewFunScope decl do + decl.updateValue (←go decl.value) + withNewCandidate decl.fvarId do + return Code.updateFun! code decl (←go k) + | .cases cs => + extendByIfNecessary cs.discr + let discr ← replaceFVar cs.discr + let visitor := fun alt => do + withNewAltScope alt do + alt.mapCodeM go + let alts ← cs.alts.mapM visitor + return Code.updateCases! code cs.resultType discr alts + | .jmp fn args => + let mut newArgs ← args.mapM goExpr + let additionalArgs := (←get).fvarMap.find! fn |>.toArray |>.map Prod.fst + if let some currentJp := (←read).currentJp? then + let translator := (←get).fvarMap.find! currentJp + let f := fun arg => + if let some translated := translator.find? arg then + .fvar translated.fvarId + else + .fvar arg + newArgs := (additionalArgs.map f) ++ newArgs + else + newArgs := (additionalArgs.map .fvar) ++ newArgs + return Code.updateJmp! code fn newArgs + | .return var => + extendByIfNecessary var + return Code.updateReturn! code (←replaceFVar var) + | .unreach .. => return code + +end JoinPointContextExtender + /-- Find all `fun` declarations in `decl` that qualify as join points then replace their definitions and call sites with `jp`/`jmp`. @@ -251,4 +530,13 @@ def findJoinPoints : Pass := builtin_initialize registerTraceClass `Compiler.findJoinPoints (inherited := true) +def Decl.extendJoinPointContext (decl : Decl) : CompilerM Decl := do + JoinPointContextExtender.extend decl + +def extendJoinPointContext : Pass := + .mkPerDeclaration `extendJoinPointContext Decl.extendJoinPointContext .base + +builtin_initialize + registerTraceClass `Compiler.extendJoinPointContext (inherited := true) + end Lean.Compiler.LCNF diff --git a/stage0/src/Lean/Compiler/LCNF/Main.lean b/stage0/src/Lean/Compiler/LCNF/Main.lean index 45e217882e..c72feda8b9 100644 --- a/stage0/src/Lean/Compiler/LCNF/Main.lean +++ b/stage0/src/Lean/Compiler/LCNF/Main.lean @@ -50,7 +50,7 @@ def checkpoint (stepName : Name) (decls : Array Decl) : CompilerM Unit := do withOptions (fun opts => opts.setBool `pp.motives.pi false) do let clsName := `Compiler ++ stepName if (← Lean.isTracingEnabledFor clsName) then - Lean.addTrace clsName m!"size: {decl.size}\n{← ppDecl decl}" + Lean.addTrace clsName m!"size: {decl.size}\n{← ppDecl' decl}" if compiler.check.get (← getOptions) then decl.check if compiler.check.get (← getOptions) then @@ -91,8 +91,9 @@ def showDecl (phase : Phase) (declName : Name) : CoreM Format := do ppDecl' decl @[export lean_lcnf_compile_decls] -def main (declNames : List Name) : CoreM Unit := - CompilerM.run <| discard <| PassManager.run declNames.toArray +def main (declNames : List Name) : CoreM Unit := do + profileitM Exception "compilation new" (← getOptions) do + CompilerM.run <| discard <| PassManager.run declNames.toArray builtin_initialize registerTraceClass `Compiler.init (inherited := true) diff --git a/stage0/src/Lean/Compiler/LCNF/MonoTypes.lean b/stage0/src/Lean/Compiler/LCNF/MonoTypes.lean new file mode 100644 index 0000000000..373ba00652 --- /dev/null +++ b/stage0/src/Lean/Compiler/LCNF/MonoTypes.lean @@ -0,0 +1,49 @@ +/- +Copyright (c) 2022 Microsoft Corporation. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Leonardo de Moura +-/ +import Lean.Compiler.LCNF.InferType + +namespace Lean.Compiler.LCNF + +/-- +Convert a LCNF type from the base phase to the mono phase. + +LCNF types in the mono phase do not have dependencies, +and universe levels have been erased. + +The type contains only `→` and constants. +-/ +partial def toMonoType (type : Expr) : CompilerM Expr := do + let type := type.headBeta + if type.isErased then + return erasedExpr + else if type.isErased then + return erasedExpr + else if isTypeFormerType type then + return erasedExpr + else match type with + | .const .. => visitApp type #[] + | .app .. => type.withApp visitApp + | .forallE _ d b _ => mkArrow (← toMonoType d) (← toMonoType (b.instantiate1 erasedExpr)) + | _ => return erasedExpr +where + visitApp (f : Expr) (args : Array Expr) : CompilerM Expr := do + match f with + | .const declName _ => + let mut result := mkConst declName + for arg in args do + let arg := arg.headBeta + if arg.isErased then + result := mkApp result arg + else + let argType := (← inferType arg).headBeta + if argType.isErased || argType matches .sort _ then + result := mkApp result (← toMonoType arg) + else + result := mkApp result erasedExpr + return result + | _ => return erasedExpr + +end Lean.Compiler.LCNF \ No newline at end of file diff --git a/stage0/src/Lean/Compiler/LCNF/OtherDecl.lean b/stage0/src/Lean/Compiler/LCNF/OtherDecl.lean new file mode 100644 index 0000000000..eb75c3a5db --- /dev/null +++ b/stage0/src/Lean/Compiler/LCNF/OtherDecl.lean @@ -0,0 +1,44 @@ +/- +Copyright (c) 2022 Microsoft Corporation. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Leonardo de Moura +-/ +import Lean.Compiler.LCNF.CompilerM +import Lean.Compiler.LCNF.Types + +namespace Lean.Compiler.LCNF + +/-- +State for the environment extension used to save the type of declarations +that do not have code associated with them. +Example: constructors, inductive types, foreign functions. +-/ +structure OtherTypeExtState where + /-- The LCNF type for the `base` phase. -/ + base : PHashMap Name Expr := {} + /-- The LCNF type for the `mono` phase. -/ + mono : PHashMap Name Expr := {} + deriving Inhabited + +builtin_initialize otherTypeExt : EnvExtension OtherTypeExtState ← + registerEnvExtension (pure {}) + +def getOtherDeclBaseType (declName : Name) (us : List Level) : CoreM Expr := do + let info ← getConstInfo declName + let type ← match otherTypeExt.getState (← getEnv) |>.base.find? declName with + | some type => pure type + | none => + let type ← Meta.MetaM.run' <| toLCNFType info.type + modifyEnv fun env => otherTypeExt.modifyState env fun s => { s with base := s.base.insert declName type } + pure type + return type.instantiateLevelParams info.levelParams us + +/-- +Return the LCNF type for constructors, inductive types, and foreign functions. +-/ +def getOtherDeclType (declName : Name) (us : List Level := []) : CompilerM Expr := do + match (← getPhase) with + | .base => getOtherDeclBaseType declName us + | _ => unreachable! -- TODO + +end Lean.Compiler.LCNF diff --git a/stage0/src/Lean/Compiler/LCNF/Passes.lean b/stage0/src/Lean/Compiler/LCNF/Passes.lean index 5ce2ec4e29..e0494f84e1 100644 --- a/stage0/src/Lean/Compiler/LCNF/Passes.lean +++ b/stage0/src/Lean/Compiler/LCNF/Passes.lean @@ -24,6 +24,17 @@ def init : Pass where return decls phase := .base +def normalizeFVarIds (decl : Decl) : CoreM Decl := do + let ngenSaved ← getNGen + setNGen {} + try + CompilerM.run <| decl.internalize + finally + setNGen ngenSaved + +def saveBase : Pass := + .mkPerDeclaration `saveBase (fun decl => do (← normalizeFVarIds decl).saveBase; return decl) .base + def builtinPassManager : PassManager := { passes := #[ init, @@ -33,6 +44,7 @@ def builtinPassManager : PassManager := { findJoinPoints, pullFunDecls, reduceJpArity, + -- extendJoinPointContext, simp { etaPoly := true, inlinePartial := true, implementedBy := true } (occurrence := 1), specialize, simp (occurrence := 2), diff --git a/stage0/src/Lean/Compiler/LCNF/PhaseExt.lean b/stage0/src/Lean/Compiler/LCNF/PhaseExt.lean index 2e612900a2..a51126cb58 100644 --- a/stage0/src/Lean/Compiler/LCNF/PhaseExt.lean +++ b/stage0/src/Lean/Compiler/LCNF/PhaseExt.lean @@ -54,17 +54,6 @@ def getDeclAt? (declName : Name) (phase : Phase) : CoreM (Option Decl) := def getDecl? (declName : Name) : CompilerM (Option Decl) := do getDeclAt? declName (← getPhase) -def normalizeFVarIds (decl : Decl) : CoreM Decl := do - let ngenSaved ← getNGen - setNGen {} - try - CompilerM.run <| decl.internalize - finally - setNGen ngenSaved - -def saveBase : Pass := - .mkPerDeclaration `saveBase (fun decl => do (← normalizeFVarIds decl).saveBase; return decl) .base - def forEachDecl (f : Decl → CoreM Unit) : CoreM Unit := do let env ← getEnv for modIdx in [:env.allImportedModuleNames.size] do diff --git a/stage0/src/Lean/Compiler/LCNF/PrettyPrinter.lean b/stage0/src/Lean/Compiler/LCNF/PrettyPrinter.lean index 509e68f003..ecfec3a5b1 100644 --- a/stage0/src/Lean/Compiler/LCNF/PrettyPrinter.lean +++ b/stage0/src/Lean/Compiler/LCNF/PrettyPrinter.lean @@ -5,6 +5,7 @@ Authors: Leonardo de Moura -/ import Lean.PrettyPrinter import Lean.Compiler.LCNF.CompilerM +import Lean.Compiler.LCNF.Internalize namespace Lean.Compiler.LCNF diff --git a/stage0/src/Lean/Compiler/LCNF/Simp.lean b/stage0/src/Lean/Compiler/LCNF/Simp.lean index 8450c03ea5..7361938464 100644 --- a/stage0/src/Lean/Compiler/LCNF/Simp.lean +++ b/stage0/src/Lean/Compiler/LCNF/Simp.lean @@ -50,7 +50,7 @@ partial def Decl.simp (decl : Decl) (config : Config) : CompilerM Decl := do go decl config where go (decl : Decl) (config : Config) : CompilerM Decl := do - if let some decl ← decl.simp? |>.run { config, declName := decl.name } |>.run' {} then + if let some decl ← decl.simp? |>.run { config, declName := decl.name } |>.run' {} |>.run {} then -- TODO: bound number of steps? go decl config else diff --git a/stage0/src/Lean/Compiler/LCNF/Simp/DiscrM.lean b/stage0/src/Lean/Compiler/LCNF/Simp/DiscrM.lean new file mode 100644 index 0000000000..2117a67dd0 --- /dev/null +++ b/stage0/src/Lean/Compiler/LCNF/Simp/DiscrM.lean @@ -0,0 +1,76 @@ +/- +Copyright (c) 2022 Microsoft Corporation. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Leonardo de Moura +-/ +import Lean.Compiler.LCNF.CompilerM +import Lean.Compiler.LCNF.Types +import Lean.Compiler.LCNF.InferType +import Lean.Compiler.LCNF.Simp.Basic + +namespace Lean.Compiler.LCNF +namespace Simp + +structure DiscrM.Context where + /-- + A mapping from discriminant to constructor application it is equal to in the current context. + -/ + discrCtorMap : FVarIdMap Expr := {} + /-- + A mapping from constructor application to discriminant it is equal to in the current context. + -/ + ctorDiscrMap : PersistentExprMap FVarId := {} + +/-- +Helper monad for tracking mappings from discriminant to constructor applications and back. +The combinator `withDiscrCtor` should be used when visiting `cases` alternatives. +-/ +abbrev DiscrM := ReaderT DiscrM.Context CompilerM + +/-- +This method uses `findExpr`, and if the result is a free variable, checks whether it is in the map `discrCtorMap`. +We use this method when simplifying projections and cases-constructor. +-/ +def findCtor (e : Expr) : DiscrM Expr := do + let e ← findExpr e + let .fvar fvarId := e | return e + let some ctor := (← read).discrCtorMap.find? fvarId | return e + return ctor + +/-- +If `type` is an inductive datatype, return its universe levels and parameters. +-/ +def getIndInfo? (type : Expr) : CoreM (Option (List Level × Array Expr)) := do + let type := type.headBeta + let .const declName us := type.getAppFn | return none + let .inductInfo info ← getConstInfo declName | return none + unless type.getAppNumArgs >= info.numParams do return none + return some (us, type.getAppArgs[:info.numParams]) + +/-- +Execute `x` with the information that `discr = ctorName ctorFields`. +We use this information to simplify nested cases on the same discriminant. +-/ +def withDiscrCtorImp (discr : FVarId) (ctorName : Name) (ctorFields : Array Param) (x : DiscrM α) : DiscrM α := do + let ctorInfo ← getConstInfoCtor ctorName + let fieldArgs := ctorFields.map (.fvar ·.fvarId) + if let some (us, params) ← getIndInfo? (← getType discr) then + let ctor := mkAppN (mkAppN (mkConst ctorName us) params) fieldArgs + withReader (fun ctx => { ctx with discrCtorMap := ctx.discrCtorMap.insert discr ctor, ctorDiscrMap := ctx.ctorDiscrMap.insert ctor discr }) do + x + else + -- For the discrCtor map, the constructor parameters are irrelevant for optimizations that use this information + let ctor := mkAppN (mkAppN (mkConst ctorName) (mkArray ctorInfo.numParams erasedExpr)) fieldArgs + withReader (fun ctx => { ctx with discrCtorMap := ctx.discrCtorMap.insert discr ctor }) do + x + +@[inline, inheritDoc withDiscrCtorImp] def withDiscrCtor [MonadFunctorT DiscrM m] (discr : FVarId) (ctorName : Name) (ctorFields : Array Param) : m α → m α := + monadMap (m := DiscrM) <| withDiscrCtorImp discr ctorName ctorFields + +def simpCtorDiscrCore? (e : Expr) : DiscrM (Option Expr) := do + let some discr := (← read).ctorDiscrMap.find? e | return none + unless (← compatibleTypes (← getType discr) (← inferType e)) do return none + return some <| .fvar discr + +end Simp +end Lean.Compiler.LCNF diff --git a/stage0/src/Lean/Compiler/LCNF/Simp/JpCases.lean b/stage0/src/Lean/Compiler/LCNF/Simp/JpCases.lean index 3cfcb517ef..e66bfa65c7 100644 --- a/stage0/src/Lean/Compiler/LCNF/Simp/JpCases.lean +++ b/stage0/src/Lean/Compiler/LCNF/Simp/JpCases.lean @@ -5,13 +5,15 @@ Authors: Leonardo de Moura -/ import Lean.Compiler.LCNF.DependsOn import Lean.Compiler.LCNF.InferType +import Lean.Compiler.LCNF.Internalize import Lean.Compiler.LCNF.Simp.Basic +import Lean.Compiler.LCNF.Simp.DiscrM namespace Lean.Compiler.LCNF namespace Simp /-- -Given the function declaration `decl`, return `true` if it is of the form +Given the function declaration `decl`, return `some idx` if it is of the form ``` f y := ... /- This part is not bigger than smallThreshold. -/ @@ -19,55 +21,71 @@ f y := | ... => ... ... ``` +`idx` is the index of the parameter used in the `cases` statement. -/ -def isJpCases (decl : FunDecl) : CompilerM Bool := do - if decl.params.size != 1 then - return false +def isJpCases? (decl : FunDecl) : CompilerM (Option Nat) := do + if decl.params.size == 0 then + return none else - let param := decl.params[0]! let small := (← getConfig).smallThreshold - let rec go (code : Code) (prefixSize : Nat) : Bool := - prefixSize <= small && + let rec go (code : Code) (prefixSize : Nat) : Option Nat := + if prefixSize > small then none else match code with | .let _ k => go k (prefixSize + 1) /- TODO: we should have uniform heuristics for estimating the size. -/ - | .cases c => c.discr == param.fvarId - | _ => false + | .cases c => decl.params.findIdx? fun param => c.discr == param.fvarId + | _ => none return go decl.value 0 -abbrev JpCasesInfo := FVarIdMap NameSet +/-- +Information for join points that satisfy `isJpCases?` +-/ +structure JpCasesInfo where + /-- Parameter index returned by `isJpCases?`. This parameter is the one the join point is performing the case-split. -/ + paramIdx : Nat + /-- + Set of constructor names s.t. `ctorName` is in the set if there is a jump to the join point where the parameter + `paramIdx` is a constructor application. + -/ + ctorNames : NameSet := {} + deriving Inhabited + +abbrev JpCasesInfoMap := FVarIdMap JpCasesInfo /-- Return `true` if the collected information suggests opportunities for the `JpCases` optimization. -/ -def JpCasesInfo.isCandidate (info : JpCasesInfo) : Bool := - info.any fun _ s => !s.isEmpty +def JpCasesInfoMap.isCandidate (info : JpCasesInfoMap) : Bool := + info.any fun _ s => !s.ctorNames.isEmpty /-- -Return a map containing entries `jpFVarId ↦ ctorNames` where `jpFVarId` is the id of join point +Return a map containing entries `jpFVarId ↦ { paramIdx, ctorNames }` where `jpFVarId` is the id of join point in code that satisfies `isJpCases`, and `ctorNames` is a set of constructor names such that -there is a jump `.jmp jpFVarId #[x]` in `code` and `x` is a constructor application. +there is a jump `.jmp jpFVarId #[..., x, ...]` in `code` and `x` is a constructor application. +`paramIdx` is the index of the parameter -/ -partial def collectJpCasesInfo (code : Code) : CompilerM JpCasesInfo := do - let (_, s) ← go code |>.run {} +partial def collectJpCasesInfo (code : Code) : CompilerM JpCasesInfoMap := do + let (_, s) ← go code |>.run {} |>.run {} return s where - go (code : Code) : StateRefT JpCasesInfo CompilerM Unit := do + go (code : Code) : StateRefT JpCasesInfoMap DiscrM Unit := do match code with | .let _ k => go k | .fun decl k => go decl.value; go k | .jp decl k => - if (← isJpCases decl) then - modify fun s => s.insert decl.fvarId {} + if let some paramIdx ← isJpCases? decl then + modify fun s => s.insert decl.fvarId { paramIdx } go decl.value; go k - | .cases c => c.alts.forM fun alt => go alt.getCode + | .cases c => c.alts.forM fun alt => + match alt with + | .default k => go k + | .alt ctorName ps k => withDiscrCtor c.discr ctorName ps <| go k | .return .. | .unreach .. => return () | .jmp fvarId args => - if args.size == 1 then - if let some ctorNames := (← get).find? fvarId then - let arg ← findExpr args[0]! + if let some info := (← get).find? fvarId then + let arg ← findCtor args[info.paramIdx]! let some (cval, _) := arg.constructorApp? (← getEnv) | return () - modify fun s => s.insert fvarId <| ctorNames.insert cval.name + modify fun map => map.insert fvarId <| { info with ctorNames := info.ctorNames.insert cval.name } /-- -Extract the let-declarations and `cases` for a join point body that satisfies `isJpCases`. +Extract the let-declarations and `cases` for a join point body that satisfies `isJpCases?`. -/ private def extractJpCases (code : Code) : Array CodeDecl × Cases := go code #[] @@ -86,21 +104,49 @@ structure JpCasesAlt where abbrev Ctor2JpCasesAlt := FVarIdMap (NameMap JpCasesAlt) open Internalize in -private def mkJpAlt (decls : Array CodeDecl) (discr : Param) (fields : Array Param) (k : Code) (default : Bool) : CompilerM JpCasesAlt := do +/-- +Construct an auxiliary join point for a particular alternative in a join-point that satifies `isJpCases?`. +- `decls` is the prefix (before the `cases`). See `isJpCases?`. +- `params` are the parameters of the main join point that satisfies `isJpCases?`. +- `targetParamIdx` is the index of the parameter that we are expanding to `fields` +- `fields` are the fields/parameter of the alternative. +- `k` is the body of the alternative. +- `default` is true if it is a default alternative. +-/ +private def mkJpAlt (decls : Array CodeDecl) (params : Array Param) (targetParamIdx : Nat) (fields : Array Param) (k : Code) (default : Bool) : CompilerM JpCasesAlt := do go |>.run' {} where go : InternalizeM JpCasesAlt := do - let s : FVarIdSet := {} let mut paramsNew := #[] - let dependsOnDiscr := k.dependsOn (s.insert discr.fvarId) - if dependsOnDiscr then - paramsNew := paramsNew.push (← internalizeParam discr) - paramsNew := paramsNew ++ (← fields.mapM internalizeParam) + let singleton : FVarIdSet := ({} : FVarIdSet).insert params[targetParamIdx]!.fvarId + let dependsOnDiscr := k.dependsOn singleton || decls.any (·.dependsOn singleton) + for i in [:params.size] do + let param := params[i]! + if targetParamIdx == i then + if dependsOnDiscr then + paramsNew := paramsNew.push (← internalizeParam param) + paramsNew := paramsNew ++ (← fields.mapM internalizeParam) + else + paramsNew := paramsNew.push (← internalizeParam param) let decls ← decls.mapM internalizeCodeDecl let k ← internalizeCode k let value := LCNF.attachCodeDecls decls k return { decl := (← mkAuxJpDecl paramsNew value), default, dependsOnDiscr } +/-- Create the arguments for a jump to an auxiliary join point created using `mkJpAlt`. -/ +private def mkJmpNewArgs (args : Array Expr) (targetParamIdx : Nat) (fields : Array Expr) (dependsOnTarget : Bool) : Array Expr := + if dependsOnTarget then + args[:targetParamIdx+1] ++ fields ++ args[targetParamIdx+1:] + else + args[:targetParamIdx] ++ fields ++ args[targetParamIdx+1:] + +/-- +Create the arguments for a jump to an auxiliary join point created using `mkJpAlt`. +This function is used to create jumps from the join point satisfying `isJpCases?` to the new auxiliary join points created using `mkJpAlt`. +-/ +private def mkJmpArgsAtJp (params : Array Param) (targetParamIdx : Nat) (fields : Array Param) (dependsOnTarget : Bool) : Array Expr := Id.run do + mkJmpNewArgs (params.map (mkFVar ·.fvarId)) targetParamIdx (fields.map (mkFVar ·.fvarId)) dependsOnTarget + /-- Try to optimize `jpCases` join points. We say a join point is a `jpCases` when it satifies the predicate `isJpCases`. @@ -146,16 +192,16 @@ Note that if all jumps to the join point are with constructors, then the join point is eliminated as dead code. -/ partial def simpJpCases? (code : Code) : CompilerM (Option Code) := do - let info ← collectJpCasesInfo code - unless info.isCandidate do return none + let map ← collectJpCasesInfo code + unless map.isCandidate do return none traceM `Compiler.simp.jpCases do let mut msg : MessageData := "candidates" - for (fvarId, ctorName) in info.toList do - msg := msg ++ indentD m!"{mkFVar fvarId} ↦ {ctorName.toList}" + for (fvarId, info) in map.toList do + msg := msg ++ indentD m!"{mkFVar fvarId} ↦ {info.ctorNames.toList}" return msg - visit code info |>.run' {} + visit code map |>.run' {} |>.run {} where - visit (code : Code) : ReaderT JpCasesInfo (StateRefT Ctor2JpCasesAlt CompilerM) Code := do + visit (code : Code) : ReaderT JpCasesInfoMap (StateRefT Ctor2JpCasesAlt DiscrM) Code := do match code with | .let decl k => return code.updateLet! decl (← visit k) @@ -171,18 +217,22 @@ where let decl ← decl.updateValue value return code.updateFun! decl (← visit k) | .cases c => - let alts ← c.alts.mapMonoM fun alt => return alt.updateCode (← visit alt.getCode) + let alts ← c.alts.mapMonoM fun alt => + match alt with + | .alt ctorName ps k => + withDiscrCtor c.discr ctorName ps do + return alt.updateCode (← visit k) + | .default k => return alt.updateCode (← visit k) return code.updateAlts! alts | .return _ | .unreach _ => return code | .jmp fvarId args => let some code ← visitJmp? fvarId args | return code return code - visitJp? (decl : FunDecl) (k : Code) : ReaderT JpCasesInfo (StateRefT Ctor2JpCasesAlt CompilerM) (Option Code) := do - let some s := (← read).find? decl.fvarId | return none - if s.isEmpty then return none - -- This join point satisfies `isJp` and there jumps with constructors in `s` to it. - let p := decl.params[0]! + visitJp? (decl : FunDecl) (k : Code) : ReaderT JpCasesInfoMap (StateRefT Ctor2JpCasesAlt DiscrM) (Option Code) := do + let some info := (← read).find? decl.fvarId | return none + if info.ctorNames.isEmpty then return none + -- This join point satisfies `isJpCases?` and there are jumps with constructors in `info` to it. let (decls, cases) := extractJpCases decl.value let mut jpAltMap := {} let mut jpAltDecls := #[] @@ -192,26 +242,24 @@ where | .default k => let k ← visit k let explicitCtorNames := cases.getCtorNames - if s.any fun ctorNameInJump => !explicitCtorNames.contains ctorNameInJump then - let jpAlt ← mkJpAlt decls p #[] k (default := true) + if info.ctorNames.any fun ctorNameInJump => !explicitCtorNames.contains ctorNameInJump then + let jpAlt ← mkJpAlt decls decl.params info.paramIdx #[] k (default := true) jpAltDecls := jpAltDecls.push (.jp jpAlt.decl) eraseCode k - for ctorNameInJmp in s do + for ctorNameInJmp in info.ctorNames do unless explicitCtorNames.contains ctorNameInJmp do jpAltMap := jpAltMap.insert ctorNameInJmp jpAlt - let args := if jpAlt.dependsOnDiscr then #[.fvar p.fvarId] else #[] + let args := mkJmpArgsAtJp decl.params info.paramIdx #[] jpAlt.dependsOnDiscr altsNew := altsNew.push (alt.updateCode (.jmp jpAlt.decl.fvarId args)) else altsNew := altsNew.push (alt.updateCode k) | .alt ctorName fields k => - let k ← visit k - if s.contains ctorName then - let jpAlt ← mkJpAlt decls p fields k (default := false) + let k ← withDiscrCtor cases.discr ctorName fields <| visit k + if info.ctorNames.contains ctorName then + let jpAlt ← mkJpAlt decls decl.params info.paramIdx fields k (default := false) jpAltDecls := jpAltDecls.push (.jp jpAlt.decl) jpAltMap := jpAltMap.insert ctorName jpAlt - let mut args := fields.map (mkFVar ·.fvarId) - if jpAlt.dependsOnDiscr then - args := #[mkFVar p.fvarId] ++ args + let args := mkJmpArgsAtJp decl.params info.paramIdx fields jpAlt.dependsOnDiscr eraseCode k altsNew := altsNew.push (alt.updateCode (.jmp jpAlt.decl.fvarId args)) else @@ -222,23 +270,18 @@ where let code := .jp decl (← visit k) return LCNF.attachCodeDecls jpAltDecls code - visitJmp? (fvarId : FVarId) (args : Array Expr) : ReaderT JpCasesInfo (StateRefT Ctor2JpCasesAlt CompilerM) (Option Code) := do + visitJmp? (fvarId : FVarId) (args : Array Expr) : ReaderT JpCasesInfoMap (StateRefT Ctor2JpCasesAlt DiscrM) (Option Code) := do let some ctorJpAltMap := (← get).find? fvarId | return none - assert! args.size == 1 - let arg ← findExpr args[0]! + let some info := (← read).find? fvarId | return none + let arg ← findCtor args[info.paramIdx]! let some (ctorVal, ctorArgs) := arg.constructorApp? (← getEnv) (useRaw := true) | return none let some jpAlt := ctorJpAltMap.find? ctorVal.name | return none - if jpAlt.default then - if jpAlt.dependsOnDiscr then - return some <| .jmp jpAlt.decl.fvarId args - else - return some <| .jmp jpAlt.decl.fvarId #[] - else - let fields := ctorArgs[ctorVal.numParams:] - -- Recall that if `arg` is a `Nat` literal, then `ctorArgs` is a literal too. - -- We use a for-loop because we may have other special cases in the future. - let mut auxDecls := #[] - let mut fieldsNew := #[] + let fields := ctorArgs[ctorVal.numParams:] + -- Recall that if `arg` is a `Nat` literal, then `ctorArgs` is a literal too. + -- We use a for-loop because we may have other special cases in the future. + let mut auxDecls := #[] + let mut fieldsNew := #[] + unless jpAlt.default do for field in fields do if field.isFVar then fieldsNew := fieldsNew.push field @@ -246,11 +289,8 @@ where let letDecl ← mkAuxLetDecl field auxDecls := auxDecls.push (CodeDecl.let letDecl) fieldsNew := fieldsNew.push (.fvar letDecl.fvarId) - let code ← if jpAlt.dependsOnDiscr then - pure <| .jmp jpAlt.decl.fvarId (args ++ fieldsNew) - else - pure <| .jmp jpAlt.decl.fvarId fieldsNew - return some <| LCNF.attachCodeDecls auxDecls code + let argsNew := mkJmpNewArgs args info.paramIdx fieldsNew jpAlt.dependsOnDiscr + return some <| LCNF.attachCodeDecls auxDecls (.jmp jpAlt.decl.fvarId argsNew) end Simp diff --git a/stage0/src/Lean/Compiler/LCNF/Simp/SimpM.lean b/stage0/src/Lean/Compiler/LCNF/Simp/SimpM.lean index 57324d00bf..fea8ecd6d3 100644 --- a/stage0/src/Lean/Compiler/LCNF/Simp/SimpM.lean +++ b/stage0/src/Lean/Compiler/LCNF/Simp/SimpM.lean @@ -9,7 +9,9 @@ import Lean.Compiler.LCNF.ElimDead import Lean.Compiler.LCNF.AlphaEqv import Lean.Compiler.LCNF.PrettyPrinter import Lean.Compiler.LCNF.Bind +import Lean.Compiler.LCNF.Internalize import Lean.Compiler.LCNF.Simp.JpCases +import Lean.Compiler.LCNF.Simp.DiscrM import Lean.Compiler.LCNF.Simp.FunDeclInfo import Lean.Compiler.LCNF.Simp.Config @@ -25,14 +27,6 @@ structure Context where declName : Name config : Config := {} /-- - A mapping from discriminant to constructor application it is equal to in the current context. - -/ - discrCtorMap : FVarIdMap Expr := {} - /-- - A mapping from constructor application to discriminant it is equal to in the current context. - -/ - ctorDiscrMap : PersistentExprMap FVarId := {} - /-- Stack of global declarations being recursively inlined. -/ inlineStack : List Name := [] @@ -79,7 +73,7 @@ structure State where -/ inlineLocal : Nat := 0 -abbrev SimpM := ReaderT Context $ StateRefT State CompilerM +abbrev SimpM := ReaderT Context $ StateRefT State DiscrM instance : MonadFVarSubst SimpM false where getSubst := return (← get).subst @@ -87,47 +81,6 @@ instance : MonadFVarSubst SimpM false where instance : MonadFVarSubstState SimpM where modifySubst f := modify fun s => { s with subst := f s.subst } -/-- -Use `findExpr`, and if the result is a free variable, check whether it is in the map `discrCtorMap`. -We use this method when simplifying projections and cases-constructor. --/ -def findCtor (e : Expr) : SimpM Expr := do - let e ← findExpr e - let .fvar fvarId := e | return e - let some ctor := (← read).discrCtorMap.find? fvarId | return e - return ctor - -/-- -If `type` is an inductive datatype, return its universe levels and parameters. --/ -def getIndInfo? (type : Expr) : CoreM (Option (List Level × Array Expr)) := do - let type := type.headBeta - let .const declName us := type.getAppFn | return none - let .inductInfo info ← getConstInfo declName | return none - unless type.getAppNumArgs >= info.numParams do return none - return some (us, type.getAppArgs[:info.numParams]) - -/-- -Execute `x` with the information that `discr = ctorName ctorFields`. -We use this information to simplify nested cases on the same discriminant. - -Remark: we do not perform the reverse direction at this phase. -That is, we do not replace occurrences of `ctorName ctorFields` with `discr`. -We wait more type information to be erased. --/ -def withDiscrCtor (discr : FVarId) (ctorName : Name) (ctorFields : Array Param) (x : SimpM α) : SimpM α := do - let ctorInfo ← getConstInfoCtor ctorName - let fieldArgs := ctorFields.map (.fvar ·.fvarId) - if let some (us, params) ← getIndInfo? (← getType discr) then - let ctor := mkAppN (mkAppN (mkConst ctorName us) params) fieldArgs - withReader (fun ctx => { ctx with discrCtorMap := ctx.discrCtorMap.insert discr ctor, ctorDiscrMap := ctx.ctorDiscrMap.insert ctor discr }) do - x - else - -- For the discrCtor map, the constructor parameters are irrelevant for optimizations that use this information - let ctor := mkAppN (mkAppN (mkConst ctorName) (mkArray ctorInfo.numParams erasedExpr)) fieldArgs - withReader (fun ctx => { ctx with discrCtorMap := ctx.discrCtorMap.insert discr ctor }) do - x - /-- Set the `simplified` flag to `true`. -/ def markSimplified : SimpM Unit := modify fun s => { s with simplified := true } @@ -253,13 +206,13 @@ def betaReduce (params : Array Param) (code : Code) (args : Array Expr) (mustInl let mut castDecls := #[] for param in params, arg in args do /- - If `param` hast type `⊤` but `arg` does not, we must insert a cast. + If `param` hast type `◾` but `arg` does not, we must insert a cast. Otherwise, the resulting code may be type incorrect. For example, the following code is type correct before inlining `f` - because `x : ⊤`. + because `x : ◾`. ``` def foo (g : A → A) (a : B) := - fun f (x : ⊤) := + fun f (x : ◾) := let _x.1 := g x ... let _x.2 := f a @@ -267,8 +220,8 @@ def betaReduce (params : Array Param) (code : Code) (args : Array Expr) (mustInl ``` We must introduce a cast around `a` to make sure the resulting expression is type correct. -/ - if param.type.isAnyType && !(← inferType arg).isAnyType then - let castArg ← mkLcCast arg anyTypeExpr + if param.type.isErased && !(← inferType arg).isErased then + let castArg ← mkLcCast arg erasedExpr let castDecl ← mkAuxLetDecl castArg castDecls := castDecls.push (CodeDecl.let castDecl) subst := subst.insert param.fvarId (.fvar castDecl.fvarId) diff --git a/stage0/src/Lean/Compiler/LCNF/Simp/SimpValue.lean b/stage0/src/Lean/Compiler/LCNF/Simp/SimpValue.lean index ac8bf5e228..aa2fa43189 100644 --- a/stage0/src/Lean/Compiler/LCNF/Simp/SimpValue.lean +++ b/stage0/src/Lean/Compiler/LCNF/Simp/SimpValue.lean @@ -36,9 +36,8 @@ def simpAppApp? (e : Expr) : OptionT SimpM Expr := do return mkAppN f e.getAppArgs def simpCtorDiscr? (e : Expr) : OptionT SimpM Expr := do - let some discr := (← read).ctorDiscrMap.find? e | failure - guard <| (← compatibleTypes (← getType discr) (← inferType e)) - return .fvar discr + let some v ← simpCtorDiscrCore? e | failure + return v def applyImplementedBy? (e : Expr) : OptionT SimpM Expr := do guard <| (← read).config.implementedBy diff --git a/stage0/src/Lean/Compiler/LCNF/ToLCNF.lean b/stage0/src/Lean/Compiler/LCNF/ToLCNF.lean index 5c321fdf6c..0b4b5080cb 100644 --- a/stage0/src/Lean/Compiler/LCNF/ToLCNF.lean +++ b/stage0/src/Lean/Compiler/LCNF/ToLCNF.lean @@ -198,9 +198,11 @@ structure State where /-- LCNF sequence, we chain it to create a LCNF `Code` object. -/ seq : Array Element := #[] /-- - Fields that are type formers must be replaced with `lcAny` + Fields that are type formers must be replaced with `◾` in the resulting code. Otherwise, we have data occurring in types. + When converting a `casesOn` into LCNF, we add constructor fields + that are types and type formers into this set. See `visitCases`. -/ toAny : FVarIdSet := {} @@ -278,14 +280,14 @@ def withNewScope (x : M α) : M α := do set saved /- -Replace free variables in `type'` that occur in `toAny` into `lcAny`. +Replace free variables in `type'` that occur in `toAny` into `◾`. Recall that we populate `toAny` with the free variable ids of fields that are type formers. This can happen when we have a field whose type is, for example, `Type u`. -/ def applyToAny (type : Expr) : M Expr := do let toAny := (← get).toAny return type.replace fun - | .fvar fvarId => if toAny.contains fvarId then some anyTypeExpr else none + | .fvar fvarId => if toAny.contains fvarId then some erasedExpr else none | _ => none def toLCNFType (type : Expr) : M Expr := do @@ -410,7 +412,7 @@ where | .forallE .. => unreachable! | .mvar .. => throwError "unexpected occurrence of metavariable in code generator{indentExpr e}" | .bvar .. => unreachable! - | .fvar fvarId => if (← get).toAny.contains fvarId then pure anyTypeExpr else pure e + | .fvar fvarId => if (← get).toAny.contains fvarId then pure erasedExpr else pure e | _ => pure e modify fun s => { s with cache := s.cache.insert e r } return r @@ -529,19 +531,37 @@ where let typeName := casesInfo.declName.getPrefix let discr ← visitAppArg args[casesInfo.discrPos]! let .inductInfo indVal ← getConstInfo typeName | unreachable! - for i in casesInfo.altsRange, numParams in casesInfo.altNumParams, ctorName in indVal.ctors do - let (altType, alt) ← visitAlt ctorName numParams args[i]! - unless (← compatibleTypes altType resultType) do - resultType := anyTypeExpr - alts := alts.push alt - let cases : Cases := { typeName, discr := discr.fvarId!, resultType, alts } - let auxDecl ← mkAuxParam resultType - pushElement (.cases auxDecl cases) - let result := .fvar auxDecl.fvarId - if args.size == casesInfo.arity then - return result + if !discr.isFVar then + /- + This can happen for inductive predicates that can eliminate into type (e.g., `And`, `Iff`). + TODO: add support for them. Right now, we have hard-coded support for the ones defined at `Init`. + -/ + throwError "unsupported `{casesInfo.declName}` application during code generation" else - mkOverApplication result args casesInfo.arity + for i in casesInfo.altsRange, numParams in casesInfo.altNumParams, ctorName in indVal.ctors do + let (altType, alt) ← visitAlt ctorName numParams args[i]! + unless (← compatibleTypes altType resultType) do + resultType := erasedExpr + alts := alts.push alt + if resultType.isErased || resultType.isErased then + /- + If the result type for a `cases` is `◾`, we put a cast to `◾` (aka the any type) + at every alternative that does not have `◾` type. + The cast is useful to ensure the result is type correct when reducing `cases` in the simplifier + or applying `bind`. For example, suppose we are using `Code.bind` to connect a `cases` with type `◾` + to a continuation that expects type `B`, and one of the alternatives has type `A`. The operation makes + sense, but we need a cast since we are connecting a value of type `A` to a continuation that expects `B`. + -/ + alts ← alts.mapM fun alt => + return alt.updateCode (← alt.getCode.ensureAnyType) + let cases : Cases := { typeName, discr := discr.fvarId!, resultType, alts } + let auxDecl ← mkAuxParam resultType + pushElement (.cases auxDecl cases) + let result := .fvar auxDecl.fvarId + if args.size == casesInfo.arity then + return result + else + mkOverApplication result args casesInfo.arity visitCtor (arity : Nat) (e : Expr) : M Expr := etaIfUnderApplied e arity do @@ -583,13 +603,13 @@ where let type ← toLCNFType (← liftMetaM do Meta.inferType e) mkUnreachable type - visitAndRec (e : Expr) : M Expr := + visitAndIffRecCore (e : Expr) (minorPos : Nat) : M Expr := let arity := 5 etaIfUnderApplied e arity do let args := e.getAppArgs let ha := mkLcProof args[0]! -- We should not use `lcErased` here since we use it to create a pre-LCNF Expr. let hb := mkLcProof args[1]! - let minor := if e.isAppOf ``And.rec then args[3]! else args[4]! + let minor := args[minorPos]! let minor := minor.beta #[ha, hb] visit (mkAppN minor args[arity:]) @@ -650,8 +670,10 @@ where visitCtor 3 e else if declName == ``Eq.casesOn || declName == ``Eq.rec || declName == ``Eq.ndrec then visitEqRec e - else if declName == ``And.rec || declName == ``And.casesOn then - visitAndRec e + else if declName == ``And.rec || declName == ``Iff.rec then + visitAndIffRecCore e (minorPos := 3) + else if declName == ``And.casesOn || declName == ``Iff.casesOn then + visitAndIffRecCore e (minorPos := 4) else if declName == ``False.rec || declName == ``Empty.rec || declName == ``False.casesOn || declName == ``Empty.casesOn then visitFalseRec e else if let some casesInfo ← getCasesInfo? declName then diff --git a/stage0/src/Lean/Compiler/LCNF/Types.lean b/stage0/src/Lean/Compiler/LCNF/Types.lean index c1c37e9097..37271700fc 100644 --- a/stage0/src/Lean/Compiler/LCNF/Types.lean +++ b/stage0/src/Lean/Compiler/LCNF/Types.lean @@ -8,23 +8,10 @@ import Lean.Meta.InferType namespace Lean.Compiler scoped notation:max "◾" => lcErased -scoped notation:max "⊤" => lcAny namespace LCNF -structure LCNFTypeExtState where - types : PHashMap Name Expr := {} - instLevelType : Core.InstantiateLevelCache := {} - deriving Inhabited - -builtin_initialize lcnfTypeExt : EnvExtension LCNFTypeExtState ← - registerEnvExtension (pure {}) - def erasedExpr := mkConst ``lcErased -def anyTypeExpr := mkConst ``lcAny - -def _root_.Lean.Expr.isAnyType (e : Expr) := - e.isAppOf ``lcAny def _root_.Lean.Expr.isErased (e : Expr) := e.isAppOf ``lcErased @@ -92,10 +79,11 @@ Thus, in the first code generator pass, we convert types into a `LCNFType` (Lean The method `toLCNFType` produces a type with the following properties: - All constants occurring in the result type are inductive datatypes. -- The arguments of type formers are type formers, `◾`, or `⊤`. We use `◾` to denote erased information, - and `⊤` the any type. -- All type definitions are expanded. If reduction gets stuck, it is replaced with `⊤`. +- The arguments of type formers are type formers, or `◾`. We use `◾` to denote erased information. +- All type definitions are expanded. If reduction gets stuck, it is replaced with `◾`. +Remark: you can view `◾` occurring in a type position as the "any type". +Remark: in our runtime, `◾` is represented as `box(0)`. The goal is to preserve as much information as possible and avoid the problems described above. Then, we don't have `let x := v; ...` in LCNF code when `x` is a type former. @@ -110,22 +98,14 @@ the result produced by each code generator step. Below, we provide some example programs and their erased variants: -- 1. Source type: `f: (n: Nat) -> (tupleN Nat n)`. - LCNF type: `f: Nat -> Any`. - We convert the return type `(tupleN Nat n) to `Any`, since we cannot reduce + LCNF type: `f: Nat -> ◾`. + We convert the return type `(tupleN Nat n) to `◾`, since we cannot reduce `(tupleN Nat n)` to a term of the form `(InductiveTy ...)`. -- 2. Source type: `f: (n: Nat) (fin: Fin n) -> (tupleN Nat fin)`. - LCNF type: `f: Nat -> Fin Erased -> Any`. + LCNF type: `f: Nat -> Fin ◾ -> ◾`. Since `(Fin n)` has dependency on `n`, we erase the `n` to get the - type `(Fin Erased)`. See that Erased only - occurs at argument position to a type constructor. - -- NOTE: we cannot have separate notions of ErasedProof - (which occurs at the value level for erased proofs) and ErasedData - (which occurs at the type level for erased dependencies) - because of universe polymorphism. Thus, we have a single notion of - Erased which unifies the two concepts. - + type `(Fin ◾)`. -/ open Meta in @@ -143,14 +123,14 @@ partial def toLCNFType (type : Expr) : MetaM Expr := do withLocalDecl n bi d fun x => do let d ← toLCNFType d let b ← toLCNFType (b.instantiate1 x) - if b.isAnyType || b.isErased then + if b.isErased then return b else return Expr.lam n d (b.abstract #[x]) bi | .forallE .. => visitForall type #[] | .app .. => type.withApp visitApp | .fvar .. => visitApp type #[] - | _ => return anyTypeExpr + | _ => return erasedExpr where whnfEta (type : Expr) : MetaM Expr := do let type ← whnf type @@ -174,10 +154,10 @@ where visitApp (f : Expr) (args : Array Expr) := do let fNew ← match f with | .const declName us => - let .inductInfo _ ← getConstInfo declName | return anyTypeExpr + let .inductInfo _ ← getConstInfo declName | return erasedExpr pure <| .const declName us | .fvar .. => pure f - | _ => return anyTypeExpr + | _ => return erasedExpr let mut result := fNew for arg in args do if (← isProp arg) then @@ -190,52 +170,16 @@ where result := mkApp result erasedExpr return result -/-- -Save the LCNF type for the given declaration. --/ -def saveLCNFType (declName : Name) (type : Expr) : CoreM Unit := do - modifyEnv fun env => - lcnfTypeExt.modifyState env fun s => { s with types := s.types.insert declName type } - -/-- -Return the LCNF type for the given declaration. --/ -def getDeclLCNFType (declName : Name) : CoreM Expr := do - match lcnfTypeExt.getState (← getEnv) |>.types.find? declName with - | some type => return type - | none => - let info ← getConstInfo declName - let type ← Meta.MetaM.run' <| toLCNFType info.type - saveLCNFType declName type - return type - -/-- -Instantiate the LCNF type for the given declaration with the given universe levels. --/ -def instantiateLCNFTypeLevelParams (declName : Name) (us : List Level) : CoreM Expr := do - if us.isEmpty then - getDeclLCNFType declName - else - if let some (us', r) := lcnfTypeExt.getState (← getEnv) |>.instLevelType.find? declName then - if us == us' then - return r - let type ← getDeclLCNFType declName - let info ← getConstInfo declName - let r := type.instantiateLevelParams info.levelParams us - modifyEnv fun env => lcnfTypeExt.modifyState env fun s => { s with instLevelType := s.instLevelType.insert declName (us, r) } - return r - mutual partial def joinTypes (a b : Expr) : Expr := - joinTypes? a b |>.getD anyTypeExpr + joinTypes? a b |>.getD erasedExpr partial def joinTypes? (a b : Expr) : Option Expr := do - if a.isAnyType then return a - else if b.isAnyType then return b - else if a == b then return a - else if a.isErased || b.isErased then + if a.isErased || b.isErased then return erasedExpr -- See comment at `compatibleTypes`. + else if a == b then + return a else let a' := a.headBeta let b' := b.headBeta @@ -248,16 +192,16 @@ partial def joinTypes? (a b : Expr) : Option Expr := do | .app f a, .app g b => (do return .app (← joinTypes? f g) (← joinTypes? a b)) <|> - return anyTypeExpr + return erasedExpr | .forallE n d₁ b₁ _, .forallE _ d₂ b₂ _ => (do return .forallE n (← joinTypes? d₁ d₂) (joinTypes b₁ b₂) .default) <|> - return anyTypeExpr + return erasedExpr | .lam n d₁ b₁ _, .lam _ d₂ b₂ _ => (do return .lam n (← joinTypes? d₁ d₂) (joinTypes b₁ b₂) .default) <|> - return anyTypeExpr - | _, _ => return anyTypeExpr + return erasedExpr + | _, _ => return erasedExpr end @@ -286,14 +230,14 @@ partial def isPredicateType (type : Expr) : Bool := /-- Return `true` if `type` is a LCNF type former type or it is an "any" type. This function is similar to `isTypeFormerType`, but more liberal. -For example, `isTypeFormerType` returns false for `lcAny` and `Nat → lcAny`, but +For example, `isTypeFormerType` returns false for `◾` and `Nat → ◾`, but this function returns true. -/ partial def maybeTypeFormerType (type : Expr) : Bool := match type.headBeta with | .sort .. => true | .forallE _ _ b _ => maybeTypeFormerType b - | _ => type.isAnyType + | _ => type.isErased /-- `isClass? type` return `some ClsName` if the LCNF `type` is an instance of the class `ClsName`. diff --git a/stage0/src/Lean/Data/Name.lean b/stage0/src/Lean/Data/Name.lean index b3fd32040e..ca65809fd1 100644 --- a/stage0/src/Lean/Data/Name.lean +++ b/stage0/src/Lean/Data/Name.lean @@ -31,13 +31,13 @@ def updatePrefix : Name → Name → Name | str _ s, newP => Name.mkStr newP s | num _ s, newP => Name.mkNum newP s -def components' : Name → List Name +def componentsRev : Name → List Name | anonymous => [] - | str n s => Name.mkStr anonymous s :: components' n - | num n v => Name.mkNum anonymous v :: components' n + | str n s => Name.mkStr anonymous s :: componentsRev n + | num n v => Name.mkNum anonymous v :: componentsRev n def components (n : Name) : List Name := - n.components'.reverse + n.componentsRev.reverse def eqStr : Name → String → Bool | str anonymous s, s' => s == s' diff --git a/stage0/src/Lean/Data/Position.lean b/stage0/src/Lean/Data/Position.lean index 86a3331658..23bcbb6a5f 100644 --- a/stage0/src/Lean/Data/Position.lean +++ b/stage0/src/Lean/Data/Position.lean @@ -15,7 +15,7 @@ structure Position where namespace Position protected def lt : Position → Position → Bool - | ⟨l₁, c₁⟩, ⟨l₂, c₂⟩ => (l₁, c₁) < (l₂, c₂) + | ⟨l₁, c₁⟩, ⟨l₂, c₂⟩ => Prod.lexLt (l₁, c₁) (l₂, c₂) instance : ToFormat Position := ⟨fun ⟨l, c⟩ => "⟨" ++ format l ++ ", " ++ format c ++ "⟩"⟩ diff --git a/stage0/src/Lean/Data/RBMap.lean b/stage0/src/Lean/Data/RBMap.lean index b3c02ddb08..22221ec697 100644 --- a/stage0/src/Lean/Data/RBMap.lean +++ b/stage0/src/Lean/Data/RBMap.lean @@ -123,36 +123,30 @@ def setBlack : RBNode α β → RBNode α β end Insert --- Okasaki's full `balance` -def balance₃ (a : RBNode α β) (k : α) (v : β k) (d : RBNode α β) : RBNode α β := - match a with - | node red (node red a kx vx b) ky vy c - | node red a kx vx (node red b ky vy c) => node red (node black a kx vx b) ky vy (node black c k v d) - | a => match d with - | node red b ky vy (node red c kz vz d) - | node red (node red b ky vy c) kz vz d => node red (node black a k v b) ky vy (node black c kz vz d) - | _ => node black a k v d - def setRed : RBNode α β → RBNode α β | node _ a k v b => node red a k v b | e => e def balLeft : RBNode α β → (k : α) → β k → RBNode α β → RBNode α β | node red a kx vx b, k, v, r => node red (node black a kx vx b) k v r - | l, k, v, node black a ky vy b => balance₃ l k v (node red a ky vy b) - | l, k, v, node red (node black a ky vy b) kz vz c => node red (node black l k v a) ky vy (balance₃ b kz vz (setRed c)) + | l, k, v, node black a ky vy b => balance2 l k v (node red a ky vy b) + | l, k, v, node red (node black a ky vy b) kz vz c => node red (node black l k v a) ky vy (balance2 b kz vz (setRed c)) | l, k, v, r => node red l k v r -- unreachable def balRight (l : RBNode α β) (k : α) (v : β k) (r : RBNode α β) : RBNode α β := match r with | (node red b ky vy c) => node red l k v (node black b ky vy c) | _ => match l with - | node black a kx vx b => balance₃ (node red a kx vx b) k v r - | node red a kx vx (node black b ky vy c) => node red (balance₃ (setRed a) kx vx b) ky vy (node black c k v r) + | node black a kx vx b => balance1 (node red a kx vx b) k v r + | node red a kx vx (node black b ky vy c) => node red (balance1 (setRed a) kx vx b) ky vy (node black c k v r) | _ => node red l k v r -- unreachable --- TODO: use wellfounded recursion -partial def appendTrees : RBNode α β → RBNode α β → RBNode α β +/-- The number of nodes in the tree. -/ +@[local simp] def size : RBNode α β → Nat + | leaf => 0 + | node _ x _ _ y => x.size + y.size + 1 + +def appendTrees : RBNode α β → RBNode α β → RBNode α β | leaf, x => x | x, leaf => x | node red a kx vx b, node red c ky vy d => @@ -165,6 +159,7 @@ partial def appendTrees : RBNode α β → RBNode α β → RBNode α β | bc => balLeft a kx vx (node black bc ky vy d) | a, node red b kx vx c => node red (appendTrees a b) kx vx c | node red a kx vx b, c => node red a kx vx (appendTrees b c) +termination_by _ x y => x.size + y.size section Erase diff --git a/stage0/src/Lean/Elab/Deriving/Repr.lean b/stage0/src/Lean/Elab/Deriving/Repr.lean index 2b5289bd96..d7638f551a 100644 --- a/stage0/src/Lean/Elab/Deriving/Repr.lean +++ b/stage0/src/Lean/Elab/Deriving/Repr.lean @@ -32,7 +32,7 @@ def mkBodyForStruct (header : Header) (indVal : InductiveVal) : TermElabM Term : let fieldName := fieldNames[i]! let fieldNameLit := Syntax.mkStrLit (toString fieldName) let x := xs[numParams + i]! - if i > numParams then + if i != 0 then fields ← `($fields ++ "," ++ Format.line) if (← isType x <||> isProof x) then fields ← `($fields ++ $fieldNameLit ++ " := " ++ "_") diff --git a/stage0/src/Lean/Elab/PreDefinition/Structural/Main.lean b/stage0/src/Lean/Elab/PreDefinition/Structural/Main.lean index 7a778c44e1..7b3439f365 100644 --- a/stage0/src/Lean/Elab/PreDefinition/Structural/Main.lean +++ b/stage0/src/Lean/Elab/PreDefinition/Structural/Main.lean @@ -35,17 +35,17 @@ private def getFixedPrefix (declName : Name) (xs : Array Expr) (value : Expr) : We disable to proof irrelevance to be able to use structural recursion on inductive predicates. For example, consider the example ``` - inductive PList (α : Type) : Prop - | nil - | cons : α → PList α → PList α + inductive PList (α : Type) : Prop + | nil + | cons : α → PList α → PList α - infixr:67 " ::: " => PList.cons + infixr:67 " ::: " => PList.cons - set_option trace.Elab.definition.structural true in - def pmap {α β} (f : α → β) : PList α → PList β - | PList.nil => PList.nil - | a:::as => f a ::: pmap f as - ``` + set_option trace.Elab.definition.structural true in + def pmap {α β} (f : α → β) : PList α → PList β + | PList.nil => PList.nil + | a:::as => f a ::: pmap f as + ``` The "Fixed" prefix would be 4 since all elements of type `PList α` are definitionally equal. -/ if !(← withoutProofIrrelevance <| withReducible <| isDefEq arg x) then diff --git a/stage0/src/Lean/Elab/PreDefinition/WF/Main.lean b/stage0/src/Lean/Elab/PreDefinition/WF/Main.lean index 36de5cca13..e4ad73afe7 100644 --- a/stage0/src/Lean/Elab/PreDefinition/WF/Main.lean +++ b/stage0/src/Lean/Elab/PreDefinition/WF/Main.lean @@ -90,6 +90,7 @@ def wfRecursion (preDefs : Array PreDefinition) (wf? : Option TerminationWF) (de let unaryPreDefs ← packDomain fixedPrefixSize preDefsDIte return (← packMutual fixedPrefixSize preDefs unaryPreDefs, fixedPrefixSize) let preDefNonRec ← forallBoundedTelescope unaryPreDef.type fixedPrefixSize fun prefixArgs type => do + let type ← whnfForall type let packedArgType := type.bindingDomain! elabWFRel preDefs unaryPreDef.declName fixedPrefixSize packedArgType wf? fun wfRel => do trace[Elab.definition.wf] "wfRel: {wfRel}" diff --git a/stage0/src/Lean/Elab/Tactic/ElabTerm.lean b/stage0/src/Lean/Elab/Tactic/ElabTerm.lean index bb9d32462d..b562b511be 100644 --- a/stage0/src/Lean/Elab/Tactic/ElabTerm.lean +++ b/stage0/src/Lean/Elab/Tactic/ElabTerm.lean @@ -67,6 +67,19 @@ def filterOldMVars (mvarIds : Array MVarId) (mvarCounterSaved : Nat) : MetaM (Ar return r | _ => throwUnsupportedSyntax +def sortMVarIdArrayByIndex [MonadMCtx m] [Monad m] (mvarIds : Array MVarId) : m (Array MVarId) := do + let mctx ← getMCtx + return mvarIds.qsort fun mvarId₁ mvarId₂ => + let decl₁ := mctx.getDecl mvarId₁ + let decl₂ := mctx.getDecl mvarId₂ + if decl₁.index != decl₂.index then + decl₁.index < decl₂.index + else + Name.quickLt mvarId₁.name mvarId₂.name + +def sortMVarIdsByIndex [MonadMCtx m] [Monad m] (mvarIds : List MVarId) : m (List MVarId) := + return (← sortMVarIdArrayByIndex mvarIds.toArray).toList + /-- Execute `k`, and collect new "holes" in the resulting expression. -/ @@ -84,6 +97,13 @@ def withCollectingNewGoalsFrom (k : TacticM Expr) (tagSuffix : Name) (allowNatur let naturalMVarIds ← filterOldMVars naturalMVarIds mvarCounterSaved logUnassignedAndAbort naturalMVarIds pure syntheticMVarIds.toList + /- + We sort the new metavariable ids by index to ensure the new goals are ordered using the order the metavariables have been created. + See issue #1682. + Potential problem: if elaboration of subterms is delayed the order the new metavariables are created may not match the order they + appear in the `.lean` file. We should tell users to prefer tagged goals. + -/ + let newMVarIds ← sortMVarIdsByIndex newMVarIds tagUntaggedGoals (← getMainTag) tagSuffix newMVarIds return (val, newMVarIds) diff --git a/stage0/src/Lean/ResolveName.lean b/stage0/src/Lean/ResolveName.lean index 72ae6fbf24..44645f5a55 100644 --- a/stage0/src/Lean/ResolveName.lean +++ b/stage0/src/Lean/ResolveName.lean @@ -321,7 +321,7 @@ def unresolveNameGlobal [Monad m] [MonadResolveName m] [MonadEnv m] (n₀ : Name return n₀ -- if can't resolve, return the original where unresolveNameCore (n : Name) : m (Option Name) := do - let mut revComponents := n.components' + let mut revComponents := n.componentsRev let mut candidate := Name.anonymous for _ in [:revComponents.length] do match revComponents with diff --git a/stage0/src/Lean/Server/FileWorker/RequestHandling.lean b/stage0/src/Lean/Server/FileWorker/RequestHandling.lean index 1a3d515b94..7de5b44ecb 100644 --- a/stage0/src/Lean/Server/FileWorker/RequestHandling.lean +++ b/stage0/src/Lean/Server/FileWorker/RequestHandling.lean @@ -264,6 +264,31 @@ partial def handleDocumentHighlight (p : DocumentHighlightParams) return #[hi] return #[] +structure NamespaceEntry where + /-- The list of the name components introduced by this namespace command, + in reverse order so that `end` will peel them off from the front. -/ + name : List Name + stx : Syntax + selection : Syntax + prevSiblings : Array DocumentSymbol + +def NamespaceEntry.finish (text : FileMap) (syms : Array DocumentSymbol) (endStx : Option Syntax) : + NamespaceEntry → Array DocumentSymbol + | { name, stx, selection, prevSiblings, .. } => + -- we can assume that commands always have at least one position (see `parseCommand`) + let range := match endStx with + | some endStx => (mkNullNode #[stx, endStx]).getRange?.get! + | none => { stx.getRange?.get! with stop := text.source.endPos } + let name := name.foldr (fun x y => y ++ x) Name.anonymous + prevSiblings.push <| DocumentSymbol.mk { + -- anonymous sections are represented by `«»` name components + name := if name == `«» then "
" else name.toString + kind := .namespace + range := range.toLspRange text + selectionRange := selection.getRange?.getD range |>.toLspRange text + children? := syms + } + open Parser.Command in partial def handleDocumentSymbol (_ : DocumentSymbolParams) : RequestM (RequestTask DocumentSymbolResult) := do @@ -272,20 +297,38 @@ partial def handleDocumentSymbol (_ : DocumentSymbolParams) let t := doc.cmdSnaps.waitAll mapTask t fun (snaps, _) => do let mut stxs := snaps.map (·.stx) - let (syms, _) := toDocumentSymbols doc.meta.text stxs - return { syms := syms.toArray } + return { syms := toDocumentSymbols doc.meta.text stxs #[] [] } where - toDocumentSymbols (text : FileMap) (stxs : List Syntax) : List DocumentSymbol × List Syntax := + toDocumentSymbols (text : FileMap) (stxs : List Syntax) + (syms : Array DocumentSymbol) (stack : List NamespaceEntry) : + Array DocumentSymbol := match stxs with - | [] => ([], []) + | [] => stack.foldl (fun syms entry => entry.finish text syms none) syms | stx::stxs => match stx with - | `(namespace $id) => sectionLikeToDocumentSymbols text stx stxs (id.getId.toString) SymbolKind.namespace id - | `(section $(id)?) => sectionLikeToDocumentSymbols text stx stxs ((·.getId.toString) <$> id |>.getD "
") SymbolKind.namespace (id.map (·.raw) |>.getD stx) - | `(end $(_id)?) => ([], stx::stxs) + | `(namespace $id) => + let entry := { name := id.getId.componentsRev, stx, selection := id, prevSiblings := syms } + toDocumentSymbols text stxs #[] (entry :: stack) + | `(section $(id)?) => + let name := id.map (·.getId.componentsRev) |>.getD [`«»] + let entry := { name, stx, selection := id.map (·.raw) |>.getD stx, prevSiblings := syms } + toDocumentSymbols text stxs #[] (entry :: stack) + | `(end $(id)?) => + let rec popStack n syms + | [] => toDocumentSymbols text stxs syms [] + | entry :: stack => + if entry.name.length == n then + let syms := entry.finish text syms stx + toDocumentSymbols text stxs syms stack + else if entry.name.length > n then + let syms := { entry with name := entry.name.take n, prevSiblings := #[] }.finish text syms stx + toDocumentSymbols text stxs syms ({ entry with name := entry.name.drop n } :: stack) + else + let syms := entry.finish text syms stx + popStack (n - entry.name.length) syms stack + popStack (id.map (·.getId.getNumParts) |>.getD 1) syms stack | _ => Id.run do - let (syms, stxs') := toDocumentSymbols text stxs unless stx.isOfKind ``Lean.Parser.Command.declaration do - return (syms, stxs') + return toDocumentSymbols text stxs syms stack if let some stxRange := stx.getRange? then let (name, selection) := match stx with | `($_:declModifiers $_:attrKind instance $[$np:namedPrio]? $[$id$[.{$ls,*}]?]? $sig:declSig $_) => @@ -297,30 +340,14 @@ where let stx10 : Syntax := (stx.getArg 1).getArg 0 -- TODO: stx[1][0] times out (stx10.isIdOrAtom?.getD "", stx10) if let some selRange := selection.getRange? then - return (DocumentSymbol.mk { + let sym := DocumentSymbol.mk { name := name kind := SymbolKind.method range := stxRange.toLspRange text selectionRange := selRange.toLspRange text - } :: syms, stxs') - return (syms, stxs') - - sectionLikeToDocumentSymbols (text : FileMap) (stx : Syntax) (stxs : List Syntax) (name : String) (kind : SymbolKind) (selection : Syntax) : List DocumentSymbol × List Syntax := - let (syms, stxs') := toDocumentSymbols text stxs - -- discard `end` - let (syms', stxs'') := toDocumentSymbols text (stxs'.drop 1) - let endStx := match stxs' with - | endStx::_ => endStx - | [] => (stx::stxs').getLast! - -- we can assume that commands always have at least one position (see `parseCommand`) - let range := (mkNullNode #[stx, endStx]).getRange?.get!.toLspRange text - (DocumentSymbol.mk { - name - kind - range - selectionRange := selection.getRange? |>.map (·.toLspRange text) |>.getD range - children? := syms.toArray - } :: syms', stxs'') + } + return toDocumentSymbols text stxs (syms.push sym) stack + toDocumentSymbols text stxs syms stack def noHighlightKinds : Array SyntaxNodeKind := #[ -- usually have special highlighting by the client @@ -440,16 +467,31 @@ partial def handleFoldingRange (_ : FoldingRangeParams) isImport stx := stx.isOfKind ``Lean.Parser.Module.header || stx.isOfKind ``Lean.Parser.Command.open addRanges (text : FileMap) sections - | [] => return + | [] => do + if let (_, start)::rest := sections then + addRange text FoldingRangeKind.region start text.source.endPos + addRanges text rest [] | stx::stxs => match stx with - | `(namespace $_id) => addRanges text (stx.getPos?::sections) stxs - | `(section $(_id)?) => addRanges text (stx.getPos?::sections) stxs - | `(end $(_id)?) => do - if let start::rest := sections then - addRange text FoldingRangeKind.region start stx.getTailPos? - addRanges text rest stxs - else - addRanges text sections stxs + | `(namespace $id) => + addRanges text ((id.getId.getNumParts, stx.getPos?)::sections) stxs + | `(section $(id)?) => + addRanges text ((id.map (·.getId.getNumParts) |>.getD 1, stx.getPos?)::sections) stxs + | `(end $(id)?) => do + let rec popRanges n sections := do + if let (size, start)::rest := sections then + if size == n then + addRange text FoldingRangeKind.region start stx.getTailPos? + addRanges text rest stxs + else if size > n then + -- we don't add a range here because vscode doesn't like + -- multiple folding regions with the same start line + addRanges text ((size - n, start)::rest) stxs + else + addRange text FoldingRangeKind.region start stx.getTailPos? + popRanges (n - size) rest + else + addRanges text sections stxs + popRanges (id.map (·.getId.getNumParts) |>.getD 1) sections | `(mutual $body* end) => do addRangeFromSyntax text FoldingRangeKind.region stx addRanges text [] body.raw.toList diff --git a/stage0/stdlib/Init/Core.c b/stage0/stdlib/Init/Core.c index c1d31b14f1..f1e184ccef 100644 --- a/stage0/stdlib/Init/Core.c +++ b/stage0/stdlib/Init/Core.c @@ -28,7 +28,6 @@ LEAN_EXPORT lean_object* l_instInhabitedMProd___rarg(lean_object*, lean_object*) LEAN_EXPORT uint8_t l_instDecidableEqProp___rarg(uint8_t); LEAN_EXPORT uint8_t l_Lean_reduceBool(uint8_t); LEAN_EXPORT lean_object* l_inline(lean_object*); -LEAN_EXPORT lean_object* l_instLTProd___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Quotient_lift_u2082___rarg(lean_object*, lean_object*, lean_object*, lean_object*); @@ -46,6 +45,7 @@ static lean_object* l___aux__Init__Core______macroRules__term___u2295____1___clo static lean_object* l___aux__Init__Core______macroRules__term___u2248____1___closed__1; LEAN_EXPORT lean_object* l_Quotient_recOn___rarg(lean_object*, lean_object*, lean_object*); static lean_object* l_term___x21_x3d_____closed__6; +LEAN_EXPORT lean_object* l_Prod_lexLtDec___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___aux__Init__Core______unexpand__Sum__1(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_bne___rarg___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Quotient_lift___boxed(lean_object*, lean_object*, lean_object*); @@ -97,7 +97,6 @@ LEAN_EXPORT lean_object* l_noConfusionEnum___rarg(lean_object*, lean_object*, le LEAN_EXPORT uint8_t l_instDecidableEqPUnit(lean_object*, lean_object*); static lean_object* l___aux__Init__Core______macroRules__term___u2295____1___closed__6; static lean_object* l_term___x21_x3d_____closed__3; -LEAN_EXPORT lean_object* l_prodHasDecidableLt___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___aux__Init__Core______unexpand__HasEquiv__Equiv__1___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_instDecidableIteProp___rarg___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_decidable__of__decidable__of__eq(lean_object*, lean_object*); @@ -189,6 +188,7 @@ LEAN_EXPORT lean_object* l_term___u2260__; LEAN_EXPORT lean_object* l_Quotient_hrecOn___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Quotient_rec(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_instInhabitedPProd___rarg(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Prod_lexLtDec(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___aux__Init__Core______macroRules__term___x3c_x2d_x3e____1___closed__2; static lean_object* l___aux__Init__Core______macroRules__term_x7b_x7d__1___closed__3; LEAN_EXPORT lean_object* l___aux__Init__Core______unexpand__bne__1(lean_object*, lean_object*, lean_object*); @@ -207,6 +207,7 @@ static lean_object* l_term___u2295_x27_____closed__3; LEAN_EXPORT lean_object* l_Eq_mpr___rarg(lean_object*); static lean_object* l_term___x3c_x2d_x3e_____closed__4; static lean_object* l___aux__Init__Core______macroRules__term___u2260____1___closed__2; +LEAN_EXPORT lean_object* l_Prod_lexLtDec___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_term_u2205___closed__1; static lean_object* l___aux__Init__Core______macroRules__term___u2248____1___closed__5; LEAN_EXPORT lean_object* l_instDecidableEqProd___rarg(lean_object*, lean_object*, lean_object*, lean_object*); @@ -215,7 +216,6 @@ static lean_object* l_term___u2260_____closed__6; static lean_object* l_term___u2248_____closed__5; static lean_object* l___aux__Init__Core______macroRules__term___u2260____1___closed__4; lean_object* lean_mk_thunk(lean_object*); -LEAN_EXPORT lean_object* l_instLTProd(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_term___x3c_x2d_x3e_____closed__7; LEAN_EXPORT lean_object* l_Task_Priority_default; static lean_object* l_noConfusionEnum___rarg___closed__1; @@ -242,6 +242,7 @@ static lean_object* l_term___x3c_x2d_x3e_____closed__3; LEAN_EXPORT lean_object* l_instDecidableIteProp(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Eq_mp(lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_decidable__of__decidable__of__eq___rarg(uint8_t, lean_object*); +LEAN_EXPORT lean_object* l_Prod_lexLtDec___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_term___u2295_____closed__6; LEAN_EXPORT lean_object* l_toBoolUsing(lean_object*); LEAN_EXPORT lean_object* l___aux__Init__Core______unexpand__HasEquiv__Equiv__1(lean_object*, lean_object*, lean_object*); @@ -255,7 +256,6 @@ static lean_object* l___aux__Init__Core______macroRules__term___u2248____1___clo LEAN_EXPORT uint8_t l_instDecidableFalse; lean_object* l_Array_mkArray1___rarg(lean_object*); static lean_object* l_term___x3c_x2d_x3e_____closed__2; -LEAN_EXPORT lean_object* l_prodHasDecidableLt___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Quotient_mk___rarg(lean_object*); LEAN_EXPORT lean_object* l_Prod_map___rarg(lean_object*, lean_object*, lean_object*); static lean_object* l___aux__Init__Core______macroRules__term_x7b_x7d__1___closed__2; @@ -296,7 +296,6 @@ static lean_object* l_term___x3c_x2d_x3e_____closed__8; static lean_object* l___aux__Init__Core______macroRules__term___u2260____1___closed__5; static lean_object* l___aux__Init__Core______macroRules__term___x3c_x2d_x3e____1___closed__5; static lean_object* l___aux__Init__Core______macroRules__term___u2248____1___closed__2; -LEAN_EXPORT lean_object* l_prodHasDecidableLt___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Quot_rec(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Task_Priority_max; static lean_object* l___aux__Init__Core______macroRules__term___x3c_x2d_x3e____1___closed__14; @@ -323,7 +322,6 @@ static lean_object* l___aux__Init__Core______macroRules__term_x7b_x7d__1___close static lean_object* l_term___u2248_____closed__6; LEAN_EXPORT lean_object* l_Decidable_byCases___rarg(uint8_t, lean_object*, lean_object*); static lean_object* l_term_u2205___closed__4; -LEAN_EXPORT lean_object* l_prodHasDecidableLt(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Subtype_instInhabitedSubtype___rarg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_flip(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*); @@ -5804,25 +5802,7 @@ x_3 = lean_alloc_closure((void*)(l_instBEqProd___rarg), 4, 0); return x_3; } } -LEAN_EXPORT lean_object* l_instLTProd(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; -x_5 = lean_box(0); -return x_5; -} -} -LEAN_EXPORT lean_object* l_instLTProd___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; -x_5 = l_instLTProd(x_1, x_2, x_3, x_4); -lean_dec(x_4); -lean_dec(x_3); -return x_5; -} -} -LEAN_EXPORT lean_object* l_prodHasDecidableLt___rarg(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_EXPORT lean_object* l_Prod_lexLtDec___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10; @@ -5879,28 +5859,28 @@ return x_19; } } } -LEAN_EXPORT lean_object* l_prodHasDecidableLt(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Prod_lexLtDec(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = lean_alloc_closure((void*)(l_prodHasDecidableLt___rarg___boxed), 6, 0); +x_5 = lean_alloc_closure((void*)(l_Prod_lexLtDec___rarg___boxed), 6, 0); return x_5; } } -LEAN_EXPORT lean_object* l_prodHasDecidableLt___rarg___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_EXPORT lean_object* l_Prod_lexLtDec___rarg___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) { _start: { lean_object* x_7; -x_7 = l_prodHasDecidableLt___rarg(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Prod_lexLtDec___rarg(x_1, x_2, x_3, x_4, x_5, x_6); lean_dec(x_2); return x_7; } } -LEAN_EXPORT lean_object* l_prodHasDecidableLt___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Prod_lexLtDec___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_prodHasDecidableLt(x_1, x_2, x_3, x_4); +x_5 = l_Prod_lexLtDec(x_1, x_2, x_3, x_4); lean_dec(x_4); lean_dec(x_3); return x_5; diff --git a/stage0/stdlib/Init/NotationExtra.c b/stage0/stdlib/Init/NotationExtra.c index 277b015e03..1b151b7d1c 100644 --- a/stage0/stdlib/Init/NotationExtra.c +++ b/stage0/stdlib/Init/NotationExtra.c @@ -131,6 +131,7 @@ lean_object* lean_array_uset(lean_object*, size_t, lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__term__Matches___x7c__1___closed__28; LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___aux__Init__NotationExtra______macroRules__solve__1___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_unexpandIte___closed__1; +LEAN_EXPORT lean_object* l_unexpandMkArray7(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__term__Matches___x7c__1___closed__14; static lean_object* l_calc___closed__10; static lean_object* l_Lean_Parser_Command_classAbbrev___closed__24; @@ -146,6 +147,7 @@ static lean_object* l_calcStep___closed__10; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__doElemWhile___x3a__Do____1___closed__10; static lean_object* l_calcStep___closed__11; static lean_object* l_unexpandSubtype___closed__2; +LEAN_EXPORT lean_object* l_unexpandMkStr2(lean_object*, lean_object*, lean_object*); size_t lean_usize_sub(size_t, size_t); LEAN_EXPORT lean_object* l___aux__Init__NotationExtra______macroRules__term_u03a3___x2c____1(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__command____Unif__hint____Where___x7c_x2d_u22a2____1___lambda__2___closed__13; @@ -197,6 +199,7 @@ static lean_object* l_Lean_command____Unif__hint____Where___x7c_x2d_u22a2_____cl LEAN_EXPORT lean_object* l_unexpandGetElem_x21(lean_object*, lean_object*, lean_object*); static lean_object* l_calcTactic___closed__5; static lean_object* l_Lean_termMacro_x2etrace_x5b___x5d_____closed__10; +static lean_object* l_unexpandMkArray8___closed__1; static lean_object* l___aux__Init__NotationExtra______macroRules__Lean__Parser__Command__classAbbrev__1___lambda__3___closed__17; lean_object* l_Array_toSubarray___rarg(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_unifConstraintElem; @@ -216,6 +219,7 @@ static lean_object* l_Lean_Parser_Command_classAbbrev___closed__3; static lean_object* l___aux__Init__NotationExtra______macroRules__tacticFunext______1___closed__12; static lean_object* l_calcTactic___closed__3; LEAN_EXPORT lean_object* l_unexpandListToArray(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_unexpandMkArray1(lean_object*, lean_object*, lean_object*); static lean_object* l___aux__Init__NotationExtra______macroRules__Lean__Parser__Command__classAbbrev__1___lambda__3___closed__4; static lean_object* l_tacticFunext_______closed__3; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__doElemRepeat____1___closed__12; @@ -275,6 +279,7 @@ LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___aux__Init__NotationExtra_ static lean_object* l_Lean_Parser_Command_classAbbrev___closed__10; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__25; static lean_object* l_tactic_xb7_x2e_____x3b_____closed__1; +static lean_object* l_unexpandMkStr1___closed__1; static lean_object* l_solve___closed__11; static lean_object* l_Lean_termMacro_x2etrace_x5b___x5d_____closed__13; static lean_object* l_calc___closed__11; @@ -285,6 +290,7 @@ static lean_object* l_Lean_termMacro_x2etrace_x5b___x5d_____closed__6; LEAN_EXPORT lean_object* l_Array_sequenceMap_loop___at___aux__Init__NotationExtra______macroRules__solve__1___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_command____Unif__hint____Where___x7c_x2d_u22a2_____closed__6; static lean_object* l_calcTactic___closed__2; +LEAN_EXPORT lean_object* l_unexpandMkStr1___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_explicitBinders___closed__6; lean_object* l_Array_zip___rarg(lean_object*, lean_object*); static lean_object* l___aux__Init__NotationExtra______macroRules__Lean__Parser__Command__classAbbrev__1___lambda__3___closed__11; @@ -297,6 +303,7 @@ static lean_object* l_Array_forInUnsafe_loop___at_Lean___aux__Init__NotationExtr static lean_object* l_Lean_Parser_Command_classAbbrev___closed__20; LEAN_EXPORT lean_object* l_Lean_expandBrackedBindersAux_loop___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_expandBrackedBindersAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_unexpandMkStr1___closed__2; static lean_object* l_unexpandSorryAx___closed__1; static lean_object* l_Lean_doElemWhile___x3a__Do_____closed__6; LEAN_EXPORT lean_object* l_unexpandGetElem_x3f(lean_object*, lean_object*, lean_object*); @@ -335,11 +342,13 @@ static lean_object* l_calcTactic___closed__4; static lean_object* l_solve___closed__1; static lean_object* l_Lean_command____Unif__hint____Where___x7c_x2d_u22a2_____closed__23; static lean_object* l___aux__Init__NotationExtra______macroRules__solve__1___closed__5; +LEAN_EXPORT lean_object* l_unexpandMkArray5(lean_object*, lean_object*, lean_object*); static lean_object* l_unexpandSorryAx___closed__2; static lean_object* l_Array_mapMUnsafe_map___at___aux__Init__NotationExtra______macroRules__tactic_xb7_x2e_____x3b____1___spec__5___closed__7; static lean_object* l_tactic_xb7_x2e_____x3b_____closed__21; lean_object* lean_array_fget(lean_object*, lean_object*); static lean_object* l_Lean_doElemRepeat__Until_____closed__5; +LEAN_EXPORT lean_object* l_unexpandMkArray3(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_doElemRepeat_____closed__4; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__term__Matches___x7c__1___closed__10; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__doElemRepeat____1___closed__11; @@ -367,6 +376,7 @@ static lean_object* l_Lean_command____Unif__hint____Where___x7c_x2d_u22a2_____cl static lean_object* l_Lean_unbracketedExplicitBinders___closed__11; static lean_object* l_Lean_unifConstraintElem___closed__4; lean_object* lean_nat_sub(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_unexpandMkStr8___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__26; lean_object* l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______unexpand__Function__comp__1___spec__1(lean_object*, lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__doElemRepeat__Until____1___closed__1; @@ -387,10 +397,13 @@ static lean_object* l___aux__Init__NotationExtra______macroRules__tacticFunext__ static lean_object* l_Lean_command____Unif__hint____Where___x7c_x2d_u22a2_____closed__22; static lean_object* l_Lean_unifConstraintElem___closed__8; static lean_object* l___aux__Init__NotationExtra______macroRules__Lean__Parser__Command__classAbbrev__1___lambda__3___closed__12; +LEAN_EXPORT lean_object* l_unexpandMkStr4(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_command____Unif__hint____Where___x7c_x2d_u22a2_____closed__14; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__command____Unif__hint____Where___x7c_x2d_u22a2____1___lambda__2___closed__7; static lean_object* l_Lean_bracketedExplicitBinders___closed__6; +LEAN_EXPORT lean_object* l_unexpandMkStr2___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__command____Unif__hint____Where___x7c_x2d_u22a2____1___lambda__2___closed__24; +LEAN_EXPORT lean_object* l_unexpandMkStr3(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__command____Unif__hint____Where___x7c_x2d_u22a2____1___lambda__2___closed__15; static lean_object* l_solve___closed__6; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__command____Unif__hint____Where___x7c_x2d_u22a2____1___lambda__2___closed__18; @@ -432,6 +445,7 @@ static lean_object* l_Lean_command____Unif__hint____Where___x7c_x2d_u22a2_____cl LEAN_EXPORT lean_object* l_Lean_Loop_noConfusion___rarg(lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__11; static lean_object* l___aux__Init__NotationExtra______macroRules__tacticFunext______1___closed__3; +static lean_object* l_unexpandMkStr1___closed__3; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__term__Matches___x7c__1___closed__24; static lean_object* l_unexpandProdMk___closed__2; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__term__Matches___x7c__1___closed__3; @@ -462,6 +476,7 @@ static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__doE static lean_object* l___aux__Init__NotationExtra______macroRules__solve__1___closed__3; LEAN_EXPORT lean_object* l___aux__Init__NotationExtra______macroRules__term_u03a3_x27___x2c____1(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_unifConstraint___closed__10; +LEAN_EXPORT lean_object* l_unexpandMkArray8(lean_object*, lean_object*, lean_object*); static lean_object* l___aux__Init__NotationExtra______macroRules__Lean__Parser__Command__classAbbrev__1___lambda__3___closed__10; LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean___aux__Init__NotationExtra______macroRules__Lean__command____Unif__hint____Where___x7c_x2d_u22a2____1___spec__3(size_t, size_t, lean_object*); static lean_object* l_Lean_bracketedExplicitBinders___closed__2; @@ -472,6 +487,7 @@ static lean_object* l_Lean_command____Unif__hint____Where___x7c_x2d_u22a2_____cl LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean___aux__Init__NotationExtra______macroRules__Lean__command____Unif__hint____Where___x7c_x2d_u22a2____1___spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Parser_Command_classAbbrev___closed__9; LEAN_EXPORT lean_object* l_term___xd7_x27__; +LEAN_EXPORT lean_object* l_unexpandMkStr5(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_expandExplicitBindersAux_loop___closed__11; LEAN_EXPORT lean_object* l_unexpandEqNDRec(lean_object*, lean_object*, lean_object*); static lean_object* l_termExists___x2c_____closed__3; @@ -481,15 +497,18 @@ lean_object* l_Array_reverse___rarg(lean_object*); static lean_object* l_Lean_term__Matches___x7c___closed__8; static lean_object* l_Lean_Parser_Command_classAbbrev___closed__27; LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at_Lean_expandExplicitBinders___spec__1(lean_object*, size_t, size_t); +LEAN_EXPORT lean_object* l_unexpandMkStr6___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean___aux__Init__NotationExtra______macroRules__Lean__command____Unif__hint____Where___x7c_x2d_u22a2____1___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_instInhabitedSyntax; static lean_object* l_Array_foldrMUnsafe_fold___at___aux__Init__NotationExtra______macroRules__term_x25_x5b___x7c___x5d__1___spec__5___closed__3; static lean_object* l_Lean_unifConstraintElem___closed__5; LEAN_EXPORT lean_object* l_unexpandUnit(lean_object*); +static lean_object* l_unexpandMkArray6___closed__1; LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___aux__Init__NotationExtra______macroRules__tactic_xb7_x2e_____x3b____1___spec__4___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkSepArray(lean_object*, lean_object*); static lean_object* l_calcStep___closed__1; static lean_object* l_calc___closed__13; +LEAN_EXPORT lean_object* l_unexpandMkArray6(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__command____Unif__hint____Where___x7c_x2d_u22a2____1___lambda__2___closed__16; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__doElemRepeat____1___closed__6; static lean_object* l___aux__Init__NotationExtra______macroRules__tactic_xb7_x2e_____x3b____1___closed__2; @@ -523,6 +542,7 @@ static lean_object* l_calc___closed__2; static lean_object* l_Lean_bracketedExplicitBinders___closed__9; static lean_object* l_tacticFunext_______closed__9; LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___aux__Init__NotationExtra______macroRules__term_x25_x5b___x7c___x5d__1___spec__3___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_unexpandMkStr5___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_unexpandPSigma___closed__1; LEAN_EXPORT lean_object* l_unexpandPSigma(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__term__Matches___x7c__1___closed__11; @@ -548,6 +568,7 @@ static lean_object* l_Lean_termMacro_x2etrace_x5b___x5d_____closed__8; static lean_object* l_unexpandListNil___rarg___closed__1; static lean_object* l_Lean_termMacro_x2etrace_x5b___x5d_____closed__17; static lean_object* l_calcStep___closed__3; +LEAN_EXPORT lean_object* l_unexpandMkStr1(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_command____Unif__hint____Where___x7c_x2d_u22a2_____closed__32; static lean_object* l_Lean_command____Unif__hint____Where___x7c_x2d_u22a2_____closed__10; lean_object* l_String_intercalate(lean_object*, lean_object*); @@ -585,6 +606,7 @@ uint8_t lean_nat_dec_le(lean_object*, lean_object*); static lean_object* l_tacticFunext_______closed__4; LEAN_EXPORT lean_object* l_Lean_Loop_noConfusion___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_unexpandGetElem_x3f___closed__1; +static lean_object* l_unexpandMkArray7___closed__1; static lean_object* l_term_u03a3_x27___x2c_____closed__7; static lean_object* l___aux__Init__NotationExtra______macroRules__Lean__Parser__Command__classAbbrev__1___lambda__3___closed__16; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__21; @@ -657,8 +679,10 @@ static lean_object* l_tactic_xb7_x2e_____x3b_____closed__10; static lean_object* l_Array_mapMUnsafe_map___at___aux__Init__NotationExtra______macroRules__tactic_xb7_x2e_____x3b____1___spec__5___closed__1; static lean_object* l_Lean_Parser_Command_classAbbrev___closed__2; static lean_object* l_Lean_doElemWhile__Do_____closed__1; +LEAN_EXPORT lean_object* l_unexpandMkStr7(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Syntax_isNone(lean_object*); static lean_object* l___aux__Init__NotationExtra______macroRules__Lean__Parser__Command__classAbbrev__1___lambda__3___closed__14; +LEAN_EXPORT lean_object* l_unexpandMkStr3___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_command____Unif__hint____Where___x7c_x2d_u22a2_____closed__9; LEAN_EXPORT lean_object* l___aux__Init__NotationExtra______macroRules__Lean__Parser__Command__classAbbrev__1(lean_object*, lean_object*, lean_object*); static lean_object* l_term___xd7_x27_____closed__7; @@ -686,6 +710,7 @@ static lean_object* l___aux__Init__NotationExtra______macroRules__Lean__Parser__ static lean_object* l___aux__Init__NotationExtra______macroRules__term_x25_x5b___x7c___x5d__1___closed__14; uint8_t l_Lean_Syntax_isOfKind(lean_object*, lean_object*); static lean_object* l_unexpandSubtype___closed__3; +lean_object* l_Lean_TSyntax_getString(lean_object*); static lean_object* l_Lean_expandExplicitBindersAux_loop___closed__1; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__doElemRepeat____1___closed__5; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__doElemRepeat____1___closed__14; @@ -699,6 +724,7 @@ LEAN_EXPORT lean_object* l___aux__Init__NotationExtra______macroRules__tactic_xb static lean_object* l_term_u2203___x2c_____closed__6; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__term__Matches___x7c__1___closed__2; static lean_object* l_Lean_term__Matches___x7c___closed__5; +LEAN_EXPORT lean_object* l_unexpandMkStr6(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__doElemRepeat____1___closed__15; static lean_object* l_Lean_term__Matches___x7c___closed__7; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__command____Unif__hint____Where___x7c_x2d_u22a2____1___lambda__2___closed__36; @@ -736,7 +762,9 @@ static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__doE static lean_object* l_term_u03a3___x2c_____closed__4; static lean_object* l___aux__Init__NotationExtra______macroRules__solve__1___closed__4; static lean_object* l_Lean_doElemWhile___x3a__Do_____closed__10; +LEAN_EXPORT lean_object* l_unexpandMkStr4___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_doElemWhile__Do_____closed__4; +static lean_object* l_unexpandMkArray5___closed__1; static lean_object* l_Lean_command____Unif__hint____Where___x7c_x2d_u22a2_____closed__31; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__5; static lean_object* l_Lean_expandExplicitBindersAux_loop___closed__4; @@ -748,6 +776,7 @@ static lean_object* l_calc___closed__7; static lean_object* l_Lean_Parser_Command_classAbbrev___closed__21; LEAN_EXPORT lean_object* l_Array_foldrMUnsafe_fold___at___aux__Init__NotationExtra______macroRules__term_x25_x5b___x7c___x5d__1___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_command____Unif__hint____Where___x7c_x2d_u22a2_____closed__11; +LEAN_EXPORT lean_object* l_unexpandMkStr7___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__term__Matches___x7c__1___closed__19; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__doElemWhile___x3a__Do____1___closed__1; LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___aux__Init__NotationExtra______macroRules__tactic_xb7_x2e_____x3b____1___spec__5(size_t, size_t, lean_object*, lean_object*, lean_object*); @@ -760,6 +789,7 @@ static lean_object* l_Array_foldrMUnsafe_fold___at___aux__Init__NotationExtra___ static lean_object* l_unexpandSubtype___closed__5; static lean_object* l___aux__Init__NotationExtra______macroRules__Lean__Parser__Command__classAbbrev__1___lambda__3___closed__6; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__doElemRepeat____1___closed__2; +LEAN_EXPORT lean_object* l_unexpandMkArray2(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__command____Unif__hint____Where___x7c_x2d_u22a2____1___lambda__2___closed__19; LEAN_EXPORT lean_object* l___aux__Init__NotationExtra______macroRules__term_x25_x5b___x7c___x5d__1___lambda__1(lean_object*); LEAN_EXPORT lean_object* l_Lean_Loop_forIn___rarg(lean_object*, lean_object*, lean_object*, lean_object*); @@ -807,6 +837,8 @@ static lean_object* l_Lean_unifConstraint___closed__5; static lean_object* l___aux__Init__NotationExtra______macroRules__tacticFunext______1___closed__11; static lean_object* l___aux__Init__NotationExtra______macroRules__tactic_xb7_x2e_____x3b____1___closed__1; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__command____Unif__hint____Where___x7c_x2d_u22a2____1___lambda__2___closed__11; +LEAN_EXPORT lean_object* l_unexpandMkArray4(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_unexpandMkStr8(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__command____Unif__hint____Where___x7c_x2d_u22a2____1___lambda__2___closed__31; static lean_object* l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__3; static lean_object* l_Array_foldrMUnsafe_fold___at___aux__Init__NotationExtra______macroRules__term_x25_x5b___x7c___x5d__1___spec__5___closed__2; @@ -11255,6 +11287,2741 @@ return x_46; } } } +static lean_object* _init_l_unexpandMkStr1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("str", 3); +return x_1; +} +} +static lean_object* _init_l_unexpandMkStr1___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_unexpandMkStr1___closed__1; +x_3 = l_Lean_Name_str___override(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_unexpandMkStr1___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("", 0); +return x_1; +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; uint8_t x_10; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +lean_inc(x_9); +x_10 = l_Lean_Syntax_matchesNull(x_9, x_8); +if (x_10 == 0) +{ +lean_object* x_11; lean_object* x_12; +lean_dec(x_9); +x_11 = lean_box(0); +x_12 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_12, 0, x_11); +lean_ctor_set(x_12, 1, x_3); +return x_12; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_13 = lean_unsigned_to_nat(0u); +x_14 = l_Lean_Syntax_getArg(x_9, x_13); +lean_dec(x_9); +x_15 = l_unexpandMkStr1___closed__2; +lean_inc(x_14); +x_16 = l_Lean_Syntax_isOfKind(x_14, x_15); +if (x_16 == 0) +{ +lean_object* x_17; lean_object* x_18; +lean_dec(x_14); +x_17 = lean_box(0); +x_18 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_18, 0, x_17); +lean_ctor_set(x_18, 1, x_3); +return x_18; +} +else +{ +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 = l_Lean_TSyntax_getString(x_14); +lean_dec(x_14); +x_20 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__28; +x_21 = lean_string_append(x_20, x_19); +lean_dec(x_19); +x_22 = l_unexpandMkStr1___closed__3; +x_23 = lean_string_append(x_21, x_22); +x_24 = lean_box(2); +x_25 = l_Lean_Syntax_mkNameLit(x_23, x_24); +x_26 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__29; +x_27 = lean_array_push(x_26, x_25); +x_28 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__26; +x_29 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_29, 0, x_24); +lean_ctor_set(x_29, 1, x_28); +lean_ctor_set(x_29, 2, x_27); +x_30 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_30, 0, x_29); +lean_ctor_set(x_30, 1, x_3); +return x_30; +} +} +} +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_unexpandMkStr1(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(2u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_unexpandMkStr1___closed__2; +lean_inc(x_15); +x_17 = l_Lean_Syntax_isOfKind(x_15, x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +lean_dec(x_15); +lean_dec(x_9); +x_18 = lean_box(0); +x_19 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_3); +return x_19; +} +else +{ +lean_object* x_20; uint8_t x_21; +x_20 = l_Lean_Syntax_getArg(x_9, x_8); +lean_dec(x_9); +lean_inc(x_20); +x_21 = l_Lean_Syntax_isOfKind(x_20, x_16); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_20); +lean_dec(x_15); +x_22 = lean_box(0); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_3); +return x_23; +} +else +{ +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; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_24 = l_Lean_TSyntax_getString(x_15); +lean_dec(x_15); +x_25 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__28; +x_26 = lean_string_append(x_25, x_24); +lean_dec(x_24); +x_27 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__27; +x_28 = lean_string_append(x_26, x_27); +x_29 = l_Lean_TSyntax_getString(x_20); +lean_dec(x_20); +x_30 = lean_string_append(x_28, x_29); +lean_dec(x_29); +x_31 = l_unexpandMkStr1___closed__3; +x_32 = lean_string_append(x_30, x_31); +x_33 = lean_box(2); +x_34 = l_Lean_Syntax_mkNameLit(x_32, x_33); +x_35 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__29; +x_36 = lean_array_push(x_35, x_34); +x_37 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__26; +x_38 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_38, 0, x_33); +lean_ctor_set(x_38, 1, x_37); +lean_ctor_set(x_38, 2, x_36); +x_39 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_3); +return x_39; +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_unexpandMkStr2(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(3u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_unexpandMkStr1___closed__2; +lean_inc(x_15); +x_17 = l_Lean_Syntax_isOfKind(x_15, x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +lean_dec(x_15); +lean_dec(x_9); +x_18 = lean_box(0); +x_19 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_3); +return x_19; +} +else +{ +lean_object* x_20; uint8_t x_21; +x_20 = l_Lean_Syntax_getArg(x_9, x_8); +lean_inc(x_20); +x_21 = l_Lean_Syntax_isOfKind(x_20, x_16); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_22 = lean_box(0); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_3); +return x_23; +} +else +{ +lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_24 = lean_unsigned_to_nat(2u); +x_25 = l_Lean_Syntax_getArg(x_9, x_24); +lean_dec(x_9); +lean_inc(x_25); +x_26 = l_Lean_Syntax_isOfKind(x_25, x_16); +if (x_26 == 0) +{ +lean_object* x_27; lean_object* x_28; +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +x_27 = lean_box(0); +x_28 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_3); +return x_28; +} +else +{ +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; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_29 = l_Lean_TSyntax_getString(x_15); +lean_dec(x_15); +x_30 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__28; +x_31 = lean_string_append(x_30, x_29); +lean_dec(x_29); +x_32 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__27; +x_33 = lean_string_append(x_31, x_32); +x_34 = l_Lean_TSyntax_getString(x_20); +lean_dec(x_20); +x_35 = lean_string_append(x_33, x_34); +lean_dec(x_34); +x_36 = lean_string_append(x_35, x_32); +x_37 = l_Lean_TSyntax_getString(x_25); +lean_dec(x_25); +x_38 = lean_string_append(x_36, x_37); +lean_dec(x_37); +x_39 = l_unexpandMkStr1___closed__3; +x_40 = lean_string_append(x_38, x_39); +x_41 = lean_box(2); +x_42 = l_Lean_Syntax_mkNameLit(x_40, x_41); +x_43 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__29; +x_44 = lean_array_push(x_43, x_42); +x_45 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__26; +x_46 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_46, 0, x_41); +lean_ctor_set(x_46, 1, x_45); +lean_ctor_set(x_46, 2, x_44); +x_47 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_47, 0, x_46); +lean_ctor_set(x_47, 1, x_3); +return x_47; +} +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_unexpandMkStr3(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr4(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(4u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_unexpandMkStr1___closed__2; +lean_inc(x_15); +x_17 = l_Lean_Syntax_isOfKind(x_15, x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +lean_dec(x_15); +lean_dec(x_9); +x_18 = lean_box(0); +x_19 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_3); +return x_19; +} +else +{ +lean_object* x_20; uint8_t x_21; +x_20 = l_Lean_Syntax_getArg(x_9, x_8); +lean_inc(x_20); +x_21 = l_Lean_Syntax_isOfKind(x_20, x_16); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_22 = lean_box(0); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_3); +return x_23; +} +else +{ +lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_24 = lean_unsigned_to_nat(2u); +x_25 = l_Lean_Syntax_getArg(x_9, x_24); +lean_inc(x_25); +x_26 = l_Lean_Syntax_isOfKind(x_25, x_16); +if (x_26 == 0) +{ +lean_object* x_27; lean_object* x_28; +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_27 = lean_box(0); +x_28 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_3); +return x_28; +} +else +{ +lean_object* x_29; lean_object* x_30; uint8_t x_31; +x_29 = lean_unsigned_to_nat(3u); +x_30 = l_Lean_Syntax_getArg(x_9, x_29); +lean_dec(x_9); +lean_inc(x_30); +x_31 = l_Lean_Syntax_isOfKind(x_30, x_16); +if (x_31 == 0) +{ +lean_object* x_32; lean_object* x_33; +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +x_32 = lean_box(0); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_32); +lean_ctor_set(x_33, 1, x_3); +return x_33; +} +else +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; +x_34 = l_Lean_TSyntax_getString(x_15); +lean_dec(x_15); +x_35 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__28; +x_36 = lean_string_append(x_35, x_34); +lean_dec(x_34); +x_37 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__27; +x_38 = lean_string_append(x_36, x_37); +x_39 = l_Lean_TSyntax_getString(x_20); +lean_dec(x_20); +x_40 = lean_string_append(x_38, x_39); +lean_dec(x_39); +x_41 = lean_string_append(x_40, x_37); +x_42 = l_Lean_TSyntax_getString(x_25); +lean_dec(x_25); +x_43 = lean_string_append(x_41, x_42); +lean_dec(x_42); +x_44 = lean_string_append(x_43, x_37); +x_45 = l_Lean_TSyntax_getString(x_30); +lean_dec(x_30); +x_46 = lean_string_append(x_44, x_45); +lean_dec(x_45); +x_47 = l_unexpandMkStr1___closed__3; +x_48 = lean_string_append(x_46, x_47); +x_49 = lean_box(2); +x_50 = l_Lean_Syntax_mkNameLit(x_48, x_49); +x_51 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__29; +x_52 = lean_array_push(x_51, x_50); +x_53 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__26; +x_54 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_54, 0, x_49); +lean_ctor_set(x_54, 1, x_53); +lean_ctor_set(x_54, 2, x_52); +x_55 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_55, 0, x_54); +lean_ctor_set(x_55, 1, x_3); +return x_55; +} +} +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_unexpandMkStr4(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(5u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_unexpandMkStr1___closed__2; +lean_inc(x_15); +x_17 = l_Lean_Syntax_isOfKind(x_15, x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +lean_dec(x_15); +lean_dec(x_9); +x_18 = lean_box(0); +x_19 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_3); +return x_19; +} +else +{ +lean_object* x_20; uint8_t x_21; +x_20 = l_Lean_Syntax_getArg(x_9, x_8); +lean_inc(x_20); +x_21 = l_Lean_Syntax_isOfKind(x_20, x_16); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_22 = lean_box(0); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_3); +return x_23; +} +else +{ +lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_24 = lean_unsigned_to_nat(2u); +x_25 = l_Lean_Syntax_getArg(x_9, x_24); +lean_inc(x_25); +x_26 = l_Lean_Syntax_isOfKind(x_25, x_16); +if (x_26 == 0) +{ +lean_object* x_27; lean_object* x_28; +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_27 = lean_box(0); +x_28 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_3); +return x_28; +} +else +{ +lean_object* x_29; lean_object* x_30; uint8_t x_31; +x_29 = lean_unsigned_to_nat(3u); +x_30 = l_Lean_Syntax_getArg(x_9, x_29); +lean_inc(x_30); +x_31 = l_Lean_Syntax_isOfKind(x_30, x_16); +if (x_31 == 0) +{ +lean_object* x_32; lean_object* x_33; +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_32 = lean_box(0); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_32); +lean_ctor_set(x_33, 1, x_3); +return x_33; +} +else +{ +lean_object* x_34; lean_object* x_35; uint8_t x_36; +x_34 = lean_unsigned_to_nat(4u); +x_35 = l_Lean_Syntax_getArg(x_9, x_34); +lean_dec(x_9); +lean_inc(x_35); +x_36 = l_Lean_Syntax_isOfKind(x_35, x_16); +if (x_36 == 0) +{ +lean_object* x_37; lean_object* x_38; +lean_dec(x_35); +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +x_37 = lean_box(0); +x_38 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_38, 1, x_3); +return x_38; +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; +x_39 = l_Lean_TSyntax_getString(x_15); +lean_dec(x_15); +x_40 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__28; +x_41 = lean_string_append(x_40, x_39); +lean_dec(x_39); +x_42 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__27; +x_43 = lean_string_append(x_41, x_42); +x_44 = l_Lean_TSyntax_getString(x_20); +lean_dec(x_20); +x_45 = lean_string_append(x_43, x_44); +lean_dec(x_44); +x_46 = lean_string_append(x_45, x_42); +x_47 = l_Lean_TSyntax_getString(x_25); +lean_dec(x_25); +x_48 = lean_string_append(x_46, x_47); +lean_dec(x_47); +x_49 = lean_string_append(x_48, x_42); +x_50 = l_Lean_TSyntax_getString(x_30); +lean_dec(x_30); +x_51 = lean_string_append(x_49, x_50); +lean_dec(x_50); +x_52 = lean_string_append(x_51, x_42); +x_53 = l_Lean_TSyntax_getString(x_35); +lean_dec(x_35); +x_54 = lean_string_append(x_52, x_53); +lean_dec(x_53); +x_55 = l_unexpandMkStr1___closed__3; +x_56 = lean_string_append(x_54, x_55); +x_57 = lean_box(2); +x_58 = l_Lean_Syntax_mkNameLit(x_56, x_57); +x_59 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__29; +x_60 = lean_array_push(x_59, x_58); +x_61 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__26; +x_62 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_62, 0, x_57); +lean_ctor_set(x_62, 1, x_61); +lean_ctor_set(x_62, 2, x_60); +x_63 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_63, 0, x_62); +lean_ctor_set(x_63, 1, x_3); +return x_63; +} +} +} +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_unexpandMkStr5(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(6u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_unexpandMkStr1___closed__2; +lean_inc(x_15); +x_17 = l_Lean_Syntax_isOfKind(x_15, x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +lean_dec(x_15); +lean_dec(x_9); +x_18 = lean_box(0); +x_19 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_3); +return x_19; +} +else +{ +lean_object* x_20; uint8_t x_21; +x_20 = l_Lean_Syntax_getArg(x_9, x_8); +lean_inc(x_20); +x_21 = l_Lean_Syntax_isOfKind(x_20, x_16); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_22 = lean_box(0); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_3); +return x_23; +} +else +{ +lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_24 = lean_unsigned_to_nat(2u); +x_25 = l_Lean_Syntax_getArg(x_9, x_24); +lean_inc(x_25); +x_26 = l_Lean_Syntax_isOfKind(x_25, x_16); +if (x_26 == 0) +{ +lean_object* x_27; lean_object* x_28; +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_27 = lean_box(0); +x_28 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_3); +return x_28; +} +else +{ +lean_object* x_29; lean_object* x_30; uint8_t x_31; +x_29 = lean_unsigned_to_nat(3u); +x_30 = l_Lean_Syntax_getArg(x_9, x_29); +lean_inc(x_30); +x_31 = l_Lean_Syntax_isOfKind(x_30, x_16); +if (x_31 == 0) +{ +lean_object* x_32; lean_object* x_33; +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_32 = lean_box(0); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_32); +lean_ctor_set(x_33, 1, x_3); +return x_33; +} +else +{ +lean_object* x_34; lean_object* x_35; uint8_t x_36; +x_34 = lean_unsigned_to_nat(4u); +x_35 = l_Lean_Syntax_getArg(x_9, x_34); +lean_inc(x_35); +x_36 = l_Lean_Syntax_isOfKind(x_35, x_16); +if (x_36 == 0) +{ +lean_object* x_37; lean_object* x_38; +lean_dec(x_35); +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_37 = lean_box(0); +x_38 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_38, 1, x_3); +return x_38; +} +else +{ +lean_object* x_39; lean_object* x_40; uint8_t x_41; +x_39 = lean_unsigned_to_nat(5u); +x_40 = l_Lean_Syntax_getArg(x_9, x_39); +lean_dec(x_9); +lean_inc(x_40); +x_41 = l_Lean_Syntax_isOfKind(x_40, x_16); +if (x_41 == 0) +{ +lean_object* x_42; lean_object* x_43; +lean_dec(x_40); +lean_dec(x_35); +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +x_42 = lean_box(0); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_42); +lean_ctor_set(x_43, 1, x_3); +return x_43; +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; +x_44 = l_Lean_TSyntax_getString(x_15); +lean_dec(x_15); +x_45 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__28; +x_46 = lean_string_append(x_45, x_44); +lean_dec(x_44); +x_47 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__27; +x_48 = lean_string_append(x_46, x_47); +x_49 = l_Lean_TSyntax_getString(x_20); +lean_dec(x_20); +x_50 = lean_string_append(x_48, x_49); +lean_dec(x_49); +x_51 = lean_string_append(x_50, x_47); +x_52 = l_Lean_TSyntax_getString(x_25); +lean_dec(x_25); +x_53 = lean_string_append(x_51, x_52); +lean_dec(x_52); +x_54 = lean_string_append(x_53, x_47); +x_55 = l_Lean_TSyntax_getString(x_30); +lean_dec(x_30); +x_56 = lean_string_append(x_54, x_55); +lean_dec(x_55); +x_57 = lean_string_append(x_56, x_47); +x_58 = l_Lean_TSyntax_getString(x_35); +lean_dec(x_35); +x_59 = lean_string_append(x_57, x_58); +lean_dec(x_58); +x_60 = lean_string_append(x_59, x_47); +x_61 = l_Lean_TSyntax_getString(x_40); +lean_dec(x_40); +x_62 = lean_string_append(x_60, x_61); +lean_dec(x_61); +x_63 = l_unexpandMkStr1___closed__3; +x_64 = lean_string_append(x_62, x_63); +x_65 = lean_box(2); +x_66 = l_Lean_Syntax_mkNameLit(x_64, x_65); +x_67 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__29; +x_68 = lean_array_push(x_67, x_66); +x_69 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__26; +x_70 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_70, 0, x_65); +lean_ctor_set(x_70, 1, x_69); +lean_ctor_set(x_70, 2, x_68); +x_71 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_71, 0, x_70); +lean_ctor_set(x_71, 1, x_3); +return x_71; +} +} +} +} +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_unexpandMkStr6(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr7(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(7u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_unexpandMkStr1___closed__2; +lean_inc(x_15); +x_17 = l_Lean_Syntax_isOfKind(x_15, x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +lean_dec(x_15); +lean_dec(x_9); +x_18 = lean_box(0); +x_19 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_3); +return x_19; +} +else +{ +lean_object* x_20; uint8_t x_21; +x_20 = l_Lean_Syntax_getArg(x_9, x_8); +lean_inc(x_20); +x_21 = l_Lean_Syntax_isOfKind(x_20, x_16); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_22 = lean_box(0); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_3); +return x_23; +} +else +{ +lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_24 = lean_unsigned_to_nat(2u); +x_25 = l_Lean_Syntax_getArg(x_9, x_24); +lean_inc(x_25); +x_26 = l_Lean_Syntax_isOfKind(x_25, x_16); +if (x_26 == 0) +{ +lean_object* x_27; lean_object* x_28; +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_27 = lean_box(0); +x_28 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_3); +return x_28; +} +else +{ +lean_object* x_29; lean_object* x_30; uint8_t x_31; +x_29 = lean_unsigned_to_nat(3u); +x_30 = l_Lean_Syntax_getArg(x_9, x_29); +lean_inc(x_30); +x_31 = l_Lean_Syntax_isOfKind(x_30, x_16); +if (x_31 == 0) +{ +lean_object* x_32; lean_object* x_33; +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_32 = lean_box(0); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_32); +lean_ctor_set(x_33, 1, x_3); +return x_33; +} +else +{ +lean_object* x_34; lean_object* x_35; uint8_t x_36; +x_34 = lean_unsigned_to_nat(4u); +x_35 = l_Lean_Syntax_getArg(x_9, x_34); +lean_inc(x_35); +x_36 = l_Lean_Syntax_isOfKind(x_35, x_16); +if (x_36 == 0) +{ +lean_object* x_37; lean_object* x_38; +lean_dec(x_35); +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_37 = lean_box(0); +x_38 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_38, 1, x_3); +return x_38; +} +else +{ +lean_object* x_39; lean_object* x_40; uint8_t x_41; +x_39 = lean_unsigned_to_nat(5u); +x_40 = l_Lean_Syntax_getArg(x_9, x_39); +lean_inc(x_40); +x_41 = l_Lean_Syntax_isOfKind(x_40, x_16); +if (x_41 == 0) +{ +lean_object* x_42; lean_object* x_43; +lean_dec(x_40); +lean_dec(x_35); +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_42 = lean_box(0); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_42); +lean_ctor_set(x_43, 1, x_3); +return x_43; +} +else +{ +lean_object* x_44; lean_object* x_45; uint8_t x_46; +x_44 = lean_unsigned_to_nat(6u); +x_45 = l_Lean_Syntax_getArg(x_9, x_44); +lean_dec(x_9); +lean_inc(x_45); +x_46 = l_Lean_Syntax_isOfKind(x_45, x_16); +if (x_46 == 0) +{ +lean_object* x_47; lean_object* x_48; +lean_dec(x_45); +lean_dec(x_40); +lean_dec(x_35); +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +x_47 = lean_box(0); +x_48 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_48, 0, x_47); +lean_ctor_set(x_48, 1, x_3); +return x_48; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_49 = l_Lean_TSyntax_getString(x_15); +lean_dec(x_15); +x_50 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__28; +x_51 = lean_string_append(x_50, x_49); +lean_dec(x_49); +x_52 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__27; +x_53 = lean_string_append(x_51, x_52); +x_54 = l_Lean_TSyntax_getString(x_20); +lean_dec(x_20); +x_55 = lean_string_append(x_53, x_54); +lean_dec(x_54); +x_56 = lean_string_append(x_55, x_52); +x_57 = l_Lean_TSyntax_getString(x_25); +lean_dec(x_25); +x_58 = lean_string_append(x_56, x_57); +lean_dec(x_57); +x_59 = lean_string_append(x_58, x_52); +x_60 = l_Lean_TSyntax_getString(x_30); +lean_dec(x_30); +x_61 = lean_string_append(x_59, x_60); +lean_dec(x_60); +x_62 = lean_string_append(x_61, x_52); +x_63 = l_Lean_TSyntax_getString(x_35); +lean_dec(x_35); +x_64 = lean_string_append(x_62, x_63); +lean_dec(x_63); +x_65 = lean_string_append(x_64, x_52); +x_66 = l_Lean_TSyntax_getString(x_40); +lean_dec(x_40); +x_67 = lean_string_append(x_65, x_66); +lean_dec(x_66); +x_68 = lean_string_append(x_67, x_52); +x_69 = l_Lean_TSyntax_getString(x_45); +lean_dec(x_45); +x_70 = lean_string_append(x_68, x_69); +lean_dec(x_69); +x_71 = l_unexpandMkStr1___closed__3; +x_72 = lean_string_append(x_70, x_71); +x_73 = lean_box(2); +x_74 = l_Lean_Syntax_mkNameLit(x_72, x_73); +x_75 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__29; +x_76 = lean_array_push(x_75, x_74); +x_77 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__26; +x_78 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_78, 0, x_73); +lean_ctor_set(x_78, 1, x_77); +lean_ctor_set(x_78, 2, x_76); +x_79 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_79, 0, x_78); +lean_ctor_set(x_79, 1, x_3); +return x_79; +} +} +} +} +} +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr7___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_unexpandMkStr7(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr8(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(8u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_unexpandMkStr1___closed__2; +lean_inc(x_15); +x_17 = l_Lean_Syntax_isOfKind(x_15, x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +lean_dec(x_15); +lean_dec(x_9); +x_18 = lean_box(0); +x_19 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_3); +return x_19; +} +else +{ +lean_object* x_20; uint8_t x_21; +x_20 = l_Lean_Syntax_getArg(x_9, x_8); +lean_inc(x_20); +x_21 = l_Lean_Syntax_isOfKind(x_20, x_16); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_22 = lean_box(0); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_3); +return x_23; +} +else +{ +lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_24 = lean_unsigned_to_nat(2u); +x_25 = l_Lean_Syntax_getArg(x_9, x_24); +lean_inc(x_25); +x_26 = l_Lean_Syntax_isOfKind(x_25, x_16); +if (x_26 == 0) +{ +lean_object* x_27; lean_object* x_28; +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_27 = lean_box(0); +x_28 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_3); +return x_28; +} +else +{ +lean_object* x_29; lean_object* x_30; uint8_t x_31; +x_29 = lean_unsigned_to_nat(3u); +x_30 = l_Lean_Syntax_getArg(x_9, x_29); +lean_inc(x_30); +x_31 = l_Lean_Syntax_isOfKind(x_30, x_16); +if (x_31 == 0) +{ +lean_object* x_32; lean_object* x_33; +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_32 = lean_box(0); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_32); +lean_ctor_set(x_33, 1, x_3); +return x_33; +} +else +{ +lean_object* x_34; lean_object* x_35; uint8_t x_36; +x_34 = lean_unsigned_to_nat(4u); +x_35 = l_Lean_Syntax_getArg(x_9, x_34); +lean_inc(x_35); +x_36 = l_Lean_Syntax_isOfKind(x_35, x_16); +if (x_36 == 0) +{ +lean_object* x_37; lean_object* x_38; +lean_dec(x_35); +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_37 = lean_box(0); +x_38 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_38, 1, x_3); +return x_38; +} +else +{ +lean_object* x_39; lean_object* x_40; uint8_t x_41; +x_39 = lean_unsigned_to_nat(5u); +x_40 = l_Lean_Syntax_getArg(x_9, x_39); +lean_inc(x_40); +x_41 = l_Lean_Syntax_isOfKind(x_40, x_16); +if (x_41 == 0) +{ +lean_object* x_42; lean_object* x_43; +lean_dec(x_40); +lean_dec(x_35); +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_42 = lean_box(0); +x_43 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_43, 0, x_42); +lean_ctor_set(x_43, 1, x_3); +return x_43; +} +else +{ +lean_object* x_44; lean_object* x_45; uint8_t x_46; +x_44 = lean_unsigned_to_nat(6u); +x_45 = l_Lean_Syntax_getArg(x_9, x_44); +lean_inc(x_45); +x_46 = l_Lean_Syntax_isOfKind(x_45, x_16); +if (x_46 == 0) +{ +lean_object* x_47; lean_object* x_48; +lean_dec(x_45); +lean_dec(x_40); +lean_dec(x_35); +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +lean_dec(x_9); +x_47 = lean_box(0); +x_48 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_48, 0, x_47); +lean_ctor_set(x_48, 1, x_3); +return x_48; +} +else +{ +lean_object* x_49; lean_object* x_50; uint8_t x_51; +x_49 = lean_unsigned_to_nat(7u); +x_50 = l_Lean_Syntax_getArg(x_9, x_49); +lean_dec(x_9); +lean_inc(x_50); +x_51 = l_Lean_Syntax_isOfKind(x_50, x_16); +if (x_51 == 0) +{ +lean_object* x_52; lean_object* x_53; +lean_dec(x_50); +lean_dec(x_45); +lean_dec(x_40); +lean_dec(x_35); +lean_dec(x_30); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_15); +x_52 = lean_box(0); +x_53 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_53, 0, x_52); +lean_ctor_set(x_53, 1, x_3); +return x_53; +} +else +{ +lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_54 = l_Lean_TSyntax_getString(x_15); +lean_dec(x_15); +x_55 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__28; +x_56 = lean_string_append(x_55, x_54); +lean_dec(x_54); +x_57 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__27; +x_58 = lean_string_append(x_56, x_57); +x_59 = l_Lean_TSyntax_getString(x_20); +lean_dec(x_20); +x_60 = lean_string_append(x_58, x_59); +lean_dec(x_59); +x_61 = lean_string_append(x_60, x_57); +x_62 = l_Lean_TSyntax_getString(x_25); +lean_dec(x_25); +x_63 = lean_string_append(x_61, x_62); +lean_dec(x_62); +x_64 = lean_string_append(x_63, x_57); +x_65 = l_Lean_TSyntax_getString(x_30); +lean_dec(x_30); +x_66 = lean_string_append(x_64, x_65); +lean_dec(x_65); +x_67 = lean_string_append(x_66, x_57); +x_68 = l_Lean_TSyntax_getString(x_35); +lean_dec(x_35); +x_69 = lean_string_append(x_67, x_68); +lean_dec(x_68); +x_70 = lean_string_append(x_69, x_57); +x_71 = l_Lean_TSyntax_getString(x_40); +lean_dec(x_40); +x_72 = lean_string_append(x_70, x_71); +lean_dec(x_71); +x_73 = lean_string_append(x_72, x_57); +x_74 = l_Lean_TSyntax_getString(x_45); +lean_dec(x_45); +x_75 = lean_string_append(x_73, x_74); +lean_dec(x_74); +x_76 = lean_string_append(x_75, x_57); +x_77 = l_Lean_TSyntax_getString(x_50); +lean_dec(x_50); +x_78 = lean_string_append(x_76, x_77); +lean_dec(x_77); +x_79 = l_unexpandMkStr1___closed__3; +x_80 = lean_string_append(x_78, x_79); +x_81 = lean_box(2); +x_82 = l_Lean_Syntax_mkNameLit(x_80, x_81); +x_83 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__29; +x_84 = lean_array_push(x_83, x_82); +x_85 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__26; +x_86 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_86, 0, x_81); +lean_ctor_set(x_86, 1, x_85); +lean_ctor_set(x_86, 2, x_84); +x_87 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_87, 0, x_86); +lean_ctor_set(x_87, 1, x_3); +return x_87; +} +} +} +} +} +} +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_unexpandMkStr8___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_unexpandMkStr8(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +LEAN_EXPORT lean_object* l_unexpandMkArray1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; uint8_t x_10; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +lean_inc(x_9); +x_10 = l_Lean_Syntax_matchesNull(x_9, x_8); +if (x_10 == 0) +{ +lean_object* x_11; lean_object* x_12; +lean_dec(x_9); +lean_dec(x_2); +x_11 = lean_box(0); +x_12 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_12, 0, x_11); +lean_ctor_set(x_12, 1, x_3); +return x_12; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_13 = lean_unsigned_to_nat(0u); +x_14 = l_Lean_Syntax_getArg(x_9, x_13); +lean_dec(x_9); +x_15 = l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______unexpand__Function__comp__1___spec__1(x_2, x_3); +x_16 = !lean_is_exclusive(x_15); +if (x_16 == 0) +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_17 = lean_ctor_get(x_15, 0); +x_18 = l_unexpandListToArray___closed__3; +lean_inc(x_17); +x_19 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_19, 0, x_17); +lean_ctor_set(x_19, 1, x_18); +x_20 = l_Array_mkArray1___rarg(x_14); +x_21 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_17); +x_22 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_22, 0, x_17); +lean_ctor_set(x_22, 1, x_21); +lean_ctor_set(x_22, 2, x_20); +x_23 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_17); +x_24 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_24, 0, x_17); +lean_ctor_set(x_24, 1, x_23); +x_25 = l_Array_mkArray3___rarg(x_19, x_22, x_24); +x_26 = l_unexpandListToArray___closed__2; +x_27 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_27, 0, x_17); +lean_ctor_set(x_27, 1, x_26); +lean_ctor_set(x_27, 2, x_25); +lean_ctor_set(x_15, 0, x_27); +return x_15; +} +else +{ +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; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_28 = lean_ctor_get(x_15, 0); +x_29 = lean_ctor_get(x_15, 1); +lean_inc(x_29); +lean_inc(x_28); +lean_dec(x_15); +x_30 = l_unexpandListToArray___closed__3; +lean_inc(x_28); +x_31 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_31, 0, x_28); +lean_ctor_set(x_31, 1, x_30); +x_32 = l_Array_mkArray1___rarg(x_14); +x_33 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_28); +x_34 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_34, 0, x_28); +lean_ctor_set(x_34, 1, x_33); +lean_ctor_set(x_34, 2, x_32); +x_35 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_28); +x_36 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_36, 0, x_28); +lean_ctor_set(x_36, 1, x_35); +x_37 = l_Array_mkArray3___rarg(x_31, x_34, x_36); +x_38 = l_unexpandListToArray___closed__2; +x_39 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_39, 0, x_28); +lean_ctor_set(x_39, 1, x_38); +lean_ctor_set(x_39, 2, x_37); +x_40 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_40, 0, x_39); +lean_ctor_set(x_40, 1, x_29); +return x_40; +} +} +} +} +} +LEAN_EXPORT lean_object* l_unexpandMkArray2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(2u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +lean_dec(x_2); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_Lean_Syntax_getArg(x_9, x_8); +lean_dec(x_9); +x_17 = l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______unexpand__Function__comp__1___spec__1(x_2, x_3); +x_18 = !lean_is_exclusive(x_17); +if (x_18 == 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; lean_object* x_31; +x_19 = lean_ctor_get(x_17, 0); +x_20 = l_unexpandListToArray___closed__3; +lean_inc(x_19); +x_21 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_21, 0, x_19); +lean_ctor_set(x_21, 1, x_20); +x_22 = l_unexpandListCons___closed__1; +lean_inc(x_19); +x_23 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_23, 0, x_19); +lean_ctor_set(x_23, 1, x_22); +x_24 = l_Array_mkArray3___rarg(x_15, x_23, x_16); +x_25 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_19); +x_26 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_26, 0, x_19); +lean_ctor_set(x_26, 1, x_25); +lean_ctor_set(x_26, 2, x_24); +x_27 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_19); +x_28 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_28, 0, x_19); +lean_ctor_set(x_28, 1, x_27); +x_29 = l_Array_mkArray3___rarg(x_21, x_26, x_28); +x_30 = l_unexpandListToArray___closed__2; +x_31 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_31, 0, x_19); +lean_ctor_set(x_31, 1, x_30); +lean_ctor_set(x_31, 2, x_29); +lean_ctor_set(x_17, 0, x_31); +return x_17; +} +else +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_32 = lean_ctor_get(x_17, 0); +x_33 = lean_ctor_get(x_17, 1); +lean_inc(x_33); +lean_inc(x_32); +lean_dec(x_17); +x_34 = l_unexpandListToArray___closed__3; +lean_inc(x_32); +x_35 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_35, 0, x_32); +lean_ctor_set(x_35, 1, x_34); +x_36 = l_unexpandListCons___closed__1; +lean_inc(x_32); +x_37 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_37, 0, x_32); +lean_ctor_set(x_37, 1, x_36); +x_38 = l_Array_mkArray3___rarg(x_15, x_37, x_16); +x_39 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_32); +x_40 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_40, 0, x_32); +lean_ctor_set(x_40, 1, x_39); +lean_ctor_set(x_40, 2, x_38); +x_41 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_32); +x_42 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_42, 0, x_32); +lean_ctor_set(x_42, 1, x_41); +x_43 = l_Array_mkArray3___rarg(x_35, x_40, x_42); +x_44 = l_unexpandListToArray___closed__2; +x_45 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_45, 0, x_32); +lean_ctor_set(x_45, 1, x_44); +lean_ctor_set(x_45, 2, x_43); +x_46 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_46, 0, x_45); +lean_ctor_set(x_46, 1, x_33); +return x_46; +} +} +} +} +} +LEAN_EXPORT lean_object* l_unexpandMkArray3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(3u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +lean_dec(x_2); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_Lean_Syntax_getArg(x_9, x_8); +x_17 = lean_unsigned_to_nat(2u); +x_18 = l_Lean_Syntax_getArg(x_9, x_17); +lean_dec(x_9); +x_19 = l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______unexpand__Function__comp__1___spec__1(x_2, x_3); +x_20 = !lean_is_exclusive(x_19); +if (x_20 == 0) +{ +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; lean_object* x_32; lean_object* x_33; +x_21 = lean_ctor_get(x_19, 0); +x_22 = l_unexpandListToArray___closed__3; +lean_inc(x_21); +x_23 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_23, 0, x_21); +lean_ctor_set(x_23, 1, x_22); +x_24 = l_unexpandListCons___closed__1; +lean_inc(x_21); +x_25 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_25, 0, x_21); +lean_ctor_set(x_25, 1, x_24); +lean_inc(x_25); +x_26 = l_Array_mkArray5___rarg(x_15, x_25, x_16, x_25, x_18); +x_27 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_21); +x_28 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_28, 0, x_21); +lean_ctor_set(x_28, 1, x_27); +lean_ctor_set(x_28, 2, x_26); +x_29 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_21); +x_30 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_30, 0, x_21); +lean_ctor_set(x_30, 1, x_29); +x_31 = l_Array_mkArray3___rarg(x_23, x_28, x_30); +x_32 = l_unexpandListToArray___closed__2; +x_33 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_33, 0, x_21); +lean_ctor_set(x_33, 1, x_32); +lean_ctor_set(x_33, 2, x_31); +lean_ctor_set(x_19, 0, x_33); +return x_19; +} +else +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_34 = lean_ctor_get(x_19, 0); +x_35 = lean_ctor_get(x_19, 1); +lean_inc(x_35); +lean_inc(x_34); +lean_dec(x_19); +x_36 = l_unexpandListToArray___closed__3; +lean_inc(x_34); +x_37 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_37, 0, x_34); +lean_ctor_set(x_37, 1, x_36); +x_38 = l_unexpandListCons___closed__1; +lean_inc(x_34); +x_39 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_39, 0, x_34); +lean_ctor_set(x_39, 1, x_38); +lean_inc(x_39); +x_40 = l_Array_mkArray5___rarg(x_15, x_39, x_16, x_39, x_18); +x_41 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_34); +x_42 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_42, 0, x_34); +lean_ctor_set(x_42, 1, x_41); +lean_ctor_set(x_42, 2, x_40); +x_43 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_34); +x_44 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_44, 0, x_34); +lean_ctor_set(x_44, 1, x_43); +x_45 = l_Array_mkArray3___rarg(x_37, x_42, x_44); +x_46 = l_unexpandListToArray___closed__2; +x_47 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_47, 0, x_34); +lean_ctor_set(x_47, 1, x_46); +lean_ctor_set(x_47, 2, x_45); +x_48 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_48, 0, x_47); +lean_ctor_set(x_48, 1, x_35); +return x_48; +} +} +} +} +} +LEAN_EXPORT lean_object* l_unexpandMkArray4(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(4u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +lean_dec(x_2); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_Lean_Syntax_getArg(x_9, x_8); +x_17 = lean_unsigned_to_nat(2u); +x_18 = l_Lean_Syntax_getArg(x_9, x_17); +x_19 = lean_unsigned_to_nat(3u); +x_20 = l_Lean_Syntax_getArg(x_9, x_19); +lean_dec(x_9); +x_21 = l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______unexpand__Function__comp__1___spec__1(x_2, x_3); +x_22 = !lean_is_exclusive(x_21); +if (x_22 == 0) +{ +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; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_23 = lean_ctor_get(x_21, 0); +x_24 = l_unexpandListToArray___closed__3; +lean_inc(x_23); +x_25 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_25, 0, x_23); +lean_ctor_set(x_25, 1, x_24); +x_26 = l_unexpandListCons___closed__1; +lean_inc(x_23); +x_27 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_27, 0, x_23); +lean_ctor_set(x_27, 1, x_26); +lean_inc_n(x_27, 2); +x_28 = l_Array_mkArray7___rarg(x_15, x_27, x_16, x_27, x_18, x_27, x_20); +x_29 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_23); +x_30 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_30, 0, x_23); +lean_ctor_set(x_30, 1, x_29); +lean_ctor_set(x_30, 2, x_28); +x_31 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_23); +x_32 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_32, 0, x_23); +lean_ctor_set(x_32, 1, x_31); +x_33 = l_Array_mkArray3___rarg(x_25, x_30, x_32); +x_34 = l_unexpandListToArray___closed__2; +x_35 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_35, 0, x_23); +lean_ctor_set(x_35, 1, x_34); +lean_ctor_set(x_35, 2, x_33); +lean_ctor_set(x_21, 0, x_35); +return x_21; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; +x_36 = lean_ctor_get(x_21, 0); +x_37 = lean_ctor_get(x_21, 1); +lean_inc(x_37); +lean_inc(x_36); +lean_dec(x_21); +x_38 = l_unexpandListToArray___closed__3; +lean_inc(x_36); +x_39 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_39, 0, x_36); +lean_ctor_set(x_39, 1, x_38); +x_40 = l_unexpandListCons___closed__1; +lean_inc(x_36); +x_41 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_41, 0, x_36); +lean_ctor_set(x_41, 1, x_40); +lean_inc_n(x_41, 2); +x_42 = l_Array_mkArray7___rarg(x_15, x_41, x_16, x_41, x_18, x_41, x_20); +x_43 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_36); +x_44 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_44, 0, x_36); +lean_ctor_set(x_44, 1, x_43); +lean_ctor_set(x_44, 2, x_42); +x_45 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_36); +x_46 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_46, 0, x_36); +lean_ctor_set(x_46, 1, x_45); +x_47 = l_Array_mkArray3___rarg(x_39, x_44, x_46); +x_48 = l_unexpandListToArray___closed__2; +x_49 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_49, 0, x_36); +lean_ctor_set(x_49, 1, x_48); +lean_ctor_set(x_49, 2, x_47); +x_50 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_50, 0, x_49); +lean_ctor_set(x_50, 1, x_37); +return x_50; +} +} +} +} +} +static lean_object* _init_l_unexpandMkArray5___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(9u); +x_2 = lean_mk_empty_array_with_capacity(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_unexpandMkArray5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(5u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +lean_dec(x_2); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_Lean_Syntax_getArg(x_9, x_8); +x_17 = lean_unsigned_to_nat(2u); +x_18 = l_Lean_Syntax_getArg(x_9, x_17); +x_19 = lean_unsigned_to_nat(3u); +x_20 = l_Lean_Syntax_getArg(x_9, x_19); +x_21 = lean_unsigned_to_nat(4u); +x_22 = l_Lean_Syntax_getArg(x_9, x_21); +lean_dec(x_9); +x_23 = l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______unexpand__Function__comp__1___spec__1(x_2, x_3); +x_24 = !lean_is_exclusive(x_23); +if (x_24 == 0) +{ +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; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_25 = lean_ctor_get(x_23, 0); +x_26 = l_unexpandListToArray___closed__3; +lean_inc(x_25); +x_27 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_27, 0, x_25); +lean_ctor_set(x_27, 1, x_26); +x_28 = l_unexpandListCons___closed__1; +lean_inc(x_25); +x_29 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_29, 0, x_25); +lean_ctor_set(x_29, 1, x_28); +x_30 = l_unexpandMkArray5___closed__1; +x_31 = lean_array_push(x_30, x_15); +lean_inc(x_29); +x_32 = lean_array_push(x_31, x_29); +x_33 = lean_array_push(x_32, x_16); +lean_inc(x_29); +x_34 = lean_array_push(x_33, x_29); +x_35 = lean_array_push(x_34, x_18); +lean_inc(x_29); +x_36 = lean_array_push(x_35, x_29); +x_37 = lean_array_push(x_36, x_20); +x_38 = lean_array_push(x_37, x_29); +x_39 = lean_array_push(x_38, x_22); +x_40 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_25); +x_41 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_41, 0, x_25); +lean_ctor_set(x_41, 1, x_40); +lean_ctor_set(x_41, 2, x_39); +x_42 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_25); +x_43 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_43, 0, x_25); +lean_ctor_set(x_43, 1, x_42); +x_44 = l_Array_mkArray3___rarg(x_27, x_41, x_43); +x_45 = l_unexpandListToArray___closed__2; +x_46 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_46, 0, x_25); +lean_ctor_set(x_46, 1, x_45); +lean_ctor_set(x_46, 2, x_44); +lean_ctor_set(x_23, 0, x_46); +return x_23; +} +else +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +x_47 = lean_ctor_get(x_23, 0); +x_48 = lean_ctor_get(x_23, 1); +lean_inc(x_48); +lean_inc(x_47); +lean_dec(x_23); +x_49 = l_unexpandListToArray___closed__3; +lean_inc(x_47); +x_50 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_50, 0, x_47); +lean_ctor_set(x_50, 1, x_49); +x_51 = l_unexpandListCons___closed__1; +lean_inc(x_47); +x_52 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_52, 0, x_47); +lean_ctor_set(x_52, 1, x_51); +x_53 = l_unexpandMkArray5___closed__1; +x_54 = lean_array_push(x_53, x_15); +lean_inc(x_52); +x_55 = lean_array_push(x_54, x_52); +x_56 = lean_array_push(x_55, x_16); +lean_inc(x_52); +x_57 = lean_array_push(x_56, x_52); +x_58 = lean_array_push(x_57, x_18); +lean_inc(x_52); +x_59 = lean_array_push(x_58, x_52); +x_60 = lean_array_push(x_59, x_20); +x_61 = lean_array_push(x_60, x_52); +x_62 = lean_array_push(x_61, x_22); +x_63 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_47); +x_64 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_64, 0, x_47); +lean_ctor_set(x_64, 1, x_63); +lean_ctor_set(x_64, 2, x_62); +x_65 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_47); +x_66 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_66, 0, x_47); +lean_ctor_set(x_66, 1, x_65); +x_67 = l_Array_mkArray3___rarg(x_50, x_64, x_66); +x_68 = l_unexpandListToArray___closed__2; +x_69 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_69, 0, x_47); +lean_ctor_set(x_69, 1, x_68); +lean_ctor_set(x_69, 2, x_67); +x_70 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_70, 0, x_69); +lean_ctor_set(x_70, 1, x_48); +return x_70; +} +} +} +} +} +static lean_object* _init_l_unexpandMkArray6___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(11u); +x_2 = lean_mk_empty_array_with_capacity(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_unexpandMkArray6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(6u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +lean_dec(x_2); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_Lean_Syntax_getArg(x_9, x_8); +x_17 = lean_unsigned_to_nat(2u); +x_18 = l_Lean_Syntax_getArg(x_9, x_17); +x_19 = lean_unsigned_to_nat(3u); +x_20 = l_Lean_Syntax_getArg(x_9, x_19); +x_21 = lean_unsigned_to_nat(4u); +x_22 = l_Lean_Syntax_getArg(x_9, x_21); +x_23 = lean_unsigned_to_nat(5u); +x_24 = l_Lean_Syntax_getArg(x_9, x_23); +lean_dec(x_9); +x_25 = l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______unexpand__Function__comp__1___spec__1(x_2, x_3); +x_26 = !lean_is_exclusive(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; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; +x_27 = lean_ctor_get(x_25, 0); +x_28 = l_unexpandListToArray___closed__3; +lean_inc(x_27); +x_29 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_29, 0, x_27); +lean_ctor_set(x_29, 1, x_28); +x_30 = l_unexpandListCons___closed__1; +lean_inc(x_27); +x_31 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_31, 0, x_27); +lean_ctor_set(x_31, 1, x_30); +x_32 = l_unexpandMkArray6___closed__1; +x_33 = lean_array_push(x_32, x_15); +lean_inc(x_31); +x_34 = lean_array_push(x_33, x_31); +x_35 = lean_array_push(x_34, x_16); +lean_inc(x_31); +x_36 = lean_array_push(x_35, x_31); +x_37 = lean_array_push(x_36, x_18); +lean_inc(x_31); +x_38 = lean_array_push(x_37, x_31); +x_39 = lean_array_push(x_38, x_20); +lean_inc(x_31); +x_40 = lean_array_push(x_39, x_31); +x_41 = lean_array_push(x_40, x_22); +x_42 = lean_array_push(x_41, x_31); +x_43 = lean_array_push(x_42, x_24); +x_44 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_27); +x_45 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_45, 0, x_27); +lean_ctor_set(x_45, 1, x_44); +lean_ctor_set(x_45, 2, x_43); +x_46 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_27); +x_47 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_47, 0, x_27); +lean_ctor_set(x_47, 1, x_46); +x_48 = l_Array_mkArray3___rarg(x_29, x_45, x_47); +x_49 = l_unexpandListToArray___closed__2; +x_50 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_50, 0, x_27); +lean_ctor_set(x_50, 1, x_49); +lean_ctor_set(x_50, 2, x_48); +lean_ctor_set(x_25, 0, x_50); +return x_25; +} +else +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_51 = lean_ctor_get(x_25, 0); +x_52 = lean_ctor_get(x_25, 1); +lean_inc(x_52); +lean_inc(x_51); +lean_dec(x_25); +x_53 = l_unexpandListToArray___closed__3; +lean_inc(x_51); +x_54 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_54, 0, x_51); +lean_ctor_set(x_54, 1, x_53); +x_55 = l_unexpandListCons___closed__1; +lean_inc(x_51); +x_56 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_56, 0, x_51); +lean_ctor_set(x_56, 1, x_55); +x_57 = l_unexpandMkArray6___closed__1; +x_58 = lean_array_push(x_57, x_15); +lean_inc(x_56); +x_59 = lean_array_push(x_58, x_56); +x_60 = lean_array_push(x_59, x_16); +lean_inc(x_56); +x_61 = lean_array_push(x_60, x_56); +x_62 = lean_array_push(x_61, x_18); +lean_inc(x_56); +x_63 = lean_array_push(x_62, x_56); +x_64 = lean_array_push(x_63, x_20); +lean_inc(x_56); +x_65 = lean_array_push(x_64, x_56); +x_66 = lean_array_push(x_65, x_22); +x_67 = lean_array_push(x_66, x_56); +x_68 = lean_array_push(x_67, x_24); +x_69 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_51); +x_70 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_70, 0, x_51); +lean_ctor_set(x_70, 1, x_69); +lean_ctor_set(x_70, 2, x_68); +x_71 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_51); +x_72 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_72, 0, x_51); +lean_ctor_set(x_72, 1, x_71); +x_73 = l_Array_mkArray3___rarg(x_54, x_70, x_72); +x_74 = l_unexpandListToArray___closed__2; +x_75 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_75, 0, x_51); +lean_ctor_set(x_75, 1, x_74); +lean_ctor_set(x_75, 2, x_73); +x_76 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_76, 0, x_75); +lean_ctor_set(x_76, 1, x_52); +return x_76; +} +} +} +} +} +static lean_object* _init_l_unexpandMkArray7___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(13u); +x_2 = lean_mk_empty_array_with_capacity(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_unexpandMkArray7(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(7u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +lean_dec(x_2); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_Lean_Syntax_getArg(x_9, x_8); +x_17 = lean_unsigned_to_nat(2u); +x_18 = l_Lean_Syntax_getArg(x_9, x_17); +x_19 = lean_unsigned_to_nat(3u); +x_20 = l_Lean_Syntax_getArg(x_9, x_19); +x_21 = lean_unsigned_to_nat(4u); +x_22 = l_Lean_Syntax_getArg(x_9, x_21); +x_23 = lean_unsigned_to_nat(5u); +x_24 = l_Lean_Syntax_getArg(x_9, x_23); +x_25 = lean_unsigned_to_nat(6u); +x_26 = l_Lean_Syntax_getArg(x_9, x_25); +lean_dec(x_9); +x_27 = l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______unexpand__Function__comp__1___spec__1(x_2, x_3); +x_28 = !lean_is_exclusive(x_27); +if (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; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_29 = lean_ctor_get(x_27, 0); +x_30 = l_unexpandListToArray___closed__3; +lean_inc(x_29); +x_31 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_31, 0, x_29); +lean_ctor_set(x_31, 1, x_30); +x_32 = l_unexpandListCons___closed__1; +lean_inc(x_29); +x_33 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_33, 0, x_29); +lean_ctor_set(x_33, 1, x_32); +x_34 = l_unexpandMkArray7___closed__1; +x_35 = lean_array_push(x_34, x_15); +lean_inc(x_33); +x_36 = lean_array_push(x_35, x_33); +x_37 = lean_array_push(x_36, x_16); +lean_inc(x_33); +x_38 = lean_array_push(x_37, x_33); +x_39 = lean_array_push(x_38, x_18); +lean_inc(x_33); +x_40 = lean_array_push(x_39, x_33); +x_41 = lean_array_push(x_40, x_20); +lean_inc(x_33); +x_42 = lean_array_push(x_41, x_33); +x_43 = lean_array_push(x_42, x_22); +lean_inc(x_33); +x_44 = lean_array_push(x_43, x_33); +x_45 = lean_array_push(x_44, x_24); +x_46 = lean_array_push(x_45, x_33); +x_47 = lean_array_push(x_46, x_26); +x_48 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_29); +x_49 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_49, 0, x_29); +lean_ctor_set(x_49, 1, x_48); +lean_ctor_set(x_49, 2, x_47); +x_50 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_29); +x_51 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_51, 0, x_29); +lean_ctor_set(x_51, 1, x_50); +x_52 = l_Array_mkArray3___rarg(x_31, x_49, x_51); +x_53 = l_unexpandListToArray___closed__2; +x_54 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_54, 0, x_29); +lean_ctor_set(x_54, 1, x_53); +lean_ctor_set(x_54, 2, x_52); +lean_ctor_set(x_27, 0, x_54); +return x_27; +} +else +{ +lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; +x_55 = lean_ctor_get(x_27, 0); +x_56 = lean_ctor_get(x_27, 1); +lean_inc(x_56); +lean_inc(x_55); +lean_dec(x_27); +x_57 = l_unexpandListToArray___closed__3; +lean_inc(x_55); +x_58 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_58, 0, x_55); +lean_ctor_set(x_58, 1, x_57); +x_59 = l_unexpandListCons___closed__1; +lean_inc(x_55); +x_60 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_60, 0, x_55); +lean_ctor_set(x_60, 1, x_59); +x_61 = l_unexpandMkArray7___closed__1; +x_62 = lean_array_push(x_61, x_15); +lean_inc(x_60); +x_63 = lean_array_push(x_62, x_60); +x_64 = lean_array_push(x_63, x_16); +lean_inc(x_60); +x_65 = lean_array_push(x_64, x_60); +x_66 = lean_array_push(x_65, x_18); +lean_inc(x_60); +x_67 = lean_array_push(x_66, x_60); +x_68 = lean_array_push(x_67, x_20); +lean_inc(x_60); +x_69 = lean_array_push(x_68, x_60); +x_70 = lean_array_push(x_69, x_22); +lean_inc(x_60); +x_71 = lean_array_push(x_70, x_60); +x_72 = lean_array_push(x_71, x_24); +x_73 = lean_array_push(x_72, x_60); +x_74 = lean_array_push(x_73, x_26); +x_75 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_55); +x_76 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_76, 0, x_55); +lean_ctor_set(x_76, 1, x_75); +lean_ctor_set(x_76, 2, x_74); +x_77 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_55); +x_78 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_78, 0, x_55); +lean_ctor_set(x_78, 1, x_77); +x_79 = l_Array_mkArray3___rarg(x_58, x_76, x_78); +x_80 = l_unexpandListToArray___closed__2; +x_81 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_81, 0, x_55); +lean_ctor_set(x_81, 1, x_80); +lean_ctor_set(x_81, 2, x_79); +x_82 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_82, 0, x_81); +lean_ctor_set(x_82, 1, x_56); +return x_82; +} +} +} +} +} +static lean_object* _init_l_unexpandMkArray8___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(15u); +x_2 = lean_mk_empty_array_with_capacity(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_unexpandMkArray8(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__4; +lean_inc(x_1); +x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +lean_dec(x_1); +x_6 = lean_box(0); +x_7 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_7, 0, x_6); +lean_ctor_set(x_7, 1, x_3); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_unsigned_to_nat(1u); +x_9 = l_Lean_Syntax_getArg(x_1, x_8); +lean_dec(x_1); +x_10 = lean_unsigned_to_nat(8u); +lean_inc(x_9); +x_11 = l_Lean_Syntax_matchesNull(x_9, x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_dec(x_9); +lean_dec(x_2); +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_3); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; uint8_t x_30; +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Lean_Syntax_getArg(x_9, x_14); +x_16 = l_Lean_Syntax_getArg(x_9, x_8); +x_17 = lean_unsigned_to_nat(2u); +x_18 = l_Lean_Syntax_getArg(x_9, x_17); +x_19 = lean_unsigned_to_nat(3u); +x_20 = l_Lean_Syntax_getArg(x_9, x_19); +x_21 = lean_unsigned_to_nat(4u); +x_22 = l_Lean_Syntax_getArg(x_9, x_21); +x_23 = lean_unsigned_to_nat(5u); +x_24 = l_Lean_Syntax_getArg(x_9, x_23); +x_25 = lean_unsigned_to_nat(6u); +x_26 = l_Lean_Syntax_getArg(x_9, x_25); +x_27 = lean_unsigned_to_nat(7u); +x_28 = l_Lean_Syntax_getArg(x_9, x_27); +lean_dec(x_9); +x_29 = l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______unexpand__Function__comp__1___spec__1(x_2, x_3); +x_30 = !lean_is_exclusive(x_29); +if (x_30 == 0) +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_31 = lean_ctor_get(x_29, 0); +x_32 = l_unexpandListToArray___closed__3; +lean_inc(x_31); +x_33 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_32); +x_34 = l_unexpandListCons___closed__1; +lean_inc(x_31); +x_35 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_35, 0, x_31); +lean_ctor_set(x_35, 1, x_34); +x_36 = l_unexpandMkArray8___closed__1; +x_37 = lean_array_push(x_36, x_15); +lean_inc(x_35); +x_38 = lean_array_push(x_37, x_35); +x_39 = lean_array_push(x_38, x_16); +lean_inc(x_35); +x_40 = lean_array_push(x_39, x_35); +x_41 = lean_array_push(x_40, x_18); +lean_inc(x_35); +x_42 = lean_array_push(x_41, x_35); +x_43 = lean_array_push(x_42, x_20); +lean_inc(x_35); +x_44 = lean_array_push(x_43, x_35); +x_45 = lean_array_push(x_44, x_22); +lean_inc(x_35); +x_46 = lean_array_push(x_45, x_35); +x_47 = lean_array_push(x_46, x_24); +lean_inc(x_35); +x_48 = lean_array_push(x_47, x_35); +x_49 = lean_array_push(x_48, x_26); +x_50 = lean_array_push(x_49, x_35); +x_51 = lean_array_push(x_50, x_28); +x_52 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_31); +x_53 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_53, 0, x_31); +lean_ctor_set(x_53, 1, x_52); +lean_ctor_set(x_53, 2, x_51); +x_54 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_31); +x_55 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_55, 0, x_31); +lean_ctor_set(x_55, 1, x_54); +x_56 = l_Array_mkArray3___rarg(x_33, x_53, x_55); +x_57 = l_unexpandListToArray___closed__2; +x_58 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_58, 0, x_31); +lean_ctor_set(x_58, 1, x_57); +lean_ctor_set(x_58, 2, x_56); +lean_ctor_set(x_29, 0, x_58); +return x_29; +} +else +{ +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; +x_59 = lean_ctor_get(x_29, 0); +x_60 = lean_ctor_get(x_29, 1); +lean_inc(x_60); +lean_inc(x_59); +lean_dec(x_29); +x_61 = l_unexpandListToArray___closed__3; +lean_inc(x_59); +x_62 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_62, 0, x_59); +lean_ctor_set(x_62, 1, x_61); +x_63 = l_unexpandListCons___closed__1; +lean_inc(x_59); +x_64 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_64, 0, x_59); +lean_ctor_set(x_64, 1, x_63); +x_65 = l_unexpandMkArray8___closed__1; +x_66 = lean_array_push(x_65, x_15); +lean_inc(x_64); +x_67 = lean_array_push(x_66, x_64); +x_68 = lean_array_push(x_67, x_16); +lean_inc(x_64); +x_69 = lean_array_push(x_68, x_64); +x_70 = lean_array_push(x_69, x_18); +lean_inc(x_64); +x_71 = lean_array_push(x_70, x_64); +x_72 = lean_array_push(x_71, x_20); +lean_inc(x_64); +x_73 = lean_array_push(x_72, x_64); +x_74 = lean_array_push(x_73, x_22); +lean_inc(x_64); +x_75 = lean_array_push(x_74, x_64); +x_76 = lean_array_push(x_75, x_24); +lean_inc(x_64); +x_77 = lean_array_push(x_76, x_64); +x_78 = lean_array_push(x_77, x_26); +x_79 = lean_array_push(x_78, x_64); +x_80 = lean_array_push(x_79, x_28); +x_81 = l_Lean___aux__Init__NotationExtra______macroRules__Lean__termMacro_x2etrace_x5b___x5d____1___closed__16; +lean_inc(x_59); +x_82 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_82, 0, x_59); +lean_ctor_set(x_82, 1, x_81); +lean_ctor_set(x_82, 2, x_80); +x_83 = l_Lean_termMacro_x2etrace_x5b___x5d_____closed__12; +lean_inc(x_59); +x_84 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_84, 0, x_59); +lean_ctor_set(x_84, 1, x_83); +x_85 = l_Array_mkArray3___rarg(x_62, x_82, x_84); +x_86 = l_unexpandListToArray___closed__2; +x_87 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_87, 0, x_59); +lean_ctor_set(x_87, 1, x_86); +lean_ctor_set(x_87, 2, x_85); +x_88 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_88, 0, x_87); +lean_ctor_set(x_88, 1, x_60); +return x_88; +} +} +} +} +} static lean_object* _init_l_tacticFunext_______closed__1() { _start: { @@ -19423,6 +22190,20 @@ l_unexpandGetElem_x3f___closed__2 = _init_l_unexpandGetElem_x3f___closed__2(); lean_mark_persistent(l_unexpandGetElem_x3f___closed__2); l_unexpandGetElem_x3f___closed__3 = _init_l_unexpandGetElem_x3f___closed__3(); lean_mark_persistent(l_unexpandGetElem_x3f___closed__3); +l_unexpandMkStr1___closed__1 = _init_l_unexpandMkStr1___closed__1(); +lean_mark_persistent(l_unexpandMkStr1___closed__1); +l_unexpandMkStr1___closed__2 = _init_l_unexpandMkStr1___closed__2(); +lean_mark_persistent(l_unexpandMkStr1___closed__2); +l_unexpandMkStr1___closed__3 = _init_l_unexpandMkStr1___closed__3(); +lean_mark_persistent(l_unexpandMkStr1___closed__3); +l_unexpandMkArray5___closed__1 = _init_l_unexpandMkArray5___closed__1(); +lean_mark_persistent(l_unexpandMkArray5___closed__1); +l_unexpandMkArray6___closed__1 = _init_l_unexpandMkArray6___closed__1(); +lean_mark_persistent(l_unexpandMkArray6___closed__1); +l_unexpandMkArray7___closed__1 = _init_l_unexpandMkArray7___closed__1(); +lean_mark_persistent(l_unexpandMkArray7___closed__1); +l_unexpandMkArray8___closed__1 = _init_l_unexpandMkArray8___closed__1(); +lean_mark_persistent(l_unexpandMkArray8___closed__1); l_tacticFunext_______closed__1 = _init_l_tacticFunext_______closed__1(); lean_mark_persistent(l_tacticFunext_______closed__1); l_tacticFunext_______closed__2 = _init_l_tacticFunext_______closed__2(); diff --git a/stage0/stdlib/Lean/Compiler/LCNF.c b/stage0/stdlib/Lean/Compiler/LCNF.c index 0da8ed0efd..3355059b03 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF.c +++ b/stage0/stdlib/Lean/Compiler/LCNF.c @@ -1,6 +1,6 @@ // Lean compiler output // Module: Lean.Compiler.LCNF -// Imports: Init Lean.Compiler.LCNF.AlphaEqv Lean.Compiler.LCNF.Basic Lean.Compiler.LCNF.Bind Lean.Compiler.LCNF.Check Lean.Compiler.LCNF.CompilerM Lean.Compiler.LCNF.CSE Lean.Compiler.LCNF.DependsOn Lean.Compiler.LCNF.ElimDead Lean.Compiler.LCNF.FixedArgs Lean.Compiler.LCNF.InferType Lean.Compiler.LCNF.JoinPoints Lean.Compiler.LCNF.LCtx Lean.Compiler.LCNF.Level Lean.Compiler.LCNF.Main Lean.Compiler.LCNF.Passes Lean.Compiler.LCNF.PassManager Lean.Compiler.LCNF.PhaseExt Lean.Compiler.LCNF.PrettyPrinter Lean.Compiler.LCNF.PullFunDecls Lean.Compiler.LCNF.PullLetDecls Lean.Compiler.LCNF.ReduceJpArity Lean.Compiler.LCNF.Simp Lean.Compiler.LCNF.Specialize Lean.Compiler.LCNF.SpecInfo Lean.Compiler.LCNF.Testing Lean.Compiler.LCNF.ToDecl Lean.Compiler.LCNF.ToExpr Lean.Compiler.LCNF.ToLCNF Lean.Compiler.LCNF.Types Lean.Compiler.LCNF.Util Lean.Compiler.LCNF.ConfigOptions Lean.Compiler.LCNF.ForEachExpr +// Imports: Init Lean.Compiler.LCNF.AlphaEqv Lean.Compiler.LCNF.Basic Lean.Compiler.LCNF.Bind Lean.Compiler.LCNF.Check Lean.Compiler.LCNF.CompilerM Lean.Compiler.LCNF.CSE Lean.Compiler.LCNF.DependsOn Lean.Compiler.LCNF.ElimDead Lean.Compiler.LCNF.FixedArgs Lean.Compiler.LCNF.InferType Lean.Compiler.LCNF.JoinPoints Lean.Compiler.LCNF.LCtx Lean.Compiler.LCNF.Level Lean.Compiler.LCNF.Main Lean.Compiler.LCNF.Passes Lean.Compiler.LCNF.PassManager Lean.Compiler.LCNF.PhaseExt Lean.Compiler.LCNF.PrettyPrinter Lean.Compiler.LCNF.PullFunDecls Lean.Compiler.LCNF.PullLetDecls Lean.Compiler.LCNF.ReduceJpArity Lean.Compiler.LCNF.Simp Lean.Compiler.LCNF.Specialize Lean.Compiler.LCNF.SpecInfo Lean.Compiler.LCNF.Testing Lean.Compiler.LCNF.ToDecl Lean.Compiler.LCNF.ToExpr Lean.Compiler.LCNF.ToLCNF Lean.Compiler.LCNF.Types Lean.Compiler.LCNF.Util Lean.Compiler.LCNF.ConfigOptions Lean.Compiler.LCNF.ForEachExpr Lean.Compiler.LCNF.MonoTypes #include #if defined(__clang__) #pragma clang diagnostic ignored "-Wunused-parameter" @@ -46,6 +46,7 @@ lean_object* initialize_Lean_Compiler_LCNF_Types(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_Util(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_ConfigOptions(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_ForEachExpr(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_MonoTypes(uint8_t builtin, lean_object*); static bool _G_initialized = false; LEAN_EXPORT lean_object* initialize_Lean_Compiler_LCNF(uint8_t builtin, lean_object* w) { lean_object * res; @@ -150,6 +151,9 @@ lean_dec_ref(res); res = initialize_Lean_Compiler_LCNF_ForEachExpr(builtin, lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_MonoTypes(builtin, 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)); } #ifdef __cplusplus diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Basic.c b/stage0/stdlib/Lean/Compiler/LCNF/Basic.c index cf58cf2e26..850e1c2566 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Basic.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Basic.c @@ -22,11 +22,11 @@ size_t lean_usize_add(size_t, size_t); static lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_collectExpr___closed__1; static lean_object* l_Lean_Compiler_LCNF_instInhabitedParam___closed__2; LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateReturnImp(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_List_beq___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____spec__1___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Code_forM_go___spec__1___rarg___lambda__1(size_t, lean_object*, lean_object*, lean_object*, size_t, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_attachCodeDecls_go___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_mk_empty_array_with_capacity(lean_object*); static lean_object* l_Lean_Compiler_LCNF_attachCodeDecls_go___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_AltCore_getParams(lean_object*); LEAN_EXPORT lean_object* l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_eqAlt___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateContImp___closed__1; LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Code_size_go___spec__1(lean_object*, size_t, size_t, lean_object*); @@ -67,7 +67,7 @@ lean_object* lean_array_get_size(lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Code_collectUsed___spec__1(lean_object*, size_t, size_t, lean_object*); LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqLetDecl____x40_Lean_Compiler_LCNF_Basic___hyg_282_(lean_object*, lean_object*); static lean_object* l_panic___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_collectExpr___spec__3___closed__1; -LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646_(lean_object*, lean_object*); +LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694_(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_size(lean_object*); LEAN_EXPORT uint8_t l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_eqAlt___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(lean_object*, lean_object*); @@ -92,6 +92,7 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instInhabitedAltCore(lean_object*) LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_markRecDecls___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__2; LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_markRecDecls_go___spec__1(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_AltCore_getParams___boxed(lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltsImp___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_markRecDecls_visit___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instBEqFunDecl; @@ -118,22 +119,21 @@ extern lean_object* l_Lean_instFVarIdSetInhabited; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_getArity(lean_object*); static lean_object* l_Lean_Compiler_LCNF_instInhabitedCodeDecl___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_collectUsedAtExpr(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams_instAlt(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_AltCore_forCodeM(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_attachCodeDecls___boxed(lean_object*, lean_object*); +LEAN_EXPORT uint8_t l_List_beq___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_collectParams(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____boxed(lean_object*, lean_object*); lean_object* l_instInhabitedForAll__1___rarg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_isFun___boxed(lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateJmpImp___closed__2; +LEAN_EXPORT lean_object* l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instBEqLetDecl___closed__1; static lean_object* l_Lean_Compiler_LCNF_attachCodeDecls_go___closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instInhabitedLetDecl; LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Code_sizeLe_go___spec__1(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_markRecDecls(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams_instExpr(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT uint8_t l_List_beq___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____spec__1(lean_object*, lean_object*); uint8_t l_Lean_Name_quickCmp(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_CasesCore_extractAlt_x21___closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_FunDeclCore_collectUsed(lean_object*, lean_object*); @@ -143,6 +143,7 @@ LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_ LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_eqImp___boxed(lean_object*, lean_object*); LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_eqImp(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_FunDeclCore_getArity(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams_instLetDecl___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instBEqCode___closed__1; static lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateReturnImp___closed__2; @@ -160,6 +161,7 @@ lean_object* l_Lean_Expr_bvar___override(lean_object*); LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at_Lean_Compiler_LCNF_markRecDecls_visit___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instInhabitedDecl___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams_instParams___lambda__1(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT uint8_t l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_insert___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_collectExpr___spec__1(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Code_forM_go___spec__1___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_CasesCore_getCtorNames___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -211,6 +213,7 @@ LEAN_EXPORT uint8_t l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__ LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltsImp(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_size_go(lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateCasesImp___closed__2; +LEAN_EXPORT lean_object* l_List_beq___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____spec__1___boxed(lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateUnreachImp___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams_instFunDecl(lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateLetImp___closed__2; @@ -235,7 +238,6 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams_i LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_forM(lean_object*); LEAN_EXPORT lean_object* l_panic___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_collectExpr___spec__3(lean_object*, lean_object*); lean_object* l_Lean_Expr_getAppFn(lean_object*); -LEAN_EXPORT uint8_t l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateUnreachImp(lean_object*, lean_object*); lean_object* l_Array_findIdx_x3f_loop___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_CasesCore_extractAlt_x21___spec__1(lean_object*); @@ -1777,6 +1779,33 @@ lean_dec(x_1); return x_2; } } +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_AltCore_getParams(lean_object* x_1) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_2; +x_2 = lean_ctor_get(x_1, 1); +lean_inc(x_2); +return x_2; +} +else +{ +lean_object* x_3; +x_3 = l_Lean_Compiler_LCNF_instInhabitedAltCore___rarg___closed__1; +return x_3; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_AltCore_getParams___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Compiler_LCNF_AltCore_getParams(x_1); +lean_dec(x_1); +return x_2; +} +} LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_AltCore_forCodeM___rarg(lean_object* x_1, lean_object* x_2) { _start: { @@ -1954,7 +1983,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___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__1; x_2 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__2; -x_3 = lean_unsigned_to_nat(165u); +x_3 = lean_unsigned_to_nat(169u); x_4 = lean_unsigned_to_nat(9u); x_5 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -2085,7 +2114,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___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__1; x_2 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltsImp___closed__1; -x_3 = lean_unsigned_to_nat(172u); +x_3 = lean_unsigned_to_nat(176u); x_4 = lean_unsigned_to_nat(9u); x_5 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -2218,7 +2247,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___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__1; x_2 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateCasesImp___closed__1; -x_3 = lean_unsigned_to_nat(179u); +x_3 = lean_unsigned_to_nat(183u); x_4 = lean_unsigned_to_nat(9u); x_5 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -2489,7 +2518,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___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__1; x_2 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateLetImp___closed__1; -x_3 = lean_unsigned_to_nat(186u); +x_3 = lean_unsigned_to_nat(190u); x_4 = lean_unsigned_to_nat(9u); x_5 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -2602,7 +2631,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___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__1; x_2 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateContImp___closed__1; -x_3 = lean_unsigned_to_nat(195u); +x_3 = lean_unsigned_to_nat(199u); x_4 = lean_unsigned_to_nat(9u); x_5 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -2765,7 +2794,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___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__1; x_2 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateFunImp___closed__1; -x_3 = lean_unsigned_to_nat(203u); +x_3 = lean_unsigned_to_nat(207u); x_4 = lean_unsigned_to_nat(9u); x_5 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -2957,7 +2986,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___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__1; x_2 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateReturnImp___closed__1; -x_3 = lean_unsigned_to_nat(210u); +x_3 = lean_unsigned_to_nat(214u); x_4 = lean_unsigned_to_nat(9u); x_5 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -3026,7 +3055,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___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__1; x_2 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateJmpImp___closed__1; -x_3 = lean_unsigned_to_nat(217u); +x_3 = lean_unsigned_to_nat(221u); x_4 = lean_unsigned_to_nat(9u); x_5 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -3137,7 +3166,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___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__1; x_2 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateUnreachImp___closed__1; -x_3 = lean_unsigned_to_nat(224u); +x_3 = lean_unsigned_to_nat(228u); x_4 = lean_unsigned_to_nat(9u); x_5 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -3591,7 +3620,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___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__1; x_2 = l_Lean_Compiler_LCNF_CasesCore_extractAlt_x21___closed__2; -x_3 = lean_unsigned_to_nat(274u); +x_3 = lean_unsigned_to_nat(278u); x_4 = lean_unsigned_to_nat(4u); x_5 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -4901,7 +4930,7 @@ x_1 = l_Lean_Compiler_LCNF_instInhabitedDecl___closed__1; return x_1; } } -LEAN_EXPORT uint8_t l_List_beq___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____spec__1(lean_object* x_1, lean_object* x_2) { +LEAN_EXPORT uint8_t l_List_beq___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____spec__1(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) @@ -4951,7 +4980,7 @@ goto _start; } } } -LEAN_EXPORT uint8_t l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____spec__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_EXPORT uint8_t l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____spec__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) { _start: { lean_object* x_7; uint8_t x_8; @@ -4993,7 +5022,7 @@ goto _start; } } } -LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646_(lean_object* x_1, lean_object* x_2) { +LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694_(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; uint8_t x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; uint8_t x_16; lean_object* x_17; uint8_t x_21; @@ -5032,7 +5061,7 @@ return x_22; else { uint8_t x_23; -x_23 = l_List_beq___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____spec__1(x_4, x_11); +x_23 = l_List_beq___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____spec__1(x_4, x_11); lean_dec(x_4); if (x_23 == 0) { @@ -5076,7 +5105,7 @@ else { lean_object* x_31; uint8_t x_32; x_31 = lean_unsigned_to_nat(0u); -x_32 = l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____spec__2(x_6, x_13, lean_box(0), x_6, x_13, x_31); +x_32 = l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____spec__2(x_6, x_13, lean_box(0), x_6, x_13, x_31); lean_dec(x_6); if (x_32 == 0) { @@ -5160,22 +5189,22 @@ return x_16; } } } -LEAN_EXPORT lean_object* l_List_beq___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____spec__1___boxed(lean_object* x_1, lean_object* x_2) { +LEAN_EXPORT lean_object* l_List_beq___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; lean_object* x_4; -x_3 = l_List_beq___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____spec__1(x_1, x_2); +x_3 = l_List_beq___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____spec__1(x_1, x_2); lean_dec(x_2); lean_dec(x_1); x_4 = lean_box(x_3); return x_4; } } -LEAN_EXPORT lean_object* l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____spec__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_EXPORT lean_object* l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____spec__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) { _start: { uint8_t x_7; lean_object* x_8; -x_7 = l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____spec__2(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Array_isEqvAux___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____spec__2(x_1, x_2, x_3, x_4, x_5, x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); @@ -5184,11 +5213,11 @@ x_8 = lean_box(x_7); return x_8; } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____boxed(lean_object* x_1, lean_object* x_2) { +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; lean_object* x_4; -x_3 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646_(x_1, x_2); +x_3 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694_(x_1, x_2); lean_dec(x_2); x_4 = lean_box(x_3); return x_4; @@ -5198,7 +5227,7 @@ static lean_object* _init_l_Lean_Compiler_LCNF_instBEqDecl___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646____boxed), 2, 0); +x_1 = lean_alloc_closure((void*)(l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694____boxed), 2, 0); return x_1; } } @@ -8588,7 +8617,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___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__1; x_2 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_collectExpr___closed__1; -x_3 = lean_unsigned_to_nat(472u); +x_3 = lean_unsigned_to_nat(476u); x_4 = lean_unsigned_to_nat(24u); x_5 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Bind.c b/stage0/stdlib/Lean/Compiler/LCNF/Bind.c index f4fc0d2851..38dda8c781 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Bind.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Bind.c @@ -20,6 +20,7 @@ lean_object* l_Lean_stringToMessageData(lean_object*); lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); lean_object* lean_array_uget(lean_object*, size_t); +lean_object* l_Lean_Compiler_LCNF_mkLcCast(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__3(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mkNewParams_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_append___rarg(lean_object*, lean_object*); @@ -28,13 +29,12 @@ LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_CompilerM_cod static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__2___closed__4; LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_FunDeclCore_isEtaExpandCandidate(lean_object*); lean_object* lean_array_uset(lean_object*, size_t, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_etaExpandCore___lambda__1___closed__1; +uint8_t l_Lean_Expr_isErased(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instMonadCodeBindStateRefT_x27(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__2___closed__5; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_CompilerM_codeBind_go___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instMonadCodeBindCompilerM; -static lean_object* l_Lean_Compiler_LCNF_etaExpandCore___lambda__1___closed__2; lean_object* l_Lean_Compiler_LCNF_eraseParam(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instMonadCodeBindReaderT___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_mkCasesResultType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -49,6 +49,8 @@ lean_object* l_Lean_Compiler_LCNF_Code_inferType(lean_object*, lean_object*, lea static lean_object* l_Lean_Compiler_LCNF_CompilerM_codeBind_go___closed__4; lean_object* l_Lean_mkAppN(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_Code_inferParamType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_Compiler_LCNF_erasedExpr; +static lean_object* l_Lean_Compiler_LCNF_Code_ensureAnyType___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_CompilerM_codeBind_go___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_Compiler_LCNF_instMonadCodeBindReaderT___rarg___lambda__1(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_CompilerM_codeBind(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -63,6 +65,7 @@ uint8_t l_Lean_Name_quickCmp(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_FunDeclCore_etaExpand(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Array_isEmpty___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_findCore___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__1(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_ensureAnyType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_etaExpandCore(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_RBNode_insert___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_collectExpr___spec__1(lean_object*, lean_object*, lean_object*); @@ -77,6 +80,7 @@ uint8_t lean_expr_eqv(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_eraseCode(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_LCtx_toLocalContext(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__2___closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_etaExpandCore_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_expr_instantiate_rev(lean_object*, lean_object*); @@ -85,6 +89,8 @@ static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_CompilerM_codeBind LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_etaExpandCore___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_findCore___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(size_t, size_t, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1___closed__2; +static lean_object* l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instMonadCodeBindReaderT(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_mkAuxParam(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_CompilerM_codeBind_go___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -1899,6 +1905,242 @@ lean_dec(x_4); return x_5; } } +static lean_object* _init_l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("_x", 2); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1___closed__1; +x_3 = l_Lean_Name_str___override(x_1, x_2); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_ensureAnyType___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) { +_start: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_7 = l_Lean_Expr_fvar___override(x_1); +x_8 = l_Lean_Compiler_LCNF_erasedExpr; +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +x_9 = l_Lean_Compiler_LCNF_mkLcCast(x_7, x_8, x_2, x_3, x_4, x_5, x_6); +if (lean_obj_tag(x_9) == 0) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = lean_ctor_get(x_9, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1___closed__2; +x_13 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_10, x_12, x_2, x_3, x_4, x_5, x_11); +if (lean_obj_tag(x_13) == 0) +{ +uint8_t x_14; +x_14 = !lean_is_exclusive(x_13); +if (x_14 == 0) +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_15 = lean_ctor_get(x_13, 0); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +x_17 = lean_alloc_ctor(5, 1, 0); +lean_ctor_set(x_17, 0, x_16); +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_15); +lean_ctor_set(x_18, 1, x_17); +lean_ctor_set(x_13, 0, x_18); +return x_13; +} +else +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_19 = lean_ctor_get(x_13, 0); +x_20 = lean_ctor_get(x_13, 1); +lean_inc(x_20); +lean_inc(x_19); +lean_dec(x_13); +x_21 = lean_ctor_get(x_19, 0); +lean_inc(x_21); +x_22 = lean_alloc_ctor(5, 1, 0); +lean_ctor_set(x_22, 0, x_21); +x_23 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_23, 0, x_19); +lean_ctor_set(x_23, 1, x_22); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_20); +return x_24; +} +} +else +{ +uint8_t x_25; +x_25 = !lean_is_exclusive(x_13); +if (x_25 == 0) +{ +return x_13; +} +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_13, 0); +x_27 = lean_ctor_get(x_13, 1); +lean_inc(x_27); +lean_inc(x_26); +lean_dec(x_13); +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; +} +} +} +else +{ +uint8_t x_29; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_29 = !lean_is_exclusive(x_9); +if (x_29 == 0) +{ +return x_9; +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_9, 0); +x_31 = lean_ctor_get(x_9, 1); +lean_inc(x_31); +lean_inc(x_30); +lean_dec(x_9); +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; +} +} +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Code_ensureAnyType___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1), 6, 0); +return x_1; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_ensureAnyType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +lean_inc(x_1); +x_7 = l_Lean_Compiler_LCNF_Code_inferType(x_1, x_2, x_3, x_4, x_5, x_6); +if (lean_obj_tag(x_7) == 0) +{ +uint8_t x_8; +x_8 = !lean_is_exclusive(x_7); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_9 = lean_ctor_get(x_7, 0); +x_10 = lean_ctor_get(x_7, 1); +x_11 = l_Lean_Expr_isErased(x_9); +lean_dec(x_9); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +lean_free_object(x_7); +x_12 = l_Lean_Compiler_LCNF_Code_ensureAnyType___closed__1; +x_13 = l_Lean_Compiler_LCNF_CompilerM_codeBind(x_1, x_12, x_2, x_3, x_4, x_5, x_10); +return x_13; +} +else +{ +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_ctor_set(x_7, 0, x_1); +return x_7; +} +} +else +{ +lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_14 = lean_ctor_get(x_7, 0); +x_15 = lean_ctor_get(x_7, 1); +lean_inc(x_15); +lean_inc(x_14); +lean_dec(x_7); +x_16 = l_Lean_Expr_isErased(x_14); +lean_dec(x_14); +if (x_16 == 0) +{ +lean_object* x_17; lean_object* x_18; +x_17 = l_Lean_Compiler_LCNF_Code_ensureAnyType___closed__1; +x_18 = l_Lean_Compiler_LCNF_CompilerM_codeBind(x_1, x_17, x_2, x_3, x_4, x_5, x_15); +return x_18; +} +else +{ +lean_object* x_19; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_1); +lean_ctor_set(x_19, 1, x_15); +return x_19; +} +} +} +else +{ +uint8_t x_20; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_20 = !lean_is_exclusive(x_7); +if (x_20 == 0) +{ +return x_7; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_7, 0); +x_22 = lean_ctor_get(x_7, 1); +lean_inc(x_22); +lean_inc(x_21); +lean_dec(x_7); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_21); +lean_ctor_set(x_23, 1, x_22); +return x_23; +} +} +} +} static lean_object* _init_l_Lean_Compiler_LCNF_mkNewParams_go___closed__1() { _start: { @@ -2047,31 +2289,13 @@ x_3 = lean_box(x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_etaExpandCore___lambda__1___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("_x", 2); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_etaExpandCore___lambda__1___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Compiler_LCNF_etaExpandCore___lambda__1___closed__1; -x_3 = l_Lean_Name_str___override(x_1, x_2); -return x_3; -} -} LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_etaExpandCore___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: { lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; x_8 = l_Lean_Expr_fvar___override(x_2); x_9 = l_Lean_mkAppN(x_8, x_1); -x_10 = l_Lean_Compiler_LCNF_etaExpandCore___lambda__1___closed__2; +x_10 = l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1___closed__2; x_11 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_9, x_10, x_3, x_4, x_5, x_6, x_7); if (lean_obj_tag(x_11) == 0) { @@ -2646,12 +2870,14 @@ l_Lean_Compiler_LCNF_instMonadCodeBindCompilerM___closed__1 = _init_l_Lean_Compi lean_mark_persistent(l_Lean_Compiler_LCNF_instMonadCodeBindCompilerM___closed__1); l_Lean_Compiler_LCNF_instMonadCodeBindCompilerM = _init_l_Lean_Compiler_LCNF_instMonadCodeBindCompilerM(); lean_mark_persistent(l_Lean_Compiler_LCNF_instMonadCodeBindCompilerM); +l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1___closed__1 = _init_l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1___closed__1); +l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1___closed__2 = _init_l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Code_ensureAnyType___lambda__1___closed__2); +l_Lean_Compiler_LCNF_Code_ensureAnyType___closed__1 = _init_l_Lean_Compiler_LCNF_Code_ensureAnyType___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Code_ensureAnyType___closed__1); l_Lean_Compiler_LCNF_mkNewParams_go___closed__1 = _init_l_Lean_Compiler_LCNF_mkNewParams_go___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_mkNewParams_go___closed__1); -l_Lean_Compiler_LCNF_etaExpandCore___lambda__1___closed__1 = _init_l_Lean_Compiler_LCNF_etaExpandCore___lambda__1___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_etaExpandCore___lambda__1___closed__1); -l_Lean_Compiler_LCNF_etaExpandCore___lambda__1___closed__2 = _init_l_Lean_Compiler_LCNF_etaExpandCore___lambda__1___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_etaExpandCore___lambda__1___closed__2); return lean_io_result_mk_ok(lean_box(0)); } #ifdef __cplusplus diff --git a/stage0/stdlib/Lean/Compiler/LCNF/CSE.c b/stage0/stdlib/Lean/Compiler/LCNF/CSE.c index 650264d26f..17fe8691b4 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/CSE.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/CSE.c @@ -68,8 +68,10 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCN lean_object* lean_st_ref_take(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Code_cse_goFunDecl___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Code_cse_go___spec__6(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_CSE_State_subst___default___spec__1(lean_object*); lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_CSE_State_subst___default___spec__1___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_CSE_addEntry___spec__2(lean_object*, size_t, size_t, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_CSE_replaceLet___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Code_cse_goFunDecl___spec__1(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -80,7 +82,6 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_ uint64_t l_Lean_Expr_hash(lean_object*); size_t lean_usize_shift_left(size_t, size_t); lean_object* l_Lean_Compiler_LCNF_Pass_mkPerDeclaration(lean_object*, lean_object*, uint8_t, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_CSE_State_subst___default___closed__1; static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_CSE_addEntry___spec__2___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_cse(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Code_cse_go___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -119,6 +120,7 @@ lean_object* l_Lean_PersistentHashMap_mkEmptyEntries(lean_object*, lean_object*) LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_cse; LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Code_cse_go___spec__3(lean_object*, size_t, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Code_cse___closed__1; +static lean_object* l_Lean_Compiler_LCNF_Code_cse___closed__2; lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(lean_object*, uint8_t, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_CSE_State_subst___default; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_cse_go___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -171,7 +173,15 @@ x_1 = l_Lean_Compiler_LCNF_CSE_State_map___default___closed__3; return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_CSE_State_subst___default___closed__1() { +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_CSE_State_subst___default___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_mkHashMapImp___rarg(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_CSE_State_subst___default() { _start: { lean_object* x_1; lean_object* x_2; @@ -180,12 +190,13 @@ x_2 = l_Lean_mkHashMapImp___rarg(x_1); return x_2; } } -static lean_object* _init_l_Lean_Compiler_LCNF_CSE_State_subst___default() { +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_CSE_State_subst___default___spec__1___boxed(lean_object* x_1) { _start: { -lean_object* x_1; -x_1 = l_Lean_Compiler_LCNF_CSE_State_subst___default___closed__1; -return x_1; +lean_object* x_2; +x_2 = l_Lean_mkHashMap___at_Lean_Compiler_LCNF_CSE_State_subst___default___spec__1(x_1); +lean_dec(x_1); +return x_2; } } LEAN_EXPORT lean_object* l_StateRefT_x27_get___at_Lean_Compiler_LCNF_CSE_instMonadFVarSubstMFalse___spec__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) { @@ -4976,9 +4987,18 @@ return x_10; static lean_object* _init_l_Lean_Compiler_LCNF_Code_cse___closed__1() { _start: { +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(0u); +x_2 = l_Lean_mkHashMapImp___rarg(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Code_cse___closed__2() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Compiler_LCNF_CSE_State_map___default___closed__3; -x_2 = l_Lean_Compiler_LCNF_CSE_State_subst___default___closed__1; +x_2 = l_Lean_Compiler_LCNF_Code_cse___closed__1; x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); lean_ctor_set(x_3, 1, x_2); @@ -4993,7 +5013,7 @@ x_7 = lean_st_ref_get(x_5, x_6); x_8 = lean_ctor_get(x_7, 1); lean_inc(x_8); lean_dec(x_7); -x_9 = l_Lean_Compiler_LCNF_Code_cse___closed__1; +x_9 = l_Lean_Compiler_LCNF_Code_cse___closed__2; x_10 = lean_st_mk_ref(x_9, x_8); x_11 = lean_ctor_get(x_10, 0); lean_inc(x_11); @@ -5317,8 +5337,6 @@ l_Lean_Compiler_LCNF_CSE_State_map___default___closed__3 = _init_l_Lean_Compiler lean_mark_persistent(l_Lean_Compiler_LCNF_CSE_State_map___default___closed__3); l_Lean_Compiler_LCNF_CSE_State_map___default = _init_l_Lean_Compiler_LCNF_CSE_State_map___default(); lean_mark_persistent(l_Lean_Compiler_LCNF_CSE_State_map___default); -l_Lean_Compiler_LCNF_CSE_State_subst___default___closed__1 = _init_l_Lean_Compiler_LCNF_CSE_State_subst___default___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_CSE_State_subst___default___closed__1); l_Lean_Compiler_LCNF_CSE_State_subst___default = _init_l_Lean_Compiler_LCNF_CSE_State_subst___default(); lean_mark_persistent(l_Lean_Compiler_LCNF_CSE_State_subst___default); l_Lean_Compiler_LCNF_CSE_instMonadFVarSubstMFalse___closed__1 = _init_l_Lean_Compiler_LCNF_CSE_instMonadFVarSubstMFalse___closed__1(); @@ -5337,6 +5355,8 @@ l_Lean_Compiler_LCNF_Code_cse_go___closed__2 = _init_l_Lean_Compiler_LCNF_Code_c lean_mark_persistent(l_Lean_Compiler_LCNF_Code_cse_go___closed__2); l_Lean_Compiler_LCNF_Code_cse___closed__1 = _init_l_Lean_Compiler_LCNF_Code_cse___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_Code_cse___closed__1); +l_Lean_Compiler_LCNF_Code_cse___closed__2 = _init_l_Lean_Compiler_LCNF_Code_cse___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Code_cse___closed__2); l_Lean_Compiler_LCNF_cse___closed__1 = _init_l_Lean_Compiler_LCNF_cse___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_cse___closed__1); l_Lean_Compiler_LCNF_cse___closed__2 = _init_l_Lean_Compiler_LCNF_cse___closed__2(); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Check.c b/stage0/stdlib/Lean/Compiler/LCNF/Check.c index f1b7aedb38..72c9702306 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Check.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Check.c @@ -44,6 +44,7 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Check_checkExpr(lean_object*, lean LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_Check_checkAppArgs___spec__3___lambda__5(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*); lean_object* l_Lean_Compiler_LCNF_InferType_compatibleTypes(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_checkDeadLocalDecls___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_Lean_Expr_isErased(lean_object*); static lean_object* l_Lean_Compiler_LCNF_Check_check___closed__2; static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_Check_checkAppArgs___spec__3___lambda__5___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_checkDeadLocalDecls_visitParams___boxed(lean_object*, lean_object*); @@ -86,7 +87,6 @@ static lean_object* l_Lean_Compiler_LCNF_Check_check___closed__6; uint8_t lean_usize_dec_lt(size_t, size_t); static lean_object* l_Lean_Compiler_LCNF_Check_checkCases___closed__4; lean_object* l_Lean_mkHashSetImp___rarg(lean_object*); -lean_object* l_Lean_RBNode_findCore___at_Lean_Meta_ToHide_isMarked___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_Code_inferType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_levelZero; static lean_object* l_Lean_Compiler_LCNF_Check_run___rarg___closed__2; @@ -182,6 +182,7 @@ lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_ uint8_t l_Lean_Expr_isConst(lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Check_checkCases___spec__4___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*, lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_checkDeadLocalDecls___spec__6(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_RBNode_findCore___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Check_checkFunDecl___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*, lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_checkDeadLocalDecls___spec__4___boxed(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_Compiler_LCNF_Check_addFVarId___closed__1; @@ -252,7 +253,6 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Check_run___rarg(lean_object*, lea lean_object* l_Lean_Compiler_LCNF_getType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_nat_mul(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Check_withParams___spec__1(lean_object*, size_t, size_t, lean_object*); -uint8_t l_Lean_Expr_isAnyType(lean_object*); static lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Check_checkCases___spec__1___closed__3; static lean_object* l_Lean_Compiler_LCNF_Check_checkLetDecl___closed__3; lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); @@ -543,7 +543,7 @@ _start: { lean_object* x_10; lean_object* x_11; x_10 = lean_ctor_get(x_2, 1); -x_11 = l_Lean_RBNode_findCore___at_Lean_Meta_ToHide_isMarked___spec__1(x_10, x_1); +x_11 = l_Lean_RBNode_findCore___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__1(x_10, x_1); if (lean_obj_tag(x_11) == 0) { lean_object* x_12; @@ -1528,7 +1528,7 @@ uint8_t x_29; lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_29 = l_Lean_Expr_isAnyType(x_24); +x_29 = l_Lean_Expr_isErased(x_24); if (x_29 == 0) { lean_object* x_30; lean_object* x_31; @@ -1645,7 +1645,7 @@ if (lean_is_exclusive(x_23)) { x_26 = lean_box(0); } x_27 = lean_nat_dec_lt(x_6, x_3); -x_28 = l_Lean_Expr_isAnyType(x_24); +x_28 = l_Lean_Expr_isErased(x_24); if (x_27 == 0) { lean_object* x_52; lean_object* x_53; @@ -2557,7 +2557,7 @@ _start: { lean_object* x_10; lean_object* x_11; x_10 = lean_ctor_get(x_2, 0); -x_11 = l_Lean_RBNode_findCore___at_Lean_Meta_ToHide_isMarked___spec__1(x_10, x_1); +x_11 = l_Lean_RBNode_findCore___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__1(x_10, x_1); if (lean_obj_tag(x_11) == 0) { 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; @@ -7342,7 +7342,7 @@ lean_inc(x_14); x_15 = lean_ctor_get(x_13, 1); lean_inc(x_15); lean_dec(x_13); -x_16 = l_Lean_Expr_isAnyType(x_14); +x_16 = l_Lean_Expr_isErased(x_14); if (x_16 == 0) { lean_object* x_17; lean_object* x_18; diff --git a/stage0/stdlib/Lean/Compiler/LCNF/CompilerM.c b/stage0/stdlib/Lean/Compiler/LCNF/CompilerM.c index 8c4c86bcd7..492e5e4e42 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/CompilerM.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/CompilerM.c @@ -18,11 +18,9 @@ LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compil LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_CompilerM_instInhabitedContext; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_FunDeclCore_update_x27(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_normFunDeclImp___spec__4___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_Compiler_LCNF_Internalize_internalizeFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___rarg___lambda__1(lean_object*, uint8_t, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_CompilerM_instInhabitedContext___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normCodeImp___lambda__1(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_eraseParam___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normCode___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_add(size_t, size_t); @@ -32,8 +30,6 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams___rarg(uint8_t, lean_ob lean_object* l_Lean_stringToMessageData(lean_object*); lean_object* l_Lean_Expr_lam___override(lean_object*, lean_object*, lean_object*, uint8_t); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_normCodeImp___spec__1___rarg(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_internalize_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___closed__1; lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); lean_object* l_Lean_Expr_forallE___override(lean_object*, lean_object*, lean_object*, uint8_t); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateParamImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -47,21 +43,17 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___rarg(uint8_t, lean_obje LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_normCodeImp___spec__5(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint64_t l___private_Lean_Expr_0__Lean_hashFVarId____x40_Lean_Expr___hyg_1727_(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getPhase___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___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_throwError___at_Lean_Compiler_LCNF_getBinderName___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_withPhase___rarg(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_normCodeImp___spec__7(uint8_t); LEAN_EXPORT lean_object* l_Lean_HashMapImp_find_x3f___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go___spec__1(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_modify___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mkParam(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_normFunDeclImp___spec__2___rarg(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_CompilerM_run___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_normCodeImp___spec__9(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_uset(lean_object*, size_t, lean_object*); LEAN_EXPORT lean_object* l_ReaderT_read___at_Lean_Compiler_LCNF_instMonadFVarSubstNormalizerM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCode___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go___spec__2___boxed(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_cleanup(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normCode___rarg(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normFVar___rarg(uint8_t, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normCodeImp___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -82,8 +74,6 @@ static lean_object* l_Lean_Compiler_LCNF_CompilerM_instInhabitedContext___closed LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_normCodeImp___spec__11(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_normCodeImp___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_normCodeImp___spec__4___boxed(lean_object*, 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_Compiler_LCNF_Internalize_internalizeCode___spec__2(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_StateRefT_x27_get___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_normCodeImp___spec__3___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_normCodeImp___spec__10(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_modifyLCtx(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -92,15 +82,12 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF lean_object* lean_string_append(lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_goApp___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normFunDecl(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_internalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_normCodeImp___spec__3___rarg(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_normCodeImp___spec__7___rarg(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_eraseLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instAddMessageContextCompilerM___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_normCodeImp___spec__8(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(lean_object*, lean_object*); -uint8_t lean_usize_dec_lt(size_t, size_t); LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_getType___spec__2(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExprs(lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_addFVarSubst___spec__2___boxed(lean_object*, lean_object*); @@ -108,12 +95,9 @@ LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_getType___spe LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_replaceFVars(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_normParams___spec__1(lean_object*); static lean_object* l_Lean_Compiler_LCNF_instAddMessageContextCompilerM___closed__1; -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Phase_noConfusion___rarg___boxed(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__3___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_Compiler_LCNF_addFVarSubst___rarg___lambda__1(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_StateRefT_x27_get___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normFVar___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(lean_object*, lean_object*, lean_object*); size_t lean_uint64_to_usize(uint64_t); @@ -128,7 +112,6 @@ LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___a LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_CompilerM_run(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_normFunDeclImp___spec__2___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_replaceExprFVars___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_cleanup___closed__1; LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_getFunDecl___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* l_Lean_mkHashMapImp___rarg(lean_object*); @@ -140,12 +123,10 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_eraseCodeDecls___boxed(lean_object LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_eraseCode___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_normCodeImp___spec__9___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_Compiler_LCNF_normLetDecl(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCodeDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_take(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_normCodeImp___spec__7___boxed(lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_normFunDeclImp___spec__4(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_modify___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_headBeta(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___rarg___lambda__1(lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go___closed__4; @@ -158,31 +139,26 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___rarg___lambda__2(lea lean_object* l_Lean_Compiler_LCNF_toConfigOptions(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_getBinderName___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg___boxed(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_mkFreshJpName___closed__2; lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getParam___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_LCtx_eraseParams(lean_object*, lean_object*); lean_object* l_panic___at_Lean_Expr_getRevArg_x21___spec__1(lean_object*); -LEAN_EXPORT lean_object* l_Lean_mkFreshFVarId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_mkFreshId___at_Lean_Compiler_LCNF_mkParam___spec__2___rarg___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_getLetDecl___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_mkFreshJpName___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getParam(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normFunDecl___rarg(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_cleanup___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getType___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_getType___closed__1; static lean_object* l_Lean_Compiler_LCNF_getParam___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_FunDeclCore_updateValue___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_eraseCodeDecls___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_Compiler_LCNF_mkFreshJpName___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_internalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_mk_ref(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_expand___at_Lean_Compiler_LCNF_addFVarSubst___spec__3(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normCode___rarg___lambda__1(uint8_t, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCode(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_getType___spec__4___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getType___spec__5(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instMonadFVarSubst___rarg(lean_object*, lean_object*); @@ -199,7 +175,6 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_withPhase___rarg___boxed(lean_obje LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_eraseCodeDecls___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_expr_dbg_to_string(lean_object*); size_t lean_usize_modn(size_t, lean_object*); -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_withPhase(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_FunDeclCore_update_x27___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -218,14 +193,12 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_FunDeclCore_updateValue(lean_objec LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_findFunDecl_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExprs___rarg(uint8_t, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mkFunDecl___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_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_normFunDeclImp___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_CompilerM_State_lctx___default___closed__1; static lean_object* l_Lean_Compiler_LCNF_CompilerM_State_lctx___default___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_normCodeImp___spec__2(uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_addSubst___rarg___lambda__1(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normFunDeclImp(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getType___spec__1(lean_object*, lean_object*); @@ -239,7 +212,6 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_addFVarSubst(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_normFunDeclImp___spec__2___boxed(lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_normCodeImp___spec__2___boxed(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_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_refreshBinderName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_getType___spec__6___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_LetDecl_updateValue(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -261,7 +233,6 @@ static lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LC LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go___spec__2(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_normExprs___spec__1___rarg(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeParam(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mkFreshBinderName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_LCtx_toLocalContext(lean_object*); @@ -272,18 +243,15 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_CompilerM_run___rarg(lean_object*, LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instMonadFVarSubst(uint8_t, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams(lean_object*); -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__3(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Phase_toCtorIdx___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_eraseDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_findLetDecl_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_mkFreshFVarId___at_Lean_Compiler_LCNF_mkParam___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_addFVarSubst___rarg(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_cleanup___spec__1___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_normFunDeclImp___spec__2(uint8_t); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instMonadFVarSubstState___rarg(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_nat_mul(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_foldlM___at_Lean_Compiler_LCNF_addFVarSubst___spec__5(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_eraseDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getLetDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -297,7 +265,6 @@ LEAN_EXPORT lean_object* l_ReaderT_read___at_Lean_Compiler_LCNF_instMonadFVarSub lean_object* l_Lean_Expr_app___override(lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateParamImp___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_getLetDecl___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_cleanup___spec__2(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___rarg(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_getType___spec__6(lean_object*, lean_object*); @@ -306,11 +273,8 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getBinderName___boxed(lean_object* lean_object* lean_mk_array(lean_object*, lean_object*); uint8_t l___private_Lean_Expr_0__Lean_beqBinderInfo____x40_Lean_Expr___hyg_390_(uint8_t, uint8_t); LEAN_EXPORT lean_object* l_Lean_mkFreshFVarId___at_Lean_Compiler_LCNF_mkParam___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__1(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normCodeImp___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_normFunDeclImp___spec__1(uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_normCodeImp___spec__4(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_eraseCodeDecls(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_normCodeImp___spec__3(uint8_t); @@ -320,7 +284,6 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mkAuxParam___boxed(lean_object*, l LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_getType___spec__2___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_findLetDecl_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_mkAuxParam___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_internalize___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_proj___override(lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go___closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mkAuxParam(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -333,27 +296,19 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mkLetDecl___boxed(lean_object*, le LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(lean_object*, uint8_t, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instMonadFVarSubstNormalizerM___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_eraseParams___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCodeDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normCode___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_refreshBinderName___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_eraseCodeDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normCode(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normFunDeclImp___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_LCtx_addFunDecl(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getPhase(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normFunDecl___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_moveEntries___at_Lean_Compiler_LCNF_addFVarSubst___spec__4(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_addSubst(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getConfig___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_internalize___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_hasFVar(lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_instMonadFVarSubstNormalizerM___closed__1; LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_normFunDeclImp___spec__3___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_Compiler_LCNF_Decl_internalize_go___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instMonadFVarSubst___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Phase_noConfusion(lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getType___spec__3(lean_object*, lean_object*); @@ -364,17 +319,13 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Phase_noConfusion___rarg(uint8_t, LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_normCodeImp___spec__1___boxed(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeParam___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_cleanup___spec__1(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_findFunDecl_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_mkFreshFVarId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getFunDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_getLetDecl___closed__2; LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_getParam___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp___boxed(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_LCtx_eraseCode(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_getFunDecl___closed__2; static lean_object* l_Lean_Compiler_LCNF_getType___closed__4; @@ -4287,2449 +4238,6 @@ lean_dec(x_2); return x_7; } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_refreshBinderName(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { -_start: -{ -if (lean_obj_tag(x_1) == 2) -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; -x_7 = lean_ctor_get(x_1, 0); -lean_inc(x_7); -lean_dec(x_1); -x_8 = lean_st_ref_get(x_3, x_6); -x_9 = lean_ctor_get(x_8, 0); -lean_inc(x_9); -x_10 = lean_ctor_get(x_8, 1); -lean_inc(x_10); -lean_dec(x_8); -x_11 = lean_ctor_get(x_9, 1); -lean_inc(x_11); -lean_dec(x_9); -x_12 = l_Lean_Name_num___override(x_7, x_11); -x_13 = lean_st_ref_take(x_3, x_10); -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 = lean_ctor_get(x_14, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_14, 1); -lean_inc(x_17); -lean_dec(x_14); -x_18 = lean_unsigned_to_nat(1u); -x_19 = lean_nat_add(x_17, x_18); -lean_dec(x_17); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_16); -lean_ctor_set(x_20, 1, x_19); -x_21 = lean_st_ref_set(x_3, x_20, x_15); -x_22 = !lean_is_exclusive(x_21); -if (x_22 == 0) -{ -lean_object* x_23; -x_23 = lean_ctor_get(x_21, 0); -lean_dec(x_23); -lean_ctor_set(x_21, 0, x_12); -return x_21; -} -else -{ -lean_object* x_24; lean_object* x_25; -x_24 = lean_ctor_get(x_21, 1); -lean_inc(x_24); -lean_dec(x_21); -x_25 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_25, 0, x_12); -lean_ctor_set(x_25, 1, x_24); -return x_25; -} -} -else -{ -lean_object* x_26; -x_26 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_26, 0, x_1); -lean_ctor_set(x_26, 1, x_6); -return x_26; -} -} -} -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_refreshBinderName___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) { -_start: -{ -lean_object* x_7; -x_7 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_refreshBinderName(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_7; -} -} -LEAN_EXPORT lean_object* l_StateRefT_x27_get___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___spec__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) { -_start: -{ -lean_object* x_7; uint8_t x_8; -x_7 = lean_st_ref_get(x_1, x_6); -x_8 = !lean_is_exclusive(x_7); -if (x_8 == 0) -{ -return x_7; -} -else -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_7, 0); -x_10 = lean_ctor_get(x_7, 1); -lean_inc(x_10); -lean_inc(x_9); -lean_dec(x_7); -x_11 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_11, 0, x_9); -lean_ctor_set(x_11, 1, x_10); -return x_11; -} -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_StateRefT_x27_get___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___spec__1___boxed), 6, 0); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___closed__1; -return x_1; -} -} -LEAN_EXPORT lean_object* l_StateRefT_x27_get___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___spec__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) { -_start: -{ -lean_object* x_7; -x_7 = l_StateRefT_x27_get___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_7; -} -} -LEAN_EXPORT lean_object* l_modify___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___spec__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: -{ -lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; -x_8 = lean_st_ref_take(x_2, x_7); -x_9 = lean_ctor_get(x_8, 0); -lean_inc(x_9); -x_10 = lean_ctor_get(x_8, 1); -lean_inc(x_10); -lean_dec(x_8); -x_11 = lean_apply_1(x_1, x_9); -x_12 = lean_st_ref_set(x_2, x_11, x_10); -x_13 = !lean_is_exclusive(x_12); -if (x_13 == 0) -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_ctor_get(x_12, 0); -lean_dec(x_14); -x_15 = lean_box(0); -lean_ctor_set(x_12, 0, x_15); -return x_12; -} -else -{ -lean_object* x_16; lean_object* x_17; lean_object* x_18; -x_16 = lean_ctor_get(x_12, 1); -lean_inc(x_16); -lean_dec(x_12); -x_17 = lean_box(0); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_17); -lean_ctor_set(x_18, 1, x_16); -return x_18; -} -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_modify___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___spec__1___boxed), 7, 0); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___closed__1; -return x_1; -} -} -LEAN_EXPORT lean_object* l_modify___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___spec__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_modify___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___spec__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); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7; -x_3 = lean_st_ref_get(x_1, x_2); -x_4 = lean_ctor_get(x_3, 0); -lean_inc(x_4); -x_5 = lean_ctor_get(x_4, 2); -lean_inc(x_5); -lean_dec(x_4); -x_6 = lean_ctor_get(x_3, 1); -lean_inc(x_6); -lean_dec(x_3); -x_7 = !lean_is_exclusive(x_5); -if (x_7 == 0) -{ -lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; -x_8 = lean_ctor_get(x_5, 0); -x_9 = lean_ctor_get(x_5, 1); -lean_inc(x_9); -lean_inc(x_8); -x_10 = l_Lean_Name_num___override(x_8, x_9); -x_11 = lean_unsigned_to_nat(1u); -x_12 = lean_nat_add(x_9, x_11); -lean_dec(x_9); -lean_ctor_set(x_5, 1, x_12); -x_13 = lean_st_ref_take(x_1, x_6); -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 = !lean_is_exclusive(x_14); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; uint8_t x_19; -x_17 = lean_ctor_get(x_14, 2); -lean_dec(x_17); -lean_ctor_set(x_14, 2, x_5); -x_18 = lean_st_ref_set(x_1, x_14, x_15); -x_19 = !lean_is_exclusive(x_18); -if (x_19 == 0) -{ -lean_object* x_20; -x_20 = lean_ctor_get(x_18, 0); -lean_dec(x_20); -lean_ctor_set(x_18, 0, x_10); -return x_18; -} -else -{ -lean_object* x_21; lean_object* x_22; -x_21 = lean_ctor_get(x_18, 1); -lean_inc(x_21); -lean_dec(x_18); -x_22 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_22, 0, x_10); -lean_ctor_set(x_22, 1, x_21); -return x_22; -} -} -else -{ -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; lean_object* x_32; lean_object* x_33; -x_23 = lean_ctor_get(x_14, 0); -x_24 = lean_ctor_get(x_14, 1); -x_25 = lean_ctor_get(x_14, 3); -x_26 = lean_ctor_get(x_14, 4); -x_27 = lean_ctor_get(x_14, 5); -x_28 = lean_ctor_get(x_14, 6); -lean_inc(x_28); -lean_inc(x_27); -lean_inc(x_26); -lean_inc(x_25); -lean_inc(x_24); -lean_inc(x_23); -lean_dec(x_14); -x_29 = lean_alloc_ctor(0, 7, 0); -lean_ctor_set(x_29, 0, x_23); -lean_ctor_set(x_29, 1, x_24); -lean_ctor_set(x_29, 2, x_5); -lean_ctor_set(x_29, 3, x_25); -lean_ctor_set(x_29, 4, x_26); -lean_ctor_set(x_29, 5, x_27); -lean_ctor_set(x_29, 6, x_28); -x_30 = lean_st_ref_set(x_1, x_29, x_15); -x_31 = lean_ctor_get(x_30, 1); -lean_inc(x_31); -if (lean_is_exclusive(x_30)) { - lean_ctor_release(x_30, 0); - lean_ctor_release(x_30, 1); - x_32 = x_30; -} else { - lean_dec_ref(x_30); - x_32 = lean_box(0); -} -if (lean_is_scalar(x_32)) { - x_33 = lean_alloc_ctor(0, 2, 0); -} else { - x_33 = x_32; -} -lean_ctor_set(x_33, 0, x_10); -lean_ctor_set(x_33, 1, x_31); -return x_33; -} -} -else -{ -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; -x_34 = lean_ctor_get(x_5, 0); -x_35 = lean_ctor_get(x_5, 1); -lean_inc(x_35); -lean_inc(x_34); -lean_dec(x_5); -lean_inc(x_35); -lean_inc(x_34); -x_36 = l_Lean_Name_num___override(x_34, x_35); -x_37 = lean_unsigned_to_nat(1u); -x_38 = lean_nat_add(x_35, x_37); -lean_dec(x_35); -x_39 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_39, 0, x_34); -lean_ctor_set(x_39, 1, x_38); -x_40 = lean_st_ref_take(x_1, x_6); -x_41 = lean_ctor_get(x_40, 0); -lean_inc(x_41); -x_42 = lean_ctor_get(x_40, 1); -lean_inc(x_42); -lean_dec(x_40); -x_43 = lean_ctor_get(x_41, 0); -lean_inc(x_43); -x_44 = lean_ctor_get(x_41, 1); -lean_inc(x_44); -x_45 = lean_ctor_get(x_41, 3); -lean_inc(x_45); -x_46 = lean_ctor_get(x_41, 4); -lean_inc(x_46); -x_47 = lean_ctor_get(x_41, 5); -lean_inc(x_47); -x_48 = lean_ctor_get(x_41, 6); -lean_inc(x_48); -if (lean_is_exclusive(x_41)) { - lean_ctor_release(x_41, 0); - lean_ctor_release(x_41, 1); - lean_ctor_release(x_41, 2); - lean_ctor_release(x_41, 3); - lean_ctor_release(x_41, 4); - lean_ctor_release(x_41, 5); - lean_ctor_release(x_41, 6); - x_49 = x_41; -} else { - lean_dec_ref(x_41); - x_49 = lean_box(0); -} -if (lean_is_scalar(x_49)) { - x_50 = lean_alloc_ctor(0, 7, 0); -} else { - x_50 = x_49; -} -lean_ctor_set(x_50, 0, x_43); -lean_ctor_set(x_50, 1, x_44); -lean_ctor_set(x_50, 2, x_39); -lean_ctor_set(x_50, 3, x_45); -lean_ctor_set(x_50, 4, x_46); -lean_ctor_set(x_50, 5, x_47); -lean_ctor_set(x_50, 6, x_48); -x_51 = lean_st_ref_set(x_1, x_50, x_42); -x_52 = lean_ctor_get(x_51, 1); -lean_inc(x_52); -if (lean_is_exclusive(x_51)) { - lean_ctor_release(x_51, 0); - lean_ctor_release(x_51, 1); - x_53 = x_51; -} else { - lean_dec_ref(x_51); - x_53 = lean_box(0); -} -if (lean_is_scalar(x_53)) { - x_54 = lean_alloc_ctor(0, 2, 0); -} else { - x_54 = x_53; -} -lean_ctor_set(x_54, 0, x_36); -lean_ctor_set(x_54, 1, x_52); -return x_54; -} -} -} -LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; -x_5 = lean_alloc_closure((void*)(l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg___boxed), 2, 0); -return x_5; -} -} -LEAN_EXPORT lean_object* l_Lean_mkFreshFVarId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__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) { -_start: -{ -lean_object* x_7; uint8_t x_8; -x_7 = l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg(x_5, x_6); -x_8 = !lean_is_exclusive(x_7); -if (x_8 == 0) -{ -return x_7; -} -else -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_7, 0); -x_10 = lean_ctor_get(x_7, 1); -lean_inc(x_10); -lean_inc(x_9); -lean_dec(x_7); -x_11 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_11, 0, x_9); -lean_ctor_set(x_11, 1, x_10); -return x_11; -} -} -} -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_8 = l_Lean_mkFreshFVarId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__1(x_2, x_3, x_4, x_5, x_6, x_7); -x_9 = lean_ctor_get(x_8, 0); -lean_inc(x_9); -x_10 = lean_ctor_get(x_8, 1); -lean_inc(x_10); -lean_dec(x_8); -x_11 = lean_st_ref_take(x_2, x_10); -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); -lean_inc(x_9); -x_14 = l_Lean_Expr_fvar___override(x_9); -x_15 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_12, x_1, x_14); -x_16 = lean_st_ref_set(x_2, x_15, x_13); -x_17 = !lean_is_exclusive(x_16); -if (x_17 == 0) -{ -lean_object* x_18; -x_18 = lean_ctor_get(x_16, 0); -lean_dec(x_18); -lean_ctor_set(x_16, 0, x_9); -return x_16; -} -else -{ -lean_object* x_19; lean_object* x_20; -x_19 = lean_ctor_get(x_16, 1); -lean_inc(x_19); -lean_dec(x_16); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_9); -lean_ctor_set(x_20, 1, x_19); -return x_20; -} -} -} -LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg(x_1, x_2); -lean_dec(x_1); -return x_3; -} -} -LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; -x_5 = l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2(x_1, x_2, x_3, x_4); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_5; -} -} -LEAN_EXPORT lean_object* l_Lean_mkFreshFVarId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__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) { -_start: -{ -lean_object* x_7; -x_7 = l_Lean_mkFreshFVarId___at___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_7; -} -} -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___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_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(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); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeParam(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; -x_8 = !lean_is_exclusive(x_1); -if (x_8 == 0) -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; uint8_t x_26; -x_9 = lean_ctor_get(x_1, 0); -x_10 = lean_ctor_get(x_1, 1); -x_11 = lean_ctor_get(x_1, 2); -x_12 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_refreshBinderName(x_10, x_3, x_4, x_5, x_6, x_7); -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -x_14 = lean_ctor_get(x_12, 1); -lean_inc(x_14); -lean_dec(x_12); -x_15 = lean_st_ref_get(x_2, x_14); -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); -x_18 = 1; -x_19 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_16, x_18, x_11); -x_20 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(x_9, x_2, x_3, x_4, x_5, x_6, x_17); -x_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -x_22 = lean_ctor_get(x_20, 1); -lean_inc(x_22); -lean_dec(x_20); -lean_ctor_set(x_1, 2, x_19); -lean_ctor_set(x_1, 1, x_13); -lean_ctor_set(x_1, 0, x_21); -x_23 = lean_st_ref_take(x_4, x_22); -x_24 = lean_ctor_get(x_23, 0); -lean_inc(x_24); -x_25 = lean_ctor_get(x_23, 1); -lean_inc(x_25); -lean_dec(x_23); -x_26 = !lean_is_exclusive(x_24); -if (x_26 == 0) -{ -lean_object* x_27; lean_object* x_28; lean_object* x_29; uint8_t x_30; -x_27 = lean_ctor_get(x_24, 0); -lean_inc(x_1); -x_28 = l_Lean_Compiler_LCNF_LCtx_addParam(x_27, x_1); -lean_ctor_set(x_24, 0, x_28); -x_29 = lean_st_ref_set(x_4, x_24, x_25); -x_30 = !lean_is_exclusive(x_29); -if (x_30 == 0) -{ -lean_object* x_31; -x_31 = lean_ctor_get(x_29, 0); -lean_dec(x_31); -lean_ctor_set(x_29, 0, x_1); -return x_29; -} -else -{ -lean_object* x_32; lean_object* x_33; -x_32 = lean_ctor_get(x_29, 1); -lean_inc(x_32); -lean_dec(x_29); -x_33 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_33, 0, x_1); -lean_ctor_set(x_33, 1, x_32); -return x_33; -} -} -else -{ -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; -x_34 = lean_ctor_get(x_24, 0); -x_35 = lean_ctor_get(x_24, 1); -lean_inc(x_35); -lean_inc(x_34); -lean_dec(x_24); -lean_inc(x_1); -x_36 = l_Lean_Compiler_LCNF_LCtx_addParam(x_34, x_1); -x_37 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_37, 0, x_36); -lean_ctor_set(x_37, 1, x_35); -x_38 = lean_st_ref_set(x_4, x_37, x_25); -x_39 = lean_ctor_get(x_38, 1); -lean_inc(x_39); -if (lean_is_exclusive(x_38)) { - lean_ctor_release(x_38, 0); - lean_ctor_release(x_38, 1); - x_40 = x_38; -} else { - lean_dec_ref(x_38); - x_40 = lean_box(0); -} -if (lean_is_scalar(x_40)) { - x_41 = lean_alloc_ctor(0, 2, 0); -} else { - x_41 = x_40; -} -lean_ctor_set(x_41, 0, x_1); -lean_ctor_set(x_41, 1, x_39); -return x_41; -} -} -else -{ -lean_object* x_42; lean_object* x_43; lean_object* x_44; uint8_t x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; -x_42 = lean_ctor_get(x_1, 0); -x_43 = lean_ctor_get(x_1, 1); -x_44 = lean_ctor_get(x_1, 2); -x_45 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); -lean_inc(x_44); -lean_inc(x_43); -lean_inc(x_42); -lean_dec(x_1); -x_46 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_refreshBinderName(x_43, x_3, x_4, x_5, x_6, x_7); -x_47 = lean_ctor_get(x_46, 0); -lean_inc(x_47); -x_48 = lean_ctor_get(x_46, 1); -lean_inc(x_48); -lean_dec(x_46); -x_49 = lean_st_ref_get(x_2, x_48); -x_50 = lean_ctor_get(x_49, 0); -lean_inc(x_50); -x_51 = lean_ctor_get(x_49, 1); -lean_inc(x_51); -lean_dec(x_49); -x_52 = 1; -x_53 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_50, x_52, x_44); -x_54 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(x_42, x_2, x_3, x_4, x_5, x_6, x_51); -x_55 = lean_ctor_get(x_54, 0); -lean_inc(x_55); -x_56 = lean_ctor_get(x_54, 1); -lean_inc(x_56); -lean_dec(x_54); -x_57 = lean_alloc_ctor(0, 3, 1); -lean_ctor_set(x_57, 0, x_55); -lean_ctor_set(x_57, 1, x_47); -lean_ctor_set(x_57, 2, x_53); -lean_ctor_set_uint8(x_57, sizeof(void*)*3, x_45); -x_58 = lean_st_ref_take(x_4, x_56); -x_59 = lean_ctor_get(x_58, 0); -lean_inc(x_59); -x_60 = lean_ctor_get(x_58, 1); -lean_inc(x_60); -lean_dec(x_58); -x_61 = lean_ctor_get(x_59, 0); -lean_inc(x_61); -x_62 = lean_ctor_get(x_59, 1); -lean_inc(x_62); -if (lean_is_exclusive(x_59)) { - lean_ctor_release(x_59, 0); - lean_ctor_release(x_59, 1); - x_63 = x_59; -} else { - lean_dec_ref(x_59); - x_63 = lean_box(0); -} -lean_inc(x_57); -x_64 = l_Lean_Compiler_LCNF_LCtx_addParam(x_61, x_57); -if (lean_is_scalar(x_63)) { - x_65 = lean_alloc_ctor(0, 2, 0); -} else { - x_65 = x_63; -} -lean_ctor_set(x_65, 0, x_64); -lean_ctor_set(x_65, 1, x_62); -x_66 = lean_st_ref_set(x_4, x_65, x_60); -x_67 = lean_ctor_get(x_66, 1); -lean_inc(x_67); -if (lean_is_exclusive(x_66)) { - lean_ctor_release(x_66, 0); - lean_ctor_release(x_66, 1); - x_68 = x_66; -} else { - lean_dec_ref(x_66); - x_68 = lean_box(0); -} -if (lean_is_scalar(x_68)) { - x_69 = lean_alloc_ctor(0, 2, 0); -} else { - x_69 = x_68; -} -lean_ctor_set(x_69, 0, x_57); -lean_ctor_set(x_69, 1, x_67); -return x_69; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeParam___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_Compiler_LCNF_Internalize_internalizeParam(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); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; uint8_t x_31; -x_8 = lean_ctor_get(x_1, 1); -lean_inc(x_8); -x_9 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_refreshBinderName(x_8, x_3, x_4, x_5, x_6, x_7); -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -x_11 = lean_ctor_get(x_9, 1); -lean_inc(x_11); -lean_dec(x_9); -x_12 = lean_ctor_get(x_1, 2); -lean_inc(x_12); -x_13 = lean_st_ref_get(x_2, x_11); -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 = 1; -x_17 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_14, x_16, x_12); -x_18 = lean_ctor_get(x_1, 3); -lean_inc(x_18); -x_19 = lean_st_ref_get(x_2, x_15); -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_19, 1); -lean_inc(x_21); -lean_dec(x_19); -x_22 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_20, x_16, x_18); -x_23 = lean_ctor_get(x_1, 0); -lean_inc(x_23); -lean_dec(x_1); -x_24 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(x_23, x_2, x_3, x_4, x_5, x_6, x_21); -x_25 = lean_ctor_get(x_24, 0); -lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_27, 0, x_25); -lean_ctor_set(x_27, 1, x_10); -lean_ctor_set(x_27, 2, x_17); -lean_ctor_set(x_27, 3, x_22); -x_28 = lean_st_ref_take(x_4, x_26); -x_29 = lean_ctor_get(x_28, 0); -lean_inc(x_29); -x_30 = lean_ctor_get(x_28, 1); -lean_inc(x_30); -lean_dec(x_28); -x_31 = !lean_is_exclusive(x_29); -if (x_31 == 0) -{ -lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; -x_32 = lean_ctor_get(x_29, 0); -lean_inc(x_27); -x_33 = l_Lean_Compiler_LCNF_LCtx_addLetDecl(x_32, x_27); -lean_ctor_set(x_29, 0, x_33); -x_34 = lean_st_ref_set(x_4, x_29, x_30); -x_35 = !lean_is_exclusive(x_34); -if (x_35 == 0) -{ -lean_object* x_36; -x_36 = lean_ctor_get(x_34, 0); -lean_dec(x_36); -lean_ctor_set(x_34, 0, x_27); -return x_34; -} -else -{ -lean_object* x_37; lean_object* x_38; -x_37 = lean_ctor_get(x_34, 1); -lean_inc(x_37); -lean_dec(x_34); -x_38 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_38, 0, x_27); -lean_ctor_set(x_38, 1, x_37); -return x_38; -} -} -else -{ -lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; -x_39 = lean_ctor_get(x_29, 0); -x_40 = lean_ctor_get(x_29, 1); -lean_inc(x_40); -lean_inc(x_39); -lean_dec(x_29); -lean_inc(x_27); -x_41 = l_Lean_Compiler_LCNF_LCtx_addLetDecl(x_39, x_27); -x_42 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_42, 0, x_41); -lean_ctor_set(x_42, 1, x_40); -x_43 = lean_st_ref_set(x_4, x_42, x_30); -x_44 = lean_ctor_get(x_43, 1); -lean_inc(x_44); -if (lean_is_exclusive(x_43)) { - lean_ctor_release(x_43, 0); - lean_ctor_release(x_43, 1); - x_45 = x_43; -} else { - lean_dec_ref(x_43); - x_45 = lean_box(0); -} -if (lean_is_scalar(x_45)) { - x_46 = lean_alloc_ctor(0, 2, 0); -} else { - x_46 = x_45; -} -lean_ctor_set(x_46, 0, x_27); -lean_ctor_set(x_46, 1, x_44); -return x_46; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl___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_Compiler_LCNF_Internalize_internalizeLetDecl(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); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__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) { -_start: -{ -uint8_t x_10; -x_10 = lean_usize_dec_lt(x_2, x_1); -if (x_10 == 0) -{ -lean_object* x_11; -x_11 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_11, 0, x_3); -lean_ctor_set(x_11, 1, x_9); -return x_11; -} -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; size_t x_18; size_t x_19; lean_object* x_20; -x_12 = lean_array_uget(x_3, x_2); -x_13 = lean_unsigned_to_nat(0u); -x_14 = lean_array_uset(x_3, x_2, x_13); -x_15 = l_Lean_Compiler_LCNF_Internalize_internalizeParam(x_12, x_4, x_5, x_6, x_7, x_8, x_9); -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); -x_18 = 1; -x_19 = lean_usize_add(x_2, x_18); -x_20 = lean_array_uset(x_14, x_2, x_16); -x_2 = x_19; -x_3 = x_20; -x_9 = x_17; -goto _start; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; size_t x_20; size_t 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; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; uint8_t x_37; -x_8 = lean_ctor_get(x_1, 3); -lean_inc(x_8); -x_9 = lean_st_ref_get(x_2, x_7); -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -x_11 = lean_ctor_get(x_9, 1); -lean_inc(x_11); -lean_dec(x_9); -x_12 = 1; -x_13 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_10, x_12, x_8); -x_14 = lean_ctor_get(x_1, 1); -lean_inc(x_14); -x_15 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_refreshBinderName(x_14, x_3, x_4, x_5, x_6, x_11); -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); -x_18 = lean_ctor_get(x_1, 2); -lean_inc(x_18); -x_19 = lean_array_get_size(x_18); -x_20 = lean_usize_of_nat(x_19); -lean_dec(x_19); -x_21 = 0; -x_22 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_20, x_21, x_18, x_2, x_3, x_4, x_5, x_6, x_17); -x_23 = lean_ctor_get(x_22, 0); -lean_inc(x_23); -x_24 = lean_ctor_get(x_22, 1); -lean_inc(x_24); -lean_dec(x_22); -x_25 = lean_ctor_get(x_1, 4); -lean_inc(x_25); -x_26 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_25, x_2, x_3, x_4, x_5, x_6, x_24); -x_27 = lean_ctor_get(x_26, 0); -lean_inc(x_27); -x_28 = lean_ctor_get(x_26, 1); -lean_inc(x_28); -lean_dec(x_26); -x_29 = lean_ctor_get(x_1, 0); -lean_inc(x_29); -lean_dec(x_1); -x_30 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(x_29, x_2, x_3, x_4, x_5, x_6, x_28); -x_31 = lean_ctor_get(x_30, 0); -lean_inc(x_31); -x_32 = lean_ctor_get(x_30, 1); -lean_inc(x_32); -lean_dec(x_30); -x_33 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_33, 0, x_31); -lean_ctor_set(x_33, 1, x_16); -lean_ctor_set(x_33, 2, x_23); -lean_ctor_set(x_33, 3, x_13); -lean_ctor_set(x_33, 4, x_27); -x_34 = lean_st_ref_take(x_4, x_32); -x_35 = lean_ctor_get(x_34, 0); -lean_inc(x_35); -x_36 = lean_ctor_get(x_34, 1); -lean_inc(x_36); -lean_dec(x_34); -x_37 = !lean_is_exclusive(x_35); -if (x_37 == 0) -{ -lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; -x_38 = lean_ctor_get(x_35, 0); -lean_inc(x_33); -x_39 = l_Lean_Compiler_LCNF_LCtx_addFunDecl(x_38, x_33); -lean_ctor_set(x_35, 0, x_39); -x_40 = lean_st_ref_set(x_4, x_35, x_36); -x_41 = !lean_is_exclusive(x_40); -if (x_41 == 0) -{ -lean_object* x_42; -x_42 = lean_ctor_get(x_40, 0); -lean_dec(x_42); -lean_ctor_set(x_40, 0, x_33); -return x_40; -} -else -{ -lean_object* x_43; lean_object* x_44; -x_43 = lean_ctor_get(x_40, 1); -lean_inc(x_43); -lean_dec(x_40); -x_44 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_44, 0, x_33); -lean_ctor_set(x_44, 1, x_43); -return x_44; -} -} -else -{ -lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_45 = lean_ctor_get(x_35, 0); -x_46 = lean_ctor_get(x_35, 1); -lean_inc(x_46); -lean_inc(x_45); -lean_dec(x_35); -lean_inc(x_33); -x_47 = l_Lean_Compiler_LCNF_LCtx_addFunDecl(x_45, x_33); -x_48 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_48, 0, x_47); -lean_ctor_set(x_48, 1, x_46); -x_49 = lean_st_ref_set(x_4, x_48, x_36); -x_50 = lean_ctor_get(x_49, 1); -lean_inc(x_50); -if (lean_is_exclusive(x_49)) { - lean_ctor_release(x_49, 0); - lean_ctor_release(x_49, 1); - x_51 = x_49; -} else { - lean_dec_ref(x_49); - x_51 = lean_box(0); -} -if (lean_is_scalar(x_51)) { - x_52 = lean_alloc_ctor(0, 2, 0); -} else { - x_52 = x_51; -} -lean_ctor_set(x_52, 0, x_33); -lean_ctor_set(x_52, 1, x_50); -return x_52; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__1(uint8_t 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_9; uint8_t x_10; -x_9 = lean_st_ref_get(x_3, x_8); -x_10 = !lean_is_exclusive(x_9); -if (x_10 == 0) -{ -lean_object* x_11; lean_object* x_12; -x_11 = lean_ctor_get(x_9, 0); -x_12 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_11, x_1, x_2); -lean_ctor_set(x_9, 0, x_12); -return x_9; -} -else -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; -x_13 = lean_ctor_get(x_9, 0); -x_14 = lean_ctor_get(x_9, 1); -lean_inc(x_14); -lean_inc(x_13); -lean_dec(x_9); -x_15 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_13, x_1, x_2); -x_16 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_16, 0, x_15); -lean_ctor_set(x_16, 1, x_14); -return x_16; -} -} -} -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__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) { -_start: -{ -uint8_t x_10; -x_10 = lean_usize_dec_lt(x_2, x_1); -if (x_10 == 0) -{ -lean_object* x_11; -x_11 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_11, 0, x_3); -lean_ctor_set(x_11, 1, x_9); -return x_11; -} -else -{ -lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; size_t x_19; size_t x_20; lean_object* x_21; -x_12 = lean_array_uget(x_3, x_2); -x_13 = lean_unsigned_to_nat(0u); -x_14 = lean_array_uset(x_3, x_2, x_13); -x_15 = 1; -x_16 = l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__1(x_15, x_12, x_4, x_5, x_6, x_7, x_8, x_9); -x_17 = lean_ctor_get(x_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = 1; -x_20 = lean_usize_add(x_2, x_19); -x_21 = lean_array_uset(x_14, x_2, x_17); -x_2 = x_20; -x_3 = x_21; -x_9 = x_18; -goto _start; -} -} -} -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__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) { -_start: -{ -uint8_t x_10; -x_10 = lean_usize_dec_lt(x_2, x_1); -if (x_10 == 0) -{ -lean_object* x_11; -x_11 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_11, 0, x_3); -lean_ctor_set(x_11, 1, x_9); -return x_11; -} -else -{ -lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_12 = lean_array_uget(x_3, x_2); -x_13 = lean_unsigned_to_nat(0u); -x_14 = lean_array_uset(x_3, x_2, x_13); -if (lean_obj_tag(x_12) == 0) -{ -uint8_t x_15; -x_15 = !lean_is_exclusive(x_12); -if (x_15 == 0) -{ -lean_object* x_16; lean_object* x_17; lean_object* x_18; size_t x_19; size_t 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; size_t x_27; size_t x_28; lean_object* x_29; -x_16 = lean_ctor_get(x_12, 1); -x_17 = lean_ctor_get(x_12, 2); -x_18 = lean_array_get_size(x_16); -x_19 = lean_usize_of_nat(x_18); -lean_dec(x_18); -x_20 = 0; -x_21 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_19, x_20, x_16, x_4, x_5, x_6, x_7, x_8, x_9); -x_22 = lean_ctor_get(x_21, 0); -lean_inc(x_22); -x_23 = lean_ctor_get(x_21, 1); -lean_inc(x_23); -lean_dec(x_21); -x_24 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_17, x_4, x_5, x_6, x_7, x_8, x_23); -x_25 = lean_ctor_get(x_24, 0); -lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -lean_ctor_set(x_12, 2, x_25); -lean_ctor_set(x_12, 1, x_22); -x_27 = 1; -x_28 = lean_usize_add(x_2, x_27); -x_29 = lean_array_uset(x_14, x_2, x_12); -x_2 = x_28; -x_3 = x_29; -x_9 = x_26; -goto _start; -} -else -{ -lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; size_t x_35; size_t x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; size_t x_44; size_t x_45; lean_object* x_46; -x_31 = lean_ctor_get(x_12, 0); -x_32 = lean_ctor_get(x_12, 1); -x_33 = lean_ctor_get(x_12, 2); -lean_inc(x_33); -lean_inc(x_32); -lean_inc(x_31); -lean_dec(x_12); -x_34 = lean_array_get_size(x_32); -x_35 = lean_usize_of_nat(x_34); -lean_dec(x_34); -x_36 = 0; -x_37 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_35, x_36, x_32, x_4, x_5, x_6, x_7, x_8, x_9); -x_38 = lean_ctor_get(x_37, 0); -lean_inc(x_38); -x_39 = lean_ctor_get(x_37, 1); -lean_inc(x_39); -lean_dec(x_37); -x_40 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_33, x_4, x_5, x_6, x_7, x_8, x_39); -x_41 = lean_ctor_get(x_40, 0); -lean_inc(x_41); -x_42 = lean_ctor_get(x_40, 1); -lean_inc(x_42); -lean_dec(x_40); -x_43 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_43, 0, x_31); -lean_ctor_set(x_43, 1, x_38); -lean_ctor_set(x_43, 2, x_41); -x_44 = 1; -x_45 = lean_usize_add(x_2, x_44); -x_46 = lean_array_uset(x_14, x_2, x_43); -x_2 = x_45; -x_3 = x_46; -x_9 = x_42; -goto _start; -} -} -else -{ -uint8_t x_48; -x_48 = !lean_is_exclusive(x_12); -if (x_48 == 0) -{ -lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; size_t x_53; size_t x_54; lean_object* x_55; -x_49 = lean_ctor_get(x_12, 0); -x_50 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_49, x_4, x_5, x_6, x_7, x_8, x_9); -x_51 = lean_ctor_get(x_50, 0); -lean_inc(x_51); -x_52 = lean_ctor_get(x_50, 1); -lean_inc(x_52); -lean_dec(x_50); -lean_ctor_set(x_12, 0, x_51); -x_53 = 1; -x_54 = lean_usize_add(x_2, x_53); -x_55 = lean_array_uset(x_14, x_2, x_12); -x_2 = x_54; -x_3 = x_55; -x_9 = x_52; -goto _start; -} -else -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; size_t x_62; size_t x_63; lean_object* x_64; -x_57 = lean_ctor_get(x_12, 0); -lean_inc(x_57); -lean_dec(x_12); -x_58 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_57, x_4, x_5, x_6, x_7, x_8, x_9); -x_59 = lean_ctor_get(x_58, 0); -lean_inc(x_59); -x_60 = lean_ctor_get(x_58, 1); -lean_inc(x_60); -lean_dec(x_58); -x_61 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_61, 0, x_59); -x_62 = 1; -x_63 = lean_usize_add(x_2, x_62); -x_64 = lean_array_uset(x_14, x_2, x_61); -x_2 = x_63; -x_3 = x_64; -x_9 = x_60; -goto _start; -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCode(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: -{ -switch (lean_obj_tag(x_1)) { -case 0: -{ -uint8_t x_8; -x_8 = !lean_is_exclusive(x_1); -if (x_8 == 0) -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; -x_9 = lean_ctor_get(x_1, 0); -x_10 = lean_ctor_get(x_1, 1); -x_11 = l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl(x_9, x_2, x_3, x_4, x_5, x_6, x_7); -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_Compiler_LCNF_Internalize_internalizeCode(x_10, x_2, x_3, x_4, x_5, x_6, x_13); -x_15 = !lean_is_exclusive(x_14); -if (x_15 == 0) -{ -lean_object* x_16; -x_16 = lean_ctor_get(x_14, 0); -lean_ctor_set(x_1, 1, x_16); -lean_ctor_set(x_1, 0, x_12); -lean_ctor_set(x_14, 0, x_1); -return x_14; -} -else -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_17 = lean_ctor_get(x_14, 0); -x_18 = lean_ctor_get(x_14, 1); -lean_inc(x_18); -lean_inc(x_17); -lean_dec(x_14); -lean_ctor_set(x_1, 1, x_17); -lean_ctor_set(x_1, 0, x_12); -x_19 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_19, 0, x_1); -lean_ctor_set(x_19, 1, x_18); -return x_19; -} -} -else -{ -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_20 = lean_ctor_get(x_1, 0); -x_21 = lean_ctor_get(x_1, 1); -lean_inc(x_21); -lean_inc(x_20); -lean_dec(x_1); -x_22 = l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl(x_20, x_2, x_3, x_4, x_5, x_6, x_7); -x_23 = lean_ctor_get(x_22, 0); -lean_inc(x_23); -x_24 = lean_ctor_get(x_22, 1); -lean_inc(x_24); -lean_dec(x_22); -x_25 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_21, x_2, x_3, x_4, x_5, x_6, x_24); -x_26 = lean_ctor_get(x_25, 0); -lean_inc(x_26); -x_27 = lean_ctor_get(x_25, 1); -lean_inc(x_27); -if (lean_is_exclusive(x_25)) { - lean_ctor_release(x_25, 0); - lean_ctor_release(x_25, 1); - x_28 = x_25; -} else { - lean_dec_ref(x_25); - x_28 = lean_box(0); -} -x_29 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_29, 0, x_23); -lean_ctor_set(x_29, 1, x_26); -if (lean_is_scalar(x_28)) { - x_30 = lean_alloc_ctor(0, 2, 0); -} else { - x_30 = x_28; -} -lean_ctor_set(x_30, 0, x_29); -lean_ctor_set(x_30, 1, x_27); -return x_30; -} -} -case 1: -{ -uint8_t x_31; -x_31 = !lean_is_exclusive(x_1); -if (x_31 == 0) -{ -lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; uint8_t x_38; -x_32 = lean_ctor_get(x_1, 0); -x_33 = lean_ctor_get(x_1, 1); -x_34 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_32, x_2, x_3, x_4, x_5, x_6, x_7); -x_35 = lean_ctor_get(x_34, 0); -lean_inc(x_35); -x_36 = lean_ctor_get(x_34, 1); -lean_inc(x_36); -lean_dec(x_34); -x_37 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_33, x_2, x_3, x_4, x_5, x_6, x_36); -x_38 = !lean_is_exclusive(x_37); -if (x_38 == 0) -{ -lean_object* x_39; -x_39 = lean_ctor_get(x_37, 0); -lean_ctor_set(x_1, 1, x_39); -lean_ctor_set(x_1, 0, x_35); -lean_ctor_set(x_37, 0, x_1); -return x_37; -} -else -{ -lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_40 = lean_ctor_get(x_37, 0); -x_41 = lean_ctor_get(x_37, 1); -lean_inc(x_41); -lean_inc(x_40); -lean_dec(x_37); -lean_ctor_set(x_1, 1, x_40); -lean_ctor_set(x_1, 0, x_35); -x_42 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_42, 0, x_1); -lean_ctor_set(x_42, 1, x_41); -return x_42; -} -} -else -{ -lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; -x_43 = lean_ctor_get(x_1, 0); -x_44 = lean_ctor_get(x_1, 1); -lean_inc(x_44); -lean_inc(x_43); -lean_dec(x_1); -x_45 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_43, x_2, x_3, x_4, x_5, x_6, x_7); -x_46 = lean_ctor_get(x_45, 0); -lean_inc(x_46); -x_47 = lean_ctor_get(x_45, 1); -lean_inc(x_47); -lean_dec(x_45); -x_48 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_44, x_2, x_3, x_4, x_5, x_6, x_47); -x_49 = lean_ctor_get(x_48, 0); -lean_inc(x_49); -x_50 = lean_ctor_get(x_48, 1); -lean_inc(x_50); -if (lean_is_exclusive(x_48)) { - lean_ctor_release(x_48, 0); - lean_ctor_release(x_48, 1); - x_51 = x_48; -} else { - lean_dec_ref(x_48); - x_51 = lean_box(0); -} -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_46); -lean_ctor_set(x_52, 1, x_49); -if (lean_is_scalar(x_51)) { - x_53 = lean_alloc_ctor(0, 2, 0); -} else { - x_53 = x_51; -} -lean_ctor_set(x_53, 0, x_52); -lean_ctor_set(x_53, 1, x_50); -return x_53; -} -} -case 2: -{ -uint8_t x_54; -x_54 = !lean_is_exclusive(x_1); -if (x_54 == 0) -{ -lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; uint8_t x_61; -x_55 = lean_ctor_get(x_1, 0); -x_56 = lean_ctor_get(x_1, 1); -x_57 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_55, x_2, x_3, x_4, x_5, x_6, x_7); -x_58 = lean_ctor_get(x_57, 0); -lean_inc(x_58); -x_59 = lean_ctor_get(x_57, 1); -lean_inc(x_59); -lean_dec(x_57); -x_60 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_56, x_2, x_3, x_4, x_5, x_6, x_59); -x_61 = !lean_is_exclusive(x_60); -if (x_61 == 0) -{ -lean_object* x_62; -x_62 = lean_ctor_get(x_60, 0); -lean_ctor_set(x_1, 1, x_62); -lean_ctor_set(x_1, 0, x_58); -lean_ctor_set(x_60, 0, x_1); -return x_60; -} -else -{ -lean_object* x_63; lean_object* x_64; lean_object* x_65; -x_63 = lean_ctor_get(x_60, 0); -x_64 = lean_ctor_get(x_60, 1); -lean_inc(x_64); -lean_inc(x_63); -lean_dec(x_60); -lean_ctor_set(x_1, 1, x_63); -lean_ctor_set(x_1, 0, x_58); -x_65 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_65, 0, x_1); -lean_ctor_set(x_65, 1, x_64); -return x_65; -} -} -else -{ -lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; -x_66 = lean_ctor_get(x_1, 0); -x_67 = lean_ctor_get(x_1, 1); -lean_inc(x_67); -lean_inc(x_66); -lean_dec(x_1); -x_68 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_66, x_2, x_3, x_4, x_5, x_6, x_7); -x_69 = lean_ctor_get(x_68, 0); -lean_inc(x_69); -x_70 = lean_ctor_get(x_68, 1); -lean_inc(x_70); -lean_dec(x_68); -x_71 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_67, x_2, x_3, x_4, x_5, x_6, x_70); -x_72 = lean_ctor_get(x_71, 0); -lean_inc(x_72); -x_73 = lean_ctor_get(x_71, 1); -lean_inc(x_73); -if (lean_is_exclusive(x_71)) { - lean_ctor_release(x_71, 0); - lean_ctor_release(x_71, 1); - x_74 = x_71; -} else { - lean_dec_ref(x_71); - x_74 = lean_box(0); -} -x_75 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_75, 0, x_69); -lean_ctor_set(x_75, 1, x_72); -if (lean_is_scalar(x_74)) { - x_76 = lean_alloc_ctor(0, 2, 0); -} else { - x_76 = x_74; -} -lean_ctor_set(x_76, 0, x_75); -lean_ctor_set(x_76, 1, x_73); -return x_76; -} -} -case 3: -{ -uint8_t x_77; -x_77 = !lean_is_exclusive(x_1); -if (x_77 == 0) -{ -lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; uint8_t x_83; lean_object* x_84; lean_object* x_85; size_t x_86; size_t x_87; lean_object* x_88; uint8_t x_89; -x_78 = lean_ctor_get(x_1, 0); -x_79 = lean_ctor_get(x_1, 1); -x_80 = lean_st_ref_get(x_2, x_7); -x_81 = lean_ctor_get(x_80, 0); -lean_inc(x_81); -x_82 = lean_ctor_get(x_80, 1); -lean_inc(x_82); -lean_dec(x_80); -x_83 = 1; -x_84 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_81, x_78, x_83); -x_85 = lean_array_get_size(x_79); -x_86 = lean_usize_of_nat(x_85); -lean_dec(x_85); -x_87 = 0; -x_88 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__2(x_86, x_87, x_79, x_2, x_3, x_4, x_5, x_6, x_82); -x_89 = !lean_is_exclusive(x_88); -if (x_89 == 0) -{ -lean_object* x_90; -x_90 = lean_ctor_get(x_88, 0); -lean_ctor_set(x_1, 1, x_90); -lean_ctor_set(x_1, 0, x_84); -lean_ctor_set(x_88, 0, x_1); -return x_88; -} -else -{ -lean_object* x_91; lean_object* x_92; lean_object* x_93; -x_91 = lean_ctor_get(x_88, 0); -x_92 = lean_ctor_get(x_88, 1); -lean_inc(x_92); -lean_inc(x_91); -lean_dec(x_88); -lean_ctor_set(x_1, 1, x_91); -lean_ctor_set(x_1, 0, x_84); -x_93 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_93, 0, x_1); -lean_ctor_set(x_93, 1, x_92); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; uint8_t x_99; lean_object* x_100; lean_object* x_101; size_t x_102; size_t x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; -x_94 = lean_ctor_get(x_1, 0); -x_95 = lean_ctor_get(x_1, 1); -lean_inc(x_95); -lean_inc(x_94); -lean_dec(x_1); -x_96 = lean_st_ref_get(x_2, x_7); -x_97 = lean_ctor_get(x_96, 0); -lean_inc(x_97); -x_98 = lean_ctor_get(x_96, 1); -lean_inc(x_98); -lean_dec(x_96); -x_99 = 1; -x_100 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_97, x_94, x_99); -x_101 = lean_array_get_size(x_95); -x_102 = lean_usize_of_nat(x_101); -lean_dec(x_101); -x_103 = 0; -x_104 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__2(x_102, x_103, x_95, x_2, x_3, x_4, x_5, x_6, x_98); -x_105 = lean_ctor_get(x_104, 0); -lean_inc(x_105); -x_106 = lean_ctor_get(x_104, 1); -lean_inc(x_106); -if (lean_is_exclusive(x_104)) { - lean_ctor_release(x_104, 0); - lean_ctor_release(x_104, 1); - x_107 = x_104; -} else { - lean_dec_ref(x_104); - x_107 = lean_box(0); -} -x_108 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_108, 0, x_100); -lean_ctor_set(x_108, 1, x_105); -if (lean_is_scalar(x_107)) { - x_109 = lean_alloc_ctor(0, 2, 0); -} else { - x_109 = x_107; -} -lean_ctor_set(x_109, 0, x_108); -lean_ctor_set(x_109, 1, x_106); -return x_109; -} -} -case 4: -{ -uint8_t x_110; -x_110 = !lean_is_exclusive(x_1); -if (x_110 == 0) -{ -lean_object* x_111; uint8_t x_112; -x_111 = lean_ctor_get(x_1, 0); -x_112 = !lean_is_exclusive(x_111); -if (x_112 == 0) -{ -lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; uint8_t x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; size_t x_126; size_t x_127; lean_object* x_128; uint8_t x_129; -x_113 = lean_ctor_get(x_111, 1); -x_114 = lean_ctor_get(x_111, 2); -x_115 = lean_ctor_get(x_111, 3); -x_116 = lean_st_ref_get(x_2, x_7); -x_117 = lean_ctor_get(x_116, 0); -lean_inc(x_117); -x_118 = lean_ctor_get(x_116, 1); -lean_inc(x_118); -lean_dec(x_116); -x_119 = 1; -x_120 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_117, x_119, x_113); -x_121 = lean_st_ref_get(x_2, x_118); -x_122 = lean_ctor_get(x_121, 0); -lean_inc(x_122); -x_123 = lean_ctor_get(x_121, 1); -lean_inc(x_123); -lean_dec(x_121); -x_124 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_122, x_114, x_119); -x_125 = lean_array_get_size(x_115); -x_126 = lean_usize_of_nat(x_125); -lean_dec(x_125); -x_127 = 0; -x_128 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__3(x_126, x_127, x_115, x_2, x_3, x_4, x_5, x_6, x_123); -x_129 = !lean_is_exclusive(x_128); -if (x_129 == 0) -{ -lean_object* x_130; -x_130 = lean_ctor_get(x_128, 0); -lean_ctor_set(x_111, 3, x_130); -lean_ctor_set(x_111, 2, x_124); -lean_ctor_set(x_111, 1, x_120); -lean_ctor_set(x_128, 0, x_1); -return x_128; -} -else -{ -lean_object* x_131; lean_object* x_132; lean_object* x_133; -x_131 = lean_ctor_get(x_128, 0); -x_132 = lean_ctor_get(x_128, 1); -lean_inc(x_132); -lean_inc(x_131); -lean_dec(x_128); -lean_ctor_set(x_111, 3, x_131); -lean_ctor_set(x_111, 2, x_124); -lean_ctor_set(x_111, 1, x_120); -x_133 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_133, 0, x_1); -lean_ctor_set(x_133, 1, x_132); -return x_133; -} -} -else -{ -lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; uint8_t x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; size_t x_148; size_t x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; lean_object* x_155; -x_134 = lean_ctor_get(x_111, 0); -x_135 = lean_ctor_get(x_111, 1); -x_136 = lean_ctor_get(x_111, 2); -x_137 = lean_ctor_get(x_111, 3); -lean_inc(x_137); -lean_inc(x_136); -lean_inc(x_135); -lean_inc(x_134); -lean_dec(x_111); -x_138 = lean_st_ref_get(x_2, x_7); -x_139 = lean_ctor_get(x_138, 0); -lean_inc(x_139); -x_140 = lean_ctor_get(x_138, 1); -lean_inc(x_140); -lean_dec(x_138); -x_141 = 1; -x_142 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_139, x_141, x_135); -x_143 = lean_st_ref_get(x_2, x_140); -x_144 = lean_ctor_get(x_143, 0); -lean_inc(x_144); -x_145 = lean_ctor_get(x_143, 1); -lean_inc(x_145); -lean_dec(x_143); -x_146 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_144, x_136, x_141); -x_147 = lean_array_get_size(x_137); -x_148 = lean_usize_of_nat(x_147); -lean_dec(x_147); -x_149 = 0; -x_150 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__3(x_148, x_149, x_137, x_2, x_3, x_4, x_5, x_6, x_145); -x_151 = lean_ctor_get(x_150, 0); -lean_inc(x_151); -x_152 = lean_ctor_get(x_150, 1); -lean_inc(x_152); -if (lean_is_exclusive(x_150)) { - lean_ctor_release(x_150, 0); - lean_ctor_release(x_150, 1); - x_153 = x_150; -} else { - lean_dec_ref(x_150); - x_153 = lean_box(0); -} -x_154 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_154, 0, x_134); -lean_ctor_set(x_154, 1, x_142); -lean_ctor_set(x_154, 2, x_146); -lean_ctor_set(x_154, 3, x_151); -lean_ctor_set(x_1, 0, x_154); -if (lean_is_scalar(x_153)) { - x_155 = lean_alloc_ctor(0, 2, 0); -} else { - x_155 = x_153; -} -lean_ctor_set(x_155, 0, x_1); -lean_ctor_set(x_155, 1, x_152); -return x_155; -} -} -else -{ -lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; uint8_t x_165; lean_object* x_166; lean_object* x_167; lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; size_t x_172; size_t x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; lean_object* x_178; lean_object* x_179; lean_object* x_180; -x_156 = lean_ctor_get(x_1, 0); -lean_inc(x_156); -lean_dec(x_1); -x_157 = lean_ctor_get(x_156, 0); -lean_inc(x_157); -x_158 = lean_ctor_get(x_156, 1); -lean_inc(x_158); -x_159 = lean_ctor_get(x_156, 2); -lean_inc(x_159); -x_160 = lean_ctor_get(x_156, 3); -lean_inc(x_160); -if (lean_is_exclusive(x_156)) { - lean_ctor_release(x_156, 0); - lean_ctor_release(x_156, 1); - lean_ctor_release(x_156, 2); - lean_ctor_release(x_156, 3); - x_161 = x_156; -} else { - lean_dec_ref(x_156); - x_161 = lean_box(0); -} -x_162 = lean_st_ref_get(x_2, x_7); -x_163 = lean_ctor_get(x_162, 0); -lean_inc(x_163); -x_164 = lean_ctor_get(x_162, 1); -lean_inc(x_164); -lean_dec(x_162); -x_165 = 1; -x_166 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_163, x_165, x_158); -x_167 = lean_st_ref_get(x_2, x_164); -x_168 = lean_ctor_get(x_167, 0); -lean_inc(x_168); -x_169 = lean_ctor_get(x_167, 1); -lean_inc(x_169); -lean_dec(x_167); -x_170 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_168, x_159, x_165); -x_171 = lean_array_get_size(x_160); -x_172 = lean_usize_of_nat(x_171); -lean_dec(x_171); -x_173 = 0; -x_174 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__3(x_172, x_173, x_160, x_2, x_3, x_4, x_5, x_6, x_169); -x_175 = lean_ctor_get(x_174, 0); -lean_inc(x_175); -x_176 = lean_ctor_get(x_174, 1); -lean_inc(x_176); -if (lean_is_exclusive(x_174)) { - lean_ctor_release(x_174, 0); - lean_ctor_release(x_174, 1); - x_177 = x_174; -} else { - lean_dec_ref(x_174); - x_177 = lean_box(0); -} -if (lean_is_scalar(x_161)) { - x_178 = lean_alloc_ctor(0, 4, 0); -} else { - x_178 = x_161; -} -lean_ctor_set(x_178, 0, x_157); -lean_ctor_set(x_178, 1, x_166); -lean_ctor_set(x_178, 2, x_170); -lean_ctor_set(x_178, 3, x_175); -x_179 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_179, 0, x_178); -if (lean_is_scalar(x_177)) { - x_180 = lean_alloc_ctor(0, 2, 0); -} else { - x_180 = x_177; -} -lean_ctor_set(x_180, 0, x_179); -lean_ctor_set(x_180, 1, x_176); -return x_180; -} -} -case 5: -{ -uint8_t x_181; -x_181 = !lean_is_exclusive(x_1); -if (x_181 == 0) -{ -lean_object* x_182; lean_object* x_183; uint8_t x_184; -x_182 = lean_ctor_get(x_1, 0); -x_183 = lean_st_ref_get(x_2, x_7); -x_184 = !lean_is_exclusive(x_183); -if (x_184 == 0) -{ -lean_object* x_185; uint8_t x_186; lean_object* x_187; -x_185 = lean_ctor_get(x_183, 0); -x_186 = 1; -x_187 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_185, x_182, x_186); -lean_ctor_set(x_1, 0, x_187); -lean_ctor_set(x_183, 0, x_1); -return x_183; -} -else -{ -lean_object* x_188; lean_object* x_189; uint8_t x_190; lean_object* x_191; lean_object* x_192; -x_188 = lean_ctor_get(x_183, 0); -x_189 = lean_ctor_get(x_183, 1); -lean_inc(x_189); -lean_inc(x_188); -lean_dec(x_183); -x_190 = 1; -x_191 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_188, x_182, x_190); -lean_ctor_set(x_1, 0, x_191); -x_192 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_192, 0, x_1); -lean_ctor_set(x_192, 1, x_189); -return x_192; -} -} -else -{ -lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; uint8_t x_198; lean_object* x_199; lean_object* x_200; lean_object* x_201; -x_193 = lean_ctor_get(x_1, 0); -lean_inc(x_193); -lean_dec(x_1); -x_194 = lean_st_ref_get(x_2, x_7); -x_195 = lean_ctor_get(x_194, 0); -lean_inc(x_195); -x_196 = lean_ctor_get(x_194, 1); -lean_inc(x_196); -if (lean_is_exclusive(x_194)) { - lean_ctor_release(x_194, 0); - lean_ctor_release(x_194, 1); - x_197 = x_194; -} else { - lean_dec_ref(x_194); - x_197 = lean_box(0); -} -x_198 = 1; -x_199 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_195, x_193, x_198); -x_200 = lean_alloc_ctor(5, 1, 0); -lean_ctor_set(x_200, 0, x_199); -if (lean_is_scalar(x_197)) { - x_201 = lean_alloc_ctor(0, 2, 0); -} else { - x_201 = x_197; -} -lean_ctor_set(x_201, 0, x_200); -lean_ctor_set(x_201, 1, x_196); -return x_201; -} -} -default: -{ -uint8_t x_202; -x_202 = !lean_is_exclusive(x_1); -if (x_202 == 0) -{ -lean_object* x_203; lean_object* x_204; uint8_t x_205; -x_203 = lean_ctor_get(x_1, 0); -x_204 = lean_st_ref_get(x_2, x_7); -x_205 = !lean_is_exclusive(x_204); -if (x_205 == 0) -{ -lean_object* x_206; uint8_t x_207; lean_object* x_208; -x_206 = lean_ctor_get(x_204, 0); -x_207 = 1; -x_208 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_206, x_207, x_203); -lean_ctor_set(x_1, 0, x_208); -lean_ctor_set(x_204, 0, x_1); -return x_204; -} -else -{ -lean_object* x_209; lean_object* x_210; uint8_t x_211; lean_object* x_212; lean_object* x_213; -x_209 = lean_ctor_get(x_204, 0); -x_210 = lean_ctor_get(x_204, 1); -lean_inc(x_210); -lean_inc(x_209); -lean_dec(x_204); -x_211 = 1; -x_212 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_209, x_211, x_203); -lean_ctor_set(x_1, 0, x_212); -x_213 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_213, 0, x_1); -lean_ctor_set(x_213, 1, x_210); -return x_213; -} -} -else -{ -lean_object* x_214; lean_object* x_215; lean_object* x_216; lean_object* x_217; lean_object* x_218; uint8_t x_219; lean_object* x_220; lean_object* x_221; lean_object* x_222; -x_214 = lean_ctor_get(x_1, 0); -lean_inc(x_214); -lean_dec(x_1); -x_215 = lean_st_ref_get(x_2, x_7); -x_216 = lean_ctor_get(x_215, 0); -lean_inc(x_216); -x_217 = lean_ctor_get(x_215, 1); -lean_inc(x_217); -if (lean_is_exclusive(x_215)) { - lean_ctor_release(x_215, 0); - lean_ctor_release(x_215, 1); - x_218 = x_215; -} else { - lean_dec_ref(x_215); - x_218 = lean_box(0); -} -x_219 = 1; -x_220 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_216, x_219, x_214); -x_221 = lean_alloc_ctor(6, 1, 0); -lean_ctor_set(x_221, 0, x_220); -if (lean_is_scalar(x_218)) { - x_222 = lean_alloc_ctor(0, 2, 0); -} else { - x_222 = x_218; -} -lean_ctor_set(x_222, 0, x_221); -lean_ctor_set(x_222, 1, x_217); -return x_222; -} -} -} -} -} -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__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) { -_start: -{ -size_t x_10; size_t x_11; lean_object* x_12; -x_10 = lean_unbox_usize(x_1); -lean_dec(x_1); -x_11 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_12 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_10, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -return x_12; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___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_Compiler_LCNF_Internalize_internalizeFunDecl(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); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__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) { -_start: -{ -uint8_t x_9; lean_object* x_10; -x_9 = lean_unbox(x_1); -lean_dec(x_1); -x_10 = l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__1(x_9, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -return x_10; -} -} -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__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) { -_start: -{ -size_t x_10; size_t x_11; lean_object* x_12; -x_10 = lean_unbox_usize(x_1); -lean_dec(x_1); -x_11 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_12 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__2(x_10, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -return x_12; -} -} -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__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) { -_start: -{ -size_t x_10; size_t x_11; lean_object* x_12; -x_10 = lean_unbox_usize(x_1); -lean_dec(x_1); -x_11 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_12 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__3(x_10, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -return x_12; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCode___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_Compiler_LCNF_Internalize_internalizeCode(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); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCodeDecl(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: -{ -switch (lean_obj_tag(x_1)) { -case 0: -{ -uint8_t x_8; -x_8 = !lean_is_exclusive(x_1); -if (x_8 == 0) -{ -lean_object* x_9; lean_object* x_10; uint8_t x_11; -x_9 = lean_ctor_get(x_1, 0); -x_10 = l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl(x_9, x_2, x_3, x_4, x_5, x_6, x_7); -x_11 = !lean_is_exclusive(x_10); -if (x_11 == 0) -{ -lean_object* x_12; -x_12 = lean_ctor_get(x_10, 0); -lean_ctor_set(x_1, 0, x_12); -lean_ctor_set(x_10, 0, x_1); -return x_10; -} -else -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_13 = lean_ctor_get(x_10, 0); -x_14 = lean_ctor_get(x_10, 1); -lean_inc(x_14); -lean_inc(x_13); -lean_dec(x_10); -lean_ctor_set(x_1, 0, x_13); -x_15 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_15, 0, x_1); -lean_ctor_set(x_15, 1, x_14); -return x_15; -} -} -else -{ -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_1, 0); -lean_inc(x_16); -lean_dec(x_1); -x_17 = l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl(x_16, x_2, x_3, x_4, x_5, x_6, x_7); -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -if (lean_is_exclusive(x_17)) { - lean_ctor_release(x_17, 0); - lean_ctor_release(x_17, 1); - x_20 = x_17; -} else { - lean_dec_ref(x_17); - x_20 = lean_box(0); -} -x_21 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_21, 0, x_18); -if (lean_is_scalar(x_20)) { - x_22 = lean_alloc_ctor(0, 2, 0); -} else { - x_22 = x_20; -} -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_19); -return x_22; -} -} -case 1: -{ -uint8_t x_23; -x_23 = !lean_is_exclusive(x_1); -if (x_23 == 0) -{ -lean_object* x_24; lean_object* x_25; uint8_t x_26; -x_24 = lean_ctor_get(x_1, 0); -x_25 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_24, x_2, x_3, x_4, x_5, x_6, x_7); -x_26 = !lean_is_exclusive(x_25); -if (x_26 == 0) -{ -lean_object* x_27; -x_27 = lean_ctor_get(x_25, 0); -lean_ctor_set(x_1, 0, x_27); -lean_ctor_set(x_25, 0, x_1); -return x_25; -} -else -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; -x_28 = lean_ctor_get(x_25, 0); -x_29 = lean_ctor_get(x_25, 1); -lean_inc(x_29); -lean_inc(x_28); -lean_dec(x_25); -lean_ctor_set(x_1, 0, x_28); -x_30 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_30, 0, x_1); -lean_ctor_set(x_30, 1, x_29); -return x_30; -} -} -else -{ -lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_31 = lean_ctor_get(x_1, 0); -lean_inc(x_31); -lean_dec(x_1); -x_32 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_31, x_2, x_3, x_4, x_5, x_6, x_7); -x_33 = lean_ctor_get(x_32, 0); -lean_inc(x_33); -x_34 = lean_ctor_get(x_32, 1); -lean_inc(x_34); -if (lean_is_exclusive(x_32)) { - lean_ctor_release(x_32, 0); - lean_ctor_release(x_32, 1); - x_35 = x_32; -} else { - lean_dec_ref(x_32); - x_35 = lean_box(0); -} -x_36 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_36, 0, x_33); -if (lean_is_scalar(x_35)) { - x_37 = lean_alloc_ctor(0, 2, 0); -} else { - x_37 = x_35; -} -lean_ctor_set(x_37, 0, x_36); -lean_ctor_set(x_37, 1, x_34); -return x_37; -} -} -default: -{ -uint8_t x_38; -x_38 = !lean_is_exclusive(x_1); -if (x_38 == 0) -{ -lean_object* x_39; lean_object* x_40; uint8_t x_41; -x_39 = lean_ctor_get(x_1, 0); -x_40 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_39, x_2, x_3, x_4, x_5, x_6, x_7); -x_41 = !lean_is_exclusive(x_40); -if (x_41 == 0) -{ -lean_object* x_42; -x_42 = lean_ctor_get(x_40, 0); -lean_ctor_set(x_1, 0, x_42); -lean_ctor_set(x_40, 0, x_1); -return x_40; -} -else -{ -lean_object* x_43; lean_object* x_44; lean_object* x_45; -x_43 = lean_ctor_get(x_40, 0); -x_44 = lean_ctor_get(x_40, 1); -lean_inc(x_44); -lean_inc(x_43); -lean_dec(x_40); -lean_ctor_set(x_1, 0, x_43); -x_45 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_45, 0, x_1); -lean_ctor_set(x_45, 1, x_44); -return x_45; -} -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_46 = lean_ctor_get(x_1, 0); -lean_inc(x_46); -lean_dec(x_1); -x_47 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_46, x_2, x_3, x_4, x_5, x_6, x_7); -x_48 = lean_ctor_get(x_47, 0); -lean_inc(x_48); -x_49 = lean_ctor_get(x_47, 1); -lean_inc(x_49); -if (lean_is_exclusive(x_47)) { - lean_ctor_release(x_47, 0); - lean_ctor_release(x_47, 1); - x_50 = x_47; -} else { - lean_dec_ref(x_47); - x_50 = lean_box(0); -} -x_51 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_51, 0, x_48); -if (lean_is_scalar(x_50)) { - x_52 = lean_alloc_ctor(0, 2, 0); -} else { - x_52 = x_50; -} -lean_ctor_set(x_52, 0, x_51); -lean_ctor_set(x_52, 1, x_49); -return x_52; -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCodeDecl___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_Compiler_LCNF_Internalize_internalizeCodeDecl(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); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_internalize(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; -x_8 = lean_st_mk_ref(x_2, x_7); -x_9 = lean_ctor_get(x_8, 0); -lean_inc(x_9); -x_10 = lean_ctor_get(x_8, 1); -lean_inc(x_10); -lean_dec(x_8); -x_11 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_1, x_9, x_3, x_4, x_5, x_6, x_10); -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 = lean_st_ref_get(x_9, x_13); -lean_dec(x_9); -x_15 = !lean_is_exclusive(x_14); -if (x_15 == 0) -{ -lean_object* x_16; -x_16 = lean_ctor_get(x_14, 0); -lean_dec(x_16); -lean_ctor_set(x_14, 0, x_12); -return x_14; -} -else -{ -lean_object* x_17; lean_object* x_18; -x_17 = lean_ctor_get(x_14, 1); -lean_inc(x_17); -lean_dec(x_14); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_12); -lean_ctor_set(x_18, 1, x_17); -return x_18; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_internalize___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_Compiler_LCNF_Code_internalize(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); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_internalize_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) { -_start: -{ -uint8_t x_8; -x_8 = !lean_is_exclusive(x_1); -if (x_8 == 0) -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; -x_9 = lean_ctor_get(x_1, 2); -x_10 = lean_ctor_get(x_1, 3); -x_11 = lean_ctor_get(x_1, 4); -x_12 = lean_st_ref_get(x_2, x_7); -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -x_14 = lean_ctor_get(x_12, 1); -lean_inc(x_14); -lean_dec(x_12); -x_15 = 1; -x_16 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_13, x_15, x_9); -x_17 = lean_array_get_size(x_10); -x_18 = lean_usize_of_nat(x_17); -lean_dec(x_17); -x_19 = 0; -x_20 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_18, x_19, x_10, x_2, x_3, x_4, x_5, x_6, x_14); -x_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -x_22 = lean_ctor_get(x_20, 1); -lean_inc(x_22); -lean_dec(x_20); -x_23 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_11, x_2, x_3, x_4, x_5, x_6, x_22); -x_24 = !lean_is_exclusive(x_23); -if (x_24 == 0) -{ -lean_object* x_25; -x_25 = lean_ctor_get(x_23, 0); -lean_ctor_set(x_1, 4, x_25); -lean_ctor_set(x_1, 3, x_21); -lean_ctor_set(x_1, 2, x_16); -lean_ctor_set(x_23, 0, x_1); -return x_23; -} -else -{ -lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_26 = lean_ctor_get(x_23, 0); -x_27 = lean_ctor_get(x_23, 1); -lean_inc(x_27); -lean_inc(x_26); -lean_dec(x_23); -lean_ctor_set(x_1, 4, x_26); -lean_ctor_set(x_1, 3, x_21); -lean_ctor_set(x_1, 2, x_16); -x_28 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_28, 0, x_1); -lean_ctor_set(x_28, 1, x_27); -return x_28; -} -} -else -{ -lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; uint8_t x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; uint8_t x_39; lean_object* x_40; lean_object* x_41; size_t x_42; size_t x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_29 = lean_ctor_get(x_1, 0); -x_30 = lean_ctor_get(x_1, 1); -x_31 = lean_ctor_get(x_1, 2); -x_32 = lean_ctor_get(x_1, 3); -x_33 = lean_ctor_get(x_1, 4); -x_34 = lean_ctor_get_uint8(x_1, sizeof(void*)*5); -x_35 = lean_ctor_get_uint8(x_1, sizeof(void*)*5 + 1); -lean_inc(x_33); -lean_inc(x_32); -lean_inc(x_31); -lean_inc(x_30); -lean_inc(x_29); -lean_dec(x_1); -x_36 = lean_st_ref_get(x_2, x_7); -x_37 = lean_ctor_get(x_36, 0); -lean_inc(x_37); -x_38 = lean_ctor_get(x_36, 1); -lean_inc(x_38); -lean_dec(x_36); -x_39 = 1; -x_40 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_37, x_39, x_31); -x_41 = lean_array_get_size(x_32); -x_42 = lean_usize_of_nat(x_41); -lean_dec(x_41); -x_43 = 0; -x_44 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_42, x_43, x_32, x_2, x_3, x_4, x_5, x_6, x_38); -x_45 = lean_ctor_get(x_44, 0); -lean_inc(x_45); -x_46 = lean_ctor_get(x_44, 1); -lean_inc(x_46); -lean_dec(x_44); -x_47 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_33, x_2, x_3, x_4, x_5, x_6, x_46); -x_48 = lean_ctor_get(x_47, 0); -lean_inc(x_48); -x_49 = lean_ctor_get(x_47, 1); -lean_inc(x_49); -if (lean_is_exclusive(x_47)) { - lean_ctor_release(x_47, 0); - lean_ctor_release(x_47, 1); - x_50 = x_47; -} else { - lean_dec_ref(x_47); - x_50 = lean_box(0); -} -x_51 = lean_alloc_ctor(0, 5, 2); -lean_ctor_set(x_51, 0, x_29); -lean_ctor_set(x_51, 1, x_30); -lean_ctor_set(x_51, 2, x_40); -lean_ctor_set(x_51, 3, x_45); -lean_ctor_set(x_51, 4, x_48); -lean_ctor_set_uint8(x_51, sizeof(void*)*5, x_34); -lean_ctor_set_uint8(x_51, sizeof(void*)*5 + 1, x_35); -if (lean_is_scalar(x_50)) { - x_52 = lean_alloc_ctor(0, 2, 0); -} else { - x_52 = x_50; -} -lean_ctor_set(x_52, 0, x_51); -lean_ctor_set(x_52, 1, x_49); -return x_52; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_internalize_go___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_Compiler_LCNF_Decl_internalize_go(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); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_internalize(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; -x_8 = lean_st_mk_ref(x_2, x_7); -x_9 = lean_ctor_get(x_8, 0); -lean_inc(x_9); -x_10 = lean_ctor_get(x_8, 1); -lean_inc(x_10); -lean_dec(x_8); -x_11 = l_Lean_Compiler_LCNF_Decl_internalize_go(x_1, x_9, x_3, x_4, x_5, x_6, x_10); -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 = lean_st_ref_get(x_9, x_13); -lean_dec(x_9); -x_15 = !lean_is_exclusive(x_14); -if (x_15 == 0) -{ -lean_object* x_16; -x_16 = lean_ctor_get(x_14, 0); -lean_dec(x_16); -lean_ctor_set(x_14, 0, x_12); -return x_14; -} -else -{ -lean_object* x_17; lean_object* x_18; -x_17 = lean_ctor_get(x_14, 1); -lean_inc(x_17); -lean_dec(x_14); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_12); -lean_ctor_set(x_18, 1, x_17); -return x_18; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_internalize___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_Compiler_LCNF_Decl_internalize(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); -return x_8; -} -} LEAN_EXPORT lean_object* l_Lean_mkFreshId___at_Lean_Compiler_LCNF_mkParam___spec__2___rarg(lean_object* x_1, lean_object* x_2) { _start: { @@ -11388,160 +8896,6 @@ lean_dec(x_3); return x_9; } } -LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_cleanup___spec__1(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_mkHashMapImp___rarg(x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_cleanup___spec__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) { -_start: -{ -uint8_t x_9; -x_9 = lean_usize_dec_lt(x_2, x_1); -if (x_9 == 0) -{ -lean_object* x_10; -x_10 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_10, 0, x_3); -lean_ctor_set(x_10, 1, x_8); -return x_10; -} -else -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_11 = lean_array_uget(x_3, x_2); -x_12 = lean_unsigned_to_nat(0u); -x_13 = lean_array_uset(x_3, x_2, x_12); -x_14 = lean_st_ref_take(x_5, x_8); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -x_17 = !lean_is_exclusive(x_15); -if (x_17 == 0) -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; size_t x_26; size_t x_27; lean_object* x_28; -x_18 = lean_ctor_get(x_15, 1); -lean_dec(x_18); -x_19 = lean_unsigned_to_nat(1u); -lean_ctor_set(x_15, 1, x_19); -x_20 = lean_st_ref_set(x_5, x_15, x_16); -x_21 = lean_ctor_get(x_20, 1); -lean_inc(x_21); -lean_dec(x_20); -x_22 = l_Lean_mkHashMapImp___rarg(x_12); -x_23 = l_Lean_Compiler_LCNF_Decl_internalize(x_11, x_22, x_4, x_5, x_6, x_7, x_21); -x_24 = lean_ctor_get(x_23, 0); -lean_inc(x_24); -x_25 = lean_ctor_get(x_23, 1); -lean_inc(x_25); -lean_dec(x_23); -x_26 = 1; -x_27 = lean_usize_add(x_2, x_26); -x_28 = lean_array_uset(x_13, x_2, x_24); -x_2 = x_27; -x_3 = x_28; -x_8 = x_25; -goto _start; -} -else -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; size_t x_39; size_t x_40; lean_object* x_41; -x_30 = lean_ctor_get(x_15, 0); -lean_inc(x_30); -lean_dec(x_15); -x_31 = lean_unsigned_to_nat(1u); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_30); -lean_ctor_set(x_32, 1, x_31); -x_33 = lean_st_ref_set(x_5, x_32, x_16); -x_34 = lean_ctor_get(x_33, 1); -lean_inc(x_34); -lean_dec(x_33); -x_35 = l_Lean_mkHashMapImp___rarg(x_12); -x_36 = l_Lean_Compiler_LCNF_Decl_internalize(x_11, x_35, x_4, x_5, x_6, x_7, x_34); -x_37 = lean_ctor_get(x_36, 0); -lean_inc(x_37); -x_38 = lean_ctor_get(x_36, 1); -lean_inc(x_38); -lean_dec(x_36); -x_39 = 1; -x_40 = lean_usize_add(x_2, x_39); -x_41 = lean_array_uset(x_13, x_2, x_37); -x_2 = x_40; -x_3 = x_41; -x_8 = x_38; -goto _start; -} -} -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_cleanup___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_CompilerM_State_lctx___default___closed__2; -x_2 = lean_unsigned_to_nat(1u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_cleanup(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { -_start: -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; size_t x_13; size_t x_14; lean_object* x_15; -x_7 = lean_st_ref_take(x_3, x_6); -x_8 = lean_ctor_get(x_7, 1); -lean_inc(x_8); -lean_dec(x_7); -x_9 = l_Lean_Compiler_LCNF_cleanup___closed__1; -x_10 = lean_st_ref_set(x_3, x_9, x_8); -x_11 = lean_ctor_get(x_10, 1); -lean_inc(x_11); -lean_dec(x_10); -x_12 = lean_array_get_size(x_1); -x_13 = lean_usize_of_nat(x_12); -lean_dec(x_12); -x_14 = 0; -x_15 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_cleanup___spec__2(x_13, x_14, x_1, x_2, x_3, x_4, x_5, x_11); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_15; -} -} -LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_cleanup___spec__1___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_mkHashMap___at_Lean_Compiler_LCNF_cleanup___spec__1(x_1); -lean_dec(x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_cleanup___spec__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) { -_start: -{ -size_t x_9; size_t x_10; lean_object* x_11; -x_9 = lean_unbox_usize(x_1); -lean_dec(x_1); -x_10 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_11 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_cleanup___spec__2(x_9, x_10, x_3, x_4, x_5, x_6, x_7, x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -return x_11; -} -} LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getConfig(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { @@ -11749,14 +9103,6 @@ l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp___clo lean_mark_persistent(l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp___closed__1); l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp___closed__2 = _init_l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp___closed__2(); lean_mark_persistent(l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp___closed__2); -l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___closed__1 = _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___closed__1); -l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue = _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue); -l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___closed__1 = _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___closed__1); -l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM = _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM); l_Lean_Compiler_LCNF_instMonadFVarSubstNormalizerM___closed__1 = _init_l_Lean_Compiler_LCNF_instMonadFVarSubstNormalizerM___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_instMonadFVarSubstNormalizerM___closed__1); l_Lean_Compiler_LCNF_mkFreshJpName___closed__1 = _init_l_Lean_Compiler_LCNF_mkFreshJpName___closed__1(); @@ -11767,8 +9113,6 @@ l_Lean_Compiler_LCNF_mkAuxParam___closed__1 = _init_l_Lean_Compiler_LCNF_mkAuxPa lean_mark_persistent(l_Lean_Compiler_LCNF_mkAuxParam___closed__1); l_Lean_Compiler_LCNF_mkAuxParam___closed__2 = _init_l_Lean_Compiler_LCNF_mkAuxParam___closed__2(); lean_mark_persistent(l_Lean_Compiler_LCNF_mkAuxParam___closed__2); -l_Lean_Compiler_LCNF_cleanup___closed__1 = _init_l_Lean_Compiler_LCNF_cleanup___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_cleanup___closed__1); return lean_io_result_mk_ok(lean_box(0)); } #ifdef __cplusplus diff --git a/stage0/stdlib/Lean/Compiler/LCNF/DependsOn.c b/stage0/stdlib/Lean/Compiler/LCNF/DependsOn.c index 8a2d23a9d7..c4c8b1fc4a 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/DependsOn.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/DependsOn.c @@ -14,6 +14,7 @@ extern "C" { #endif size_t lean_usize_add(size_t, size_t); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_FunDecl_dependsOn___boxed(lean_object*, lean_object*); uint8_t lean_usize_dec_eq(size_t, size_t); lean_object* lean_array_uget(lean_object*, size_t); lean_object* lean_array_get_size(lean_object*); @@ -21,10 +22,13 @@ LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCN LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_Code_dependsOn(lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_exprDepOn___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_LetDecl_depOn___boxed(lean_object*, lean_object*); +LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_CodeDecl_dependsOn(lean_object*, lean_object*); +LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_FunDecl_dependsOn(lean_object*, lean_object*); LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_depOn(lean_object*, lean_object*); LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_LetDecl_depOn(lean_object*, lean_object*); LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_exprDepOn(lean_object*, lean_object*); uint8_t l_Lean_Name_quickCmp(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_CodeDecl_dependsOn___boxed(lean_object*, lean_object*); size_t lean_usize_of_nat(lean_object*); LEAN_EXPORT lean_object* l_Lean_Expr_hasAnyFVar_visit___at___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_exprDepOn___spec__1___boxed(lean_object*, lean_object*); LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_fvarDepOn(lean_object*, lean_object*); @@ -678,6 +682,95 @@ x_4 = lean_box(x_3); return x_4; } } +LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_FunDecl_dependsOn(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; uint8_t x_4; +x_3 = lean_ctor_get(x_1, 3); +lean_inc(x_3); +x_4 = l_Lean_Expr_hasAnyFVar_visit___at___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_exprDepOn___spec__1(x_2, x_3); +lean_dec(x_3); +if (x_4 == 0) +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_ctor_get(x_1, 4); +lean_inc(x_5); +lean_dec(x_1); +x_6 = l___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_depOn(x_5, x_2); +return x_6; +} +else +{ +uint8_t x_7; +lean_dec(x_2); +lean_dec(x_1); +x_7 = 1; +return x_7; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_FunDecl_dependsOn___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = l_Lean_Compiler_LCNF_FunDecl_dependsOn(x_1, x_2); +x_4 = lean_box(x_3); +return x_4; +} +} +LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_CodeDecl_dependsOn(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_3; uint8_t x_4; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +lean_dec(x_1); +x_4 = l___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_LetDecl_depOn(x_3, x_2); +lean_dec(x_2); +lean_dec(x_3); +return x_4; +} +else +{ +lean_object* x_5; lean_object* x_6; uint8_t x_7; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +lean_dec(x_1); +x_6 = lean_ctor_get(x_5, 3); +lean_inc(x_6); +x_7 = l_Lean_Expr_hasAnyFVar_visit___at___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_exprDepOn___spec__1(x_2, x_6); +lean_dec(x_6); +if (x_7 == 0) +{ +lean_object* x_8; uint8_t x_9; +x_8 = lean_ctor_get(x_5, 4); +lean_inc(x_8); +lean_dec(x_5); +x_9 = l___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_depOn(x_8, x_2); +return x_9; +} +else +{ +uint8_t x_10; +lean_dec(x_5); +lean_dec(x_2); +x_10 = 1; +return x_10; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_CodeDecl_dependsOn___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = l_Lean_Compiler_LCNF_CodeDecl_dependsOn(x_1, x_2); +x_4 = lean_box(x_3); +return x_4; +} +} LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_Code_dependsOn(lean_object* x_1, lean_object* x_2) { _start: { diff --git a/stage0/stdlib/Lean/Compiler/LCNF/InferType.c b/stage0/stdlib/Lean/Compiler/LCNF/InferType.c index 9375c16b98..c983ec6f31 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/InferType.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/InferType.c @@ -1,6 +1,6 @@ // Lean compiler output // Module: Lean.Compiler.LCNF.InferType -// Imports: Init Lean.Compiler.LCNF.CompilerM Lean.Compiler.LCNF.Types Lean.Compiler.LCNF.PhaseExt +// Imports: Init Lean.Compiler.LCNF.CompilerM Lean.Compiler.LCNF.Types Lean.Compiler.LCNF.PhaseExt Lean.Compiler.LCNF.OtherDecl #include #if defined(__clang__) #pragma clang diagnostic ignored "-Wunused-parameter" @@ -19,15 +19,12 @@ size_t lean_usize_add(size_t, size_t); static lean_object* l_Lean_Compiler_LCNF_InferType_mkForallParams___closed__1; lean_object* l_Lean_stringToMessageData(lean_object*); lean_object* l_Lean_Expr_lam___override(lean_object*, lean_object*, lean_object*, uint8_t); -extern lean_object* l_Lean_Compiler_LCNF_anyTypeExpr; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_InferType_inferForallType_go___spec__11___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_mk_empty_array_with_capacity(lean_object*); -lean_object* l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); lean_object* l_Lean_Expr_forallE___override(lean_object*, lean_object*, lean_object*, uint8_t); lean_object* l_Lean_LocalDecl_userName(lean_object*); static lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_InferType_inferAppTypeCore___spec__2___lambda__1___closed__5; -static lean_object* l_Lean_Compiler_LCNF_InferType_inferConstType___closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_InferType_getBinderName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_compatibleTypesQuick(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_InferType_inferLambdaType_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -83,6 +80,7 @@ lean_object* l_Lean_mkAppN(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_InferType_mkForallParams___closed__4; LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_InferType_inferAppTypeCore___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_inferParamType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_Compiler_LCNF_erasedExpr; lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Literal_type(lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_InferType_inferForallType_go___spec__1(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -111,12 +109,10 @@ LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_InferT LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_isErasedCompatible_go___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_inferType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_fvarId_x21(lean_object*); -static lean_object* l_Lean_Compiler_LCNF_InferType_inferConstType___closed__4; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_InferType_inferForallType_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_instInhabited___rarg(lean_object*, lean_object*); lean_object* l_Lean_mkLevelIMax_x27(lean_object*, lean_object*); lean_object* l_panic___at_Lean_Expr_getRevArg_x21___spec__1(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_InferType_inferConstType___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instantiateForall___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_InferType_withLocalDecl___rarg(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -210,7 +206,6 @@ lean_object* l_Array_ofSubarray___rarg(lean_object*); lean_object* l_Lean_Compiler_LCNF_getType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_InferType_inferType___closed__2; static lean_object* l_Lean_Compiler_LCNF_isErasedCompatible_go___closed__2; -uint8_t l_Lean_Expr_isAnyType(lean_object*); lean_object* l_Lean_Compiler_LCNF_Decl_instantiateTypeLevelParams(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_InferType_inferProjType___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_st_ref_set(lean_object*, lean_object*, lean_object*); @@ -271,6 +266,7 @@ static lean_object* l_Lean_Compiler_LCNF_mkAuxJpDecl_x27___closed__1; static lean_object* l_Nat_foldRevM_loop___at_Lean_Compiler_LCNF_InferType_mkForallFVars___spec__1___closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_InferType_getType___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_InferType_inferType___spec__1___closed__2; +lean_object* l_Lean_Compiler_LCNF_getOtherDeclType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_InferType_inferProjType___spec__1___closed__1; static lean_object* l_Lean_Compiler_LCNF_InferType_inferType___closed__3; lean_object* l_Lean_mkApp3(lean_object*, lean_object*, lean_object*, lean_object*); @@ -1076,7 +1072,7 @@ static lean_object* _init_l_Lean_Compiler_LCNF_InferType_inferConstType___closed _start: { lean_object* x_1; -x_1 = lean_mk_string_from_bytes("lcAny", 5); +x_1 = lean_mk_string_from_bytes("lcErased", 8); return x_1; } } @@ -1090,24 +1086,6 @@ x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_InferType_inferConstType___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("lcErased", 8); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_InferType_inferConstType___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Compiler_LCNF_InferType_inferConstType___closed__3; -x_3 = l_Lean_Name_str___override(x_1, x_2); -return x_3; -} -} LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_InferType_inferConstType(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: { @@ -1116,100 +1094,75 @@ x_8 = l_Lean_Compiler_LCNF_InferType_inferConstType___closed__2; x_9 = lean_name_eq(x_1, x_8); if (x_9 == 0) { -lean_object* x_10; uint8_t x_11; -x_10 = l_Lean_Compiler_LCNF_InferType_inferConstType___closed__4; -x_11 = lean_name_eq(x_1, x_10); -if (x_11 == 0) +lean_object* x_10; lean_object* x_11; +lean_inc(x_1); +x_10 = l_Lean_Compiler_LCNF_getDecl_x3f(x_1, x_3, x_4, x_5, x_6, x_7); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +if (lean_obj_tag(x_11) == 0) { lean_object* x_12; lean_object* x_13; -lean_inc(x_1); -x_12 = l_Lean_Compiler_LCNF_getDecl_x3f(x_1, x_3, x_4, x_5, x_6, x_7); -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -if (lean_obj_tag(x_13) == 0) -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_ctor_get(x_12, 1); -lean_inc(x_14); -lean_dec(x_12); -x_15 = l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams(x_1, x_2, x_5, x_6, x_14); -return x_15; +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +x_13 = l_Lean_Compiler_LCNF_getOtherDeclType(x_1, x_2, x_3, x_4, x_5, x_6, x_12); +return x_13; } else { -uint8_t x_16; +uint8_t x_14; lean_dec(x_6); lean_dec(x_5); -lean_dec(x_1); -x_16 = !lean_is_exclusive(x_12); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_17 = lean_ctor_get(x_12, 0); -lean_dec(x_17); -x_18 = lean_ctor_get(x_13, 0); -lean_inc(x_18); -lean_dec(x_13); -x_19 = l_Lean_Compiler_LCNF_Decl_instantiateTypeLevelParams(x_18, x_2); -lean_dec(x_2); -lean_ctor_set(x_12, 0, x_19); -return x_12; -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_20 = lean_ctor_get(x_12, 1); -lean_inc(x_20); -lean_dec(x_12); -x_21 = lean_ctor_get(x_13, 0); -lean_inc(x_21); -lean_dec(x_13); -x_22 = l_Lean_Compiler_LCNF_Decl_instantiateTypeLevelParams(x_21, x_2); -lean_dec(x_2); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_20); -return x_23; -} -} -} -else -{ -lean_object* x_24; lean_object* x_25; -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_2); -lean_dec(x_1); -x_24 = l_Lean_Compiler_LCNF_anyTypeExpr; -x_25 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_25, 0, x_24); -lean_ctor_set(x_25, 1, x_7); -return x_25; -} -} -else -{ -lean_object* x_26; lean_object* x_27; -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_2); -lean_dec(x_1); -x_26 = l_Lean_Compiler_LCNF_anyTypeExpr; -x_27 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_27, 0, x_26); -lean_ctor_set(x_27, 1, x_7); -return x_27; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_InferType_inferConstType___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_Compiler_LCNF_InferType_inferConstType(x_1, x_2, x_3, x_4, x_5, x_6, x_7); lean_dec(x_4); lean_dec(x_3); -return x_8; +lean_dec(x_1); +x_14 = !lean_is_exclusive(x_10); +if (x_14 == 0) +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_ctor_get(x_10, 0); +lean_dec(x_15); +x_16 = lean_ctor_get(x_11, 0); +lean_inc(x_16); +lean_dec(x_11); +x_17 = l_Lean_Compiler_LCNF_Decl_instantiateTypeLevelParams(x_16, x_2); +lean_dec(x_2); +lean_ctor_set(x_10, 0, x_17); +return x_10; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_18 = lean_ctor_get(x_10, 1); +lean_inc(x_18); +lean_dec(x_10); +x_19 = lean_ctor_get(x_11, 0); +lean_inc(x_19); +lean_dec(x_11); +x_20 = l_Lean_Compiler_LCNF_Decl_instantiateTypeLevelParams(x_19, x_2); +lean_dec(x_2); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_18); +return x_21; +} +} +} +else +{ +lean_object* x_22; lean_object* x_23; +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_22 = l_Lean_Compiler_LCNF_erasedExpr; +x_23 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_7); +return x_23; +} } } LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_InferType_inferLambdaType_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) { @@ -1604,8 +1557,6 @@ x_27 = lean_ctor_get(x_1, 1); lean_inc(x_27); lean_dec(x_1); x_28 = l_Lean_Compiler_LCNF_InferType_inferConstType(x_26, x_27, x_3, x_4, x_5, x_6, x_7); -lean_dec(x_4); -lean_dec(x_3); return x_28; } case 5: @@ -1700,7 +1651,7 @@ static lean_object* _init_l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Infer _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_1 = l_Lean_Compiler_LCNF_erasedExpr; x_2 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; @@ -5306,7 +5257,7 @@ if (x_12 == 0) lean_object* x_13; lean_object* x_14; x_13 = lean_ctor_get(x_10, 0); lean_dec(x_13); -x_14 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_14 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_10, 0, x_14); return x_10; } @@ -5316,7 +5267,7 @@ lean_object* x_15; lean_object* x_16; lean_object* x_17; x_15 = lean_ctor_get(x_10, 1); lean_inc(x_15); lean_dec(x_10); -x_16 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_16 = l_Lean_Compiler_LCNF_erasedExpr; x_17 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_17, 0, x_16); lean_ctor_set(x_17, 1, x_15); @@ -5499,7 +5450,7 @@ if (x_50 == 0) lean_object* x_51; lean_object* x_52; x_51 = lean_ctor_get(x_48, 0); lean_dec(x_51); -x_52 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_52 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_48, 0, x_52); return x_48; } @@ -5509,7 +5460,7 @@ lean_object* x_53; lean_object* x_54; lean_object* x_55; x_53 = lean_ctor_get(x_48, 1); lean_inc(x_53); lean_dec(x_48); -x_54 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_54 = l_Lean_Compiler_LCNF_erasedExpr; x_55 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_55, 0, x_54); lean_ctor_set(x_55, 1, x_53); @@ -5692,7 +5643,7 @@ if (x_88 == 0) lean_object* x_89; lean_object* x_90; x_89 = lean_ctor_get(x_86, 0); lean_dec(x_89); -x_90 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_90 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_86, 0, x_90); return x_86; } @@ -5702,7 +5653,7 @@ lean_object* x_91; lean_object* x_92; lean_object* x_93; x_91 = lean_ctor_get(x_86, 1); lean_inc(x_91); lean_dec(x_86); -x_92 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_92 = l_Lean_Compiler_LCNF_erasedExpr; x_93 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_93, 0, x_92); lean_ctor_set(x_93, 1, x_91); @@ -5885,7 +5836,7 @@ if (x_126 == 0) lean_object* x_127; lean_object* x_128; x_127 = lean_ctor_get(x_124, 0); lean_dec(x_127); -x_128 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_128 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_124, 0, x_128); return x_124; } @@ -5895,7 +5846,7 @@ lean_object* x_129; lean_object* x_130; lean_object* x_131; x_129 = lean_ctor_get(x_124, 1); lean_inc(x_129); lean_dec(x_124); -x_130 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_130 = l_Lean_Compiler_LCNF_erasedExpr; x_131 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_131, 0, x_130); lean_ctor_set(x_131, 1, x_129); @@ -6078,7 +6029,7 @@ if (x_164 == 0) lean_object* x_165; lean_object* x_166; x_165 = lean_ctor_get(x_162, 0); lean_dec(x_165); -x_166 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_166 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_162, 0, x_166); return x_162; } @@ -6088,7 +6039,7 @@ lean_object* x_167; lean_object* x_168; lean_object* x_169; x_167 = lean_ctor_get(x_162, 1); lean_inc(x_167); lean_dec(x_162); -x_168 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_168 = l_Lean_Compiler_LCNF_erasedExpr; x_169 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_169, 0, x_168); lean_ctor_set(x_169, 1, x_167); @@ -6271,7 +6222,7 @@ if (x_202 == 0) lean_object* x_203; lean_object* x_204; x_203 = lean_ctor_get(x_200, 0); lean_dec(x_203); -x_204 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_204 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_200, 0, x_204); return x_200; } @@ -6281,7 +6232,7 @@ lean_object* x_205; lean_object* x_206; lean_object* x_207; x_205 = lean_ctor_get(x_200, 1); lean_inc(x_205); lean_dec(x_200); -x_206 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_206 = l_Lean_Compiler_LCNF_erasedExpr; x_207 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_207, 0, x_206); lean_ctor_set(x_207, 1, x_205); @@ -6464,7 +6415,7 @@ if (x_240 == 0) lean_object* x_241; lean_object* x_242; x_241 = lean_ctor_get(x_238, 0); lean_dec(x_241); -x_242 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_242 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_238, 0, x_242); return x_238; } @@ -6474,7 +6425,7 @@ lean_object* x_243; lean_object* x_244; lean_object* x_245; x_243 = lean_ctor_get(x_238, 1); lean_inc(x_243); lean_dec(x_238); -x_244 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_244 = l_Lean_Compiler_LCNF_erasedExpr; x_245 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_245, 0, x_244); lean_ctor_set(x_245, 1, x_243); @@ -6686,7 +6637,7 @@ if (x_290 == 0) lean_object* x_291; lean_object* x_292; x_291 = lean_ctor_get(x_288, 0); lean_dec(x_291); -x_292 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_292 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_288, 0, x_292); return x_288; } @@ -6696,7 +6647,7 @@ lean_object* x_293; lean_object* x_294; lean_object* x_295; x_293 = lean_ctor_get(x_288, 1); lean_inc(x_293); lean_dec(x_288); -x_294 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_294 = l_Lean_Compiler_LCNF_erasedExpr; x_295 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_295, 0, x_294); lean_ctor_set(x_295, 1, x_293); @@ -6879,7 +6830,7 @@ if (x_328 == 0) lean_object* x_329; lean_object* x_330; x_329 = lean_ctor_get(x_326, 0); lean_dec(x_329); -x_330 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_330 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_326, 0, x_330); return x_326; } @@ -6889,7 +6840,7 @@ lean_object* x_331; lean_object* x_332; lean_object* x_333; x_331 = lean_ctor_get(x_326, 1); lean_inc(x_331); lean_dec(x_326); -x_332 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_332 = l_Lean_Compiler_LCNF_erasedExpr; x_333 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_333, 0, x_332); lean_ctor_set(x_333, 1, x_331); @@ -7072,7 +7023,7 @@ if (x_366 == 0) lean_object* x_367; lean_object* x_368; x_367 = lean_ctor_get(x_364, 0); lean_dec(x_367); -x_368 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_368 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_364, 0, x_368); return x_364; } @@ -7082,7 +7033,7 @@ lean_object* x_369; lean_object* x_370; lean_object* x_371; x_369 = lean_ctor_get(x_364, 1); lean_inc(x_369); lean_dec(x_364); -x_370 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_370 = l_Lean_Compiler_LCNF_erasedExpr; x_371 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_371, 0, x_370); lean_ctor_set(x_371, 1, x_369); @@ -7265,7 +7216,7 @@ if (x_404 == 0) lean_object* x_405; lean_object* x_406; x_405 = lean_ctor_get(x_402, 0); lean_dec(x_405); -x_406 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_406 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_402, 0, x_406); return x_402; } @@ -7275,7 +7226,7 @@ lean_object* x_407; lean_object* x_408; lean_object* x_409; x_407 = lean_ctor_get(x_402, 1); lean_inc(x_407); lean_dec(x_402); -x_408 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_408 = l_Lean_Compiler_LCNF_erasedExpr; x_409 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_409, 0, x_408); lean_ctor_set(x_409, 1, x_407); @@ -7590,7 +7541,7 @@ lean_object* x_19; lean_object* x_20; uint8_t x_21; x_19 = lean_ctor_get(x_8, 1); x_20 = lean_ctor_get(x_8, 0); lean_dec(x_20); -x_21 = l_Lean_Expr_isAnyType(x_9); +x_21 = l_Lean_Expr_isErased(x_9); lean_dec(x_9); if (x_21 == 0) { @@ -7633,7 +7584,7 @@ lean_object* x_29; uint8_t x_30; x_29 = lean_ctor_get(x_8, 1); lean_inc(x_29); lean_dec(x_8); -x_30 = l_Lean_Expr_isAnyType(x_9); +x_30 = l_Lean_Expr_isErased(x_9); lean_dec(x_9); if (x_30 == 0) { @@ -8043,7 +7994,7 @@ goto block_36; else { uint8_t x_53; -x_53 = l_Lean_Expr_isAnyType(x_47); +x_53 = l_Lean_Expr_isErased(x_47); if (x_53 == 0) { lean_object* x_54; lean_object* x_55; @@ -8701,7 +8652,7 @@ goto block_37; else { lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_44 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_44 = l_Lean_Compiler_LCNF_erasedExpr; x_45 = lean_expr_instantiate1(x_39, x_44); lean_dec(x_39); lean_inc(x_4); @@ -8720,7 +8671,7 @@ goto block_37; else { uint8_t x_49; -x_49 = l_Lean_Expr_isAnyType(x_38); +x_49 = l_Lean_Expr_isErased(x_38); if (x_49 == 0) { lean_object* x_50; lean_object* x_51; @@ -8917,7 +8868,7 @@ return x_13; else { uint8_t x_14; -x_14 = l_Lean_Expr_isAnyType(x_1); +x_14 = l_Lean_Expr_isErased(x_1); lean_dec(x_1); if (x_14 == 0) { @@ -8941,7 +8892,7 @@ lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_17 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_17 = l_Lean_Compiler_LCNF_erasedExpr; x_18 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_18, 0, x_17); lean_ctor_set(x_18, 1, x_11); @@ -8971,7 +8922,7 @@ lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; x_12 = lean_ctor_get(x_10, 0); x_13 = lean_ctor_get(x_10, 1); x_14 = l_Lean_Expr_headBeta(x_12); -x_15 = l_Lean_Expr_isAnyType(x_14); +x_15 = l_Lean_Expr_isErased(x_14); if (x_15 == 0) { lean_object* x_16; @@ -9492,7 +9443,7 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_144 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_144 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_10, 0, x_144); return x_10; } @@ -9506,7 +9457,7 @@ lean_inc(x_146); lean_inc(x_145); lean_dec(x_10); x_147 = l_Lean_Expr_headBeta(x_145); -x_148 = l_Lean_Expr_isAnyType(x_147); +x_148 = l_Lean_Expr_isErased(x_147); if (x_148 == 0) { lean_object* x_149; @@ -10027,7 +9978,7 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_275 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_275 = l_Lean_Compiler_LCNF_erasedExpr; x_276 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_276, 0, x_275); lean_ctor_set(x_276, 1, x_146); @@ -10517,7 +10468,7 @@ lean_object* x_16; lean_object* x_17; uint8_t x_18; x_16 = lean_ctor_get(x_7, 1); x_17 = lean_ctor_get(x_7, 0); lean_dec(x_17); -x_18 = l_Lean_Expr_isAnyType(x_8); +x_18 = l_Lean_Expr_isErased(x_8); lean_dec(x_8); if (x_18 == 0) { @@ -10558,7 +10509,7 @@ lean_object* x_26; uint8_t x_27; x_26 = lean_ctor_get(x_7, 1); lean_inc(x_26); lean_dec(x_7); -x_27 = l_Lean_Expr_isAnyType(x_8); +x_27 = l_Lean_Expr_isErased(x_8); lean_dec(x_8); if (x_27 == 0) { @@ -11776,7 +11727,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_Compiler_LCNF_isErasedCompatible_go___closed__1; x_2 = l_Lean_Compiler_LCNF_isErasedCompatible_go___closed__2; -x_3 = lean_unsigned_to_nat(308u); +x_3 = lean_unsigned_to_nat(305u); x_4 = lean_unsigned_to_nat(50u); x_5 = l_Lean_Compiler_LCNF_isErasedCompatible_go___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -12065,87 +12016,79 @@ LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_compatibleTypesQuick(lean_object* x_1, _start: { uint8_t x_3; -x_3 = l_Lean_Expr_isAnyType(x_1); +x_3 = l_Lean_Expr_isErased(x_1); if (x_3 == 0) { uint8_t x_4; -x_4 = l_Lean_Expr_isAnyType(x_2); +x_4 = l_Lean_Expr_isErased(x_2); if (x_4 == 0) { -uint8_t x_5; -x_5 = l_Lean_Expr_isErased(x_1); -if (x_5 == 0) -{ -uint8_t x_6; -x_6 = l_Lean_Expr_isErased(x_2); -if (x_6 == 0) -{ -lean_object* x_7; lean_object* x_8; uint8_t x_9; +lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_inc(x_1); -x_7 = l_Lean_Expr_headBeta(x_1); +x_5 = l_Lean_Expr_headBeta(x_1); lean_inc(x_2); -x_8 = l_Lean_Expr_headBeta(x_2); -x_9 = lean_expr_eqv(x_1, x_7); +x_6 = l_Lean_Expr_headBeta(x_2); +x_7 = lean_expr_eqv(x_1, x_5); +if (x_7 == 0) +{ +lean_dec(x_2); +lean_dec(x_1); +x_1 = x_5; +x_2 = x_6; +goto _start; +} +else +{ +uint8_t x_9; +x_9 = lean_expr_eqv(x_2, x_6); if (x_9 == 0) { lean_dec(x_2); lean_dec(x_1); -x_1 = x_7; -x_2 = x_8; +x_1 = x_5; +x_2 = x_6; goto _start; } else { uint8_t x_11; -x_11 = lean_expr_eqv(x_2, x_8); +lean_dec(x_6); +lean_dec(x_5); +x_11 = lean_expr_eqv(x_1, x_2); if (x_11 == 0) { -lean_dec(x_2); -lean_dec(x_1); -x_1 = x_7; -x_2 = x_8; -goto _start; -} -else -{ -uint8_t x_13; -lean_dec(x_8); -lean_dec(x_7); -x_13 = lean_expr_eqv(x_1, x_2); -if (x_13 == 0) -{ switch (lean_obj_tag(x_1)) { case 3: { switch (lean_obj_tag(x_2)) { case 3: { -lean_object* x_14; lean_object* x_15; uint8_t x_16; -x_14 = lean_ctor_get(x_1, 0); -lean_inc(x_14); +lean_object* x_12; lean_object* x_13; uint8_t x_14; +x_12 = lean_ctor_get(x_1, 0); +lean_inc(x_12); lean_dec(x_1); -x_15 = lean_ctor_get(x_2, 0); +x_13 = lean_ctor_get(x_2, 0); +lean_inc(x_13); +lean_dec(x_2); +x_14 = l_Lean_Level_isEquiv(x_12, x_13); +return x_14; +} +case 10: +{ +lean_object* x_15; +x_15 = lean_ctor_get(x_2, 1); lean_inc(x_15); lean_dec(x_2); -x_16 = l_Lean_Level_isEquiv(x_14, x_15); -return x_16; -} -case 10: -{ -lean_object* x_17; -x_17 = lean_ctor_get(x_2, 1); -lean_inc(x_17); -lean_dec(x_2); -x_2 = x_17; +x_2 = x_15; goto _start; } default: { -uint8_t x_19; +uint8_t x_17; lean_dec(x_2); lean_dec(x_1); -x_19 = 0; -return x_19; +x_17 = 0; +return x_17; } } } @@ -12154,51 +12097,51 @@ case 4: switch (lean_obj_tag(x_2)) { case 4: { -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; -x_20 = lean_ctor_get(x_1, 0); +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; +x_18 = lean_ctor_get(x_1, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_1, 1); +lean_inc(x_19); +lean_dec(x_1); +x_20 = lean_ctor_get(x_2, 0); lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 1); +x_21 = lean_ctor_get(x_2, 1); lean_inc(x_21); -lean_dec(x_1); -x_22 = lean_ctor_get(x_2, 0); -lean_inc(x_22); -x_23 = lean_ctor_get(x_2, 1); -lean_inc(x_23); lean_dec(x_2); -x_24 = lean_name_eq(x_20, x_22); -lean_dec(x_22); +x_22 = lean_name_eq(x_18, x_20); lean_dec(x_20); -if (x_24 == 0) +lean_dec(x_18); +if (x_22 == 0) { -uint8_t x_25; -lean_dec(x_23); +uint8_t x_23; lean_dec(x_21); -x_25 = 0; -return x_25; +lean_dec(x_19); +x_23 = 0; +return x_23; } else { -uint8_t x_26; -x_26 = l_List_isEqv___at_Lean_Compiler_LCNF_compatibleTypesQuick___spec__1(x_21, x_23); -return x_26; +uint8_t x_24; +x_24 = l_List_isEqv___at_Lean_Compiler_LCNF_compatibleTypesQuick___spec__1(x_19, x_21); +return x_24; } } case 10: { -lean_object* x_27; -x_27 = lean_ctor_get(x_2, 1); -lean_inc(x_27); +lean_object* x_25; +x_25 = lean_ctor_get(x_2, 1); +lean_inc(x_25); lean_dec(x_2); -x_2 = x_27; +x_2 = x_25; goto _start; } default: { -uint8_t x_29; +uint8_t x_27; lean_dec(x_2); lean_dec(x_1); -x_29 = 0; -return x_29; +x_27 = 0; +return x_27; } } } @@ -12207,49 +12150,49 @@ case 5: switch (lean_obj_tag(x_2)) { case 5: { -lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; -x_30 = lean_ctor_get(x_1, 0); +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; +x_28 = lean_ctor_get(x_1, 0); +lean_inc(x_28); +x_29 = lean_ctor_get(x_1, 1); +lean_inc(x_29); +lean_dec(x_1); +x_30 = lean_ctor_get(x_2, 0); lean_inc(x_30); -x_31 = lean_ctor_get(x_1, 1); +x_31 = lean_ctor_get(x_2, 1); lean_inc(x_31); -lean_dec(x_1); -x_32 = lean_ctor_get(x_2, 0); -lean_inc(x_32); -x_33 = lean_ctor_get(x_2, 1); -lean_inc(x_33); lean_dec(x_2); -x_34 = l_Lean_Compiler_LCNF_compatibleTypesQuick(x_30, x_32); -if (x_34 == 0) +x_32 = l_Lean_Compiler_LCNF_compatibleTypesQuick(x_28, x_30); +if (x_32 == 0) { -uint8_t x_35; -lean_dec(x_33); +uint8_t x_33; lean_dec(x_31); -x_35 = 0; -return x_35; +lean_dec(x_29); +x_33 = 0; +return x_33; } else { -x_1 = x_31; -x_2 = x_33; +x_1 = x_29; +x_2 = x_31; goto _start; } } case 10: { -lean_object* x_37; -x_37 = lean_ctor_get(x_2, 1); -lean_inc(x_37); +lean_object* x_35; +x_35 = lean_ctor_get(x_2, 1); +lean_inc(x_35); lean_dec(x_2); -x_2 = x_37; +x_2 = x_35; goto _start; } default: { -uint8_t x_39; +uint8_t x_37; lean_dec(x_2); lean_dec(x_1); -x_39 = 0; -return x_39; +x_37 = 0; +return x_37; } } } @@ -12258,49 +12201,49 @@ case 6: switch (lean_obj_tag(x_2)) { case 6: { -lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; uint8_t x_44; -x_40 = lean_ctor_get(x_1, 1); +lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; +x_38 = lean_ctor_get(x_1, 1); +lean_inc(x_38); +x_39 = lean_ctor_get(x_1, 2); +lean_inc(x_39); +lean_dec(x_1); +x_40 = lean_ctor_get(x_2, 1); lean_inc(x_40); -x_41 = lean_ctor_get(x_1, 2); +x_41 = lean_ctor_get(x_2, 2); lean_inc(x_41); -lean_dec(x_1); -x_42 = lean_ctor_get(x_2, 1); -lean_inc(x_42); -x_43 = lean_ctor_get(x_2, 2); -lean_inc(x_43); lean_dec(x_2); -x_44 = l_Lean_Compiler_LCNF_compatibleTypesQuick(x_40, x_42); -if (x_44 == 0) +x_42 = l_Lean_Compiler_LCNF_compatibleTypesQuick(x_38, x_40); +if (x_42 == 0) { -uint8_t x_45; -lean_dec(x_43); +uint8_t x_43; lean_dec(x_41); -x_45 = 0; -return x_45; +lean_dec(x_39); +x_43 = 0; +return x_43; } else { -x_1 = x_41; -x_2 = x_43; +x_1 = x_39; +x_2 = x_41; goto _start; } } case 10: { -lean_object* x_47; -x_47 = lean_ctor_get(x_2, 1); -lean_inc(x_47); +lean_object* x_45; +x_45 = lean_ctor_get(x_2, 1); +lean_inc(x_45); lean_dec(x_2); -x_2 = x_47; +x_2 = x_45; goto _start; } default: { -uint8_t x_49; +uint8_t x_47; lean_dec(x_2); lean_dec(x_1); -x_49 = 0; -return x_49; +x_47 = 0; +return x_47; } } } @@ -12309,83 +12252,103 @@ case 7: switch (lean_obj_tag(x_2)) { case 7: { -lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; uint8_t x_54; -x_50 = lean_ctor_get(x_1, 1); -lean_inc(x_50); -x_51 = lean_ctor_get(x_1, 2); -lean_inc(x_51); +lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_52; +x_48 = lean_ctor_get(x_1, 1); +lean_inc(x_48); +x_49 = lean_ctor_get(x_1, 2); +lean_inc(x_49); lean_dec(x_1); -x_52 = lean_ctor_get(x_2, 1); -lean_inc(x_52); -x_53 = lean_ctor_get(x_2, 2); -lean_inc(x_53); +x_50 = lean_ctor_get(x_2, 1); +lean_inc(x_50); +x_51 = lean_ctor_get(x_2, 2); +lean_inc(x_51); lean_dec(x_2); -x_54 = l_Lean_Compiler_LCNF_compatibleTypesQuick(x_50, x_52); -if (x_54 == 0) +x_52 = l_Lean_Compiler_LCNF_compatibleTypesQuick(x_48, x_50); +if (x_52 == 0) { -uint8_t x_55; -lean_dec(x_53); +uint8_t x_53; lean_dec(x_51); -x_55 = 0; -return x_55; +lean_dec(x_49); +x_53 = 0; +return x_53; } else { -x_1 = x_51; -x_2 = x_53; +x_1 = x_49; +x_2 = x_51; goto _start; } } case 10: { -lean_object* x_57; -x_57 = lean_ctor_get(x_2, 1); -lean_inc(x_57); +lean_object* x_55; +x_55 = lean_ctor_get(x_2, 1); +lean_inc(x_55); lean_dec(x_2); -x_2 = x_57; +x_2 = x_55; goto _start; } default: { -uint8_t x_59; +uint8_t x_57; lean_dec(x_2); lean_dec(x_1); -x_59 = 0; -return x_59; +x_57 = 0; +return x_57; } } } case 10: { -lean_object* x_60; -x_60 = lean_ctor_get(x_1, 1); -lean_inc(x_60); +lean_object* x_58; +x_58 = lean_ctor_get(x_1, 1); +lean_inc(x_58); lean_dec(x_1); -x_1 = x_60; +x_1 = x_58; goto _start; } default: { if (lean_obj_tag(x_2) == 10) { -lean_object* x_62; -x_62 = lean_ctor_get(x_2, 1); -lean_inc(x_62); +lean_object* x_60; +x_60 = lean_ctor_get(x_2, 1); +lean_inc(x_60); lean_dec(x_2); -x_2 = x_62; +x_2 = x_60; goto _start; } else { +uint8_t x_62; +lean_dec(x_2); +lean_dec(x_1); +x_62 = 0; +return x_62; +} +} +} +} +else +{ +uint8_t x_63; +lean_dec(x_2); +lean_dec(x_1); +x_63 = 1; +return x_63; +} +} +} +} +else +{ uint8_t x_64; lean_dec(x_2); lean_dec(x_1); -x_64 = 0; +x_64 = 1; return x_64; } } -} -} else { uint8_t x_65; @@ -12396,44 +12359,6 @@ return x_65; } } } -} -else -{ -uint8_t x_66; -lean_dec(x_2); -lean_dec(x_1); -x_66 = 1; -return x_66; -} -} -else -{ -uint8_t x_67; -lean_dec(x_2); -lean_dec(x_1); -x_67 = 1; -return x_67; -} -} -else -{ -uint8_t x_68; -lean_dec(x_2); -lean_dec(x_1); -x_68 = 1; -return x_68; -} -} -else -{ -uint8_t x_69; -lean_dec(x_2); -lean_dec(x_1); -x_69 = 1; -return x_69; -} -} -} LEAN_EXPORT lean_object* l_List_isEqv___at_Lean_Compiler_LCNF_compatibleTypesQuick___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { @@ -12596,100 +12521,92 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_InferType_compatibleTypesFull(lean _start: { uint8_t x_9; -x_9 = l_Lean_Expr_isAnyType(x_1); +x_9 = l_Lean_Expr_isErased(x_1); if (x_9 == 0) { uint8_t x_10; -x_10 = l_Lean_Expr_isAnyType(x_2); +x_10 = l_Lean_Expr_isErased(x_2); if (x_10 == 0) { -uint8_t x_11; -x_11 = l_Lean_Expr_isErased(x_1); -if (x_11 == 0) -{ -uint8_t x_12; -x_12 = l_Lean_Expr_isErased(x_2); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; uint8_t x_15; +lean_object* x_11; lean_object* x_12; uint8_t x_13; lean_inc(x_1); -x_13 = l_Lean_Expr_headBeta(x_1); +x_11 = l_Lean_Expr_headBeta(x_1); lean_inc(x_2); -x_14 = l_Lean_Expr_headBeta(x_2); -x_15 = lean_expr_eqv(x_1, x_13); +x_12 = l_Lean_Expr_headBeta(x_2); +x_13 = lean_expr_eqv(x_1, x_11); +if (x_13 == 0) +{ +lean_dec(x_2); +lean_dec(x_1); +x_1 = x_11; +x_2 = x_12; +goto _start; +} +else +{ +uint8_t x_15; +x_15 = lean_expr_eqv(x_2, x_12); if (x_15 == 0) { lean_dec(x_2); lean_dec(x_1); -x_1 = x_13; -x_2 = x_14; +x_1 = x_11; +x_2 = x_12; goto _start; } else { uint8_t x_17; -x_17 = lean_expr_eqv(x_2, x_14); +lean_dec(x_12); +lean_dec(x_11); +x_17 = lean_expr_eqv(x_1, x_2); if (x_17 == 0) { -lean_dec(x_2); -lean_dec(x_1); -x_1 = x_13; -x_2 = x_14; -goto _start; -} -else -{ -uint8_t x_19; -lean_dec(x_14); -lean_dec(x_13); -x_19 = lean_expr_eqv(x_1, x_2); -if (x_19 == 0) -{ switch (lean_obj_tag(x_1)) { case 3: { switch (lean_obj_tag(x_2)) { case 3: { -lean_object* x_20; lean_object* x_21; uint8_t x_22; lean_object* x_23; lean_object* x_24; +lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_20 = lean_ctor_get(x_1, 0); -lean_inc(x_20); +x_18 = lean_ctor_get(x_1, 0); +lean_inc(x_18); lean_dec(x_1); -x_21 = lean_ctor_get(x_2, 0); -lean_inc(x_21); +x_19 = lean_ctor_get(x_2, 0); +lean_inc(x_19); lean_dec(x_2); -x_22 = l_Lean_Level_isEquiv(x_20, x_21); -x_23 = lean_box(x_22); -x_24 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_24, 0, x_23); -lean_ctor_set(x_24, 1, x_8); -return x_24; +x_20 = l_Lean_Level_isEquiv(x_18, x_19); +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_8); +return x_22; } case 10: { -lean_object* x_25; -x_25 = lean_ctor_get(x_2, 1); -lean_inc(x_25); +lean_object* x_23; +x_23 = lean_ctor_get(x_2, 1); +lean_inc(x_23); lean_dec(x_2); -x_2 = x_25; +x_2 = x_23; goto _start; } default: { -uint8_t x_27; -x_27 = l_Lean_Expr_isLambda(x_1); -if (x_27 == 0) +uint8_t x_25; +x_25 = l_Lean_Expr_isLambda(x_1); +if (x_25 == 0) { -uint8_t x_28; -x_28 = l_Lean_Expr_isLambda(x_2); -if (x_28 == 0) +uint8_t x_26; +x_26 = l_Lean_Expr_isLambda(x_2); +if (x_26 == 0) { -uint8_t x_29; lean_object* x_30; lean_object* x_31; +uint8_t x_27; lean_object* x_28; lean_object* x_29; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -12697,266 +12614,266 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_29 = 0; -x_30 = lean_box(x_29); -x_31 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_31, 0, x_30); -lean_ctor_set(x_31, 1, x_8); -return x_31; +x_27 = 0; +x_28 = lean_box(x_27); +x_29 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_29, 0, x_28); +lean_ctor_set(x_29, 1, x_8); +return x_29; } else { -lean_object* x_32; +lean_object* x_30; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_32 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_1, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_32) == 0) +x_30 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_1, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_30) == 0) { -lean_object* x_33; -x_33 = lean_ctor_get(x_32, 0); -lean_inc(x_33); -if (lean_obj_tag(x_33) == 0) +lean_object* x_31; +x_31 = lean_ctor_get(x_30, 0); +lean_inc(x_31); +if (lean_obj_tag(x_31) == 0) { -uint8_t x_34; +uint8_t x_32; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_34 = !lean_is_exclusive(x_32); -if (x_34 == 0) +x_32 = !lean_is_exclusive(x_30); +if (x_32 == 0) { -lean_object* x_35; uint8_t x_36; lean_object* x_37; -x_35 = lean_ctor_get(x_32, 0); -lean_dec(x_35); -x_36 = 0; -x_37 = lean_box(x_36); -lean_ctor_set(x_32, 0, x_37); -return x_32; -} -else -{ -lean_object* x_38; uint8_t x_39; lean_object* x_40; lean_object* x_41; -x_38 = lean_ctor_get(x_32, 1); -lean_inc(x_38); -lean_dec(x_32); -x_39 = 0; -x_40 = lean_box(x_39); -x_41 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_41, 0, x_40); -lean_ctor_set(x_41, 1, x_38); -return x_41; -} -} -else -{ -lean_object* x_42; lean_object* x_43; -x_42 = lean_ctor_get(x_32, 1); -lean_inc(x_42); -lean_dec(x_32); -x_43 = lean_ctor_get(x_33, 0); -lean_inc(x_43); +lean_object* x_33; uint8_t x_34; lean_object* x_35; +x_33 = lean_ctor_get(x_30, 0); lean_dec(x_33); -x_1 = x_43; -x_8 = x_42; +x_34 = 0; +x_35 = lean_box(x_34); +lean_ctor_set(x_30, 0, x_35); +return x_30; +} +else +{ +lean_object* x_36; uint8_t x_37; lean_object* x_38; lean_object* x_39; +x_36 = lean_ctor_get(x_30, 1); +lean_inc(x_36); +lean_dec(x_30); +x_37 = 0; +x_38 = lean_box(x_37); +x_39 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_36); +return x_39; +} +} +else +{ +lean_object* x_40; lean_object* x_41; +x_40 = lean_ctor_get(x_30, 1); +lean_inc(x_40); +lean_dec(x_30); +x_41 = lean_ctor_get(x_31, 0); +lean_inc(x_41); +lean_dec(x_31); +x_1 = x_41; +x_8 = x_40; goto _start; } } else { -uint8_t x_45; +uint8_t x_43; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_45 = !lean_is_exclusive(x_32); -if (x_45 == 0) +x_43 = !lean_is_exclusive(x_30); +if (x_43 == 0) { -return x_32; +return x_30; } else { -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_32, 0); -x_47 = lean_ctor_get(x_32, 1); -lean_inc(x_47); -lean_inc(x_46); -lean_dec(x_32); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; +lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_44 = lean_ctor_get(x_30, 0); +x_45 = lean_ctor_get(x_30, 1); +lean_inc(x_45); +lean_inc(x_44); +lean_dec(x_30); +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 { -lean_object* x_49; +lean_object* x_47; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_49 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_49) == 0) +x_47 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_47) == 0) { -lean_object* x_50; -x_50 = lean_ctor_get(x_49, 0); -lean_inc(x_50); -if (lean_obj_tag(x_50) == 0) +lean_object* x_48; +x_48 = lean_ctor_get(x_47, 0); +lean_inc(x_48); +if (lean_obj_tag(x_48) == 0) { -uint8_t x_51; +uint8_t x_49; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_51 = !lean_is_exclusive(x_49); -if (x_51 == 0) +x_49 = !lean_is_exclusive(x_47); +if (x_49 == 0) { -lean_object* x_52; uint8_t x_53; lean_object* x_54; -x_52 = lean_ctor_get(x_49, 0); -lean_dec(x_52); -x_53 = 0; -x_54 = lean_box(x_53); -lean_ctor_set(x_49, 0, x_54); -return x_49; -} -else -{ -lean_object* x_55; uint8_t x_56; lean_object* x_57; lean_object* x_58; -x_55 = lean_ctor_get(x_49, 1); -lean_inc(x_55); -lean_dec(x_49); -x_56 = 0; -x_57 = lean_box(x_56); -x_58 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_58, 0, x_57); -lean_ctor_set(x_58, 1, x_55); -return x_58; -} -} -else -{ -lean_object* x_59; lean_object* x_60; -x_59 = lean_ctor_get(x_49, 1); -lean_inc(x_59); -lean_dec(x_49); -x_60 = lean_ctor_get(x_50, 0); -lean_inc(x_60); +lean_object* x_50; uint8_t x_51; lean_object* x_52; +x_50 = lean_ctor_get(x_47, 0); lean_dec(x_50); -x_2 = x_60; -x_8 = x_59; +x_51 = 0; +x_52 = lean_box(x_51); +lean_ctor_set(x_47, 0, x_52); +return x_47; +} +else +{ +lean_object* x_53; uint8_t x_54; lean_object* x_55; lean_object* x_56; +x_53 = lean_ctor_get(x_47, 1); +lean_inc(x_53); +lean_dec(x_47); +x_54 = 0; +x_55 = lean_box(x_54); +x_56 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_56, 0, x_55); +lean_ctor_set(x_56, 1, x_53); +return x_56; +} +} +else +{ +lean_object* x_57; lean_object* x_58; +x_57 = lean_ctor_get(x_47, 1); +lean_inc(x_57); +lean_dec(x_47); +x_58 = lean_ctor_get(x_48, 0); +lean_inc(x_58); +lean_dec(x_48); +x_2 = x_58; +x_8 = x_57; goto _start; } } else { -uint8_t x_62; +uint8_t x_60; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_62 = !lean_is_exclusive(x_49); -if (x_62 == 0) +x_60 = !lean_is_exclusive(x_47); +if (x_60 == 0) { -return x_49; +return x_47; } else { -lean_object* x_63; lean_object* x_64; lean_object* x_65; -x_63 = lean_ctor_get(x_49, 0); -x_64 = lean_ctor_get(x_49, 1); +lean_object* x_61; lean_object* x_62; lean_object* x_63; +x_61 = lean_ctor_get(x_47, 0); +x_62 = lean_ctor_get(x_47, 1); +lean_inc(x_62); +lean_inc(x_61); +lean_dec(x_47); +x_63 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_63, 0, x_61); +lean_ctor_set(x_63, 1, x_62); +return x_63; +} +} +} +} +} +} +case 4: +{ +switch (lean_obj_tag(x_2)) { +case 4: +{ +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; uint8_t x_68; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_64 = lean_ctor_get(x_1, 0); lean_inc(x_64); -lean_inc(x_63); -lean_dec(x_49); -x_65 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_65, 0, x_63); -lean_ctor_set(x_65, 1, x_64); -return x_65; -} -} -} -} -} -} -case 4: -{ -switch (lean_obj_tag(x_2)) { -case 4: -{ -lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; uint8_t x_70; -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_66 = lean_ctor_get(x_1, 0); +x_65 = lean_ctor_get(x_1, 1); +lean_inc(x_65); +lean_dec(x_1); +x_66 = lean_ctor_get(x_2, 0); lean_inc(x_66); -x_67 = lean_ctor_get(x_1, 1); +x_67 = lean_ctor_get(x_2, 1); lean_inc(x_67); -lean_dec(x_1); -x_68 = lean_ctor_get(x_2, 0); -lean_inc(x_68); -x_69 = lean_ctor_get(x_2, 1); -lean_inc(x_69); lean_dec(x_2); -x_70 = lean_name_eq(x_66, x_68); -lean_dec(x_68); +x_68 = lean_name_eq(x_64, x_66); lean_dec(x_66); -if (x_70 == 0) +lean_dec(x_64); +if (x_68 == 0) { -uint8_t x_71; lean_object* x_72; lean_object* x_73; -lean_dec(x_69); +uint8_t x_69; lean_object* x_70; lean_object* x_71; lean_dec(x_67); -x_71 = 0; -x_72 = lean_box(x_71); -x_73 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_73, 0, x_72); -lean_ctor_set(x_73, 1, x_8); -return x_73; +lean_dec(x_65); +x_69 = 0; +x_70 = lean_box(x_69); +x_71 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_71, 0, x_70); +lean_ctor_set(x_71, 1, x_8); +return x_71; } else { -uint8_t x_74; lean_object* x_75; lean_object* x_76; -x_74 = l_List_isEqv___at_Lean_Compiler_LCNF_compatibleTypesQuick___spec__1(x_67, x_69); -x_75 = lean_box(x_74); -x_76 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_76, 0, x_75); -lean_ctor_set(x_76, 1, x_8); -return x_76; +uint8_t x_72; lean_object* x_73; lean_object* x_74; +x_72 = l_List_isEqv___at_Lean_Compiler_LCNF_compatibleTypesQuick___spec__1(x_65, x_67); +x_73 = lean_box(x_72); +x_74 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_74, 0, x_73); +lean_ctor_set(x_74, 1, x_8); +return x_74; } } case 10: { -lean_object* x_77; -x_77 = lean_ctor_get(x_2, 1); -lean_inc(x_77); +lean_object* x_75; +x_75 = lean_ctor_get(x_2, 1); +lean_inc(x_75); lean_dec(x_2); -x_2 = x_77; +x_2 = x_75; goto _start; } default: { -uint8_t x_79; -x_79 = l_Lean_Expr_isLambda(x_1); -if (x_79 == 0) +uint8_t x_77; +x_77 = l_Lean_Expr_isLambda(x_1); +if (x_77 == 0) { -uint8_t x_80; -x_80 = l_Lean_Expr_isLambda(x_2); -if (x_80 == 0) +uint8_t x_78; +x_78 = l_Lean_Expr_isLambda(x_2); +if (x_78 == 0) { -uint8_t x_81; lean_object* x_82; lean_object* x_83; +uint8_t x_79; lean_object* x_80; lean_object* x_81; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -12964,320 +12881,320 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_81 = 0; -x_82 = lean_box(x_81); -x_83 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_83, 0, x_82); -lean_ctor_set(x_83, 1, x_8); -return x_83; +x_79 = 0; +x_80 = lean_box(x_79); +x_81 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_81, 0, x_80); +lean_ctor_set(x_81, 1, x_8); +return x_81; } else { -lean_object* x_84; +lean_object* x_82; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_84 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_1, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_84) == 0) +x_82 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_1, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_82) == 0) { -lean_object* x_85; -x_85 = lean_ctor_get(x_84, 0); -lean_inc(x_85); -if (lean_obj_tag(x_85) == 0) +lean_object* x_83; +x_83 = lean_ctor_get(x_82, 0); +lean_inc(x_83); +if (lean_obj_tag(x_83) == 0) { -uint8_t x_86; +uint8_t x_84; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_86 = !lean_is_exclusive(x_84); -if (x_86 == 0) +x_84 = !lean_is_exclusive(x_82); +if (x_84 == 0) { -lean_object* x_87; uint8_t x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_84, 0); -lean_dec(x_87); -x_88 = 0; -x_89 = lean_box(x_88); -lean_ctor_set(x_84, 0, x_89); -return x_84; -} -else -{ -lean_object* x_90; uint8_t x_91; lean_object* x_92; lean_object* x_93; -x_90 = lean_ctor_get(x_84, 1); -lean_inc(x_90); -lean_dec(x_84); -x_91 = 0; -x_92 = lean_box(x_91); -x_93 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_93, 0, x_92); -lean_ctor_set(x_93, 1, x_90); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; -x_94 = lean_ctor_get(x_84, 1); -lean_inc(x_94); -lean_dec(x_84); -x_95 = lean_ctor_get(x_85, 0); -lean_inc(x_95); +lean_object* x_85; uint8_t x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_82, 0); lean_dec(x_85); -x_1 = x_95; -x_8 = x_94; +x_86 = 0; +x_87 = lean_box(x_86); +lean_ctor_set(x_82, 0, x_87); +return x_82; +} +else +{ +lean_object* x_88; uint8_t x_89; lean_object* x_90; lean_object* x_91; +x_88 = lean_ctor_get(x_82, 1); +lean_inc(x_88); +lean_dec(x_82); +x_89 = 0; +x_90 = lean_box(x_89); +x_91 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_91, 0, x_90); +lean_ctor_set(x_91, 1, x_88); +return x_91; +} +} +else +{ +lean_object* x_92; lean_object* x_93; +x_92 = lean_ctor_get(x_82, 1); +lean_inc(x_92); +lean_dec(x_82); +x_93 = lean_ctor_get(x_83, 0); +lean_inc(x_93); +lean_dec(x_83); +x_1 = x_93; +x_8 = x_92; goto _start; } } else { -uint8_t x_97; +uint8_t x_95; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_97 = !lean_is_exclusive(x_84); -if (x_97 == 0) +x_95 = !lean_is_exclusive(x_82); +if (x_95 == 0) { -return x_84; +return x_82; } else { -lean_object* x_98; lean_object* x_99; lean_object* x_100; -x_98 = lean_ctor_get(x_84, 0); -x_99 = lean_ctor_get(x_84, 1); -lean_inc(x_99); -lean_inc(x_98); -lean_dec(x_84); -x_100 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_100, 0, x_98); -lean_ctor_set(x_100, 1, x_99); -return x_100; +lean_object* x_96; lean_object* x_97; lean_object* x_98; +x_96 = lean_ctor_get(x_82, 0); +x_97 = lean_ctor_get(x_82, 1); +lean_inc(x_97); +lean_inc(x_96); +lean_dec(x_82); +x_98 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_98, 0, x_96); +lean_ctor_set(x_98, 1, x_97); +return x_98; } } } } else { -lean_object* x_101; +lean_object* x_99; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_101 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_101) == 0) +x_99 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_99) == 0) { -lean_object* x_102; -x_102 = lean_ctor_get(x_101, 0); -lean_inc(x_102); -if (lean_obj_tag(x_102) == 0) +lean_object* x_100; +x_100 = lean_ctor_get(x_99, 0); +lean_inc(x_100); +if (lean_obj_tag(x_100) == 0) { -uint8_t x_103; +uint8_t x_101; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_103 = !lean_is_exclusive(x_101); -if (x_103 == 0) +x_101 = !lean_is_exclusive(x_99); +if (x_101 == 0) { -lean_object* x_104; uint8_t x_105; lean_object* x_106; -x_104 = lean_ctor_get(x_101, 0); -lean_dec(x_104); -x_105 = 0; -x_106 = lean_box(x_105); -lean_ctor_set(x_101, 0, x_106); -return x_101; -} -else -{ -lean_object* x_107; uint8_t x_108; lean_object* x_109; lean_object* x_110; -x_107 = lean_ctor_get(x_101, 1); -lean_inc(x_107); -lean_dec(x_101); -x_108 = 0; -x_109 = lean_box(x_108); -x_110 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_110, 0, x_109); -lean_ctor_set(x_110, 1, x_107); -return x_110; -} -} -else -{ -lean_object* x_111; lean_object* x_112; -x_111 = lean_ctor_get(x_101, 1); -lean_inc(x_111); -lean_dec(x_101); -x_112 = lean_ctor_get(x_102, 0); -lean_inc(x_112); +lean_object* x_102; uint8_t x_103; lean_object* x_104; +x_102 = lean_ctor_get(x_99, 0); lean_dec(x_102); -x_2 = x_112; -x_8 = x_111; +x_103 = 0; +x_104 = lean_box(x_103); +lean_ctor_set(x_99, 0, x_104); +return x_99; +} +else +{ +lean_object* x_105; uint8_t x_106; lean_object* x_107; lean_object* x_108; +x_105 = lean_ctor_get(x_99, 1); +lean_inc(x_105); +lean_dec(x_99); +x_106 = 0; +x_107 = lean_box(x_106); +x_108 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_108, 0, x_107); +lean_ctor_set(x_108, 1, x_105); +return x_108; +} +} +else +{ +lean_object* x_109; lean_object* x_110; +x_109 = lean_ctor_get(x_99, 1); +lean_inc(x_109); +lean_dec(x_99); +x_110 = lean_ctor_get(x_100, 0); +lean_inc(x_110); +lean_dec(x_100); +x_2 = x_110; +x_8 = x_109; goto _start; } } else { -uint8_t x_114; +uint8_t x_112; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_114 = !lean_is_exclusive(x_101); -if (x_114 == 0) +x_112 = !lean_is_exclusive(x_99); +if (x_112 == 0) { -return x_101; +return x_99; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; -x_115 = lean_ctor_get(x_101, 0); -x_116 = lean_ctor_get(x_101, 1); +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_99, 0); +x_114 = lean_ctor_get(x_99, 1); +lean_inc(x_114); +lean_inc(x_113); +lean_dec(x_99); +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; +} +} +} +} +} +} +case 5: +{ +switch (lean_obj_tag(x_2)) { +case 5: +{ +lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; +x_116 = lean_ctor_get(x_1, 0); lean_inc(x_116); -lean_inc(x_115); -lean_dec(x_101); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_115); -lean_ctor_set(x_117, 1, x_116); -return x_117; -} -} -} -} -} -} -case 5: -{ -switch (lean_obj_tag(x_2)) { -case 5: -{ -lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; -x_118 = lean_ctor_get(x_1, 0); +x_117 = lean_ctor_get(x_1, 1); +lean_inc(x_117); +lean_dec(x_1); +x_118 = lean_ctor_get(x_2, 0); lean_inc(x_118); -x_119 = lean_ctor_get(x_1, 1); +x_119 = lean_ctor_get(x_2, 1); lean_inc(x_119); -lean_dec(x_1); -x_120 = lean_ctor_get(x_2, 0); -lean_inc(x_120); -x_121 = lean_ctor_get(x_2, 1); +lean_dec(x_2); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_120 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull(x_116, x_118, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_120) == 0) +{ +lean_object* x_121; uint8_t x_122; +x_121 = lean_ctor_get(x_120, 0); lean_inc(x_121); -lean_dec(x_2); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -x_122 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull(x_118, x_120, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_122) == 0) +x_122 = lean_unbox(x_121); +if (x_122 == 0) { -lean_object* x_123; uint8_t x_124; -x_123 = lean_ctor_get(x_122, 0); -lean_inc(x_123); -x_124 = lean_unbox(x_123); -if (x_124 == 0) -{ -uint8_t x_125; -lean_dec(x_121); +uint8_t x_123; lean_dec(x_119); +lean_dec(x_117); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_125 = !lean_is_exclusive(x_122); -if (x_125 == 0) +x_123 = !lean_is_exclusive(x_120); +if (x_123 == 0) { -lean_object* x_126; -x_126 = lean_ctor_get(x_122, 0); -lean_dec(x_126); -return x_122; +lean_object* x_124; +x_124 = lean_ctor_get(x_120, 0); +lean_dec(x_124); +return x_120; } else { -lean_object* x_127; lean_object* x_128; -x_127 = lean_ctor_get(x_122, 1); +lean_object* x_125; lean_object* x_126; +x_125 = lean_ctor_get(x_120, 1); +lean_inc(x_125); +lean_dec(x_120); +x_126 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_126, 0, x_121); +lean_ctor_set(x_126, 1, x_125); +return x_126; +} +} +else +{ +lean_object* x_127; +lean_dec(x_121); +x_127 = lean_ctor_get(x_120, 1); lean_inc(x_127); -lean_dec(x_122); -x_128 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_128, 0, x_123); -lean_ctor_set(x_128, 1, x_127); -return x_128; -} -} -else -{ -lean_object* x_129; -lean_dec(x_123); -x_129 = lean_ctor_get(x_122, 1); -lean_inc(x_129); -lean_dec(x_122); -x_1 = x_119; -x_2 = x_121; -x_8 = x_129; +lean_dec(x_120); +x_1 = x_117; +x_2 = x_119; +x_8 = x_127; goto _start; } } else { -uint8_t x_131; -lean_dec(x_121); +uint8_t x_129; lean_dec(x_119); +lean_dec(x_117); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_131 = !lean_is_exclusive(x_122); -if (x_131 == 0) +x_129 = !lean_is_exclusive(x_120); +if (x_129 == 0) { -return x_122; +return x_120; } else { -lean_object* x_132; lean_object* x_133; lean_object* x_134; -x_132 = lean_ctor_get(x_122, 0); -x_133 = lean_ctor_get(x_122, 1); +lean_object* x_130; lean_object* x_131; lean_object* x_132; +x_130 = lean_ctor_get(x_120, 0); +x_131 = lean_ctor_get(x_120, 1); +lean_inc(x_131); +lean_inc(x_130); +lean_dec(x_120); +x_132 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_132, 0, x_130); +lean_ctor_set(x_132, 1, x_131); +return x_132; +} +} +} +case 10: +{ +lean_object* x_133; +x_133 = lean_ctor_get(x_2, 1); lean_inc(x_133); -lean_inc(x_132); -lean_dec(x_122); -x_134 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_134, 0, x_132); -lean_ctor_set(x_134, 1, x_133); -return x_134; -} -} -} -case 10: -{ -lean_object* x_135; -x_135 = lean_ctor_get(x_2, 1); -lean_inc(x_135); lean_dec(x_2); -x_2 = x_135; +x_2 = x_133; goto _start; } default: { -uint8_t x_137; -x_137 = l_Lean_Expr_isLambda(x_1); -if (x_137 == 0) +uint8_t x_135; +x_135 = l_Lean_Expr_isLambda(x_1); +if (x_135 == 0) { -uint8_t x_138; -x_138 = l_Lean_Expr_isLambda(x_2); -if (x_138 == 0) +uint8_t x_136; +x_136 = l_Lean_Expr_isLambda(x_2); +if (x_136 == 0) { -uint8_t x_139; lean_object* x_140; lean_object* x_141; +uint8_t x_137; lean_object* x_138; lean_object* x_139; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -13285,332 +13202,332 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_139 = 0; -x_140 = lean_box(x_139); -x_141 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_141, 0, x_140); -lean_ctor_set(x_141, 1, x_8); -return x_141; +x_137 = 0; +x_138 = lean_box(x_137); +x_139 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_139, 0, x_138); +lean_ctor_set(x_139, 1, x_8); +return x_139; } else { -lean_object* x_142; +lean_object* x_140; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_142 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_1, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_142) == 0) +x_140 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_1, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_140) == 0) { -lean_object* x_143; -x_143 = lean_ctor_get(x_142, 0); -lean_inc(x_143); -if (lean_obj_tag(x_143) == 0) +lean_object* x_141; +x_141 = lean_ctor_get(x_140, 0); +lean_inc(x_141); +if (lean_obj_tag(x_141) == 0) { -uint8_t x_144; +uint8_t x_142; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_144 = !lean_is_exclusive(x_142); -if (x_144 == 0) +x_142 = !lean_is_exclusive(x_140); +if (x_142 == 0) { -lean_object* x_145; uint8_t x_146; lean_object* x_147; -x_145 = lean_ctor_get(x_142, 0); -lean_dec(x_145); -x_146 = 0; -x_147 = lean_box(x_146); -lean_ctor_set(x_142, 0, x_147); -return x_142; -} -else -{ -lean_object* x_148; uint8_t x_149; lean_object* x_150; lean_object* x_151; -x_148 = lean_ctor_get(x_142, 1); -lean_inc(x_148); -lean_dec(x_142); -x_149 = 0; -x_150 = lean_box(x_149); -x_151 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_151, 0, x_150); -lean_ctor_set(x_151, 1, x_148); -return x_151; -} -} -else -{ -lean_object* x_152; lean_object* x_153; -x_152 = lean_ctor_get(x_142, 1); -lean_inc(x_152); -lean_dec(x_142); -x_153 = lean_ctor_get(x_143, 0); -lean_inc(x_153); +lean_object* x_143; uint8_t x_144; lean_object* x_145; +x_143 = lean_ctor_get(x_140, 0); lean_dec(x_143); -x_1 = x_153; -x_8 = x_152; +x_144 = 0; +x_145 = lean_box(x_144); +lean_ctor_set(x_140, 0, x_145); +return x_140; +} +else +{ +lean_object* x_146; uint8_t x_147; lean_object* x_148; lean_object* x_149; +x_146 = lean_ctor_get(x_140, 1); +lean_inc(x_146); +lean_dec(x_140); +x_147 = 0; +x_148 = lean_box(x_147); +x_149 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_149, 0, x_148); +lean_ctor_set(x_149, 1, x_146); +return x_149; +} +} +else +{ +lean_object* x_150; lean_object* x_151; +x_150 = lean_ctor_get(x_140, 1); +lean_inc(x_150); +lean_dec(x_140); +x_151 = lean_ctor_get(x_141, 0); +lean_inc(x_151); +lean_dec(x_141); +x_1 = x_151; +x_8 = x_150; goto _start; } } else { -uint8_t x_155; +uint8_t x_153; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_155 = !lean_is_exclusive(x_142); -if (x_155 == 0) +x_153 = !lean_is_exclusive(x_140); +if (x_153 == 0) { -return x_142; +return x_140; } else { -lean_object* x_156; lean_object* x_157; lean_object* x_158; -x_156 = lean_ctor_get(x_142, 0); -x_157 = lean_ctor_get(x_142, 1); -lean_inc(x_157); -lean_inc(x_156); -lean_dec(x_142); -x_158 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_158, 0, x_156); -lean_ctor_set(x_158, 1, x_157); -return x_158; +lean_object* x_154; lean_object* x_155; lean_object* x_156; +x_154 = lean_ctor_get(x_140, 0); +x_155 = lean_ctor_get(x_140, 1); +lean_inc(x_155); +lean_inc(x_154); +lean_dec(x_140); +x_156 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_156, 0, x_154); +lean_ctor_set(x_156, 1, x_155); +return x_156; } } } } else { -lean_object* x_159; +lean_object* x_157; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_159 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_159) == 0) +x_157 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_157) == 0) { -lean_object* x_160; -x_160 = lean_ctor_get(x_159, 0); -lean_inc(x_160); -if (lean_obj_tag(x_160) == 0) +lean_object* x_158; +x_158 = lean_ctor_get(x_157, 0); +lean_inc(x_158); +if (lean_obj_tag(x_158) == 0) { -uint8_t x_161; +uint8_t x_159; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_161 = !lean_is_exclusive(x_159); -if (x_161 == 0) +x_159 = !lean_is_exclusive(x_157); +if (x_159 == 0) { -lean_object* x_162; uint8_t x_163; lean_object* x_164; -x_162 = lean_ctor_get(x_159, 0); -lean_dec(x_162); -x_163 = 0; -x_164 = lean_box(x_163); -lean_ctor_set(x_159, 0, x_164); -return x_159; -} -else -{ -lean_object* x_165; uint8_t x_166; lean_object* x_167; lean_object* x_168; -x_165 = lean_ctor_get(x_159, 1); -lean_inc(x_165); -lean_dec(x_159); -x_166 = 0; -x_167 = lean_box(x_166); -x_168 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_168, 0, x_167); -lean_ctor_set(x_168, 1, x_165); -return x_168; -} -} -else -{ -lean_object* x_169; lean_object* x_170; -x_169 = lean_ctor_get(x_159, 1); -lean_inc(x_169); -lean_dec(x_159); -x_170 = lean_ctor_get(x_160, 0); -lean_inc(x_170); +lean_object* x_160; uint8_t x_161; lean_object* x_162; +x_160 = lean_ctor_get(x_157, 0); lean_dec(x_160); -x_2 = x_170; -x_8 = x_169; +x_161 = 0; +x_162 = lean_box(x_161); +lean_ctor_set(x_157, 0, x_162); +return x_157; +} +else +{ +lean_object* x_163; uint8_t x_164; lean_object* x_165; lean_object* x_166; +x_163 = lean_ctor_get(x_157, 1); +lean_inc(x_163); +lean_dec(x_157); +x_164 = 0; +x_165 = lean_box(x_164); +x_166 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_166, 0, x_165); +lean_ctor_set(x_166, 1, x_163); +return x_166; +} +} +else +{ +lean_object* x_167; lean_object* x_168; +x_167 = lean_ctor_get(x_157, 1); +lean_inc(x_167); +lean_dec(x_157); +x_168 = lean_ctor_get(x_158, 0); +lean_inc(x_168); +lean_dec(x_158); +x_2 = x_168; +x_8 = x_167; goto _start; } } else { -uint8_t x_172; +uint8_t x_170; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_172 = !lean_is_exclusive(x_159); -if (x_172 == 0) +x_170 = !lean_is_exclusive(x_157); +if (x_170 == 0) { -return x_159; +return x_157; } else { -lean_object* x_173; lean_object* x_174; lean_object* x_175; -x_173 = lean_ctor_get(x_159, 0); -x_174 = lean_ctor_get(x_159, 1); +lean_object* x_171; lean_object* x_172; lean_object* x_173; +x_171 = lean_ctor_get(x_157, 0); +x_172 = lean_ctor_get(x_157, 1); +lean_inc(x_172); +lean_inc(x_171); +lean_dec(x_157); +x_173 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_173, 0, x_171); +lean_ctor_set(x_173, 1, x_172); +return x_173; +} +} +} +} +} +} +case 6: +{ +switch (lean_obj_tag(x_2)) { +case 6: +{ +lean_object* x_174; lean_object* x_175; lean_object* x_176; uint8_t x_177; lean_object* x_178; lean_object* x_179; lean_object* x_180; +x_174 = lean_ctor_get(x_1, 0); lean_inc(x_174); -lean_inc(x_173); -lean_dec(x_159); -x_175 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_175, 0, x_173); -lean_ctor_set(x_175, 1, x_174); -return x_175; -} -} -} -} -} -} -case 6: -{ -switch (lean_obj_tag(x_2)) { -case 6: -{ -lean_object* x_176; lean_object* x_177; lean_object* x_178; uint8_t x_179; lean_object* x_180; lean_object* x_181; lean_object* x_182; -x_176 = lean_ctor_get(x_1, 0); +x_175 = lean_ctor_get(x_1, 1); +lean_inc(x_175); +x_176 = lean_ctor_get(x_1, 2); lean_inc(x_176); -x_177 = lean_ctor_get(x_1, 1); -lean_inc(x_177); -x_178 = lean_ctor_get(x_1, 2); -lean_inc(x_178); -x_179 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 8); +x_177 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 8); lean_dec(x_1); -x_180 = lean_ctor_get(x_2, 1); -lean_inc(x_180); -x_181 = lean_ctor_get(x_2, 2); -lean_inc(x_181); +x_178 = lean_ctor_get(x_2, 1); +lean_inc(x_178); +x_179 = lean_ctor_get(x_2, 2); +lean_inc(x_179); lean_dec(x_2); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -lean_inc(x_177); -x_182 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull(x_177, x_180, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_182) == 0) +lean_inc(x_175); +x_180 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull(x_175, x_178, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_180) == 0) { -lean_object* x_183; uint8_t x_184; -x_183 = lean_ctor_get(x_182, 0); -lean_inc(x_183); -x_184 = lean_unbox(x_183); -lean_dec(x_183); -if (x_184 == 0) -{ -uint8_t x_185; +lean_object* x_181; uint8_t x_182; +x_181 = lean_ctor_get(x_180, 0); +lean_inc(x_181); +x_182 = lean_unbox(x_181); lean_dec(x_181); -lean_dec(x_178); -lean_dec(x_177); +if (x_182 == 0) +{ +uint8_t x_183; +lean_dec(x_179); lean_dec(x_176); +lean_dec(x_175); +lean_dec(x_174); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_185 = !lean_is_exclusive(x_182); -if (x_185 == 0) +x_183 = !lean_is_exclusive(x_180); +if (x_183 == 0) { -lean_object* x_186; uint8_t x_187; lean_object* x_188; -x_186 = lean_ctor_get(x_182, 0); -lean_dec(x_186); -x_187 = 0; -x_188 = lean_box(x_187); -lean_ctor_set(x_182, 0, x_188); -return x_182; +lean_object* x_184; uint8_t x_185; lean_object* x_186; +x_184 = lean_ctor_get(x_180, 0); +lean_dec(x_184); +x_185 = 0; +x_186 = lean_box(x_185); +lean_ctor_set(x_180, 0, x_186); +return x_180; } else { -lean_object* x_189; uint8_t x_190; lean_object* x_191; lean_object* x_192; -x_189 = lean_ctor_get(x_182, 1); -lean_inc(x_189); -lean_dec(x_182); -x_190 = 0; -x_191 = lean_box(x_190); -x_192 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_192, 0, x_191); -lean_ctor_set(x_192, 1, x_189); -return x_192; +lean_object* x_187; uint8_t x_188; lean_object* x_189; lean_object* x_190; +x_187 = lean_ctor_get(x_180, 1); +lean_inc(x_187); +lean_dec(x_180); +x_188 = 0; +x_189 = lean_box(x_188); +x_190 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_190, 0, x_189); +lean_ctor_set(x_190, 1, x_187); +return x_190; } } else { -lean_object* x_193; lean_object* x_194; lean_object* x_195; -x_193 = lean_ctor_get(x_182, 1); -lean_inc(x_193); -lean_dec(x_182); -x_194 = lean_box(0); -x_195 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull___lambda__1(x_176, x_177, x_179, x_178, x_181, x_194, x_3, x_4, x_5, x_6, x_7, x_193); -return x_195; +lean_object* x_191; lean_object* x_192; lean_object* x_193; +x_191 = lean_ctor_get(x_180, 1); +lean_inc(x_191); +lean_dec(x_180); +x_192 = lean_box(0); +x_193 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull___lambda__1(x_174, x_175, x_177, x_176, x_179, x_192, x_3, x_4, x_5, x_6, x_7, x_191); +return x_193; } } else { -uint8_t x_196; -lean_dec(x_181); -lean_dec(x_178); -lean_dec(x_177); +uint8_t x_194; +lean_dec(x_179); lean_dec(x_176); +lean_dec(x_175); +lean_dec(x_174); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_196 = !lean_is_exclusive(x_182); -if (x_196 == 0) +x_194 = !lean_is_exclusive(x_180); +if (x_194 == 0) { -return x_182; +return x_180; } else { -lean_object* x_197; lean_object* x_198; lean_object* x_199; -x_197 = lean_ctor_get(x_182, 0); -x_198 = lean_ctor_get(x_182, 1); -lean_inc(x_198); -lean_inc(x_197); -lean_dec(x_182); -x_199 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_199, 0, x_197); -lean_ctor_set(x_199, 1, x_198); -return x_199; +lean_object* x_195; lean_object* x_196; lean_object* x_197; +x_195 = lean_ctor_get(x_180, 0); +x_196 = lean_ctor_get(x_180, 1); +lean_inc(x_196); +lean_inc(x_195); +lean_dec(x_180); +x_197 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_197, 0, x_195); +lean_ctor_set(x_197, 1, x_196); +return x_197; } } } case 10: { -lean_object* x_200; -x_200 = lean_ctor_get(x_2, 1); -lean_inc(x_200); +lean_object* x_198; +x_198 = lean_ctor_get(x_2, 1); +lean_inc(x_198); lean_dec(x_2); -x_2 = x_200; +x_2 = x_198; goto _start; } default: { -uint8_t x_202; -x_202 = l_Lean_Expr_isLambda(x_1); -if (x_202 == 0) +uint8_t x_200; +x_200 = l_Lean_Expr_isLambda(x_1); +if (x_200 == 0) { -uint8_t x_203; -x_203 = l_Lean_Expr_isLambda(x_2); -if (x_203 == 0) +uint8_t x_201; +x_201 = l_Lean_Expr_isLambda(x_2); +if (x_201 == 0) { -uint8_t x_204; lean_object* x_205; lean_object* x_206; +uint8_t x_202; lean_object* x_203; lean_object* x_204; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -13618,193 +13535,193 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_204 = 0; -x_205 = lean_box(x_204); -x_206 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_206, 0, x_205); -lean_ctor_set(x_206, 1, x_8); -return x_206; +x_202 = 0; +x_203 = lean_box(x_202); +x_204 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_204, 0, x_203); +lean_ctor_set(x_204, 1, x_8); +return x_204; } else { -lean_object* x_207; +lean_object* x_205; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_207 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_1, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_207) == 0) +x_205 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_1, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_205) == 0) { -lean_object* x_208; -x_208 = lean_ctor_get(x_207, 0); -lean_inc(x_208); -if (lean_obj_tag(x_208) == 0) +lean_object* x_206; +x_206 = lean_ctor_get(x_205, 0); +lean_inc(x_206); +if (lean_obj_tag(x_206) == 0) { -uint8_t x_209; +uint8_t x_207; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_209 = !lean_is_exclusive(x_207); -if (x_209 == 0) +x_207 = !lean_is_exclusive(x_205); +if (x_207 == 0) { -lean_object* x_210; uint8_t x_211; lean_object* x_212; -x_210 = lean_ctor_get(x_207, 0); -lean_dec(x_210); -x_211 = 0; -x_212 = lean_box(x_211); -lean_ctor_set(x_207, 0, x_212); -return x_207; -} -else -{ -lean_object* x_213; uint8_t x_214; lean_object* x_215; lean_object* x_216; -x_213 = lean_ctor_get(x_207, 1); -lean_inc(x_213); -lean_dec(x_207); -x_214 = 0; -x_215 = lean_box(x_214); -x_216 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_216, 0, x_215); -lean_ctor_set(x_216, 1, x_213); -return x_216; -} -} -else -{ -lean_object* x_217; lean_object* x_218; -x_217 = lean_ctor_get(x_207, 1); -lean_inc(x_217); -lean_dec(x_207); -x_218 = lean_ctor_get(x_208, 0); -lean_inc(x_218); +lean_object* x_208; uint8_t x_209; lean_object* x_210; +x_208 = lean_ctor_get(x_205, 0); lean_dec(x_208); -x_1 = x_218; -x_8 = x_217; +x_209 = 0; +x_210 = lean_box(x_209); +lean_ctor_set(x_205, 0, x_210); +return x_205; +} +else +{ +lean_object* x_211; uint8_t x_212; lean_object* x_213; lean_object* x_214; +x_211 = lean_ctor_get(x_205, 1); +lean_inc(x_211); +lean_dec(x_205); +x_212 = 0; +x_213 = lean_box(x_212); +x_214 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_214, 0, x_213); +lean_ctor_set(x_214, 1, x_211); +return x_214; +} +} +else +{ +lean_object* x_215; lean_object* x_216; +x_215 = lean_ctor_get(x_205, 1); +lean_inc(x_215); +lean_dec(x_205); +x_216 = lean_ctor_get(x_206, 0); +lean_inc(x_216); +lean_dec(x_206); +x_1 = x_216; +x_8 = x_215; goto _start; } } else { -uint8_t x_220; +uint8_t x_218; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_220 = !lean_is_exclusive(x_207); -if (x_220 == 0) +x_218 = !lean_is_exclusive(x_205); +if (x_218 == 0) { -return x_207; +return x_205; } else { -lean_object* x_221; lean_object* x_222; lean_object* x_223; -x_221 = lean_ctor_get(x_207, 0); -x_222 = lean_ctor_get(x_207, 1); -lean_inc(x_222); -lean_inc(x_221); -lean_dec(x_207); -x_223 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_223, 0, x_221); -lean_ctor_set(x_223, 1, x_222); -return x_223; +lean_object* x_219; lean_object* x_220; lean_object* x_221; +x_219 = lean_ctor_get(x_205, 0); +x_220 = lean_ctor_get(x_205, 1); +lean_inc(x_220); +lean_inc(x_219); +lean_dec(x_205); +x_221 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_221, 0, x_219); +lean_ctor_set(x_221, 1, x_220); +return x_221; } } } } else { -lean_object* x_224; +lean_object* x_222; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_224 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_224) == 0) +x_222 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_222) == 0) { -lean_object* x_225; -x_225 = lean_ctor_get(x_224, 0); -lean_inc(x_225); -if (lean_obj_tag(x_225) == 0) +lean_object* x_223; +x_223 = lean_ctor_get(x_222, 0); +lean_inc(x_223); +if (lean_obj_tag(x_223) == 0) { -uint8_t x_226; +uint8_t x_224; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_226 = !lean_is_exclusive(x_224); -if (x_226 == 0) +x_224 = !lean_is_exclusive(x_222); +if (x_224 == 0) { -lean_object* x_227; uint8_t x_228; lean_object* x_229; -x_227 = lean_ctor_get(x_224, 0); -lean_dec(x_227); -x_228 = 0; -x_229 = lean_box(x_228); -lean_ctor_set(x_224, 0, x_229); -return x_224; -} -else -{ -lean_object* x_230; uint8_t x_231; lean_object* x_232; lean_object* x_233; -x_230 = lean_ctor_get(x_224, 1); -lean_inc(x_230); -lean_dec(x_224); -x_231 = 0; -x_232 = lean_box(x_231); -x_233 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_233, 0, x_232); -lean_ctor_set(x_233, 1, x_230); -return x_233; -} -} -else -{ -lean_object* x_234; lean_object* x_235; -x_234 = lean_ctor_get(x_224, 1); -lean_inc(x_234); -lean_dec(x_224); -x_235 = lean_ctor_get(x_225, 0); -lean_inc(x_235); +lean_object* x_225; uint8_t x_226; lean_object* x_227; +x_225 = lean_ctor_get(x_222, 0); lean_dec(x_225); -x_2 = x_235; -x_8 = x_234; +x_226 = 0; +x_227 = lean_box(x_226); +lean_ctor_set(x_222, 0, x_227); +return x_222; +} +else +{ +lean_object* x_228; uint8_t x_229; lean_object* x_230; lean_object* x_231; +x_228 = lean_ctor_get(x_222, 1); +lean_inc(x_228); +lean_dec(x_222); +x_229 = 0; +x_230 = lean_box(x_229); +x_231 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_231, 0, x_230); +lean_ctor_set(x_231, 1, x_228); +return x_231; +} +} +else +{ +lean_object* x_232; lean_object* x_233; +x_232 = lean_ctor_get(x_222, 1); +lean_inc(x_232); +lean_dec(x_222); +x_233 = lean_ctor_get(x_223, 0); +lean_inc(x_233); +lean_dec(x_223); +x_2 = x_233; +x_8 = x_232; goto _start; } } else { -uint8_t x_237; +uint8_t x_235; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_237 = !lean_is_exclusive(x_224); -if (x_237 == 0) +x_235 = !lean_is_exclusive(x_222); +if (x_235 == 0) { -return x_224; +return x_222; } else { -lean_object* x_238; lean_object* x_239; lean_object* x_240; -x_238 = lean_ctor_get(x_224, 0); -x_239 = lean_ctor_get(x_224, 1); -lean_inc(x_239); -lean_inc(x_238); -lean_dec(x_224); -x_240 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_240, 0, x_238); -lean_ctor_set(x_240, 1, x_239); -return x_240; +lean_object* x_236; lean_object* x_237; lean_object* x_238; +x_236 = lean_ctor_get(x_222, 0); +x_237 = lean_ctor_get(x_222, 1); +lean_inc(x_237); +lean_inc(x_236); +lean_dec(x_222); +x_238 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_238, 0, x_236); +lean_ctor_set(x_238, 1, x_237); +return x_238; } } } @@ -13816,134 +13733,134 @@ case 7: switch (lean_obj_tag(x_2)) { case 7: { -lean_object* x_241; lean_object* x_242; lean_object* x_243; uint8_t x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; -x_241 = lean_ctor_get(x_1, 0); +lean_object* x_239; lean_object* x_240; lean_object* x_241; uint8_t x_242; lean_object* x_243; lean_object* x_244; lean_object* x_245; +x_239 = lean_ctor_get(x_1, 0); +lean_inc(x_239); +x_240 = lean_ctor_get(x_1, 1); +lean_inc(x_240); +x_241 = lean_ctor_get(x_1, 2); lean_inc(x_241); -x_242 = lean_ctor_get(x_1, 1); -lean_inc(x_242); -x_243 = lean_ctor_get(x_1, 2); -lean_inc(x_243); -x_244 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 8); +x_242 = lean_ctor_get_uint8(x_1, sizeof(void*)*3 + 8); lean_dec(x_1); -x_245 = lean_ctor_get(x_2, 1); -lean_inc(x_245); -x_246 = lean_ctor_get(x_2, 2); -lean_inc(x_246); +x_243 = lean_ctor_get(x_2, 1); +lean_inc(x_243); +x_244 = lean_ctor_get(x_2, 2); +lean_inc(x_244); lean_dec(x_2); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -lean_inc(x_242); -x_247 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull(x_242, x_245, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_247) == 0) +lean_inc(x_240); +x_245 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull(x_240, x_243, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_245) == 0) { -lean_object* x_248; uint8_t x_249; -x_248 = lean_ctor_get(x_247, 0); -lean_inc(x_248); -x_249 = lean_unbox(x_248); -lean_dec(x_248); -if (x_249 == 0) -{ -uint8_t x_250; +lean_object* x_246; uint8_t x_247; +x_246 = lean_ctor_get(x_245, 0); +lean_inc(x_246); +x_247 = lean_unbox(x_246); lean_dec(x_246); -lean_dec(x_243); -lean_dec(x_242); +if (x_247 == 0) +{ +uint8_t x_248; +lean_dec(x_244); lean_dec(x_241); +lean_dec(x_240); +lean_dec(x_239); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_250 = !lean_is_exclusive(x_247); -if (x_250 == 0) +x_248 = !lean_is_exclusive(x_245); +if (x_248 == 0) { -lean_object* x_251; uint8_t x_252; lean_object* x_253; -x_251 = lean_ctor_get(x_247, 0); -lean_dec(x_251); -x_252 = 0; -x_253 = lean_box(x_252); -lean_ctor_set(x_247, 0, x_253); -return x_247; +lean_object* x_249; uint8_t x_250; lean_object* x_251; +x_249 = lean_ctor_get(x_245, 0); +lean_dec(x_249); +x_250 = 0; +x_251 = lean_box(x_250); +lean_ctor_set(x_245, 0, x_251); +return x_245; } else { -lean_object* x_254; uint8_t x_255; lean_object* x_256; lean_object* x_257; -x_254 = lean_ctor_get(x_247, 1); -lean_inc(x_254); -lean_dec(x_247); -x_255 = 0; -x_256 = lean_box(x_255); -x_257 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_257, 0, x_256); -lean_ctor_set(x_257, 1, x_254); -return x_257; +lean_object* x_252; uint8_t x_253; lean_object* x_254; lean_object* x_255; +x_252 = lean_ctor_get(x_245, 1); +lean_inc(x_252); +lean_dec(x_245); +x_253 = 0; +x_254 = lean_box(x_253); +x_255 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_255, 0, x_254); +lean_ctor_set(x_255, 1, x_252); +return x_255; } } else { -lean_object* x_258; lean_object* x_259; lean_object* x_260; -x_258 = lean_ctor_get(x_247, 1); -lean_inc(x_258); -lean_dec(x_247); -x_259 = lean_box(0); -x_260 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull___lambda__1(x_241, x_242, x_244, x_243, x_246, x_259, x_3, x_4, x_5, x_6, x_7, x_258); -return x_260; +lean_object* x_256; lean_object* x_257; lean_object* x_258; +x_256 = lean_ctor_get(x_245, 1); +lean_inc(x_256); +lean_dec(x_245); +x_257 = lean_box(0); +x_258 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull___lambda__1(x_239, x_240, x_242, x_241, x_244, x_257, x_3, x_4, x_5, x_6, x_7, x_256); +return x_258; } } else { -uint8_t x_261; -lean_dec(x_246); -lean_dec(x_243); -lean_dec(x_242); +uint8_t x_259; +lean_dec(x_244); lean_dec(x_241); +lean_dec(x_240); +lean_dec(x_239); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_261 = !lean_is_exclusive(x_247); -if (x_261 == 0) +x_259 = !lean_is_exclusive(x_245); +if (x_259 == 0) { -return x_247; +return x_245; } else { -lean_object* x_262; lean_object* x_263; lean_object* x_264; -x_262 = lean_ctor_get(x_247, 0); -x_263 = lean_ctor_get(x_247, 1); -lean_inc(x_263); -lean_inc(x_262); -lean_dec(x_247); -x_264 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_264, 0, x_262); -lean_ctor_set(x_264, 1, x_263); -return x_264; +lean_object* x_260; lean_object* x_261; lean_object* x_262; +x_260 = lean_ctor_get(x_245, 0); +x_261 = lean_ctor_get(x_245, 1); +lean_inc(x_261); +lean_inc(x_260); +lean_dec(x_245); +x_262 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_262, 0, x_260); +lean_ctor_set(x_262, 1, x_261); +return x_262; } } } case 10: { -lean_object* x_265; -x_265 = lean_ctor_get(x_2, 1); -lean_inc(x_265); +lean_object* x_263; +x_263 = lean_ctor_get(x_2, 1); +lean_inc(x_263); lean_dec(x_2); -x_2 = x_265; +x_2 = x_263; goto _start; } default: { -uint8_t x_267; -x_267 = l_Lean_Expr_isLambda(x_1); -if (x_267 == 0) +uint8_t x_265; +x_265 = l_Lean_Expr_isLambda(x_1); +if (x_265 == 0) { -uint8_t x_268; -x_268 = l_Lean_Expr_isLambda(x_2); -if (x_268 == 0) +uint8_t x_266; +x_266 = l_Lean_Expr_isLambda(x_2); +if (x_266 == 0) { -uint8_t x_269; lean_object* x_270; lean_object* x_271; +uint8_t x_267; lean_object* x_268; lean_object* x_269; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -13951,193 +13868,193 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_269 = 0; -x_270 = lean_box(x_269); -x_271 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_271, 0, x_270); -lean_ctor_set(x_271, 1, x_8); -return x_271; +x_267 = 0; +x_268 = lean_box(x_267); +x_269 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_269, 0, x_268); +lean_ctor_set(x_269, 1, x_8); +return x_269; } else { -lean_object* x_272; +lean_object* x_270; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_272 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_1, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_272) == 0) +x_270 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_1, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_270) == 0) { -lean_object* x_273; -x_273 = lean_ctor_get(x_272, 0); -lean_inc(x_273); -if (lean_obj_tag(x_273) == 0) +lean_object* x_271; +x_271 = lean_ctor_get(x_270, 0); +lean_inc(x_271); +if (lean_obj_tag(x_271) == 0) { -uint8_t x_274; +uint8_t x_272; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_274 = !lean_is_exclusive(x_272); -if (x_274 == 0) +x_272 = !lean_is_exclusive(x_270); +if (x_272 == 0) { -lean_object* x_275; uint8_t x_276; lean_object* x_277; -x_275 = lean_ctor_get(x_272, 0); -lean_dec(x_275); -x_276 = 0; -x_277 = lean_box(x_276); -lean_ctor_set(x_272, 0, x_277); -return x_272; -} -else -{ -lean_object* x_278; uint8_t x_279; lean_object* x_280; lean_object* x_281; -x_278 = lean_ctor_get(x_272, 1); -lean_inc(x_278); -lean_dec(x_272); -x_279 = 0; -x_280 = lean_box(x_279); -x_281 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_281, 0, x_280); -lean_ctor_set(x_281, 1, x_278); -return x_281; -} -} -else -{ -lean_object* x_282; lean_object* x_283; -x_282 = lean_ctor_get(x_272, 1); -lean_inc(x_282); -lean_dec(x_272); -x_283 = lean_ctor_get(x_273, 0); -lean_inc(x_283); +lean_object* x_273; uint8_t x_274; lean_object* x_275; +x_273 = lean_ctor_get(x_270, 0); lean_dec(x_273); -x_1 = x_283; -x_8 = x_282; +x_274 = 0; +x_275 = lean_box(x_274); +lean_ctor_set(x_270, 0, x_275); +return x_270; +} +else +{ +lean_object* x_276; uint8_t x_277; lean_object* x_278; lean_object* x_279; +x_276 = lean_ctor_get(x_270, 1); +lean_inc(x_276); +lean_dec(x_270); +x_277 = 0; +x_278 = lean_box(x_277); +x_279 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_279, 0, x_278); +lean_ctor_set(x_279, 1, x_276); +return x_279; +} +} +else +{ +lean_object* x_280; lean_object* x_281; +x_280 = lean_ctor_get(x_270, 1); +lean_inc(x_280); +lean_dec(x_270); +x_281 = lean_ctor_get(x_271, 0); +lean_inc(x_281); +lean_dec(x_271); +x_1 = x_281; +x_8 = x_280; goto _start; } } else { -uint8_t x_285; +uint8_t x_283; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_285 = !lean_is_exclusive(x_272); -if (x_285 == 0) +x_283 = !lean_is_exclusive(x_270); +if (x_283 == 0) { -return x_272; +return x_270; } else { -lean_object* x_286; lean_object* x_287; lean_object* x_288; -x_286 = lean_ctor_get(x_272, 0); -x_287 = lean_ctor_get(x_272, 1); -lean_inc(x_287); -lean_inc(x_286); -lean_dec(x_272); -x_288 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_288, 0, x_286); -lean_ctor_set(x_288, 1, x_287); -return x_288; +lean_object* x_284; lean_object* x_285; lean_object* x_286; +x_284 = lean_ctor_get(x_270, 0); +x_285 = lean_ctor_get(x_270, 1); +lean_inc(x_285); +lean_inc(x_284); +lean_dec(x_270); +x_286 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_286, 0, x_284); +lean_ctor_set(x_286, 1, x_285); +return x_286; } } } } else { -lean_object* x_289; +lean_object* x_287; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_289 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_289) == 0) +x_287 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_287) == 0) { -lean_object* x_290; -x_290 = lean_ctor_get(x_289, 0); -lean_inc(x_290); -if (lean_obj_tag(x_290) == 0) +lean_object* x_288; +x_288 = lean_ctor_get(x_287, 0); +lean_inc(x_288); +if (lean_obj_tag(x_288) == 0) { -uint8_t x_291; +uint8_t x_289; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_291 = !lean_is_exclusive(x_289); -if (x_291 == 0) +x_289 = !lean_is_exclusive(x_287); +if (x_289 == 0) { -lean_object* x_292; uint8_t x_293; lean_object* x_294; -x_292 = lean_ctor_get(x_289, 0); -lean_dec(x_292); -x_293 = 0; -x_294 = lean_box(x_293); -lean_ctor_set(x_289, 0, x_294); -return x_289; -} -else -{ -lean_object* x_295; uint8_t x_296; lean_object* x_297; lean_object* x_298; -x_295 = lean_ctor_get(x_289, 1); -lean_inc(x_295); -lean_dec(x_289); -x_296 = 0; -x_297 = lean_box(x_296); -x_298 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_298, 0, x_297); -lean_ctor_set(x_298, 1, x_295); -return x_298; -} -} -else -{ -lean_object* x_299; lean_object* x_300; -x_299 = lean_ctor_get(x_289, 1); -lean_inc(x_299); -lean_dec(x_289); -x_300 = lean_ctor_get(x_290, 0); -lean_inc(x_300); +lean_object* x_290; uint8_t x_291; lean_object* x_292; +x_290 = lean_ctor_get(x_287, 0); lean_dec(x_290); -x_2 = x_300; -x_8 = x_299; +x_291 = 0; +x_292 = lean_box(x_291); +lean_ctor_set(x_287, 0, x_292); +return x_287; +} +else +{ +lean_object* x_293; uint8_t x_294; lean_object* x_295; lean_object* x_296; +x_293 = lean_ctor_get(x_287, 1); +lean_inc(x_293); +lean_dec(x_287); +x_294 = 0; +x_295 = lean_box(x_294); +x_296 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_296, 0, x_295); +lean_ctor_set(x_296, 1, x_293); +return x_296; +} +} +else +{ +lean_object* x_297; lean_object* x_298; +x_297 = lean_ctor_get(x_287, 1); +lean_inc(x_297); +lean_dec(x_287); +x_298 = lean_ctor_get(x_288, 0); +lean_inc(x_298); +lean_dec(x_288); +x_2 = x_298; +x_8 = x_297; goto _start; } } else { -uint8_t x_302; +uint8_t x_300; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_302 = !lean_is_exclusive(x_289); -if (x_302 == 0) +x_300 = !lean_is_exclusive(x_287); +if (x_300 == 0) { -return x_289; +return x_287; } else { -lean_object* x_303; lean_object* x_304; lean_object* x_305; -x_303 = lean_ctor_get(x_289, 0); -x_304 = lean_ctor_get(x_289, 1); -lean_inc(x_304); -lean_inc(x_303); -lean_dec(x_289); -x_305 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_305, 0, x_303); -lean_ctor_set(x_305, 1, x_304); -return x_305; +lean_object* x_301; lean_object* x_302; lean_object* x_303; +x_301 = lean_ctor_get(x_287, 0); +x_302 = lean_ctor_get(x_287, 1); +lean_inc(x_302); +lean_inc(x_301); +lean_dec(x_287); +x_303 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_303, 0, x_301); +lean_ctor_set(x_303, 1, x_302); +return x_303; } } } @@ -14146,35 +14063,35 @@ return x_305; } case 10: { -lean_object* x_306; -x_306 = lean_ctor_get(x_1, 1); -lean_inc(x_306); +lean_object* x_304; +x_304 = lean_ctor_get(x_1, 1); +lean_inc(x_304); lean_dec(x_1); -x_1 = x_306; +x_1 = x_304; goto _start; } default: { if (lean_obj_tag(x_2) == 10) { -lean_object* x_308; -x_308 = lean_ctor_get(x_2, 1); -lean_inc(x_308); +lean_object* x_306; +x_306 = lean_ctor_get(x_2, 1); +lean_inc(x_306); lean_dec(x_2); -x_2 = x_308; +x_2 = x_306; goto _start; } else { -uint8_t x_310; -x_310 = l_Lean_Expr_isLambda(x_1); -if (x_310 == 0) +uint8_t x_308; +x_308 = l_Lean_Expr_isLambda(x_1); +if (x_308 == 0) { -uint8_t x_311; -x_311 = l_Lean_Expr_isLambda(x_2); -if (x_311 == 0) +uint8_t x_309; +x_309 = l_Lean_Expr_isLambda(x_2); +if (x_309 == 0) { -uint8_t x_312; lean_object* x_313; lean_object* x_314; +uint8_t x_310; lean_object* x_311; lean_object* x_312; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -14182,193 +14099,193 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_312 = 0; -x_313 = lean_box(x_312); -x_314 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_314, 0, x_313); -lean_ctor_set(x_314, 1, x_8); -return x_314; +x_310 = 0; +x_311 = lean_box(x_310); +x_312 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_312, 0, x_311); +lean_ctor_set(x_312, 1, x_8); +return x_312; } else { -lean_object* x_315; +lean_object* x_313; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_315 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_1, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_315) == 0) +x_313 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_1, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_313) == 0) { -lean_object* x_316; -x_316 = lean_ctor_get(x_315, 0); -lean_inc(x_316); -if (lean_obj_tag(x_316) == 0) +lean_object* x_314; +x_314 = lean_ctor_get(x_313, 0); +lean_inc(x_314); +if (lean_obj_tag(x_314) == 0) { -uint8_t x_317; +uint8_t x_315; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_317 = !lean_is_exclusive(x_315); -if (x_317 == 0) +x_315 = !lean_is_exclusive(x_313); +if (x_315 == 0) { -lean_object* x_318; uint8_t x_319; lean_object* x_320; -x_318 = lean_ctor_get(x_315, 0); -lean_dec(x_318); -x_319 = 0; -x_320 = lean_box(x_319); -lean_ctor_set(x_315, 0, x_320); -return x_315; -} -else -{ -lean_object* x_321; uint8_t x_322; lean_object* x_323; lean_object* x_324; -x_321 = lean_ctor_get(x_315, 1); -lean_inc(x_321); -lean_dec(x_315); -x_322 = 0; -x_323 = lean_box(x_322); -x_324 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_324, 0, x_323); -lean_ctor_set(x_324, 1, x_321); -return x_324; -} -} -else -{ -lean_object* x_325; lean_object* x_326; -x_325 = lean_ctor_get(x_315, 1); -lean_inc(x_325); -lean_dec(x_315); -x_326 = lean_ctor_get(x_316, 0); -lean_inc(x_326); +lean_object* x_316; uint8_t x_317; lean_object* x_318; +x_316 = lean_ctor_get(x_313, 0); lean_dec(x_316); -x_1 = x_326; -x_8 = x_325; +x_317 = 0; +x_318 = lean_box(x_317); +lean_ctor_set(x_313, 0, x_318); +return x_313; +} +else +{ +lean_object* x_319; uint8_t x_320; lean_object* x_321; lean_object* x_322; +x_319 = lean_ctor_get(x_313, 1); +lean_inc(x_319); +lean_dec(x_313); +x_320 = 0; +x_321 = lean_box(x_320); +x_322 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_322, 0, x_321); +lean_ctor_set(x_322, 1, x_319); +return x_322; +} +} +else +{ +lean_object* x_323; lean_object* x_324; +x_323 = lean_ctor_get(x_313, 1); +lean_inc(x_323); +lean_dec(x_313); +x_324 = lean_ctor_get(x_314, 0); +lean_inc(x_324); +lean_dec(x_314); +x_1 = x_324; +x_8 = x_323; goto _start; } } else { -uint8_t x_328; +uint8_t x_326; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_328 = !lean_is_exclusive(x_315); -if (x_328 == 0) +x_326 = !lean_is_exclusive(x_313); +if (x_326 == 0) { -return x_315; +return x_313; } else { -lean_object* x_329; lean_object* x_330; lean_object* x_331; -x_329 = lean_ctor_get(x_315, 0); -x_330 = lean_ctor_get(x_315, 1); -lean_inc(x_330); -lean_inc(x_329); -lean_dec(x_315); -x_331 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_331, 0, x_329); -lean_ctor_set(x_331, 1, x_330); -return x_331; +lean_object* x_327; lean_object* x_328; lean_object* x_329; +x_327 = lean_ctor_get(x_313, 0); +x_328 = lean_ctor_get(x_313, 1); +lean_inc(x_328); +lean_inc(x_327); +lean_dec(x_313); +x_329 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_329, 0, x_327); +lean_ctor_set(x_329, 1, x_328); +return x_329; } } } } else { -lean_object* x_332; +lean_object* x_330; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_332 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_332) == 0) +x_330 = l_Lean_Compiler_LCNF_InferType_compatibleTypesFull_etaExpand_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_330) == 0) { -lean_object* x_333; -x_333 = lean_ctor_get(x_332, 0); -lean_inc(x_333); -if (lean_obj_tag(x_333) == 0) +lean_object* x_331; +x_331 = lean_ctor_get(x_330, 0); +lean_inc(x_331); +if (lean_obj_tag(x_331) == 0) { -uint8_t x_334; +uint8_t x_332; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_334 = !lean_is_exclusive(x_332); -if (x_334 == 0) +x_332 = !lean_is_exclusive(x_330); +if (x_332 == 0) { -lean_object* x_335; uint8_t x_336; lean_object* x_337; -x_335 = lean_ctor_get(x_332, 0); -lean_dec(x_335); -x_336 = 0; -x_337 = lean_box(x_336); -lean_ctor_set(x_332, 0, x_337); -return x_332; -} -else -{ -lean_object* x_338; uint8_t x_339; lean_object* x_340; lean_object* x_341; -x_338 = lean_ctor_get(x_332, 1); -lean_inc(x_338); -lean_dec(x_332); -x_339 = 0; -x_340 = lean_box(x_339); -x_341 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_341, 0, x_340); -lean_ctor_set(x_341, 1, x_338); -return x_341; -} -} -else -{ -lean_object* x_342; lean_object* x_343; -x_342 = lean_ctor_get(x_332, 1); -lean_inc(x_342); -lean_dec(x_332); -x_343 = lean_ctor_get(x_333, 0); -lean_inc(x_343); +lean_object* x_333; uint8_t x_334; lean_object* x_335; +x_333 = lean_ctor_get(x_330, 0); lean_dec(x_333); -x_2 = x_343; -x_8 = x_342; +x_334 = 0; +x_335 = lean_box(x_334); +lean_ctor_set(x_330, 0, x_335); +return x_330; +} +else +{ +lean_object* x_336; uint8_t x_337; lean_object* x_338; lean_object* x_339; +x_336 = lean_ctor_get(x_330, 1); +lean_inc(x_336); +lean_dec(x_330); +x_337 = 0; +x_338 = lean_box(x_337); +x_339 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_339, 0, x_338); +lean_ctor_set(x_339, 1, x_336); +return x_339; +} +} +else +{ +lean_object* x_340; lean_object* x_341; +x_340 = lean_ctor_get(x_330, 1); +lean_inc(x_340); +lean_dec(x_330); +x_341 = lean_ctor_get(x_331, 0); +lean_inc(x_341); +lean_dec(x_331); +x_2 = x_341; +x_8 = x_340; goto _start; } } else { -uint8_t x_345; +uint8_t x_343; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_345 = !lean_is_exclusive(x_332); -if (x_345 == 0) +x_343 = !lean_is_exclusive(x_330); +if (x_343 == 0) { -return x_332; +return x_330; } else { -lean_object* x_346; lean_object* x_347; lean_object* x_348; -x_346 = lean_ctor_get(x_332, 0); -x_347 = lean_ctor_get(x_332, 1); -lean_inc(x_347); -lean_inc(x_346); -lean_dec(x_332); -x_348 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_348, 0, x_346); -lean_ctor_set(x_348, 1, x_347); -return x_348; +lean_object* x_344; lean_object* x_345; lean_object* x_346; +x_344 = lean_ctor_get(x_330, 0); +x_345 = lean_ctor_get(x_330, 1); +lean_inc(x_345); +lean_inc(x_344); +lean_dec(x_330); +x_346 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_346, 0, x_344); +lean_ctor_set(x_346, 1, x_345); +return x_346; } } } @@ -14378,7 +14295,7 @@ return x_348; } else { -uint8_t x_349; lean_object* x_350; lean_object* x_351; +uint8_t x_347; lean_object* x_348; lean_object* x_349; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -14386,19 +14303,19 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_349 = 1; -x_350 = lean_box(x_349); -x_351 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_351, 0, x_350); -lean_ctor_set(x_351, 1, x_8); -return x_351; +x_347 = 1; +x_348 = lean_box(x_347); +x_349 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_349, 0, x_348); +lean_ctor_set(x_349, 1, x_8); +return x_349; } } } } else { -uint8_t x_352; lean_object* x_353; lean_object* x_354; +uint8_t x_350; lean_object* x_351; lean_object* x_352; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -14406,17 +14323,17 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_352 = 1; -x_353 = lean_box(x_352); -x_354 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_354, 0, x_353); -lean_ctor_set(x_354, 1, x_8); -return x_354; +x_350 = 1; +x_351 = lean_box(x_350); +x_352 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_352, 0, x_351); +lean_ctor_set(x_352, 1, x_8); +return x_352; } } else { -uint8_t x_355; lean_object* x_356; lean_object* x_357; +uint8_t x_353; lean_object* x_354; lean_object* x_355; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -14424,48 +14341,12 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_355 = 1; -x_356 = lean_box(x_355); -x_357 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_357, 0, x_356); -lean_ctor_set(x_357, 1, x_8); -return x_357; -} -} -else -{ -uint8_t x_358; lean_object* x_359; lean_object* x_360; -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_358 = 1; -x_359 = lean_box(x_358); -x_360 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_360, 0, x_359); -lean_ctor_set(x_360, 1, x_8); -return x_360; -} -} -else -{ -uint8_t x_361; lean_object* x_362; lean_object* x_363; -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_361 = 1; -x_362 = lean_box(x_361); -x_363 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_363, 0, x_362); -lean_ctor_set(x_363, 1, x_8); -return x_363; +x_353 = 1; +x_354 = lean_box(x_353); +x_355 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_355, 0, x_354); +lean_ctor_set(x_355, 1, x_8); +return x_355; } } } @@ -14547,6 +14428,7 @@ lean_object* initialize_Init(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_CompilerM(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_Types(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_PhaseExt(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_OtherDecl(uint8_t builtin, lean_object*); static bool _G_initialized = false; LEAN_EXPORT lean_object* initialize_Lean_Compiler_LCNF_InferType(uint8_t builtin, lean_object* w) { lean_object * res; @@ -14564,6 +14446,9 @@ lean_dec_ref(res); res = initialize_Lean_Compiler_LCNF_PhaseExt(builtin, lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_OtherDecl(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); l_Nat_foldRevM_loop___at_Lean_Compiler_LCNF_InferType_mkForallFVars___spec__1___closed__1 = _init_l_Nat_foldRevM_loop___at_Lean_Compiler_LCNF_InferType_mkForallFVars___spec__1___closed__1(); lean_mark_persistent(l_Nat_foldRevM_loop___at_Lean_Compiler_LCNF_InferType_mkForallFVars___spec__1___closed__1); l_Nat_foldRevM_loop___at_Lean_Compiler_LCNF_InferType_mkForallFVars___spec__1___closed__2 = _init_l_Nat_foldRevM_loop___at_Lean_Compiler_LCNF_InferType_mkForallFVars___spec__1___closed__2(); @@ -14590,10 +14475,6 @@ l_Lean_Compiler_LCNF_InferType_inferConstType___closed__1 = _init_l_Lean_Compile lean_mark_persistent(l_Lean_Compiler_LCNF_InferType_inferConstType___closed__1); l_Lean_Compiler_LCNF_InferType_inferConstType___closed__2 = _init_l_Lean_Compiler_LCNF_InferType_inferConstType___closed__2(); lean_mark_persistent(l_Lean_Compiler_LCNF_InferType_inferConstType___closed__2); -l_Lean_Compiler_LCNF_InferType_inferConstType___closed__3 = _init_l_Lean_Compiler_LCNF_InferType_inferConstType___closed__3(); -lean_mark_persistent(l_Lean_Compiler_LCNF_InferType_inferConstType___closed__3); -l_Lean_Compiler_LCNF_InferType_inferConstType___closed__4 = _init_l_Lean_Compiler_LCNF_InferType_inferConstType___closed__4(); -lean_mark_persistent(l_Lean_Compiler_LCNF_InferType_inferConstType___closed__4); l_Lean_throwError___at_Lean_Compiler_LCNF_InferType_inferType___spec__1___closed__1 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_InferType_inferType___spec__1___closed__1(); lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_InferType_inferType___spec__1___closed__1); l_Lean_throwError___at_Lean_Compiler_LCNF_InferType_inferType___spec__1___closed__2 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_InferType_inferType___spec__1___closed__2(); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Internalize.c b/stage0/stdlib/Lean/Compiler/LCNF/Internalize.c new file mode 100644 index 0000000000..924e1443d4 --- /dev/null +++ b/stage0/stdlib/Lean/Compiler/LCNF/Internalize.c @@ -0,0 +1,3846 @@ +// Lean compiler output +// Module: Lean.Compiler.LCNF.Internalize +// Imports: Init Lean.Compiler.LCNF.Types Lean.Compiler.LCNF.Bind Lean.Compiler.LCNF.CompilerM +#include +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wunused-label" +#elif defined(__GNUC__) && !defined(__CLANG__) +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wunused-label" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif +#ifdef __cplusplus +extern "C" { +#endif +LEAN_EXPORT lean_object* l_Lean_mkFreshFVarId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +size_t lean_usize_add(size_t, size_t); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_internalize_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___closed__1; +lean_object* lean_array_uget(lean_object*, size_t); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___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_modify___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_array_uset(lean_object*, size_t, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCode___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_cleanup(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_Lean_Expr_isErased(lean_object*); +LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg___boxed(lean_object*, lean_object*); +lean_object* lean_st_ref_get(lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_LCtx_addLetDecl(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__2(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_StateRefT_x27_get___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_array_get_size(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_internalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t lean_usize_dec_lt(size_t, size_t); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_nat_add(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_cleanup___closed__3; +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__3___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_mkFreshId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_StateRefT_x27_get___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_cleanup___closed__2; +static lean_object* l_Lean_Compiler_LCNF_cleanup___closed__1; +lean_object* l_Lean_mkHashMapImp___rarg(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCodeDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_st_ref_take(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_refreshBinderName___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_modify___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Name_num___override(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_cleanup___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_internalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_st_mk_ref(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCode(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Code_ensureAnyType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(lean_object*, lean_object*, uint8_t); +size_t lean_usize_of_nat(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Expr_fvar___override(lean_object*); +uint8_t lean_expr_eqv(lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_LCtx_addParam(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeParam(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__3(uint8_t, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_mkFreshFVarId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_cleanup___spec__1___boxed(lean_object*); +lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_cleanup___spec__2(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_refreshBinderName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__1(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(lean_object*, uint8_t, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCodeDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_LCtx_addFunDecl(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM; +static lean_object* l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_internalize_go___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeParam___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_cleanup___spec__1(lean_object*); +LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_refreshBinderName(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +if (lean_obj_tag(x_1) == 2) +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_7 = lean_ctor_get(x_1, 0); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_st_ref_get(x_5, x_6); +x_9 = lean_ctor_get(x_8, 1); +lean_inc(x_9); +lean_dec(x_8); +x_10 = lean_st_ref_get(x_3, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +x_13 = lean_ctor_get(x_11, 1); +lean_inc(x_13); +lean_dec(x_11); +x_14 = l_Lean_Name_num___override(x_7, x_13); +x_15 = lean_st_ref_get(x_5, x_12); +x_16 = lean_ctor_get(x_15, 1); +lean_inc(x_16); +lean_dec(x_15); +x_17 = lean_st_ref_take(x_3, x_16); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_17, 1); +lean_inc(x_19); +lean_dec(x_17); +x_20 = lean_ctor_get(x_18, 0); +lean_inc(x_20); +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +lean_dec(x_18); +x_22 = lean_unsigned_to_nat(1u); +x_23 = lean_nat_add(x_21, x_22); +lean_dec(x_21); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_20); +lean_ctor_set(x_24, 1, x_23); +x_25 = lean_st_ref_set(x_3, x_24, x_19); +x_26 = !lean_is_exclusive(x_25); +if (x_26 == 0) +{ +lean_object* x_27; +x_27 = lean_ctor_get(x_25, 0); +lean_dec(x_27); +lean_ctor_set(x_25, 0, x_14); +return x_25; +} +else +{ +lean_object* x_28; lean_object* x_29; +x_28 = lean_ctor_get(x_25, 1); +lean_inc(x_28); +lean_dec(x_25); +x_29 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_29, 0, x_14); +lean_ctor_set(x_29, 1, x_28); +return x_29; +} +} +else +{ +lean_object* x_30; +x_30 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_30, 0, x_1); +lean_ctor_set(x_30, 1, x_6); +return x_30; +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_refreshBinderName___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) { +_start: +{ +lean_object* x_7; +x_7 = l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_refreshBinderName(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_7; +} +} +LEAN_EXPORT lean_object* l_StateRefT_x27_get___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___spec__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) { +_start: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10; +x_7 = lean_st_ref_get(x_5, x_6); +x_8 = lean_ctor_get(x_7, 1); +lean_inc(x_8); +lean_dec(x_7); +x_9 = lean_st_ref_get(x_1, x_8); +x_10 = !lean_is_exclusive(x_9); +if (x_10 == 0) +{ +return x_9; +} +else +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_11 = lean_ctor_get(x_9, 0); +x_12 = lean_ctor_get(x_9, 1); +lean_inc(x_12); +lean_inc(x_11); +lean_dec(x_9); +x_13 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_13, 0, x_11); +lean_ctor_set(x_13, 1, x_12); +return x_13; +} +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_StateRefT_x27_get___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___spec__1___boxed), 6, 0); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___closed__1; +return x_1; +} +} +LEAN_EXPORT lean_object* l_StateRefT_x27_get___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___spec__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) { +_start: +{ +lean_object* x_7; +x_7 = l_StateRefT_x27_get___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +return x_7; +} +} +LEAN_EXPORT lean_object* l_modify___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___spec__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: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_8 = lean_st_ref_get(x_6, x_7); +x_9 = lean_ctor_get(x_8, 1); +lean_inc(x_9); +lean_dec(x_8); +x_10 = lean_st_ref_take(x_2, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +x_13 = lean_apply_1(x_1, x_11); +x_14 = lean_st_ref_set(x_2, x_13, x_12); +x_15 = !lean_is_exclusive(x_14); +if (x_15 == 0) +{ +lean_object* x_16; lean_object* x_17; +x_16 = lean_ctor_get(x_14, 0); +lean_dec(x_16); +x_17 = lean_box(0); +lean_ctor_set(x_14, 0, x_17); +return x_14; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_14, 1); +lean_inc(x_18); +lean_dec(x_14); +x_19 = lean_box(0); +x_20 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_20, 0, x_19); +lean_ctor_set(x_20, 1, x_18); +return x_20; +} +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_modify___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___spec__1___boxed), 7, 0); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___closed__1; +return x_1; +} +} +LEAN_EXPORT lean_object* l_modify___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___spec__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_modify___at_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___spec__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); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7; +x_3 = lean_st_ref_get(x_1, x_2); +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_4, 2); +lean_inc(x_5); +lean_dec(x_4); +x_6 = lean_ctor_get(x_3, 1); +lean_inc(x_6); +lean_dec(x_3); +x_7 = !lean_is_exclusive(x_5); +if (x_7 == 0) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_8 = lean_ctor_get(x_5, 0); +x_9 = lean_ctor_get(x_5, 1); +lean_inc(x_9); +lean_inc(x_8); +x_10 = l_Lean_Name_num___override(x_8, x_9); +x_11 = lean_unsigned_to_nat(1u); +x_12 = lean_nat_add(x_9, x_11); +lean_dec(x_9); +lean_ctor_set(x_5, 1, x_12); +x_13 = lean_st_ref_take(x_1, x_6); +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 = !lean_is_exclusive(x_14); +if (x_16 == 0) +{ +lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_17 = lean_ctor_get(x_14, 2); +lean_dec(x_17); +lean_ctor_set(x_14, 2, x_5); +x_18 = lean_st_ref_set(x_1, x_14, x_15); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) +{ +lean_object* x_20; +x_20 = lean_ctor_get(x_18, 0); +lean_dec(x_20); +lean_ctor_set(x_18, 0, x_10); +return x_18; +} +else +{ +lean_object* x_21; lean_object* x_22; +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +lean_dec(x_18); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_10); +lean_ctor_set(x_22, 1, x_21); +return x_22; +} +} +else +{ +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; lean_object* x_32; lean_object* x_33; +x_23 = lean_ctor_get(x_14, 0); +x_24 = lean_ctor_get(x_14, 1); +x_25 = lean_ctor_get(x_14, 3); +x_26 = lean_ctor_get(x_14, 4); +x_27 = lean_ctor_get(x_14, 5); +x_28 = lean_ctor_get(x_14, 6); +lean_inc(x_28); +lean_inc(x_27); +lean_inc(x_26); +lean_inc(x_25); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_14); +x_29 = lean_alloc_ctor(0, 7, 0); +lean_ctor_set(x_29, 0, x_23); +lean_ctor_set(x_29, 1, x_24); +lean_ctor_set(x_29, 2, x_5); +lean_ctor_set(x_29, 3, x_25); +lean_ctor_set(x_29, 4, x_26); +lean_ctor_set(x_29, 5, x_27); +lean_ctor_set(x_29, 6, x_28); +x_30 = lean_st_ref_set(x_1, x_29, x_15); +x_31 = lean_ctor_get(x_30, 1); +lean_inc(x_31); +if (lean_is_exclusive(x_30)) { + lean_ctor_release(x_30, 0); + lean_ctor_release(x_30, 1); + x_32 = x_30; +} else { + lean_dec_ref(x_30); + x_32 = lean_box(0); +} +if (lean_is_scalar(x_32)) { + x_33 = lean_alloc_ctor(0, 2, 0); +} else { + x_33 = x_32; +} +lean_ctor_set(x_33, 0, x_10); +lean_ctor_set(x_33, 1, x_31); +return x_33; +} +} +else +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_34 = lean_ctor_get(x_5, 0); +x_35 = lean_ctor_get(x_5, 1); +lean_inc(x_35); +lean_inc(x_34); +lean_dec(x_5); +lean_inc(x_35); +lean_inc(x_34); +x_36 = l_Lean_Name_num___override(x_34, x_35); +x_37 = lean_unsigned_to_nat(1u); +x_38 = lean_nat_add(x_35, x_37); +lean_dec(x_35); +x_39 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_39, 0, x_34); +lean_ctor_set(x_39, 1, x_38); +x_40 = lean_st_ref_take(x_1, x_6); +x_41 = lean_ctor_get(x_40, 0); +lean_inc(x_41); +x_42 = lean_ctor_get(x_40, 1); +lean_inc(x_42); +lean_dec(x_40); +x_43 = lean_ctor_get(x_41, 0); +lean_inc(x_43); +x_44 = lean_ctor_get(x_41, 1); +lean_inc(x_44); +x_45 = lean_ctor_get(x_41, 3); +lean_inc(x_45); +x_46 = lean_ctor_get(x_41, 4); +lean_inc(x_46); +x_47 = lean_ctor_get(x_41, 5); +lean_inc(x_47); +x_48 = lean_ctor_get(x_41, 6); +lean_inc(x_48); +if (lean_is_exclusive(x_41)) { + lean_ctor_release(x_41, 0); + lean_ctor_release(x_41, 1); + lean_ctor_release(x_41, 2); + lean_ctor_release(x_41, 3); + lean_ctor_release(x_41, 4); + lean_ctor_release(x_41, 5); + lean_ctor_release(x_41, 6); + x_49 = x_41; +} else { + lean_dec_ref(x_41); + x_49 = lean_box(0); +} +if (lean_is_scalar(x_49)) { + x_50 = lean_alloc_ctor(0, 7, 0); +} else { + x_50 = x_49; +} +lean_ctor_set(x_50, 0, x_43); +lean_ctor_set(x_50, 1, x_44); +lean_ctor_set(x_50, 2, x_39); +lean_ctor_set(x_50, 3, x_45); +lean_ctor_set(x_50, 4, x_46); +lean_ctor_set(x_50, 5, x_47); +lean_ctor_set(x_50, 6, x_48); +x_51 = lean_st_ref_set(x_1, x_50, x_42); +x_52 = lean_ctor_get(x_51, 1); +lean_inc(x_52); +if (lean_is_exclusive(x_51)) { + lean_ctor_release(x_51, 0); + lean_ctor_release(x_51, 1); + x_53 = x_51; +} else { + lean_dec_ref(x_51); + x_53 = lean_box(0); +} +if (lean_is_scalar(x_53)) { + x_54 = lean_alloc_ctor(0, 2, 0); +} else { + x_54 = x_53; +} +lean_ctor_set(x_54, 0, x_36); +lean_ctor_set(x_54, 1, x_52); +return x_54; +} +} +} +LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; +x_5 = lean_alloc_closure((void*)(l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg___boxed), 2, 0); +return x_5; +} +} +LEAN_EXPORT lean_object* l_Lean_mkFreshFVarId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__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) { +_start: +{ +lean_object* x_7; uint8_t x_8; +x_7 = l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg(x_5, x_6); +x_8 = !lean_is_exclusive(x_7); +if (x_8 == 0) +{ +return x_7; +} +else +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_9 = lean_ctor_get(x_7, 0); +x_10 = lean_ctor_get(x_7, 1); +lean_inc(x_10); +lean_inc(x_9); +lean_dec(x_7); +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_9); +lean_ctor_set(x_11, 1, x_10); +return x_11; +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_8 = l_Lean_mkFreshFVarId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__1(x_2, x_3, x_4, x_5, x_6, x_7); +x_9 = lean_ctor_get(x_8, 0); +lean_inc(x_9); +x_10 = lean_ctor_get(x_8, 1); +lean_inc(x_10); +lean_dec(x_8); +x_11 = lean_st_ref_get(x_6, x_10); +x_12 = lean_ctor_get(x_11, 1); +lean_inc(x_12); +lean_dec(x_11); +x_13 = lean_st_ref_take(x_2, x_12); +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); +lean_inc(x_9); +x_16 = l_Lean_Expr_fvar___override(x_9); +x_17 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_14, x_1, x_16); +x_18 = lean_st_ref_set(x_2, x_17, x_15); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) +{ +lean_object* x_20; +x_20 = lean_ctor_get(x_18, 0); +lean_dec(x_20); +lean_ctor_set(x_18, 0, x_9); +return x_18; +} +else +{ +lean_object* x_21; lean_object* x_22; +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +lean_dec(x_18); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_9); +lean_ctor_set(x_22, 1, x_21); +return x_22; +} +} +} +LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___rarg(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; +x_5 = l_Lean_mkFreshId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__2(x_1, x_2, x_3, x_4); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +return x_5; +} +} +LEAN_EXPORT lean_object* l_Lean_mkFreshFVarId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__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) { +_start: +{ +lean_object* x_7; +x_7 = l_Lean_mkFreshFVarId___at___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +return x_7; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId___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_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(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); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeParam(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; +x_8 = !lean_is_exclusive(x_1); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t 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; uint8_t x_28; +x_9 = lean_ctor_get(x_1, 0); +x_10 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 2); +x_12 = l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_refreshBinderName(x_10, x_3, x_4, x_5, x_6, x_7); +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); +lean_dec(x_12); +x_15 = lean_st_ref_get(x_6, x_14); +x_16 = lean_ctor_get(x_15, 1); +lean_inc(x_16); +lean_dec(x_15); +x_17 = lean_st_ref_get(x_2, x_16); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_17, 1); +lean_inc(x_19); +lean_dec(x_17); +x_20 = 1; +x_21 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_18, x_20, x_11); +x_22 = l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(x_9, x_2, x_3, x_4, x_5, x_6, x_19); +x_23 = lean_ctor_get(x_22, 0); +lean_inc(x_23); +x_24 = lean_ctor_get(x_22, 1); +lean_inc(x_24); +lean_dec(x_22); +lean_ctor_set(x_1, 2, x_21); +lean_ctor_set(x_1, 1, x_13); +lean_ctor_set(x_1, 0, x_23); +x_25 = lean_st_ref_take(x_4, x_24); +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_25, 1); +lean_inc(x_27); +lean_dec(x_25); +x_28 = !lean_is_exclusive(x_26); +if (x_28 == 0) +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; +x_29 = lean_ctor_get(x_26, 0); +lean_inc(x_1); +x_30 = l_Lean_Compiler_LCNF_LCtx_addParam(x_29, x_1); +lean_ctor_set(x_26, 0, x_30); +x_31 = lean_st_ref_set(x_4, x_26, x_27); +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +lean_ctor_set(x_31, 0, x_1); +return x_31; +} +else +{ +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_1); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_36 = lean_ctor_get(x_26, 0); +x_37 = lean_ctor_get(x_26, 1); +lean_inc(x_37); +lean_inc(x_36); +lean_dec(x_26); +lean_inc(x_1); +x_38 = l_Lean_Compiler_LCNF_LCtx_addParam(x_36, x_1); +x_39 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_37); +x_40 = lean_st_ref_set(x_4, x_39, x_27); +x_41 = lean_ctor_get(x_40, 1); +lean_inc(x_41); +if (lean_is_exclusive(x_40)) { + lean_ctor_release(x_40, 0); + lean_ctor_release(x_40, 1); + x_42 = x_40; +} else { + lean_dec_ref(x_40); + x_42 = lean_box(0); +} +if (lean_is_scalar(x_42)) { + x_43 = lean_alloc_ctor(0, 2, 0); +} else { + x_43 = x_42; +} +lean_ctor_set(x_43, 0, x_1); +lean_ctor_set(x_43, 1, x_41); +return x_43; +} +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; uint8_t x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +x_44 = lean_ctor_get(x_1, 0); +x_45 = lean_ctor_get(x_1, 1); +x_46 = lean_ctor_get(x_1, 2); +x_47 = lean_ctor_get_uint8(x_1, sizeof(void*)*3); +lean_inc(x_46); +lean_inc(x_45); +lean_inc(x_44); +lean_dec(x_1); +x_48 = l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_refreshBinderName(x_45, x_3, x_4, x_5, x_6, x_7); +x_49 = lean_ctor_get(x_48, 0); +lean_inc(x_49); +x_50 = lean_ctor_get(x_48, 1); +lean_inc(x_50); +lean_dec(x_48); +x_51 = lean_st_ref_get(x_6, x_50); +x_52 = lean_ctor_get(x_51, 1); +lean_inc(x_52); +lean_dec(x_51); +x_53 = lean_st_ref_get(x_2, x_52); +x_54 = lean_ctor_get(x_53, 0); +lean_inc(x_54); +x_55 = lean_ctor_get(x_53, 1); +lean_inc(x_55); +lean_dec(x_53); +x_56 = 1; +x_57 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_54, x_56, x_46); +x_58 = l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(x_44, x_2, x_3, x_4, x_5, x_6, x_55); +x_59 = lean_ctor_get(x_58, 0); +lean_inc(x_59); +x_60 = lean_ctor_get(x_58, 1); +lean_inc(x_60); +lean_dec(x_58); +x_61 = lean_alloc_ctor(0, 3, 1); +lean_ctor_set(x_61, 0, x_59); +lean_ctor_set(x_61, 1, x_49); +lean_ctor_set(x_61, 2, x_57); +lean_ctor_set_uint8(x_61, sizeof(void*)*3, x_47); +x_62 = lean_st_ref_take(x_4, x_60); +x_63 = lean_ctor_get(x_62, 0); +lean_inc(x_63); +x_64 = lean_ctor_get(x_62, 1); +lean_inc(x_64); +lean_dec(x_62); +x_65 = lean_ctor_get(x_63, 0); +lean_inc(x_65); +x_66 = lean_ctor_get(x_63, 1); +lean_inc(x_66); +if (lean_is_exclusive(x_63)) { + lean_ctor_release(x_63, 0); + lean_ctor_release(x_63, 1); + x_67 = x_63; +} else { + lean_dec_ref(x_63); + x_67 = lean_box(0); +} +lean_inc(x_61); +x_68 = l_Lean_Compiler_LCNF_LCtx_addParam(x_65, x_61); +if (lean_is_scalar(x_67)) { + x_69 = lean_alloc_ctor(0, 2, 0); +} else { + x_69 = x_67; +} +lean_ctor_set(x_69, 0, x_68); +lean_ctor_set(x_69, 1, x_66); +x_70 = lean_st_ref_set(x_4, x_69, x_64); +x_71 = lean_ctor_get(x_70, 1); +lean_inc(x_71); +if (lean_is_exclusive(x_70)) { + lean_ctor_release(x_70, 0); + lean_ctor_release(x_70, 1); + x_72 = x_70; +} else { + lean_dec_ref(x_70); + x_72 = lean_box(0); +} +if (lean_is_scalar(x_72)) { + x_73 = lean_alloc_ctor(0, 2, 0); +} else { + x_73 = x_72; +} +lean_ctor_set(x_73, 0, x_61); +lean_ctor_set(x_73, 1, x_71); +return x_73; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeParam___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_Compiler_LCNF_Internalize_internalizeParam(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); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; +x_8 = lean_ctor_get(x_1, 1); +lean_inc(x_8); +x_9 = l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_refreshBinderName(x_8, x_3, x_4, x_5, x_6, x_7); +x_10 = lean_ctor_get(x_9, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = lean_ctor_get(x_1, 2); +lean_inc(x_12); +x_13 = lean_st_ref_get(x_6, x_11); +x_14 = lean_ctor_get(x_13, 1); +lean_inc(x_14); +lean_dec(x_13); +x_15 = lean_st_ref_get(x_2, x_14); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +x_18 = 1; +x_19 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_16, x_18, x_12); +x_20 = lean_ctor_get(x_1, 3); +lean_inc(x_20); +x_21 = lean_st_ref_get(x_6, x_17); +x_22 = lean_ctor_get(x_21, 1); +lean_inc(x_22); +lean_dec(x_21); +x_23 = lean_st_ref_get(x_2, x_22); +x_24 = lean_ctor_get(x_23, 0); +lean_inc(x_24); +x_25 = lean_ctor_get(x_23, 1); +lean_inc(x_25); +lean_dec(x_23); +x_26 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_24, x_18, x_20); +x_27 = lean_ctor_get(x_1, 0); +lean_inc(x_27); +lean_dec(x_1); +x_28 = l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(x_27, x_2, x_3, x_4, x_5, x_6, x_25); +x_29 = lean_ctor_get(x_28, 0); +lean_inc(x_29); +x_30 = lean_ctor_get(x_28, 1); +lean_inc(x_30); +lean_dec(x_28); +x_31 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_31, 0, x_29); +lean_ctor_set(x_31, 1, x_10); +lean_ctor_set(x_31, 2, x_19); +lean_ctor_set(x_31, 3, x_26); +x_32 = lean_st_ref_take(x_4, x_30); +x_33 = lean_ctor_get(x_32, 0); +lean_inc(x_33); +x_34 = lean_ctor_get(x_32, 1); +lean_inc(x_34); +lean_dec(x_32); +x_35 = !lean_is_exclusive(x_33); +if (x_35 == 0) +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; uint8_t x_39; +x_36 = lean_ctor_get(x_33, 0); +lean_inc(x_31); +x_37 = l_Lean_Compiler_LCNF_LCtx_addLetDecl(x_36, x_31); +lean_ctor_set(x_33, 0, x_37); +x_38 = lean_st_ref_set(x_4, x_33, x_34); +x_39 = !lean_is_exclusive(x_38); +if (x_39 == 0) +{ +lean_object* x_40; +x_40 = lean_ctor_get(x_38, 0); +lean_dec(x_40); +lean_ctor_set(x_38, 0, x_31); +return x_38; +} +else +{ +lean_object* x_41; lean_object* x_42; +x_41 = lean_ctor_get(x_38, 1); +lean_inc(x_41); +lean_dec(x_38); +x_42 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_42, 0, x_31); +lean_ctor_set(x_42, 1, x_41); +return x_42; +} +} +else +{ +lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; +x_43 = lean_ctor_get(x_33, 0); +x_44 = lean_ctor_get(x_33, 1); +lean_inc(x_44); +lean_inc(x_43); +lean_dec(x_33); +lean_inc(x_31); +x_45 = l_Lean_Compiler_LCNF_LCtx_addLetDecl(x_43, x_31); +x_46 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_46, 0, x_45); +lean_ctor_set(x_46, 1, x_44); +x_47 = lean_st_ref_set(x_4, x_46, x_34); +x_48 = lean_ctor_get(x_47, 1); +lean_inc(x_48); +if (lean_is_exclusive(x_47)) { + lean_ctor_release(x_47, 0); + lean_ctor_release(x_47, 1); + x_49 = x_47; +} else { + lean_dec_ref(x_47); + x_49 = lean_box(0); +} +if (lean_is_scalar(x_49)) { + x_50 = lean_alloc_ctor(0, 2, 0); +} else { + x_50 = x_49; +} +lean_ctor_set(x_50, 0, x_31); +lean_ctor_set(x_50, 1, x_48); +return x_50; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl___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_Compiler_LCNF_Internalize_internalizeLetDecl(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); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__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) { +_start: +{ +uint8_t x_10; +x_10 = lean_usize_dec_lt(x_2, x_1); +if (x_10 == 0) +{ +lean_object* x_11; +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_3); +lean_ctor_set(x_11, 1, x_9); +return x_11; +} +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; size_t x_18; size_t x_19; lean_object* x_20; +x_12 = lean_array_uget(x_3, x_2); +x_13 = lean_unsigned_to_nat(0u); +x_14 = lean_array_uset(x_3, x_2, x_13); +x_15 = l_Lean_Compiler_LCNF_Internalize_internalizeParam(x_12, x_4, x_5, x_6, x_7, x_8, x_9); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +x_18 = 1; +x_19 = lean_usize_add(x_2, x_18); +x_20 = lean_array_uset(x_14, x_2, x_16); +x_2 = x_19; +x_3 = x_20; +x_9 = x_17; +goto _start; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; size_t x_22; size_t x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_8 = lean_ctor_get(x_1, 3); +lean_inc(x_8); +x_9 = lean_st_ref_get(x_6, x_7); +x_10 = lean_ctor_get(x_9, 1); +lean_inc(x_10); +lean_dec(x_9); +x_11 = lean_st_ref_get(x_2, x_10); +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 = 1; +x_15 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_12, x_14, x_8); +x_16 = lean_ctor_get(x_1, 1); +lean_inc(x_16); +x_17 = l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_refreshBinderName(x_16, x_3, x_4, x_5, x_6, x_13); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_17, 1); +lean_inc(x_19); +lean_dec(x_17); +x_20 = lean_ctor_get(x_1, 2); +lean_inc(x_20); +x_21 = lean_array_get_size(x_20); +x_22 = lean_usize_of_nat(x_21); +lean_dec(x_21); +x_23 = 0; +x_24 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_22, x_23, x_20, x_2, x_3, x_4, x_5, x_6, x_19); +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +x_26 = lean_ctor_get(x_24, 1); +lean_inc(x_26); +lean_dec(x_24); +x_27 = lean_ctor_get(x_1, 4); +lean_inc(x_27); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_28 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_27, x_2, x_3, x_4, x_5, x_6, x_26); +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; lean_object* x_36; lean_object* x_37; lean_object* x_38; uint8_t x_39; +x_29 = lean_ctor_get(x_28, 0); +lean_inc(x_29); +x_30 = lean_ctor_get(x_28, 1); +lean_inc(x_30); +lean_dec(x_28); +x_31 = lean_ctor_get(x_1, 0); +lean_inc(x_31); +lean_dec(x_1); +x_32 = l___private_Lean_Compiler_LCNF_Internalize_0__Lean_Compiler_LCNF_Internalize_mkNewFVarId(x_31, x_2, x_3, x_4, x_5, x_6, x_30); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +x_33 = lean_ctor_get(x_32, 0); +lean_inc(x_33); +x_34 = lean_ctor_get(x_32, 1); +lean_inc(x_34); +lean_dec(x_32); +x_35 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_35, 0, x_33); +lean_ctor_set(x_35, 1, x_18); +lean_ctor_set(x_35, 2, x_25); +lean_ctor_set(x_35, 3, x_15); +lean_ctor_set(x_35, 4, x_29); +x_36 = lean_st_ref_take(x_4, x_34); +x_37 = lean_ctor_get(x_36, 0); +lean_inc(x_37); +x_38 = lean_ctor_get(x_36, 1); +lean_inc(x_38); +lean_dec(x_36); +x_39 = !lean_is_exclusive(x_37); +if (x_39 == 0) +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; +x_40 = lean_ctor_get(x_37, 0); +lean_inc(x_35); +x_41 = l_Lean_Compiler_LCNF_LCtx_addFunDecl(x_40, x_35); +lean_ctor_set(x_37, 0, x_41); +x_42 = lean_st_ref_set(x_4, x_37, x_38); +lean_dec(x_4); +x_43 = !lean_is_exclusive(x_42); +if (x_43 == 0) +{ +lean_object* x_44; +x_44 = lean_ctor_get(x_42, 0); +lean_dec(x_44); +lean_ctor_set(x_42, 0, x_35); +return x_42; +} +else +{ +lean_object* x_45; lean_object* x_46; +x_45 = lean_ctor_get(x_42, 1); +lean_inc(x_45); +lean_dec(x_42); +x_46 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_46, 0, x_35); +lean_ctor_set(x_46, 1, x_45); +return x_46; +} +} +else +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_47 = lean_ctor_get(x_37, 0); +x_48 = lean_ctor_get(x_37, 1); +lean_inc(x_48); +lean_inc(x_47); +lean_dec(x_37); +lean_inc(x_35); +x_49 = l_Lean_Compiler_LCNF_LCtx_addFunDecl(x_47, x_35); +x_50 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_50, 0, x_49); +lean_ctor_set(x_50, 1, x_48); +x_51 = lean_st_ref_set(x_4, x_50, x_38); +lean_dec(x_4); +x_52 = lean_ctor_get(x_51, 1); +lean_inc(x_52); +if (lean_is_exclusive(x_51)) { + lean_ctor_release(x_51, 0); + lean_ctor_release(x_51, 1); + x_53 = x_51; +} else { + lean_dec_ref(x_51); + x_53 = lean_box(0); +} +if (lean_is_scalar(x_53)) { + x_54 = lean_alloc_ctor(0, 2, 0); +} else { + x_54 = x_53; +} +lean_ctor_set(x_54, 0, x_35); +lean_ctor_set(x_54, 1, x_52); +return x_54; +} +} +else +{ +uint8_t x_55; +lean_dec(x_25); +lean_dec(x_18); +lean_dec(x_15); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_55 = !lean_is_exclusive(x_28); +if (x_55 == 0) +{ +return x_28; +} +else +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_56 = lean_ctor_get(x_28, 0); +x_57 = lean_ctor_get(x_28, 1); +lean_inc(x_57); +lean_inc(x_56); +lean_dec(x_28); +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; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__1(uint8_t 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_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; +x_9 = lean_st_ref_get(x_7, x_8); +x_10 = lean_ctor_get(x_9, 1); +lean_inc(x_10); +lean_dec(x_9); +x_11 = lean_st_ref_get(x_3, x_10); +x_12 = !lean_is_exclusive(x_11); +if (x_12 == 0) +{ +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_11, 0); +x_14 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_13, x_1, x_2); +lean_ctor_set(x_11, 0, x_14); +return x_11; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_15 = lean_ctor_get(x_11, 0); +x_16 = lean_ctor_get(x_11, 1); +lean_inc(x_16); +lean_inc(x_15); +lean_dec(x_11); +x_17 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_15, x_1, x_2); +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_17); +lean_ctor_set(x_18, 1, x_16); +return x_18; +} +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__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) { +_start: +{ +uint8_t x_10; +x_10 = lean_usize_dec_lt(x_2, x_1); +if (x_10 == 0) +{ +lean_object* x_11; +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_3); +lean_ctor_set(x_11, 1, x_9); +return x_11; +} +else +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; size_t x_19; size_t x_20; lean_object* x_21; +x_12 = lean_array_uget(x_3, x_2); +x_13 = lean_unsigned_to_nat(0u); +x_14 = lean_array_uset(x_3, x_2, x_13); +x_15 = 1; +x_16 = l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__1(x_15, x_12, x_4, x_5, x_6, x_7, x_8, x_9); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = 1; +x_20 = lean_usize_add(x_2, x_19); +x_21 = lean_array_uset(x_14, x_2, x_17); +x_2 = x_20; +x_3 = x_21; +x_9 = x_18; +goto _start; +} +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__3(uint8_t x_1, size_t x_2, size_t 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: +{ +uint8_t x_11; +x_11 = lean_usize_dec_lt(x_3, x_2); +if (x_11 == 0) +{ +lean_object* x_12; +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_12 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_12, 0, x_4); +lean_ctor_set(x_12, 1, x_10); +return x_12; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_13 = lean_array_uget(x_4, x_3); +x_14 = lean_unsigned_to_nat(0u); +x_15 = lean_array_uset(x_4, x_3, x_14); +if (lean_obj_tag(x_13) == 0) +{ +uint8_t x_23; +x_23 = !lean_is_exclusive(x_13); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; size_t x_28; size_t x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_24 = lean_ctor_get(x_13, 0); +x_25 = lean_ctor_get(x_13, 1); +x_26 = lean_ctor_get(x_13, 2); +x_27 = lean_array_get_size(x_25); +x_28 = lean_usize_of_nat(x_27); +lean_dec(x_27); +x_29 = 0; +x_30 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_28, x_29, x_25, x_5, x_6, x_7, x_8, x_9, x_10); +x_31 = lean_ctor_get(x_30, 0); +lean_inc(x_31); +x_32 = lean_ctor_get(x_30, 1); +lean_inc(x_32); +lean_dec(x_30); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_33 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_26, x_5, x_6, x_7, x_8, x_9, x_32); +if (lean_obj_tag(x_33) == 0) +{ +if (x_1 == 0) +{ +lean_object* x_34; lean_object* x_35; +x_34 = lean_ctor_get(x_33, 0); +lean_inc(x_34); +x_35 = lean_ctor_get(x_33, 1); +lean_inc(x_35); +lean_dec(x_33); +lean_ctor_set(x_13, 2, x_34); +lean_ctor_set(x_13, 1, x_31); +x_16 = x_13; +x_17 = x_35; +goto block_22; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_33, 0); +lean_inc(x_36); +x_37 = lean_ctor_get(x_33, 1); +lean_inc(x_37); +lean_dec(x_33); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_38 = l_Lean_Compiler_LCNF_Code_ensureAnyType(x_36, x_6, x_7, x_8, x_9, x_37); +if (lean_obj_tag(x_38) == 0) +{ +lean_object* x_39; lean_object* x_40; +x_39 = lean_ctor_get(x_38, 0); +lean_inc(x_39); +x_40 = lean_ctor_get(x_38, 1); +lean_inc(x_40); +lean_dec(x_38); +lean_ctor_set(x_13, 2, x_39); +lean_ctor_set(x_13, 1, x_31); +x_16 = x_13; +x_17 = x_40; +goto block_22; +} +else +{ +uint8_t x_41; +lean_dec(x_31); +lean_free_object(x_13); +lean_dec(x_24); +lean_dec(x_15); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_41 = !lean_is_exclusive(x_38); +if (x_41 == 0) +{ +return x_38; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_42 = lean_ctor_get(x_38, 0); +x_43 = lean_ctor_get(x_38, 1); +lean_inc(x_43); +lean_inc(x_42); +lean_dec(x_38); +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; +} +} +} +} +else +{ +uint8_t x_45; +lean_dec(x_31); +lean_free_object(x_13); +lean_dec(x_24); +lean_dec(x_15); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_45 = !lean_is_exclusive(x_33); +if (x_45 == 0) +{ +return x_33; +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_33, 0); +x_47 = lean_ctor_get(x_33, 1); +lean_inc(x_47); +lean_inc(x_46); +lean_dec(x_33); +x_48 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_48, 0, x_46); +lean_ctor_set(x_48, 1, x_47); +return x_48; +} +} +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; size_t x_53; size_t x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_49 = lean_ctor_get(x_13, 0); +x_50 = lean_ctor_get(x_13, 1); +x_51 = lean_ctor_get(x_13, 2); +lean_inc(x_51); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_13); +x_52 = lean_array_get_size(x_50); +x_53 = lean_usize_of_nat(x_52); +lean_dec(x_52); +x_54 = 0; +x_55 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_53, x_54, x_50, x_5, x_6, x_7, x_8, x_9, x_10); +x_56 = lean_ctor_get(x_55, 0); +lean_inc(x_56); +x_57 = lean_ctor_get(x_55, 1); +lean_inc(x_57); +lean_dec(x_55); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_58 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_51, x_5, x_6, x_7, x_8, x_9, x_57); +if (lean_obj_tag(x_58) == 0) +{ +if (x_1 == 0) +{ +lean_object* x_59; lean_object* x_60; lean_object* x_61; +x_59 = lean_ctor_get(x_58, 0); +lean_inc(x_59); +x_60 = lean_ctor_get(x_58, 1); +lean_inc(x_60); +lean_dec(x_58); +x_61 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_61, 0, x_49); +lean_ctor_set(x_61, 1, x_56); +lean_ctor_set(x_61, 2, x_59); +x_16 = x_61; +x_17 = x_60; +goto block_22; +} +else +{ +lean_object* x_62; lean_object* x_63; lean_object* x_64; +x_62 = lean_ctor_get(x_58, 0); +lean_inc(x_62); +x_63 = lean_ctor_get(x_58, 1); +lean_inc(x_63); +lean_dec(x_58); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_64 = l_Lean_Compiler_LCNF_Code_ensureAnyType(x_62, x_6, x_7, x_8, x_9, x_63); +if (lean_obj_tag(x_64) == 0) +{ +lean_object* x_65; lean_object* x_66; lean_object* x_67; +x_65 = lean_ctor_get(x_64, 0); +lean_inc(x_65); +x_66 = lean_ctor_get(x_64, 1); +lean_inc(x_66); +lean_dec(x_64); +x_67 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_67, 0, x_49); +lean_ctor_set(x_67, 1, x_56); +lean_ctor_set(x_67, 2, x_65); +x_16 = x_67; +x_17 = x_66; +goto block_22; +} +else +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; +lean_dec(x_56); +lean_dec(x_49); +lean_dec(x_15); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_68 = lean_ctor_get(x_64, 0); +lean_inc(x_68); +x_69 = lean_ctor_get(x_64, 1); +lean_inc(x_69); +if (lean_is_exclusive(x_64)) { + lean_ctor_release(x_64, 0); + lean_ctor_release(x_64, 1); + x_70 = x_64; +} else { + lean_dec_ref(x_64); + x_70 = lean_box(0); +} +if (lean_is_scalar(x_70)) { + x_71 = lean_alloc_ctor(1, 2, 0); +} else { + x_71 = x_70; +} +lean_ctor_set(x_71, 0, x_68); +lean_ctor_set(x_71, 1, x_69); +return x_71; +} +} +} +else +{ +lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; +lean_dec(x_56); +lean_dec(x_49); +lean_dec(x_15); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_72 = lean_ctor_get(x_58, 0); +lean_inc(x_72); +x_73 = lean_ctor_get(x_58, 1); +lean_inc(x_73); +if (lean_is_exclusive(x_58)) { + lean_ctor_release(x_58, 0); + lean_ctor_release(x_58, 1); + x_74 = x_58; +} else { + lean_dec_ref(x_58); + x_74 = lean_box(0); +} +if (lean_is_scalar(x_74)) { + x_75 = lean_alloc_ctor(1, 2, 0); +} else { + x_75 = x_74; +} +lean_ctor_set(x_75, 0, x_72); +lean_ctor_set(x_75, 1, x_73); +return x_75; +} +} +} +else +{ +uint8_t x_76; +x_76 = !lean_is_exclusive(x_13); +if (x_76 == 0) +{ +lean_object* x_77; lean_object* x_78; +x_77 = lean_ctor_get(x_13, 0); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_78 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_77, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_78) == 0) +{ +if (x_1 == 0) +{ +lean_object* x_79; lean_object* x_80; +x_79 = lean_ctor_get(x_78, 0); +lean_inc(x_79); +x_80 = lean_ctor_get(x_78, 1); +lean_inc(x_80); +lean_dec(x_78); +lean_ctor_set(x_13, 0, x_79); +x_16 = x_13; +x_17 = x_80; +goto block_22; +} +else +{ +lean_object* x_81; lean_object* x_82; lean_object* x_83; +x_81 = lean_ctor_get(x_78, 0); +lean_inc(x_81); +x_82 = lean_ctor_get(x_78, 1); +lean_inc(x_82); +lean_dec(x_78); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_83 = l_Lean_Compiler_LCNF_Code_ensureAnyType(x_81, x_6, x_7, x_8, x_9, x_82); +if (lean_obj_tag(x_83) == 0) +{ +lean_object* x_84; lean_object* x_85; +x_84 = lean_ctor_get(x_83, 0); +lean_inc(x_84); +x_85 = lean_ctor_get(x_83, 1); +lean_inc(x_85); +lean_dec(x_83); +lean_ctor_set(x_13, 0, x_84); +x_16 = x_13; +x_17 = x_85; +goto block_22; +} +else +{ +uint8_t x_86; +lean_free_object(x_13); +lean_dec(x_15); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_86 = !lean_is_exclusive(x_83); +if (x_86 == 0) +{ +return x_83; +} +else +{ +lean_object* x_87; lean_object* x_88; lean_object* x_89; +x_87 = lean_ctor_get(x_83, 0); +x_88 = lean_ctor_get(x_83, 1); +lean_inc(x_88); +lean_inc(x_87); +lean_dec(x_83); +x_89 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_89, 0, x_87); +lean_ctor_set(x_89, 1, x_88); +return x_89; +} +} +} +} +else +{ +uint8_t x_90; +lean_free_object(x_13); +lean_dec(x_15); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_90 = !lean_is_exclusive(x_78); +if (x_90 == 0) +{ +return x_78; +} +else +{ +lean_object* x_91; lean_object* x_92; lean_object* x_93; +x_91 = lean_ctor_get(x_78, 0); +x_92 = lean_ctor_get(x_78, 1); +lean_inc(x_92); +lean_inc(x_91); +lean_dec(x_78); +x_93 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_93, 0, x_91); +lean_ctor_set(x_93, 1, x_92); +return x_93; +} +} +} +else +{ +lean_object* x_94; lean_object* x_95; +x_94 = lean_ctor_get(x_13, 0); +lean_inc(x_94); +lean_dec(x_13); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_95 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_94, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_95) == 0) +{ +if (x_1 == 0) +{ +lean_object* x_96; lean_object* x_97; lean_object* x_98; +x_96 = lean_ctor_get(x_95, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_95, 1); +lean_inc(x_97); +lean_dec(x_95); +x_98 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_98, 0, x_96); +x_16 = x_98; +x_17 = x_97; +goto block_22; +} +else +{ +lean_object* x_99; lean_object* x_100; lean_object* x_101; +x_99 = lean_ctor_get(x_95, 0); +lean_inc(x_99); +x_100 = lean_ctor_get(x_95, 1); +lean_inc(x_100); +lean_dec(x_95); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_101 = l_Lean_Compiler_LCNF_Code_ensureAnyType(x_99, x_6, x_7, x_8, x_9, x_100); +if (lean_obj_tag(x_101) == 0) +{ +lean_object* x_102; lean_object* x_103; lean_object* x_104; +x_102 = lean_ctor_get(x_101, 0); +lean_inc(x_102); +x_103 = lean_ctor_get(x_101, 1); +lean_inc(x_103); +lean_dec(x_101); +x_104 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_104, 0, x_102); +x_16 = x_104; +x_17 = x_103; +goto block_22; +} +else +{ +lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; +lean_dec(x_15); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_105 = lean_ctor_get(x_101, 0); +lean_inc(x_105); +x_106 = lean_ctor_get(x_101, 1); +lean_inc(x_106); +if (lean_is_exclusive(x_101)) { + lean_ctor_release(x_101, 0); + lean_ctor_release(x_101, 1); + x_107 = x_101; +} else { + lean_dec_ref(x_101); + x_107 = lean_box(0); +} +if (lean_is_scalar(x_107)) { + x_108 = lean_alloc_ctor(1, 2, 0); +} else { + x_108 = x_107; +} +lean_ctor_set(x_108, 0, x_105); +lean_ctor_set(x_108, 1, x_106); +return x_108; +} +} +} +else +{ +lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; +lean_dec(x_15); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_109 = lean_ctor_get(x_95, 0); +lean_inc(x_109); +x_110 = lean_ctor_get(x_95, 1); +lean_inc(x_110); +if (lean_is_exclusive(x_95)) { + lean_ctor_release(x_95, 0); + lean_ctor_release(x_95, 1); + x_111 = x_95; +} else { + lean_dec_ref(x_95); + x_111 = lean_box(0); +} +if (lean_is_scalar(x_111)) { + x_112 = lean_alloc_ctor(1, 2, 0); +} else { + x_112 = x_111; +} +lean_ctor_set(x_112, 0, x_109); +lean_ctor_set(x_112, 1, x_110); +return x_112; +} +} +} +block_22: +{ +size_t x_18; size_t x_19; lean_object* x_20; +x_18 = 1; +x_19 = lean_usize_add(x_3, x_18); +x_20 = lean_array_uset(x_15, x_3, x_16); +x_3 = x_19; +x_4 = x_20; +x_10 = x_17; +goto _start; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCode(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: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +uint8_t x_8; +x_8 = !lean_is_exclusive(x_1); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_9 = lean_ctor_get(x_1, 0); +x_10 = lean_ctor_get(x_1, 1); +x_11 = l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl(x_9, x_2, x_3, x_4, x_5, x_6, x_7); +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_Compiler_LCNF_Internalize_internalizeCode(x_10, x_2, x_3, x_4, x_5, x_6, x_13); +if (lean_obj_tag(x_14) == 0) +{ +uint8_t x_15; +x_15 = !lean_is_exclusive(x_14); +if (x_15 == 0) +{ +lean_object* x_16; +x_16 = lean_ctor_get(x_14, 0); +lean_ctor_set(x_1, 1, x_16); +lean_ctor_set(x_1, 0, x_12); +lean_ctor_set(x_14, 0, x_1); +return x_14; +} +else +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_17 = lean_ctor_get(x_14, 0); +x_18 = lean_ctor_get(x_14, 1); +lean_inc(x_18); +lean_inc(x_17); +lean_dec(x_14); +lean_ctor_set(x_1, 1, x_17); +lean_ctor_set(x_1, 0, x_12); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_1); +lean_ctor_set(x_19, 1, x_18); +return x_19; +} +} +else +{ +uint8_t x_20; +lean_dec(x_12); +lean_free_object(x_1); +x_20 = !lean_is_exclusive(x_14); +if (x_20 == 0) +{ +return x_14; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_14, 0); +x_22 = lean_ctor_get(x_14, 1); +lean_inc(x_22); +lean_inc(x_21); +lean_dec(x_14); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_21); +lean_ctor_set(x_23, 1, x_22); +return x_23; +} +} +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_24 = lean_ctor_get(x_1, 0); +x_25 = lean_ctor_get(x_1, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_1); +x_26 = l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl(x_24, x_2, x_3, x_4, x_5, x_6, x_7); +x_27 = lean_ctor_get(x_26, 0); +lean_inc(x_27); +x_28 = lean_ctor_get(x_26, 1); +lean_inc(x_28); +lean_dec(x_26); +x_29 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_25, x_2, x_3, x_4, x_5, x_6, x_28); +if (lean_obj_tag(x_29) == 0) +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_29, 1); +lean_inc(x_31); +if (lean_is_exclusive(x_29)) { + lean_ctor_release(x_29, 0); + lean_ctor_release(x_29, 1); + x_32 = x_29; +} else { + lean_dec_ref(x_29); + x_32 = lean_box(0); +} +x_33 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_33, 0, x_27); +lean_ctor_set(x_33, 1, x_30); +if (lean_is_scalar(x_32)) { + x_34 = lean_alloc_ctor(0, 2, 0); +} else { + x_34 = x_32; +} +lean_ctor_set(x_34, 0, x_33); +lean_ctor_set(x_34, 1, x_31); +return x_34; +} +else +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; +lean_dec(x_27); +x_35 = lean_ctor_get(x_29, 0); +lean_inc(x_35); +x_36 = lean_ctor_get(x_29, 1); +lean_inc(x_36); +if (lean_is_exclusive(x_29)) { + lean_ctor_release(x_29, 0); + lean_ctor_release(x_29, 1); + x_37 = x_29; +} else { + lean_dec_ref(x_29); + x_37 = lean_box(0); +} +if (lean_is_scalar(x_37)) { + x_38 = lean_alloc_ctor(1, 2, 0); +} else { + x_38 = x_37; +} +lean_ctor_set(x_38, 0, x_35); +lean_ctor_set(x_38, 1, x_36); +return x_38; +} +} +} +case 1: +{ +uint8_t x_39; +x_39 = !lean_is_exclusive(x_1); +if (x_39 == 0) +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; +x_40 = lean_ctor_get(x_1, 0); +x_41 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_42 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_40, x_2, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_42) == 0) +{ +lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_43 = lean_ctor_get(x_42, 0); +lean_inc(x_43); +x_44 = lean_ctor_get(x_42, 1); +lean_inc(x_44); +lean_dec(x_42); +x_45 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_41, x_2, x_3, x_4, x_5, x_6, x_44); +if (lean_obj_tag(x_45) == 0) +{ +uint8_t x_46; +x_46 = !lean_is_exclusive(x_45); +if (x_46 == 0) +{ +lean_object* x_47; +x_47 = lean_ctor_get(x_45, 0); +lean_ctor_set(x_1, 1, x_47); +lean_ctor_set(x_1, 0, x_43); +lean_ctor_set(x_45, 0, x_1); +return x_45; +} +else +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; +x_48 = lean_ctor_get(x_45, 0); +x_49 = lean_ctor_get(x_45, 1); +lean_inc(x_49); +lean_inc(x_48); +lean_dec(x_45); +lean_ctor_set(x_1, 1, x_48); +lean_ctor_set(x_1, 0, x_43); +x_50 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_50, 0, x_1); +lean_ctor_set(x_50, 1, x_49); +return x_50; +} +} +else +{ +uint8_t x_51; +lean_dec(x_43); +lean_free_object(x_1); +x_51 = !lean_is_exclusive(x_45); +if (x_51 == 0) +{ +return x_45; +} +else +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_52 = lean_ctor_get(x_45, 0); +x_53 = lean_ctor_get(x_45, 1); +lean_inc(x_53); +lean_inc(x_52); +lean_dec(x_45); +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_55; +lean_free_object(x_1); +lean_dec(x_41); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_55 = !lean_is_exclusive(x_42); +if (x_55 == 0) +{ +return x_42; +} +else +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_56 = lean_ctor_get(x_42, 0); +x_57 = lean_ctor_get(x_42, 1); +lean_inc(x_57); +lean_inc(x_56); +lean_dec(x_42); +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 +{ +lean_object* x_59; lean_object* x_60; lean_object* x_61; +x_59 = lean_ctor_get(x_1, 0); +x_60 = lean_ctor_get(x_1, 1); +lean_inc(x_60); +lean_inc(x_59); +lean_dec(x_1); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_61 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_59, x_2, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_61) == 0) +{ +lean_object* x_62; lean_object* x_63; lean_object* x_64; +x_62 = lean_ctor_get(x_61, 0); +lean_inc(x_62); +x_63 = lean_ctor_get(x_61, 1); +lean_inc(x_63); +lean_dec(x_61); +x_64 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_60, x_2, x_3, x_4, x_5, x_6, x_63); +if (lean_obj_tag(x_64) == 0) +{ +lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; +x_65 = lean_ctor_get(x_64, 0); +lean_inc(x_65); +x_66 = lean_ctor_get(x_64, 1); +lean_inc(x_66); +if (lean_is_exclusive(x_64)) { + lean_ctor_release(x_64, 0); + lean_ctor_release(x_64, 1); + x_67 = x_64; +} else { + lean_dec_ref(x_64); + x_67 = lean_box(0); +} +x_68 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_68, 0, x_62); +lean_ctor_set(x_68, 1, x_65); +if (lean_is_scalar(x_67)) { + x_69 = lean_alloc_ctor(0, 2, 0); +} else { + x_69 = x_67; +} +lean_ctor_set(x_69, 0, x_68); +lean_ctor_set(x_69, 1, x_66); +return x_69; +} +else +{ +lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +lean_dec(x_62); +x_70 = lean_ctor_get(x_64, 0); +lean_inc(x_70); +x_71 = lean_ctor_get(x_64, 1); +lean_inc(x_71); +if (lean_is_exclusive(x_64)) { + lean_ctor_release(x_64, 0); + lean_ctor_release(x_64, 1); + x_72 = x_64; +} else { + lean_dec_ref(x_64); + x_72 = lean_box(0); +} +if (lean_is_scalar(x_72)) { + x_73 = lean_alloc_ctor(1, 2, 0); +} else { + x_73 = x_72; +} +lean_ctor_set(x_73, 0, x_70); +lean_ctor_set(x_73, 1, x_71); +return x_73; +} +} +else +{ +lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; +lean_dec(x_60); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_74 = lean_ctor_get(x_61, 0); +lean_inc(x_74); +x_75 = lean_ctor_get(x_61, 1); +lean_inc(x_75); +if (lean_is_exclusive(x_61)) { + lean_ctor_release(x_61, 0); + lean_ctor_release(x_61, 1); + x_76 = x_61; +} else { + lean_dec_ref(x_61); + x_76 = lean_box(0); +} +if (lean_is_scalar(x_76)) { + x_77 = lean_alloc_ctor(1, 2, 0); +} else { + x_77 = x_76; +} +lean_ctor_set(x_77, 0, x_74); +lean_ctor_set(x_77, 1, x_75); +return x_77; +} +} +} +case 2: +{ +uint8_t x_78; +x_78 = !lean_is_exclusive(x_1); +if (x_78 == 0) +{ +lean_object* x_79; lean_object* x_80; lean_object* x_81; +x_79 = lean_ctor_get(x_1, 0); +x_80 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_81 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_79, x_2, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_81) == 0) +{ +lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_82 = lean_ctor_get(x_81, 0); +lean_inc(x_82); +x_83 = lean_ctor_get(x_81, 1); +lean_inc(x_83); +lean_dec(x_81); +x_84 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_80, x_2, x_3, x_4, x_5, x_6, x_83); +if (lean_obj_tag(x_84) == 0) +{ +uint8_t x_85; +x_85 = !lean_is_exclusive(x_84); +if (x_85 == 0) +{ +lean_object* x_86; +x_86 = lean_ctor_get(x_84, 0); +lean_ctor_set(x_1, 1, x_86); +lean_ctor_set(x_1, 0, x_82); +lean_ctor_set(x_84, 0, x_1); +return x_84; +} +else +{ +lean_object* x_87; lean_object* x_88; lean_object* x_89; +x_87 = lean_ctor_get(x_84, 0); +x_88 = lean_ctor_get(x_84, 1); +lean_inc(x_88); +lean_inc(x_87); +lean_dec(x_84); +lean_ctor_set(x_1, 1, x_87); +lean_ctor_set(x_1, 0, x_82); +x_89 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_89, 0, x_1); +lean_ctor_set(x_89, 1, x_88); +return x_89; +} +} +else +{ +uint8_t x_90; +lean_dec(x_82); +lean_free_object(x_1); +x_90 = !lean_is_exclusive(x_84); +if (x_90 == 0) +{ +return x_84; +} +else +{ +lean_object* x_91; lean_object* x_92; lean_object* x_93; +x_91 = lean_ctor_get(x_84, 0); +x_92 = lean_ctor_get(x_84, 1); +lean_inc(x_92); +lean_inc(x_91); +lean_dec(x_84); +x_93 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_93, 0, x_91); +lean_ctor_set(x_93, 1, x_92); +return x_93; +} +} +} +else +{ +uint8_t x_94; +lean_free_object(x_1); +lean_dec(x_80); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_94 = !lean_is_exclusive(x_81); +if (x_94 == 0) +{ +return x_81; +} +else +{ +lean_object* x_95; lean_object* x_96; lean_object* x_97; +x_95 = lean_ctor_get(x_81, 0); +x_96 = lean_ctor_get(x_81, 1); +lean_inc(x_96); +lean_inc(x_95); +lean_dec(x_81); +x_97 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_97, 0, x_95); +lean_ctor_set(x_97, 1, x_96); +return x_97; +} +} +} +else +{ +lean_object* x_98; lean_object* x_99; lean_object* x_100; +x_98 = lean_ctor_get(x_1, 0); +x_99 = lean_ctor_get(x_1, 1); +lean_inc(x_99); +lean_inc(x_98); +lean_dec(x_1); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_100 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_98, x_2, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_100) == 0) +{ +lean_object* x_101; lean_object* x_102; lean_object* x_103; +x_101 = lean_ctor_get(x_100, 0); +lean_inc(x_101); +x_102 = lean_ctor_get(x_100, 1); +lean_inc(x_102); +lean_dec(x_100); +x_103 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_99, x_2, x_3, x_4, x_5, x_6, x_102); +if (lean_obj_tag(x_103) == 0) +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; +x_104 = lean_ctor_get(x_103, 0); +lean_inc(x_104); +x_105 = lean_ctor_get(x_103, 1); +lean_inc(x_105); +if (lean_is_exclusive(x_103)) { + lean_ctor_release(x_103, 0); + lean_ctor_release(x_103, 1); + x_106 = x_103; +} else { + lean_dec_ref(x_103); + x_106 = lean_box(0); +} +x_107 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_107, 0, x_101); +lean_ctor_set(x_107, 1, x_104); +if (lean_is_scalar(x_106)) { + x_108 = lean_alloc_ctor(0, 2, 0); +} else { + x_108 = x_106; +} +lean_ctor_set(x_108, 0, x_107); +lean_ctor_set(x_108, 1, x_105); +return x_108; +} +else +{ +lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; +lean_dec(x_101); +x_109 = lean_ctor_get(x_103, 0); +lean_inc(x_109); +x_110 = lean_ctor_get(x_103, 1); +lean_inc(x_110); +if (lean_is_exclusive(x_103)) { + lean_ctor_release(x_103, 0); + lean_ctor_release(x_103, 1); + x_111 = x_103; +} else { + lean_dec_ref(x_103); + x_111 = lean_box(0); +} +if (lean_is_scalar(x_111)) { + x_112 = lean_alloc_ctor(1, 2, 0); +} else { + x_112 = x_111; +} +lean_ctor_set(x_112, 0, x_109); +lean_ctor_set(x_112, 1, x_110); +return x_112; +} +} +else +{ +lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; +lean_dec(x_99); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_113 = lean_ctor_get(x_100, 0); +lean_inc(x_113); +x_114 = lean_ctor_get(x_100, 1); +lean_inc(x_114); +if (lean_is_exclusive(x_100)) { + lean_ctor_release(x_100, 0); + lean_ctor_release(x_100, 1); + x_115 = x_100; +} else { + lean_dec_ref(x_100); + x_115 = lean_box(0); +} +if (lean_is_scalar(x_115)) { + x_116 = lean_alloc_ctor(1, 2, 0); +} else { + x_116 = x_115; +} +lean_ctor_set(x_116, 0, x_113); +lean_ctor_set(x_116, 1, x_114); +return x_116; +} +} +} +case 3: +{ +uint8_t x_117; +x_117 = !lean_is_exclusive(x_1); +if (x_117 == 0) +{ +lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; uint8_t x_125; lean_object* x_126; lean_object* x_127; size_t x_128; size_t x_129; lean_object* x_130; uint8_t x_131; +x_118 = lean_ctor_get(x_1, 0); +x_119 = lean_ctor_get(x_1, 1); +x_120 = lean_st_ref_get(x_6, x_7); +x_121 = lean_ctor_get(x_120, 1); +lean_inc(x_121); +lean_dec(x_120); +x_122 = lean_st_ref_get(x_2, x_121); +x_123 = lean_ctor_get(x_122, 0); +lean_inc(x_123); +x_124 = lean_ctor_get(x_122, 1); +lean_inc(x_124); +lean_dec(x_122); +x_125 = 1; +x_126 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_123, x_118, x_125); +x_127 = lean_array_get_size(x_119); +x_128 = lean_usize_of_nat(x_127); +lean_dec(x_127); +x_129 = 0; +x_130 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__2(x_128, x_129, x_119, x_2, x_3, x_4, x_5, x_6, x_124); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_131 = !lean_is_exclusive(x_130); +if (x_131 == 0) +{ +lean_object* x_132; +x_132 = lean_ctor_get(x_130, 0); +lean_ctor_set(x_1, 1, x_132); +lean_ctor_set(x_1, 0, x_126); +lean_ctor_set(x_130, 0, x_1); +return x_130; +} +else +{ +lean_object* x_133; lean_object* x_134; lean_object* x_135; +x_133 = lean_ctor_get(x_130, 0); +x_134 = lean_ctor_get(x_130, 1); +lean_inc(x_134); +lean_inc(x_133); +lean_dec(x_130); +lean_ctor_set(x_1, 1, x_133); +lean_ctor_set(x_1, 0, x_126); +x_135 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_135, 0, x_1); +lean_ctor_set(x_135, 1, x_134); +return x_135; +} +} +else +{ +lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; uint8_t x_143; lean_object* x_144; lean_object* x_145; size_t x_146; size_t x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; +x_136 = lean_ctor_get(x_1, 0); +x_137 = lean_ctor_get(x_1, 1); +lean_inc(x_137); +lean_inc(x_136); +lean_dec(x_1); +x_138 = lean_st_ref_get(x_6, x_7); +x_139 = lean_ctor_get(x_138, 1); +lean_inc(x_139); +lean_dec(x_138); +x_140 = lean_st_ref_get(x_2, x_139); +x_141 = lean_ctor_get(x_140, 0); +lean_inc(x_141); +x_142 = lean_ctor_get(x_140, 1); +lean_inc(x_142); +lean_dec(x_140); +x_143 = 1; +x_144 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_141, x_136, x_143); +x_145 = lean_array_get_size(x_137); +x_146 = lean_usize_of_nat(x_145); +lean_dec(x_145); +x_147 = 0; +x_148 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__2(x_146, x_147, x_137, x_2, x_3, x_4, x_5, x_6, x_142); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_149 = lean_ctor_get(x_148, 0); +lean_inc(x_149); +x_150 = lean_ctor_get(x_148, 1); +lean_inc(x_150); +if (lean_is_exclusive(x_148)) { + lean_ctor_release(x_148, 0); + lean_ctor_release(x_148, 1); + x_151 = x_148; +} else { + lean_dec_ref(x_148); + x_151 = lean_box(0); +} +x_152 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_152, 0, x_144); +lean_ctor_set(x_152, 1, x_149); +if (lean_is_scalar(x_151)) { + x_153 = lean_alloc_ctor(0, 2, 0); +} else { + x_153 = x_151; +} +lean_ctor_set(x_153, 0, x_152); +lean_ctor_set(x_153, 1, x_150); +return x_153; +} +} +case 4: +{ +lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; uint8_t x_166; lean_object* x_167; uint8_t x_168; lean_object* x_169; uint8_t x_170; +x_154 = lean_ctor_get(x_1, 0); +lean_inc(x_154); +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_155 = x_1; +} else { + lean_dec_ref(x_1); + x_155 = lean_box(0); +} +x_156 = lean_ctor_get(x_154, 0); +lean_inc(x_156); +x_157 = lean_ctor_get(x_154, 1); +lean_inc(x_157); +x_158 = lean_ctor_get(x_154, 2); +lean_inc(x_158); +x_159 = lean_ctor_get(x_154, 3); +lean_inc(x_159); +if (lean_is_exclusive(x_154)) { + lean_ctor_release(x_154, 0); + lean_ctor_release(x_154, 1); + lean_ctor_release(x_154, 2); + lean_ctor_release(x_154, 3); + x_160 = x_154; +} else { + lean_dec_ref(x_154); + x_160 = lean_box(0); +} +x_161 = lean_st_ref_get(x_6, x_7); +x_162 = lean_ctor_get(x_161, 1); +lean_inc(x_162); +lean_dec(x_161); +x_163 = lean_st_ref_get(x_2, x_162); +x_164 = lean_ctor_get(x_163, 0); +lean_inc(x_164); +x_165 = lean_ctor_get(x_163, 1); +lean_inc(x_165); +lean_dec(x_163); +x_166 = 1; +lean_inc(x_157); +x_167 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_164, x_166, x_157); +x_168 = lean_expr_eqv(x_167, x_157); +lean_dec(x_157); +x_169 = lean_st_ref_get(x_6, x_165); +if (x_168 == 0) +{ +uint8_t x_194; +x_194 = l_Lean_Expr_isErased(x_167); +x_170 = x_194; +goto block_193; +} +else +{ +uint8_t x_195; +x_195 = 0; +x_170 = x_195; +goto block_193; +} +block_193: +{ +lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; size_t x_177; size_t x_178; lean_object* x_179; +x_171 = lean_ctor_get(x_169, 1); +lean_inc(x_171); +lean_dec(x_169); +x_172 = lean_st_ref_get(x_2, x_171); +x_173 = lean_ctor_get(x_172, 0); +lean_inc(x_173); +x_174 = lean_ctor_get(x_172, 1); +lean_inc(x_174); +lean_dec(x_172); +x_175 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_173, x_158, x_166); +x_176 = lean_array_get_size(x_159); +x_177 = lean_usize_of_nat(x_176); +lean_dec(x_176); +x_178 = 0; +x_179 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__3(x_170, x_177, x_178, x_159, x_2, x_3, x_4, x_5, x_6, x_174); +if (lean_obj_tag(x_179) == 0) +{ +uint8_t x_180; +x_180 = !lean_is_exclusive(x_179); +if (x_180 == 0) +{ +lean_object* x_181; lean_object* x_182; lean_object* x_183; +x_181 = lean_ctor_get(x_179, 0); +if (lean_is_scalar(x_160)) { + x_182 = lean_alloc_ctor(0, 4, 0); +} else { + x_182 = x_160; +} +lean_ctor_set(x_182, 0, x_156); +lean_ctor_set(x_182, 1, x_167); +lean_ctor_set(x_182, 2, x_175); +lean_ctor_set(x_182, 3, x_181); +if (lean_is_scalar(x_155)) { + x_183 = lean_alloc_ctor(4, 1, 0); +} else { + x_183 = x_155; +} +lean_ctor_set(x_183, 0, x_182); +lean_ctor_set(x_179, 0, x_183); +return x_179; +} +else +{ +lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; +x_184 = lean_ctor_get(x_179, 0); +x_185 = lean_ctor_get(x_179, 1); +lean_inc(x_185); +lean_inc(x_184); +lean_dec(x_179); +if (lean_is_scalar(x_160)) { + x_186 = lean_alloc_ctor(0, 4, 0); +} else { + x_186 = x_160; +} +lean_ctor_set(x_186, 0, x_156); +lean_ctor_set(x_186, 1, x_167); +lean_ctor_set(x_186, 2, x_175); +lean_ctor_set(x_186, 3, x_184); +if (lean_is_scalar(x_155)) { + x_187 = lean_alloc_ctor(4, 1, 0); +} else { + x_187 = x_155; +} +lean_ctor_set(x_187, 0, x_186); +x_188 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_188, 0, x_187); +lean_ctor_set(x_188, 1, x_185); +return x_188; +} +} +else +{ +uint8_t x_189; +lean_dec(x_175); +lean_dec(x_167); +lean_dec(x_160); +lean_dec(x_156); +lean_dec(x_155); +x_189 = !lean_is_exclusive(x_179); +if (x_189 == 0) +{ +return x_179; +} +else +{ +lean_object* x_190; lean_object* x_191; lean_object* x_192; +x_190 = lean_ctor_get(x_179, 0); +x_191 = lean_ctor_get(x_179, 1); +lean_inc(x_191); +lean_inc(x_190); +lean_dec(x_179); +x_192 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_192, 0, x_190); +lean_ctor_set(x_192, 1, x_191); +return x_192; +} +} +} +} +case 5: +{ +uint8_t x_196; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_196 = !lean_is_exclusive(x_1); +if (x_196 == 0) +{ +lean_object* x_197; lean_object* x_198; lean_object* x_199; lean_object* x_200; uint8_t x_201; +x_197 = lean_ctor_get(x_1, 0); +x_198 = lean_st_ref_get(x_6, x_7); +lean_dec(x_6); +x_199 = lean_ctor_get(x_198, 1); +lean_inc(x_199); +lean_dec(x_198); +x_200 = lean_st_ref_get(x_2, x_199); +x_201 = !lean_is_exclusive(x_200); +if (x_201 == 0) +{ +lean_object* x_202; uint8_t x_203; lean_object* x_204; +x_202 = lean_ctor_get(x_200, 0); +x_203 = 1; +x_204 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_202, x_197, x_203); +lean_ctor_set(x_1, 0, x_204); +lean_ctor_set(x_200, 0, x_1); +return x_200; +} +else +{ +lean_object* x_205; lean_object* x_206; uint8_t x_207; lean_object* x_208; lean_object* x_209; +x_205 = lean_ctor_get(x_200, 0); +x_206 = lean_ctor_get(x_200, 1); +lean_inc(x_206); +lean_inc(x_205); +lean_dec(x_200); +x_207 = 1; +x_208 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_205, x_197, x_207); +lean_ctor_set(x_1, 0, x_208); +x_209 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_209, 0, x_1); +lean_ctor_set(x_209, 1, x_206); +return x_209; +} +} +else +{ +lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; uint8_t x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; +x_210 = lean_ctor_get(x_1, 0); +lean_inc(x_210); +lean_dec(x_1); +x_211 = lean_st_ref_get(x_6, x_7); +lean_dec(x_6); +x_212 = lean_ctor_get(x_211, 1); +lean_inc(x_212); +lean_dec(x_211); +x_213 = lean_st_ref_get(x_2, x_212); +x_214 = lean_ctor_get(x_213, 0); +lean_inc(x_214); +x_215 = lean_ctor_get(x_213, 1); +lean_inc(x_215); +if (lean_is_exclusive(x_213)) { + lean_ctor_release(x_213, 0); + lean_ctor_release(x_213, 1); + x_216 = x_213; +} else { + lean_dec_ref(x_213); + x_216 = lean_box(0); +} +x_217 = 1; +x_218 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_214, x_210, x_217); +x_219 = lean_alloc_ctor(5, 1, 0); +lean_ctor_set(x_219, 0, x_218); +if (lean_is_scalar(x_216)) { + x_220 = lean_alloc_ctor(0, 2, 0); +} else { + x_220 = x_216; +} +lean_ctor_set(x_220, 0, x_219); +lean_ctor_set(x_220, 1, x_215); +return x_220; +} +} +default: +{ +uint8_t x_221; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_221 = !lean_is_exclusive(x_1); +if (x_221 == 0) +{ +lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; uint8_t x_226; +x_222 = lean_ctor_get(x_1, 0); +x_223 = lean_st_ref_get(x_6, x_7); +lean_dec(x_6); +x_224 = lean_ctor_get(x_223, 1); +lean_inc(x_224); +lean_dec(x_223); +x_225 = lean_st_ref_get(x_2, x_224); +x_226 = !lean_is_exclusive(x_225); +if (x_226 == 0) +{ +lean_object* x_227; uint8_t x_228; lean_object* x_229; +x_227 = lean_ctor_get(x_225, 0); +x_228 = 1; +x_229 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_227, x_228, x_222); +lean_ctor_set(x_1, 0, x_229); +lean_ctor_set(x_225, 0, x_1); +return x_225; +} +else +{ +lean_object* x_230; lean_object* x_231; uint8_t x_232; lean_object* x_233; lean_object* x_234; +x_230 = lean_ctor_get(x_225, 0); +x_231 = lean_ctor_get(x_225, 1); +lean_inc(x_231); +lean_inc(x_230); +lean_dec(x_225); +x_232 = 1; +x_233 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_230, x_232, x_222); +lean_ctor_set(x_1, 0, x_233); +x_234 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_234, 0, x_1); +lean_ctor_set(x_234, 1, x_231); +return x_234; +} +} +else +{ +lean_object* x_235; lean_object* x_236; lean_object* x_237; lean_object* x_238; lean_object* x_239; lean_object* x_240; lean_object* x_241; uint8_t x_242; lean_object* x_243; lean_object* x_244; lean_object* x_245; +x_235 = lean_ctor_get(x_1, 0); +lean_inc(x_235); +lean_dec(x_1); +x_236 = lean_st_ref_get(x_6, x_7); +lean_dec(x_6); +x_237 = lean_ctor_get(x_236, 1); +lean_inc(x_237); +lean_dec(x_236); +x_238 = lean_st_ref_get(x_2, x_237); +x_239 = lean_ctor_get(x_238, 0); +lean_inc(x_239); +x_240 = lean_ctor_get(x_238, 1); +lean_inc(x_240); +if (lean_is_exclusive(x_238)) { + lean_ctor_release(x_238, 0); + lean_ctor_release(x_238, 1); + x_241 = x_238; +} else { + lean_dec_ref(x_238); + x_241 = lean_box(0); +} +x_242 = 1; +x_243 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_239, x_242, x_235); +x_244 = lean_alloc_ctor(6, 1, 0); +lean_ctor_set(x_244, 0, x_243); +if (lean_is_scalar(x_241)) { + x_245 = lean_alloc_ctor(0, 2, 0); +} else { + x_245 = x_241; +} +lean_ctor_set(x_245, 0, x_244); +lean_ctor_set(x_245, 1, x_240); +return x_245; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__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) { +_start: +{ +size_t x_10; size_t x_11; lean_object* x_12; +x_10 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_11 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_12 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_10, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___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_Compiler_LCNF_Internalize_internalizeFunDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_2); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__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) { +_start: +{ +uint8_t x_9; lean_object* x_10; +x_9 = lean_unbox(x_1); +lean_dec(x_1); +x_10 = l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__1(x_9, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__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) { +_start: +{ +size_t x_10; size_t x_11; lean_object* x_12; +x_10 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_11 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_12 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__2(x_10, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__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) { +_start: +{ +uint8_t x_11; size_t x_12; size_t x_13; lean_object* x_14; +x_11 = lean_unbox(x_1); +lean_dec(x_1); +x_12 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_13 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_14 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeCode___spec__3(x_11, x_12, x_13, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_5); +return x_14; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCode___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_Compiler_LCNF_Internalize_internalizeCode(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_2); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCodeDecl(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: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +uint8_t x_8; +x_8 = !lean_is_exclusive(x_1); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_9 = lean_ctor_get(x_1, 0); +x_10 = l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl(x_9, 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); +x_11 = !lean_is_exclusive(x_10); +if (x_11 == 0) +{ +lean_object* x_12; +x_12 = lean_ctor_get(x_10, 0); +lean_ctor_set(x_1, 0, x_12); +lean_ctor_set(x_10, 0, x_1); +return x_10; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_13 = lean_ctor_get(x_10, 0); +x_14 = lean_ctor_get(x_10, 1); +lean_inc(x_14); +lean_inc(x_13); +lean_dec(x_10); +lean_ctor_set(x_1, 0, x_13); +x_15 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_15, 0, x_1); +lean_ctor_set(x_15, 1, x_14); +return x_15; +} +} +else +{ +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_1, 0); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l_Lean_Compiler_LCNF_Internalize_internalizeLetDecl(x_16, 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); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_17, 1); +lean_inc(x_19); +if (lean_is_exclusive(x_17)) { + lean_ctor_release(x_17, 0); + lean_ctor_release(x_17, 1); + x_20 = x_17; +} else { + lean_dec_ref(x_17); + x_20 = lean_box(0); +} +x_21 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_21, 0, x_18); +if (lean_is_scalar(x_20)) { + x_22 = lean_alloc_ctor(0, 2, 0); +} else { + x_22 = x_20; +} +lean_ctor_set(x_22, 0, x_21); +lean_ctor_set(x_22, 1, x_19); +return x_22; +} +} +case 1: +{ +uint8_t x_23; +x_23 = !lean_is_exclusive(x_1); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; +x_24 = lean_ctor_get(x_1, 0); +x_25 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_24, x_2, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_25) == 0) +{ +uint8_t x_26; +x_26 = !lean_is_exclusive(x_25); +if (x_26 == 0) +{ +lean_object* x_27; +x_27 = lean_ctor_get(x_25, 0); +lean_ctor_set(x_1, 0, x_27); +lean_ctor_set(x_25, 0, x_1); +return x_25; +} +else +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_25, 0); +x_29 = lean_ctor_get(x_25, 1); +lean_inc(x_29); +lean_inc(x_28); +lean_dec(x_25); +lean_ctor_set(x_1, 0, x_28); +x_30 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_30, 0, x_1); +lean_ctor_set(x_30, 1, x_29); +return x_30; +} +} +else +{ +uint8_t x_31; +lean_free_object(x_1); +x_31 = !lean_is_exclusive(x_25); +if (x_31 == 0) +{ +return x_25; +} +else +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_32 = lean_ctor_get(x_25, 0); +x_33 = lean_ctor_get(x_25, 1); +lean_inc(x_33); +lean_inc(x_32); +lean_dec(x_25); +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; +} +} +} +else +{ +lean_object* x_35; lean_object* x_36; +x_35 = lean_ctor_get(x_1, 0); +lean_inc(x_35); +lean_dec(x_1); +x_36 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_35, x_2, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_36) == 0) +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_37 = lean_ctor_get(x_36, 0); +lean_inc(x_37); +x_38 = lean_ctor_get(x_36, 1); +lean_inc(x_38); +if (lean_is_exclusive(x_36)) { + lean_ctor_release(x_36, 0); + lean_ctor_release(x_36, 1); + x_39 = x_36; +} else { + lean_dec_ref(x_36); + x_39 = lean_box(0); +} +x_40 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_40, 0, x_37); +if (lean_is_scalar(x_39)) { + x_41 = lean_alloc_ctor(0, 2, 0); +} else { + x_41 = x_39; +} +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set(x_41, 1, x_38); +return x_41; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_42 = lean_ctor_get(x_36, 0); +lean_inc(x_42); +x_43 = lean_ctor_get(x_36, 1); +lean_inc(x_43); +if (lean_is_exclusive(x_36)) { + lean_ctor_release(x_36, 0); + lean_ctor_release(x_36, 1); + x_44 = x_36; +} else { + lean_dec_ref(x_36); + x_44 = lean_box(0); +} +if (lean_is_scalar(x_44)) { + x_45 = lean_alloc_ctor(1, 2, 0); +} else { + x_45 = x_44; +} +lean_ctor_set(x_45, 0, x_42); +lean_ctor_set(x_45, 1, x_43); +return x_45; +} +} +} +default: +{ +uint8_t x_46; +x_46 = !lean_is_exclusive(x_1); +if (x_46 == 0) +{ +lean_object* x_47; lean_object* x_48; +x_47 = lean_ctor_get(x_1, 0); +x_48 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_47, x_2, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_48) == 0) +{ +uint8_t x_49; +x_49 = !lean_is_exclusive(x_48); +if (x_49 == 0) +{ +lean_object* x_50; +x_50 = lean_ctor_get(x_48, 0); +lean_ctor_set(x_1, 0, x_50); +lean_ctor_set(x_48, 0, x_1); +return x_48; +} +else +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; +x_51 = lean_ctor_get(x_48, 0); +x_52 = lean_ctor_get(x_48, 1); +lean_inc(x_52); +lean_inc(x_51); +lean_dec(x_48); +lean_ctor_set(x_1, 0, x_51); +x_53 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_53, 0, x_1); +lean_ctor_set(x_53, 1, x_52); +return x_53; +} +} +else +{ +uint8_t x_54; +lean_free_object(x_1); +x_54 = !lean_is_exclusive(x_48); +if (x_54 == 0) +{ +return x_48; +} +else +{ +lean_object* x_55; lean_object* x_56; lean_object* x_57; +x_55 = lean_ctor_get(x_48, 0); +x_56 = lean_ctor_get(x_48, 1); +lean_inc(x_56); +lean_inc(x_55); +lean_dec(x_48); +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; +} +} +} +else +{ +lean_object* x_58; lean_object* x_59; +x_58 = lean_ctor_get(x_1, 0); +lean_inc(x_58); +lean_dec(x_1); +x_59 = l_Lean_Compiler_LCNF_Internalize_internalizeFunDecl(x_58, x_2, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_59) == 0) +{ +lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; +x_60 = lean_ctor_get(x_59, 0); +lean_inc(x_60); +x_61 = lean_ctor_get(x_59, 1); +lean_inc(x_61); +if (lean_is_exclusive(x_59)) { + lean_ctor_release(x_59, 0); + lean_ctor_release(x_59, 1); + x_62 = x_59; +} else { + lean_dec_ref(x_59); + x_62 = lean_box(0); +} +x_63 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_63, 0, x_60); +if (lean_is_scalar(x_62)) { + x_64 = lean_alloc_ctor(0, 2, 0); +} else { + x_64 = x_62; +} +lean_ctor_set(x_64, 0, x_63); +lean_ctor_set(x_64, 1, x_61); +return x_64; +} +else +{ +lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; +x_65 = lean_ctor_get(x_59, 0); +lean_inc(x_65); +x_66 = lean_ctor_get(x_59, 1); +lean_inc(x_66); +if (lean_is_exclusive(x_59)) { + lean_ctor_release(x_59, 0); + lean_ctor_release(x_59, 1); + x_67 = x_59; +} else { + lean_dec_ref(x_59); + x_67 = lean_box(0); +} +if (lean_is_scalar(x_67)) { + x_68 = lean_alloc_ctor(1, 2, 0); +} else { + x_68 = x_67; +} +lean_ctor_set(x_68, 0, x_65); +lean_ctor_set(x_68, 1, x_66); +return x_68; +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCodeDecl___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_Compiler_LCNF_Internalize_internalizeCodeDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_2); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_internalize(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_8 = lean_st_ref_get(x_6, x_7); +x_9 = lean_ctor_get(x_8, 1); +lean_inc(x_9); +lean_dec(x_8); +x_10 = lean_st_mk_ref(x_2, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +lean_inc(x_6); +x_13 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_1, x_11, x_3, x_4, x_5, x_6, 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; uint8_t x_19; +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 = lean_st_ref_get(x_6, x_15); +lean_dec(x_6); +x_17 = lean_ctor_get(x_16, 1); +lean_inc(x_17); +lean_dec(x_16); +x_18 = lean_st_ref_get(x_11, x_17); +lean_dec(x_11); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) +{ +lean_object* x_20; +x_20 = lean_ctor_get(x_18, 0); +lean_dec(x_20); +lean_ctor_set(x_18, 0, x_14); +return x_18; +} +else +{ +lean_object* x_21; lean_object* x_22; +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +lean_dec(x_18); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_14); +lean_ctor_set(x_22, 1, x_21); +return x_22; +} +} +else +{ +uint8_t x_23; +lean_dec(x_11); +lean_dec(x_6); +x_23 = !lean_is_exclusive(x_13); +if (x_23 == 0) +{ +return x_13; +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_13, 0); +x_25 = lean_ctor_get(x_13, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_13); +x_26 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_26, 0, x_24); +lean_ctor_set(x_26, 1, x_25); +return x_26; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_internalize_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) { +_start: +{ +uint8_t x_8; +x_8 = !lean_is_exclusive(x_1); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; size_t x_22; size_t x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_9 = lean_ctor_get(x_1, 0); +x_10 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 2); +x_12 = lean_ctor_get(x_1, 3); +x_13 = lean_ctor_get(x_1, 4); +x_14 = lean_st_ref_get(x_6, x_7); +x_15 = lean_ctor_get(x_14, 1); +lean_inc(x_15); +lean_dec(x_14); +x_16 = lean_st_ref_get(x_2, x_15); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = 1; +x_20 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_17, x_19, x_11); +x_21 = lean_array_get_size(x_12); +x_22 = lean_usize_of_nat(x_21); +lean_dec(x_21); +x_23 = 0; +x_24 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_22, x_23, x_12, x_2, x_3, x_4, x_5, x_6, x_18); +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +x_26 = lean_ctor_get(x_24, 1); +lean_inc(x_26); +lean_dec(x_24); +x_27 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_13, x_2, x_3, x_4, x_5, x_6, x_26); +if (lean_obj_tag(x_27) == 0) +{ +uint8_t x_28; +x_28 = !lean_is_exclusive(x_27); +if (x_28 == 0) +{ +lean_object* x_29; +x_29 = lean_ctor_get(x_27, 0); +lean_ctor_set(x_1, 4, x_29); +lean_ctor_set(x_1, 3, x_25); +lean_ctor_set(x_1, 2, x_20); +lean_ctor_set(x_27, 0, x_1); +return x_27; +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_27, 0); +x_31 = lean_ctor_get(x_27, 1); +lean_inc(x_31); +lean_inc(x_30); +lean_dec(x_27); +lean_ctor_set(x_1, 4, x_30); +lean_ctor_set(x_1, 3, x_25); +lean_ctor_set(x_1, 2, x_20); +x_32 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_32, 0, x_1); +lean_ctor_set(x_32, 1, x_31); +return x_32; +} +} +else +{ +uint8_t x_33; +lean_dec(x_25); +lean_dec(x_20); +lean_free_object(x_1); +lean_dec(x_10); +lean_dec(x_9); +x_33 = !lean_is_exclusive(x_27); +if (x_33 == 0) +{ +return x_27; +} +else +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_27, 0); +x_35 = lean_ctor_get(x_27, 1); +lean_inc(x_35); +lean_inc(x_34); +lean_dec(x_27); +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 +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; uint8_t x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; uint8_t x_49; lean_object* x_50; lean_object* x_51; size_t x_52; size_t x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; +x_37 = lean_ctor_get(x_1, 0); +x_38 = lean_ctor_get(x_1, 1); +x_39 = lean_ctor_get(x_1, 2); +x_40 = lean_ctor_get(x_1, 3); +x_41 = lean_ctor_get(x_1, 4); +x_42 = lean_ctor_get_uint8(x_1, sizeof(void*)*5); +x_43 = lean_ctor_get_uint8(x_1, sizeof(void*)*5 + 1); +lean_inc(x_41); +lean_inc(x_40); +lean_inc(x_39); +lean_inc(x_38); +lean_inc(x_37); +lean_dec(x_1); +x_44 = lean_st_ref_get(x_6, x_7); +x_45 = lean_ctor_get(x_44, 1); +lean_inc(x_45); +lean_dec(x_44); +x_46 = lean_st_ref_get(x_2, x_45); +x_47 = lean_ctor_get(x_46, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_46, 1); +lean_inc(x_48); +lean_dec(x_46); +x_49 = 1; +x_50 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_47, x_49, x_39); +x_51 = lean_array_get_size(x_40); +x_52 = lean_usize_of_nat(x_51); +lean_dec(x_51); +x_53 = 0; +x_54 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_52, x_53, x_40, x_2, x_3, x_4, x_5, x_6, x_48); +x_55 = lean_ctor_get(x_54, 0); +lean_inc(x_55); +x_56 = lean_ctor_get(x_54, 1); +lean_inc(x_56); +lean_dec(x_54); +x_57 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_41, x_2, x_3, x_4, x_5, x_6, x_56); +if (lean_obj_tag(x_57) == 0) +{ +lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +x_58 = lean_ctor_get(x_57, 0); +lean_inc(x_58); +x_59 = lean_ctor_get(x_57, 1); +lean_inc(x_59); +if (lean_is_exclusive(x_57)) { + lean_ctor_release(x_57, 0); + lean_ctor_release(x_57, 1); + x_60 = x_57; +} else { + lean_dec_ref(x_57); + x_60 = lean_box(0); +} +x_61 = lean_alloc_ctor(0, 5, 2); +lean_ctor_set(x_61, 0, x_37); +lean_ctor_set(x_61, 1, x_38); +lean_ctor_set(x_61, 2, x_50); +lean_ctor_set(x_61, 3, x_55); +lean_ctor_set(x_61, 4, x_58); +lean_ctor_set_uint8(x_61, sizeof(void*)*5, x_42); +lean_ctor_set_uint8(x_61, sizeof(void*)*5 + 1, x_43); +if (lean_is_scalar(x_60)) { + x_62 = lean_alloc_ctor(0, 2, 0); +} else { + x_62 = x_60; +} +lean_ctor_set(x_62, 0, x_61); +lean_ctor_set(x_62, 1, x_59); +return x_62; +} +else +{ +lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; +lean_dec(x_55); +lean_dec(x_50); +lean_dec(x_38); +lean_dec(x_37); +x_63 = lean_ctor_get(x_57, 0); +lean_inc(x_63); +x_64 = lean_ctor_get(x_57, 1); +lean_inc(x_64); +if (lean_is_exclusive(x_57)) { + lean_ctor_release(x_57, 0); + lean_ctor_release(x_57, 1); + x_65 = x_57; +} else { + lean_dec_ref(x_57); + x_65 = lean_box(0); +} +if (lean_is_scalar(x_65)) { + x_66 = lean_alloc_ctor(1, 2, 0); +} else { + x_66 = x_65; +} +lean_ctor_set(x_66, 0, x_63); +lean_ctor_set(x_66, 1, x_64); +return x_66; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_internalize_go___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_Compiler_LCNF_Decl_internalize_go(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_2); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_internalize(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_8 = lean_st_ref_get(x_6, x_7); +x_9 = lean_ctor_get(x_8, 1); +lean_inc(x_9); +lean_dec(x_8); +x_10 = lean_st_mk_ref(x_2, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +lean_inc(x_6); +x_13 = l_Lean_Compiler_LCNF_Decl_internalize_go(x_1, x_11, x_3, x_4, x_5, x_6, 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; uint8_t x_19; +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 = lean_st_ref_get(x_6, x_15); +lean_dec(x_6); +x_17 = lean_ctor_get(x_16, 1); +lean_inc(x_17); +lean_dec(x_16); +x_18 = lean_st_ref_get(x_11, x_17); +lean_dec(x_11); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) +{ +lean_object* x_20; +x_20 = lean_ctor_get(x_18, 0); +lean_dec(x_20); +lean_ctor_set(x_18, 0, x_14); +return x_18; +} +else +{ +lean_object* x_21; lean_object* x_22; +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +lean_dec(x_18); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_14); +lean_ctor_set(x_22, 1, x_21); +return x_22; +} +} +else +{ +uint8_t x_23; +lean_dec(x_11); +lean_dec(x_6); +x_23 = !lean_is_exclusive(x_13); +if (x_23 == 0) +{ +return x_13; +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_13, 0); +x_25 = lean_ctor_get(x_13, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_13); +x_26 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_26, 0, x_24); +lean_ctor_set(x_26, 1, x_25); +return x_26; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_cleanup___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_mkHashMapImp___rarg(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_cleanup___spec__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) { +_start: +{ +uint8_t x_9; +x_9 = lean_usize_dec_lt(x_2, x_1); +if (x_9 == 0) +{ +lean_object* x_10; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_3); +lean_ctor_set(x_10, 1, x_8); +return x_10; +} +else +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_11 = lean_array_uget(x_3, x_2); +x_12 = lean_unsigned_to_nat(0u); +x_13 = lean_array_uset(x_3, x_2, x_12); +x_14 = lean_st_ref_get(x_7, x_8); +x_15 = lean_ctor_get(x_14, 1); +lean_inc(x_15); +lean_dec(x_14); +x_16 = lean_st_ref_take(x_5, x_15); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = !lean_is_exclusive(x_17); +if (x_19 == 0) +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_20 = lean_ctor_get(x_17, 1); +lean_dec(x_20); +x_21 = lean_unsigned_to_nat(1u); +lean_ctor_set(x_17, 1, x_21); +x_22 = lean_st_ref_set(x_5, x_17, x_18); +x_23 = lean_ctor_get(x_22, 1); +lean_inc(x_23); +lean_dec(x_22); +x_24 = l_Lean_mkHashMapImp___rarg(x_12); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +x_25 = l_Lean_Compiler_LCNF_Decl_internalize(x_11, x_24, x_4, x_5, x_6, x_7, x_23); +if (lean_obj_tag(x_25) == 0) +{ +lean_object* x_26; lean_object* x_27; size_t x_28; size_t x_29; lean_object* x_30; +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_25, 1); +lean_inc(x_27); +lean_dec(x_25); +x_28 = 1; +x_29 = lean_usize_add(x_2, x_28); +x_30 = lean_array_uset(x_13, x_2, x_26); +x_2 = x_29; +x_3 = x_30; +x_8 = x_27; +goto _start; +} +else +{ +uint8_t x_32; +lean_dec(x_13); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_32 = !lean_is_exclusive(x_25); +if (x_32 == 0) +{ +return x_25; +} +else +{ +lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_33 = lean_ctor_get(x_25, 0); +x_34 = lean_ctor_get(x_25, 1); +lean_inc(x_34); +lean_inc(x_33); +lean_dec(x_25); +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 +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; +x_36 = lean_ctor_get(x_17, 0); +lean_inc(x_36); +lean_dec(x_17); +x_37 = lean_unsigned_to_nat(1u); +x_38 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_38, 0, x_36); +lean_ctor_set(x_38, 1, x_37); +x_39 = lean_st_ref_set(x_5, x_38, x_18); +x_40 = lean_ctor_get(x_39, 1); +lean_inc(x_40); +lean_dec(x_39); +x_41 = l_Lean_mkHashMapImp___rarg(x_12); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +x_42 = l_Lean_Compiler_LCNF_Decl_internalize(x_11, x_41, x_4, x_5, x_6, x_7, x_40); +if (lean_obj_tag(x_42) == 0) +{ +lean_object* x_43; lean_object* x_44; size_t x_45; size_t x_46; lean_object* x_47; +x_43 = lean_ctor_get(x_42, 0); +lean_inc(x_43); +x_44 = lean_ctor_get(x_42, 1); +lean_inc(x_44); +lean_dec(x_42); +x_45 = 1; +x_46 = lean_usize_add(x_2, x_45); +x_47 = lean_array_uset(x_13, x_2, x_43); +x_2 = x_46; +x_3 = x_47; +x_8 = x_44; +goto _start; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; +lean_dec(x_13); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_49 = lean_ctor_get(x_42, 0); +lean_inc(x_49); +x_50 = lean_ctor_get(x_42, 1); +lean_inc(x_50); +if (lean_is_exclusive(x_42)) { + lean_ctor_release(x_42, 0); + lean_ctor_release(x_42, 1); + x_51 = x_42; +} else { + lean_dec_ref(x_42); + x_51 = lean_box(0); +} +if (lean_is_scalar(x_51)) { + x_52 = lean_alloc_ctor(1, 2, 0); +} else { + x_52 = x_51; +} +lean_ctor_set(x_52, 0, x_49); +lean_ctor_set(x_52, 1, x_50); +return x_52; +} +} +} +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_cleanup___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(0u); +x_2 = l_Lean_mkHashMapImp___rarg(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_cleanup___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_LCNF_cleanup___closed__1; +x_2 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_2, 0, x_1); +lean_ctor_set(x_2, 1, x_1); +lean_ctor_set(x_2, 2, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_cleanup___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_cleanup___closed__2; +x_2 = lean_unsigned_to_nat(1u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_cleanup(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; size_t x_15; size_t x_16; lean_object* x_17; +x_7 = lean_st_ref_get(x_5, x_6); +x_8 = lean_ctor_get(x_7, 1); +lean_inc(x_8); +lean_dec(x_7); +x_9 = lean_st_ref_take(x_3, x_8); +x_10 = lean_ctor_get(x_9, 1); +lean_inc(x_10); +lean_dec(x_9); +x_11 = l_Lean_Compiler_LCNF_cleanup___closed__3; +x_12 = lean_st_ref_set(x_3, x_11, x_10); +x_13 = lean_ctor_get(x_12, 1); +lean_inc(x_13); +lean_dec(x_12); +x_14 = lean_array_get_size(x_1); +x_15 = lean_usize_of_nat(x_14); +lean_dec(x_14); +x_16 = 0; +x_17 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_cleanup___spec__2(x_15, x_16, x_1, x_2, x_3, x_4, x_5, x_13); +return x_17; +} +} +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_cleanup___spec__1___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_mkHashMap___at_Lean_Compiler_LCNF_cleanup___spec__1(x_1); +lean_dec(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_cleanup___spec__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) { +_start: +{ +size_t x_9; size_t x_10; lean_object* x_11; +x_9 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_10 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_11 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_cleanup___spec__2(x_9, x_10, x_3, x_4, x_5, x_6, x_7, x_8); +return x_11; +} +} +lean_object* initialize_Init(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_Types(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_Bind(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_CompilerM(uint8_t builtin, lean_object*); +static bool _G_initialized = false; +LEAN_EXPORT lean_object* initialize_Lean_Compiler_LCNF_Internalize(uint8_t builtin, lean_object* w) { +lean_object * res; +if (_G_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_initialized = true; +res = initialize_Init(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_Types(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_Bind(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_CompilerM(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___closed__1 = _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue___closed__1); +l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue = _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstInternalizeMTrue); +l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___closed__1 = _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM___closed__1); +l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM = _init_l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Internalize_instMonadFVarSubstStateInternalizeM); +l_Lean_Compiler_LCNF_cleanup___closed__1 = _init_l_Lean_Compiler_LCNF_cleanup___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_cleanup___closed__1); +l_Lean_Compiler_LCNF_cleanup___closed__2 = _init_l_Lean_Compiler_LCNF_cleanup___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_cleanup___closed__2); +l_Lean_Compiler_LCNF_cleanup___closed__3 = _init_l_Lean_Compiler_LCNF_cleanup___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_cleanup___closed__3); +return lean_io_result_mk_ok(lean_box(0)); +} +#ifdef __cplusplus +} +#endif diff --git a/stage0/stdlib/Lean/Compiler/LCNF/JoinPoints.c b/stage0/stdlib/Lean/Compiler/LCNF/JoinPoints.c index 75adb1f478..8948f9816f 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/JoinPoints.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/JoinPoints.c @@ -1,6 +1,6 @@ // Lean compiler output // Module: Lean.Compiler.LCNF.JoinPoints -// Imports: Init Lean.Compiler.LCNF.CompilerM Lean.Compiler.LCNF.PassManager +// Imports: Init Lean.Compiler.LCNF.CompilerM Lean.Compiler.LCNF.PassManager Lean.Compiler.LCNF.PullFunDecls #include #if defined(__clang__) #pragma clang diagnostic ignored "-Wunused-parameter" @@ -13,187 +13,1443 @@ #ifdef __cplusplus extern "C" { #endif +static lean_object* l_Lean_Compiler_LCNF_extendJoinPointContext___closed__3; +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__1(size_t, size_t, lean_object*); size_t lean_usize_add(size_t, size_t); -static lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_AltCore_mapCodeM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___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_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__10___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__1___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewAltScope___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__6(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); lean_object* l_Lean_registerTraceClass(lean_object*, uint8_t, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__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* l_Lean_Expr_lam___override(lean_object*, lean_object*, lean_object*, uint8_t); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__5___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* lean_mk_empty_array_with_capacity(lean_object*); +lean_object* l_Lean_Compiler_LCNF_AltCore_getParams(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates(lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); -static lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__2; +lean_object* l_Lean_Expr_forallE___override(lean_object*, lean_object*, lean_object*, uint8_t); LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_JoinPointFinder_replace___spec__6___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_JoinPointFinder_FindState_candidates___default___spec__1___boxed(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_extendJoinPointContext; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__3(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_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__2(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_mergeJpContextIfNecessary___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_usize_dec_eq(size_t, size_t); -static lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__4; lean_object* lean_array_uget(lean_object*, size_t); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addToScope(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint64_t l___private_Lean_Expr_0__Lean_hashFVarId____x40_Lean_Expr___hyg_1727_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_append___rarg(lean_object*, lean_object*); static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__2___closed__6; LEAN_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate___lambda__1(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_getScope___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__2(lean_object*); static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__2___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_FindState_candidates___default; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_find_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_find_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_uset(lean_object*, size_t, lean_object*); +uint8_t l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_LCtx_addParam___spec__2(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f___spec__2___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_mapFVarM___spec__1___rarg(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_extendJoinPointContext___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_findJoinPoints(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__6(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Decl_findJoinPoints___closed__4; LEAN_EXPORT lean_object* l_List_replace___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___spec__6___boxed(lean_object*, lean_object*, lean_object*); +size_t lean_usize_sub(size_t, size_t); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___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_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__6___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_Lean_HashMapImp_expand___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate___spec__2(lean_object*, lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__2(lean_object*); +static lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__6___closed__1; +static lean_object* l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__2___closed__1; +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__4(size_t, size_t, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_mergeJpContextIfNecessary(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_HashMapImp_expand___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__4(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_name_eq(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate___boxed(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_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate___boxed(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_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__3; +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Decl_findJoinPoints___closed__2; lean_object* l_Lean_Name_mkStr2(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); +LEAN_EXPORT lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_string_append(lean_object*, lean_object*); +lean_object* l_Lean_Expr_letE___override(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t); LEAN_EXPORT lean_object* l_Lean_AssocList_foldlM___at_Lean_Compiler_LCNF_JoinPointFinder_replace___spec__7(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_AltCore_forCodeM___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__5(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_Compiler_LCNF_mapFVarM___rarg___lambda__8(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); +static lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__6; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_isInScope(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_addToScope___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_eraseLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___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*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__4___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_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__2___closed__5; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_4565____closed__1; lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5(lean_object*, size_t, size_t, 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_Compiler_LCNF_JoinPointContextExtender_mergeJpContextIfNecessary___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_usize_dec_lt(size_t, size_t); +static lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__4; lean_object* l_Lean_mkHashSetImp___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_findJoinPoints___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_moveEntries___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate___spec__3(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__2___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendState_fvarMap___default; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendContext_candidates___default; LEAN_EXPORT lean_object* l_Lean_AssocList_erase___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__3(lean_object*, lean_object*); extern lean_object* l_Lean_levelZero; lean_object* lean_nat_add(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashSetImp_insert___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_replace___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate___spec__5(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_HashSetImp_contains___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope___spec__1___boxed(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__3___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewAltScope___spec__1(lean_object*); +LEAN_EXPORT lean_object* l_Array_foldrMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__2(lean_object*, size_t, size_t, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__4; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM___rarg(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_uint64_to_usize(uint64_t); +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendState_fvarMap___default___spec__1___boxed(lean_object*); +LEAN_EXPORT uint8_t l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_AltCore_mapCodeM___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_findJoinPoints___closed__3; +static lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__4; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_findJoinPoints; lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__2___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_Compiler_LCNF_JoinPointFinder_instInhabitedCandidateInfo; -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_extendJoinPointContext___closed__1; extern lean_object* l_Lean_inheritedTraceOptions; +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__2___boxed(lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* l_Lean_mkHashMapImp___rarg(lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_setScope(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_mapFVarM___spec__1(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__4(lean_object*, lean_object*); lean_object* lean_st_ref_take(lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_withNewScope(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__9___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMap_insert___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate___spec__1(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__2; lean_object* lean_nat_sub(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_FunDeclCore_getArity___rarg(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___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_Compiler_LCNF_Decl_extendJoinPointContext(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_find_x3f___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f___spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_erase___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__3___boxed(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__1(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__1(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___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_Compiler_LCNF_ScopeM_setScope___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_isInScope___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate(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_Compiler_LCNF_JoinPointContextExtender_ExtendContext_currentJp_x3f___default; static lean_object* l_Lean_Compiler_LCNF_Decl_findJoinPoints___closed__5; static lean_object* l_Lean_Compiler_LCNF_findJoinPoints___closed__2; static lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Lean_AssocList_contains___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__2(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Decl_findJoinPoints___closed__1; lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); lean_object* l_instInhabited___rarg(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_JoinPointContextExtender_mergeJpContextIfNecessary___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*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__1___rarg(lean_object*, 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_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__3(lean_object*); lean_object* l_Nat_repr(lean_object*); +static lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__2; static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__2___closed__4; LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_elem___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___spec__2___boxed(lean_object*, lean_object*); lean_object* lean_st_mk_ref(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendState_fvarMap___default___spec__1(lean_object*); +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Decl_findJoinPoints___closed__3; lean_object* l_Lean_Expr_sort___override(lean_object*); +static lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___rarg___closed__1; +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_forFVarM___spec__1(lean_object*); static lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__2; +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__7(lean_object*, size_t, size_t, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_clearScope(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_Pass_mkPerDeclaration(lean_object*, lean_object*, uint8_t, lean_object*); -static lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__3; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__1(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_getScope(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_foldlM___at_Lean_Compiler_LCNF_JoinPointFinder_replace___spec__4(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___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*); +extern lean_object* l_Lean_instInhabitedExpr; +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___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*, lean_object*); size_t lean_usize_modn(size_t, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addToScope___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__2(lean_object*, lean_object*); lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_findJoinPoints___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__2; +LEAN_EXPORT lean_object* l_Lean_AssocList_foldlM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__6(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__2(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_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_RBNode_insert___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_collectExpr___spec__1(lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__1(lean_object*, lean_object*); size_t lean_usize_of_nat(lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_foldlM___at_Lean_Compiler_LCNF_JoinPointFinder_replace___spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__2; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___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_HashMapImp_moveEntries___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__5(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_JoinPointFinder_replace___spec__5(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_foldlM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate___spec__4(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashSetImp_expand___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___spec__3(lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___lambda__1___boxed(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_Compiler_LCNF_mapFVarM___rarg___closed__3; lean_object* l_Lean_PersistentArray_push___rarg(lean_object*, lean_object*); LEAN_EXPORT uint8_t l_List_elem___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___spec__2(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_addToScope(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___closed__1; +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Expr_fvar___override(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_ptr_addr(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_extendJoinPointContext___closed__4; +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__5___boxed(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Data_HashMap_0__Lean_numBucketsForCapacity(lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3___boxed(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_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__4(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_replace___spec__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__4; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__3(lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__2___boxed(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__1; LEAN_EXPORT lean_object* l_Lean_AssocList_contains___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__2___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_find(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_replace___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(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_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_LetDecl_updateValue(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_RBNode_findCore___at___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_fvarDepOn___spec__1(lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Decl_pullFunDecls(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_FindState_scope___default; uint8_t lean_nat_dec_le(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_AltCore_getCode(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_2049_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_4527_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_4565_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM(lean_object*); LEAN_EXPORT lean_object* l_Lean_mkHashSet___at_Lean_Compiler_LCNF_JoinPointFinder_instInhabitedCandidateInfo___spec__1(lean_object*); +static lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__1; LEAN_EXPORT lean_object* l_Lean_HashMapImp_moveEntries___at_Lean_Compiler_LCNF_JoinPointFinder_replace___spec__3(lean_object*, lean_object*, lean_object*); -lean_object* l_instInhabitedReaderT___rarg___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM___rarg___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__10(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*); extern lean_object* l_Lean_Core_instMonadCoreM; uint8_t l___private_Lean_Util_Trace_0__Lean_checkTraceOption(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldrMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_LCtx_toLocalContext(lean_object*); LEAN_EXPORT lean_object* l_Lean_HashSetImp_moveEntries___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___spec__4(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_replace(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_replace___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___spec__6(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_FindState_scope___default___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewAltScope___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__2(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_findJoinPoints___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___rarg___closed__1; +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__6(lean_object*, size_t, size_t, lean_object*); +lean_object* l_Lean_Compiler_LCNF_getType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_nat_mul(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_JoinPointFinder_replace___spec__6(lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__6___boxed(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_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_withNewScope___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__3___closed__1; +lean_object* l_Lean_Expr_app___override(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_find_go___closed__1; LEAN_EXPORT lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__3(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_panic_fn(lean_object*, lean_object*); -static lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__5; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___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_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM(lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_erase___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__1(lean_object*, lean_object*); lean_object* lean_mk_array(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_forFVarM___rarg___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___lambda__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_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3___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_Compiler_LCNF_ScopeM_clearScope___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_forFVarM___spec__1___rarg(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_mkFreshJpName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f___boxed(lean_object*, 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_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__9(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__3; +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__1___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___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*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_replace_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Expr_proj___override(lean_object*, lean_object*, lean_object*); lean_object* l_ReaderT_instMonadReaderT___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f___spec__2(lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_mkAuxParam(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_foldl___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___spec__5(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_replace___spec__8(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__5; lean_object* l_Lean_Expr_getAppFn(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__6(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_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__2___closed__2; +lean_object* l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_LCtx_addParam___spec__1(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM___rarg___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__2(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__1___boxed(lean_object*, lean_object*); static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__2___closed__3; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidate(lean_object*); lean_object* l_Lean_Compiler_LCNF_LCtx_addFunDecl(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__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_HashMap_insert___at_Lean_Compiler_LCNF_JoinPointFinder_replace___spec__1(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___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*); +LEAN_EXPORT uint8_t l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__3(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__6(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___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*); +static lean_object* l_Lean_Compiler_LCNF_forFVarM___rarg___closed__2; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___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*); LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__2___closed__7; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__9___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewAltScope(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_JoinPointFinder_FindState_candidates___default___spec__1(lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_erase___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__1___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__11(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getType___spec__3(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__4(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_HashMapImp_expand___at_Lean_Compiler_LCNF_JoinPointFinder_replace___spec__2(lean_object*, lean_object*); -static lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__3; -LEAN_EXPORT uint8_t l_Lean_HashSetImp_contains___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope___spec__1(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___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_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__3___rarg(lean_object*, 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_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__1(size_t, size_t, lean_object*); static lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__1___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_instInhabitedPUnit; -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope(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_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__4___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__6___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_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__3(lean_object*); +lean_object* l_Lean_HashMap_toArray___at_Lean_Compiler_LCNF_LCtx_toLocalContext___spec__1(lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__9___boxed(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_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__1(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__5(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_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__5(size_t, size_t, lean_object*); static lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__6___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__7(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidate___rarg(lean_object*, 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*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__1___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__4___boxed(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_List_forM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_AltCore_forCodeM___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_List_forM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__7(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_mapFVarM___spec__1___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = l_Lean_instInhabitedExpr; +x_4 = l_instInhabited___rarg(x_1, x_3); +x_5 = lean_panic_fn(x_4, x_2); +return x_5; +} +} +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_mapFVarM___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_panic___at_Lean_Compiler_LCNF_mapFVarM___spec__1___rarg), 2, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +lean_dec(x_1); +x_4 = lean_ctor_get(x_3, 1); +lean_inc(x_4); +lean_dec(x_3); +x_5 = l_Lean_Expr_fvar___override(x_2); +x_6 = lean_apply_2(x_4, lean_box(0), x_5); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_ctor_get(x_4, 1); +lean_inc(x_5); +lean_dec(x_4); +x_6 = l_Lean_Expr_app___override(x_2, x_3); +x_7 = lean_apply_2(x_5, lean_box(0), x_6); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_inc(x_1); +x_6 = l_Lean_Compiler_LCNF_mapFVarM___rarg(x_1, x_2, x_3); +x_7 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__2), 3, 2); +lean_closure_set(x_7, 0, x_1); +lean_closure_set(x_7, 1, x_5); +x_8 = lean_apply_4(x_4, lean_box(0), lean_box(0), x_6, x_7); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_6, 1); +lean_inc(x_7); +lean_dec(x_6); +x_8 = l_Lean_Expr_lam___override(x_2, x_3, x_5, x_4); +x_9 = lean_apply_2(x_7, lean_box(0), x_8); +return x_9; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint8_t x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_inc(x_1); +x_8 = l_Lean_Compiler_LCNF_mapFVarM___rarg(x_1, x_2, x_3); +x_9 = lean_box(x_5); +x_10 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__4___boxed), 5, 4); +lean_closure_set(x_10, 0, x_1); +lean_closure_set(x_10, 1, x_4); +lean_closure_set(x_10, 2, x_7); +lean_closure_set(x_10, 3, x_9); +x_11 = lean_apply_4(x_6, lean_box(0), lean_box(0), x_8, x_10); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__6(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_6, 1); +lean_inc(x_7); +lean_dec(x_6); +x_8 = l_Lean_Expr_forallE___override(x_2, x_3, x_5, x_4); +x_9 = lean_apply_2(x_7, lean_box(0), x_8); +return x_9; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__7(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint8_t x_5, lean_object* x_6, lean_object* x_7) { +_start: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_inc(x_1); +x_8 = l_Lean_Compiler_LCNF_mapFVarM___rarg(x_1, x_2, x_3); +x_9 = lean_box(x_5); +x_10 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__6___boxed), 5, 4); +lean_closure_set(x_10, 0, x_1); +lean_closure_set(x_10, 1, x_4); +lean_closure_set(x_10, 2, x_7); +lean_closure_set(x_10, 3, x_9); +x_11 = lean_apply_4(x_6, lean_box(0), lean_box(0), x_8, x_10); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__8(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint8_t x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_7 = lean_ctor_get(x_1, 0); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_ctor_get(x_7, 1); +lean_inc(x_8); +lean_dec(x_7); +x_9 = l_Lean_Expr_letE___override(x_2, x_3, x_4, x_6, x_5); +x_10 = lean_apply_2(x_8, lean_box(0), x_9); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__9(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_inc(x_1); +x_9 = l_Lean_Compiler_LCNF_mapFVarM___rarg(x_1, x_2, x_3); +x_10 = lean_box(x_6); +x_11 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__8___boxed), 6, 5); +lean_closure_set(x_11, 0, x_1); +lean_closure_set(x_11, 1, x_4); +lean_closure_set(x_11, 2, x_5); +lean_closure_set(x_11, 3, x_8); +lean_closure_set(x_11, 4, x_10); +x_12 = lean_apply_4(x_7, lean_box(0), lean_box(0), x_9, x_11); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__10(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_inc(x_2); +lean_inc(x_1); +x_9 = l_Lean_Compiler_LCNF_mapFVarM___rarg(x_1, x_2, x_3); +x_10 = lean_box(x_6); +lean_inc(x_7); +x_11 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__9___boxed), 8, 7); +lean_closure_set(x_11, 0, x_1); +lean_closure_set(x_11, 1, x_2); +lean_closure_set(x_11, 2, x_4); +lean_closure_set(x_11, 3, x_5); +lean_closure_set(x_11, 4, x_8); +lean_closure_set(x_11, 5, x_10); +lean_closure_set(x_11, 6, x_7); +x_12 = lean_apply_4(x_7, lean_box(0), lean_box(0), x_9, x_11); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__11(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +lean_dec(x_1); +x_6 = lean_ctor_get(x_5, 1); +lean_inc(x_6); +lean_dec(x_5); +x_7 = l_Lean_Expr_proj___override(x_2, x_3, x_4); +x_8 = lean_apply_2(x_6, lean_box(0), x_7); +return x_8; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("Lean.Compiler.LCNF.JoinPoints", 29); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("Lean.Compiler.LCNF.mapFVarM", 27); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("unreachable code has been reached", 33); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__4() { +_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_Compiler_LCNF_mapFVarM___rarg___closed__1; +x_2 = l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__2; +x_3 = lean_unsigned_to_nat(26u); +x_4 = lean_unsigned_to_nat(16u); +x_5 = l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__3; +x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +switch (lean_obj_tag(x_3)) { +case 1: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +lean_dec(x_3); +x_5 = lean_ctor_get(x_1, 1); +lean_inc(x_5); +x_6 = lean_apply_1(x_2, x_4); +x_7 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__1), 2, 1); +lean_closure_set(x_7, 0, x_1); +x_8 = lean_apply_4(x_5, lean_box(0), lean_box(0), x_6, x_7); +return x_8; +} +case 2: +{ +lean_object* x_9; lean_object* x_10; +lean_dec(x_3); +lean_dec(x_2); +x_9 = l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__4; +x_10 = l_panic___at_Lean_Compiler_LCNF_mapFVarM___spec__1___rarg(x_1, x_9); +return x_10; +} +case 5: +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_11 = lean_ctor_get(x_3, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_3, 1); +lean_inc(x_12); +lean_dec(x_3); +x_13 = lean_ctor_get(x_1, 1); +lean_inc(x_13); +lean_inc(x_2); +lean_inc(x_1); +x_14 = l_Lean_Compiler_LCNF_mapFVarM___rarg(x_1, x_2, x_11); +lean_inc(x_13); +x_15 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__3), 5, 4); +lean_closure_set(x_15, 0, x_1); +lean_closure_set(x_15, 1, x_2); +lean_closure_set(x_15, 2, x_12); +lean_closure_set(x_15, 3, x_13); +x_16 = lean_apply_4(x_13, lean_box(0), lean_box(0), x_14, x_15); +return x_16; +} +case 6: +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_17 = lean_ctor_get(x_3, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_3, 1); +lean_inc(x_18); +x_19 = lean_ctor_get(x_3, 2); +lean_inc(x_19); +x_20 = lean_ctor_get_uint8(x_3, sizeof(void*)*3 + 8); +lean_dec(x_3); +x_21 = lean_ctor_get(x_1, 1); +lean_inc(x_21); +lean_inc(x_2); +lean_inc(x_1); +x_22 = l_Lean_Compiler_LCNF_mapFVarM___rarg(x_1, x_2, x_18); +x_23 = lean_box(x_20); +lean_inc(x_21); +x_24 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__5___boxed), 7, 6); +lean_closure_set(x_24, 0, x_1); +lean_closure_set(x_24, 1, x_2); +lean_closure_set(x_24, 2, x_19); +lean_closure_set(x_24, 3, x_17); +lean_closure_set(x_24, 4, x_23); +lean_closure_set(x_24, 5, x_21); +x_25 = lean_apply_4(x_21, lean_box(0), lean_box(0), x_22, x_24); +return x_25; +} +case 7: +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_26 = lean_ctor_get(x_3, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_3, 1); +lean_inc(x_27); +x_28 = lean_ctor_get(x_3, 2); +lean_inc(x_28); +x_29 = lean_ctor_get_uint8(x_3, sizeof(void*)*3 + 8); +lean_dec(x_3); +x_30 = lean_ctor_get(x_1, 1); +lean_inc(x_30); +lean_inc(x_2); +lean_inc(x_1); +x_31 = l_Lean_Compiler_LCNF_mapFVarM___rarg(x_1, x_2, x_27); +x_32 = lean_box(x_29); +lean_inc(x_30); +x_33 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__7___boxed), 7, 6); +lean_closure_set(x_33, 0, x_1); +lean_closure_set(x_33, 1, x_2); +lean_closure_set(x_33, 2, x_28); +lean_closure_set(x_33, 3, x_26); +lean_closure_set(x_33, 4, x_32); +lean_closure_set(x_33, 5, x_30); +x_34 = lean_apply_4(x_30, lean_box(0), lean_box(0), x_31, x_33); +return x_34; +} +case 8: +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; uint8_t x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_35 = lean_ctor_get(x_3, 0); +lean_inc(x_35); +x_36 = lean_ctor_get(x_3, 1); +lean_inc(x_36); +x_37 = lean_ctor_get(x_3, 2); +lean_inc(x_37); +x_38 = lean_ctor_get(x_3, 3); +lean_inc(x_38); +x_39 = lean_ctor_get_uint8(x_3, sizeof(void*)*4 + 8); +lean_dec(x_3); +x_40 = lean_ctor_get(x_1, 1); +lean_inc(x_40); +lean_inc(x_2); +lean_inc(x_1); +x_41 = l_Lean_Compiler_LCNF_mapFVarM___rarg(x_1, x_2, x_36); +x_42 = lean_box(x_39); +lean_inc(x_40); +x_43 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__10___boxed), 8, 7); +lean_closure_set(x_43, 0, x_1); +lean_closure_set(x_43, 1, x_2); +lean_closure_set(x_43, 2, x_37); +lean_closure_set(x_43, 3, x_38); +lean_closure_set(x_43, 4, x_35); +lean_closure_set(x_43, 5, x_42); +lean_closure_set(x_43, 6, x_40); +x_44 = lean_apply_4(x_40, lean_box(0), lean_box(0), x_41, x_43); +return x_44; +} +case 11: +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_45 = lean_ctor_get(x_3, 0); +lean_inc(x_45); +x_46 = lean_ctor_get(x_3, 1); +lean_inc(x_46); +x_47 = lean_ctor_get(x_3, 2); +lean_inc(x_47); +lean_dec(x_3); +x_48 = lean_ctor_get(x_1, 1); +lean_inc(x_48); +lean_inc(x_1); +x_49 = l_Lean_Compiler_LCNF_mapFVarM___rarg(x_1, x_2, x_47); +x_50 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__11), 4, 3); +lean_closure_set(x_50, 0, x_1); +lean_closure_set(x_50, 1, x_45); +lean_closure_set(x_50, 2, x_46); +x_51 = lean_apply_4(x_48, lean_box(0), lean_box(0), x_49, x_50); +return x_51; +} +default: +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; +lean_dec(x_2); +x_52 = lean_ctor_get(x_1, 0); +lean_inc(x_52); +lean_dec(x_1); +x_53 = lean_ctor_get(x_52, 1); +lean_inc(x_53); +lean_dec(x_52); +x_54 = lean_apply_2(x_53, lean_box(0), x_3); +return x_54; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_mapFVarM___rarg), 3, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +uint8_t x_6; lean_object* x_7; +x_6 = lean_unbox(x_4); +lean_dec(x_4); +x_7 = l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__4(x_1, x_2, x_3, x_6, x_5); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__5___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: +{ +uint8_t x_8; lean_object* x_9; +x_8 = lean_unbox(x_5); +lean_dec(x_5); +x_9 = l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__5(x_1, x_2, x_3, x_4, x_8, x_6, x_7); +return x_9; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +uint8_t x_6; lean_object* x_7; +x_6 = lean_unbox(x_4); +lean_dec(x_4); +x_7 = l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__6(x_1, x_2, x_3, x_6, x_5); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__7___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: +{ +uint8_t x_8; lean_object* x_9; +x_8 = lean_unbox(x_5); +lean_dec(x_5); +x_9 = l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__7(x_1, x_2, x_3, x_4, x_8, x_6, x_7); +return x_9; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__8___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) { +_start: +{ +uint8_t x_7; lean_object* x_8; +x_7 = lean_unbox(x_5); +lean_dec(x_5); +x_8 = l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__8(x_1, x_2, x_3, x_4, x_7, x_6); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__9___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) { +_start: +{ +uint8_t x_9; lean_object* x_10; +x_9 = lean_unbox(x_6); +lean_dec(x_6); +x_10 = l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__9(x_1, x_2, x_3, x_4, x_5, x_9, x_7, x_8); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__10___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) { +_start: +{ +uint8_t x_9; lean_object* x_10; +x_9 = lean_unbox(x_6); +lean_dec(x_6); +x_10 = l_Lean_Compiler_LCNF_mapFVarM___rarg___lambda__10(x_1, x_2, x_3, x_4, x_5, x_9, x_7, x_8); +return x_10; +} +} +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_forFVarM___spec__1___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = l_instInhabitedPUnit; +x_4 = l_instInhabited___rarg(x_1, x_3); +x_5 = lean_panic_fn(x_4, x_2); +return x_5; +} +} +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_forFVarM___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_panic___at_Lean_Compiler_LCNF_forFVarM___spec__1___rarg), 2, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; +x_5 = l_Lean_Compiler_LCNF_forFVarM___rarg(x_1, x_2, x_3); +return x_5; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM___rarg___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) { +_start: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_inc(x_2); +lean_inc(x_1); +x_7 = l_Lean_Compiler_LCNF_forFVarM___rarg(x_1, x_2, x_3); +x_8 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_forFVarM___rarg___lambda__1___boxed), 4, 3); +lean_closure_set(x_8, 0, x_1); +lean_closure_set(x_8, 1, x_2); +lean_closure_set(x_8, 2, x_4); +x_9 = lean_apply_4(x_5, lean_box(0), lean_box(0), x_7, x_8); +return x_9; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_forFVarM___rarg___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("Lean.Compiler.LCNF.forFVarM", 27); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_forFVarM___rarg___closed__2() { +_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_Compiler_LCNF_mapFVarM___rarg___closed__1; +x_2 = l_Lean_Compiler_LCNF_forFVarM___rarg___closed__1; +x_3 = lean_unsigned_to_nat(47u); +x_4 = lean_unsigned_to_nat(16u); +x_5 = l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__3; +x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +switch (lean_obj_tag(x_3)) { +case 1: +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_1); +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +lean_dec(x_3); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +case 2: +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +lean_dec(x_2); +x_6 = l_Lean_Compiler_LCNF_forFVarM___rarg___closed__2; +x_7 = l_panic___at_Lean_Compiler_LCNF_forFVarM___spec__1___rarg(x_1, x_6); +return x_7; +} +case 5: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_8 = lean_ctor_get(x_3, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_3, 1); +lean_inc(x_9); +lean_dec(x_3); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +lean_inc(x_2); +lean_inc(x_1); +x_11 = l_Lean_Compiler_LCNF_forFVarM___rarg(x_1, x_2, x_8); +x_12 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_forFVarM___rarg___lambda__1___boxed), 4, 3); +lean_closure_set(x_12, 0, x_1); +lean_closure_set(x_12, 1, x_2); +lean_closure_set(x_12, 2, x_9); +x_13 = lean_apply_4(x_10, lean_box(0), lean_box(0), x_11, x_12); +return x_13; +} +case 6: +{ +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_3, 1); +lean_inc(x_14); +x_15 = lean_ctor_get(x_3, 2); +lean_inc(x_15); +lean_dec(x_3); +x_16 = lean_ctor_get(x_1, 1); +lean_inc(x_16); +lean_inc(x_2); +lean_inc(x_1); +x_17 = l_Lean_Compiler_LCNF_forFVarM___rarg(x_1, x_2, x_14); +x_18 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_forFVarM___rarg___lambda__1___boxed), 4, 3); +lean_closure_set(x_18, 0, x_1); +lean_closure_set(x_18, 1, x_2); +lean_closure_set(x_18, 2, x_15); +x_19 = lean_apply_4(x_16, lean_box(0), lean_box(0), x_17, x_18); +return x_19; +} +case 7: +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_20 = lean_ctor_get(x_3, 1); +lean_inc(x_20); +x_21 = lean_ctor_get(x_3, 2); +lean_inc(x_21); +lean_dec(x_3); +x_22 = lean_ctor_get(x_1, 1); +lean_inc(x_22); +lean_inc(x_2); +lean_inc(x_1); +x_23 = l_Lean_Compiler_LCNF_forFVarM___rarg(x_1, x_2, x_20); +x_24 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_forFVarM___rarg___lambda__1___boxed), 4, 3); +lean_closure_set(x_24, 0, x_1); +lean_closure_set(x_24, 1, x_2); +lean_closure_set(x_24, 2, x_21); +x_25 = lean_apply_4(x_22, lean_box(0), lean_box(0), x_23, x_24); +return x_25; +} +case 8: +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_26 = lean_ctor_get(x_3, 1); +lean_inc(x_26); +x_27 = lean_ctor_get(x_3, 2); +lean_inc(x_27); +x_28 = lean_ctor_get(x_3, 3); +lean_inc(x_28); +lean_dec(x_3); +x_29 = lean_ctor_get(x_1, 1); +lean_inc(x_29); +lean_inc(x_2); +lean_inc(x_1); +x_30 = l_Lean_Compiler_LCNF_forFVarM___rarg(x_1, x_2, x_26); +lean_inc(x_29); +x_31 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_forFVarM___rarg___lambda__2___boxed), 6, 5); +lean_closure_set(x_31, 0, x_1); +lean_closure_set(x_31, 1, x_2); +lean_closure_set(x_31, 2, x_27); +lean_closure_set(x_31, 3, x_28); +lean_closure_set(x_31, 4, x_29); +x_32 = lean_apply_4(x_29, lean_box(0), lean_box(0), x_30, x_31); +return x_32; +} +case 11: +{ +lean_object* x_33; +x_33 = lean_ctor_get(x_3, 2); +lean_inc(x_33); +lean_dec(x_3); +x_3 = x_33; +goto _start; +} +default: +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; +lean_dec(x_3); +lean_dec(x_2); +x_35 = lean_ctor_get(x_1, 0); +lean_inc(x_35); +lean_dec(x_1); +x_36 = lean_ctor_get(x_35, 1); +lean_inc(x_36); +lean_dec(x_35); +x_37 = lean_box(0); +x_38 = lean_apply_2(x_36, lean_box(0), x_37); +return x_38; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_forFVarM___rarg), 3, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM___rarg___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; +x_5 = l_Lean_Compiler_LCNF_forFVarM___rarg___lambda__1(x_1, x_2, x_3, x_4); +lean_dec(x_4); +return x_5; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM___rarg___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) { +_start: +{ +lean_object* x_7; +x_7 = l_Lean_Compiler_LCNF_forFVarM___rarg___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_6); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_getScope(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10; +x_7 = lean_st_ref_get(x_5, x_6); +x_8 = lean_ctor_get(x_7, 1); +lean_inc(x_8); +lean_dec(x_7); +x_9 = lean_st_ref_get(x_1, x_8); +x_10 = !lean_is_exclusive(x_9); +if (x_10 == 0) +{ +return x_9; +} +else +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_11 = lean_ctor_get(x_9, 0); +x_12 = lean_ctor_get(x_9, 1); +lean_inc(x_12); +lean_inc(x_11); +lean_dec(x_9); +x_13 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_13, 0, x_11); +lean_ctor_set(x_13, 1, x_12); +return x_13; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_getScope___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) { +_start: +{ +lean_object* x_7; +x_7 = l_Lean_Compiler_LCNF_ScopeM_getScope(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_setScope(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; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_st_ref_get(x_6, x_7); +x_9 = lean_ctor_get(x_8, 1); +lean_inc(x_9); +lean_dec(x_8); +x_10 = lean_st_ref_set(x_2, x_1, x_9); +x_11 = !lean_is_exclusive(x_10); +if (x_11 == 0) +{ +return x_10; +} +else +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_12 = lean_ctor_get(x_10, 0); +x_13 = lean_ctor_get(x_10, 1); +lean_inc(x_13); +lean_inc(x_12); +lean_dec(x_10); +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_12); +lean_ctor_set(x_14, 1, x_13); +return x_14; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_setScope___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_Compiler_LCNF_ScopeM_setScope(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); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_clearScope(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; lean_object* x_8; +x_7 = lean_box(0); +x_8 = l_Lean_Compiler_LCNF_ScopeM_setScope(x_7, x_1, x_2, x_3, x_4, x_5, x_6); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_clearScope___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) { +_start: +{ +lean_object* x_7; +x_7 = l_Lean_Compiler_LCNF_ScopeM_clearScope(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_inc(x_1); +return x_1; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_ctor_get(x_1, 0); +lean_inc(x_2); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__3___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__2___boxed), 1, 0); +return x_1; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_6, 0); +lean_inc(x_7); +lean_dec(x_6); +x_8 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_setScope___boxed), 7, 1); +lean_closure_set(x_8, 0, x_5); +x_9 = lean_apply_2(x_2, lean_box(0), x_8); +x_10 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__1___boxed), 2, 1); +lean_closure_set(x_10, 0, x_9); +x_11 = lean_apply_4(x_3, lean_box(0), lean_box(0), x_4, x_10); +x_12 = lean_ctor_get(x_7, 0); +lean_inc(x_12); +lean_dec(x_7); +x_13 = l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__3___closed__1; +x_14 = lean_apply_4(x_12, lean_box(0), lean_box(0), x_13, x_11); +return x_14; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_getScope___boxed), 6, 0); +return x_1; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_5 = lean_ctor_get(x_2, 1); +lean_inc(x_5); +x_6 = l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___closed__1; +lean_inc(x_1); +x_7 = lean_apply_2(x_1, lean_box(0), x_6); +x_8 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__3), 5, 4); +lean_closure_set(x_8, 0, x_2); +lean_closure_set(x_8, 1, x_1); +lean_closure_set(x_8, 2, x_3); +lean_closure_set(x_8, 3, x_4); +x_9 = lean_apply_4(x_5, lean_box(0), lean_box(0), x_7, x_8); +return x_9; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg), 4, 0); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__1(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__2___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__2(x_1); +lean_dec(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ScopeM_withNewScope___rarg___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_clearScope___boxed), 6, 0); +return x_1; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_5 = lean_ctor_get(x_2, 1); +lean_inc(x_5); +x_6 = l_Lean_Compiler_LCNF_ScopeM_withNewScope___rarg___closed__1; +lean_inc(x_1); +x_7 = lean_apply_2(x_1, lean_box(0), x_6); +x_8 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__1___boxed), 2, 1); +lean_closure_set(x_8, 0, x_4); +x_9 = lean_apply_4(x_5, lean_box(0), lean_box(0), x_7, x_8); +x_10 = l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg(x_1, x_2, x_3, x_9); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withNewScope___rarg), 4, 0); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_isInScope(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; uint8_t x_9; +x_8 = l_Lean_Compiler_LCNF_ScopeM_getScope(x_2, x_3, x_4, x_5, x_6, x_7); +x_9 = !lean_is_exclusive(x_8); +if (x_9 == 0) +{ +lean_object* x_10; lean_object* x_11; +x_10 = lean_ctor_get(x_8, 0); +x_11 = l_Lean_RBNode_findCore___at___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_fvarDepOn___spec__1(x_10, x_1); +lean_dec(x_10); +if (lean_obj_tag(x_11) == 0) +{ +uint8_t x_12; lean_object* x_13; +x_12 = 0; +x_13 = lean_box(x_12); +lean_ctor_set(x_8, 0, x_13); +return x_8; +} +else +{ +uint8_t x_14; lean_object* x_15; +lean_dec(x_11); +x_14 = 1; +x_15 = lean_box(x_14); +lean_ctor_set(x_8, 0, x_15); +return x_8; +} +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_16 = lean_ctor_get(x_8, 0); +x_17 = lean_ctor_get(x_8, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_8); +x_18 = l_Lean_RBNode_findCore___at___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_fvarDepOn___spec__1(x_16, x_1); +lean_dec(x_16); +if (lean_obj_tag(x_18) == 0) +{ +uint8_t x_19; lean_object* x_20; lean_object* x_21; +x_19 = 0; +x_20 = lean_box(x_19); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_17); +return x_21; +} +else +{ +uint8_t x_22; lean_object* x_23; lean_object* x_24; +lean_dec(x_18); +x_22 = 1; +x_23 = lean_box(x_22); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_17); +return x_24; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_isInScope___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_Compiler_LCNF_ScopeM_isInScope(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_Compiler_LCNF_ScopeM_addToScope(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_8 = lean_st_ref_get(x_6, x_7); +x_9 = lean_ctor_get(x_8, 1); +lean_inc(x_9); +lean_dec(x_8); +x_10 = lean_st_ref_take(x_2, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +x_13 = lean_box(0); +x_14 = l_Lean_RBNode_insert___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_collectExpr___spec__1(x_11, x_1, x_13); +x_15 = lean_st_ref_set(x_2, x_14, x_12); +x_16 = !lean_is_exclusive(x_15); +if (x_16 == 0) +{ +lean_object* x_17; +x_17 = lean_ctor_get(x_15, 0); +lean_dec(x_17); +lean_ctor_set(x_15, 0, x_13); +return x_15; +} +else +{ +lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_15, 1); +lean_inc(x_18); +lean_dec(x_15); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_13); +lean_ctor_set(x_19, 1, x_18); +return x_19; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_addToScope___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_Compiler_LCNF_ScopeM_addToScope(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); +return x_8; +} +} LEAN_EXPORT lean_object* l_Lean_mkHashSet___at_Lean_Compiler_LCNF_JoinPointFinder_instInhabitedCandidateInfo___spec__1(lean_object* x_1) { _start: { @@ -310,43 +1566,43 @@ lean_dec(x_2); return x_9; } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(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___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(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_object* x_10; lean_object* x_11; uint8_t x_12; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_get(x_3, x_10); -x_12 = !lean_is_exclusive(x_11); -if (x_12 == 0) +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = lean_st_ref_get(x_8, x_9); +x_11 = lean_ctor_get(x_10, 1); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_st_ref_get(x_3, x_11); +x_13 = !lean_is_exclusive(x_12); +if (x_13 == 0) { -lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_13 = lean_ctor_get(x_11, 0); -x_14 = lean_ctor_get(x_13, 0); -lean_inc(x_14); -lean_dec(x_13); -x_15 = l_Lean_HashMapImp_find_x3f___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f___spec__1(x_14, x_1); -lean_ctor_set(x_11, 0, x_15); -return x_11; +lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_14 = lean_ctor_get(x_12, 0); +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +lean_dec(x_14); +x_16 = l_Lean_HashMapImp_find_x3f___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f___spec__1(x_15, x_1); +lean_ctor_set(x_12, 0, x_16); +return x_12; } else { -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_16 = lean_ctor_get(x_11, 0); -x_17 = lean_ctor_get(x_11, 1); -lean_inc(x_17); -lean_inc(x_16); -lean_dec(x_11); -x_18 = lean_ctor_get(x_16, 0); +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_17 = lean_ctor_get(x_12, 0); +x_18 = lean_ctor_get(x_12, 1); lean_inc(x_18); -lean_dec(x_16); -x_19 = l_Lean_HashMapImp_find_x3f___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f___spec__1(x_18, x_1); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_19); -lean_ctor_set(x_20, 1, x_17); -return x_20; +lean_inc(x_17); +lean_dec(x_12); +x_19 = lean_ctor_get(x_17, 0); +lean_inc(x_19); +lean_dec(x_17); +x_20 = l_Lean_HashMapImp_find_x3f___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f___spec__1(x_19, x_1); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_18); +return x_21; } } } @@ -360,18 +1616,19 @@ lean_dec(x_1); return x_3; } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f___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_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f___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) { _start: { -lean_object* x_9; -x_9 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; +x_10 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); -return x_9; +return x_10; } } LEAN_EXPORT uint8_t l_Lean_AssocList_contains___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__2(lean_object* x_1, lean_object* x_2) { @@ -528,104 +1785,109 @@ return x_22; } } } -LEAN_EXPORT lean_object* l_List_forM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__4(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_List_forM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__4(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: { if (lean_obj_tag(x_1) == 0) { -lean_object* x_9; lean_object* x_10; +lean_object* x_10; lean_object* x_11; +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); -x_9 = lean_box(0); -x_10 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_10, 0, x_9); -lean_ctor_set(x_10, 1, x_8); -return x_10; +x_10 = lean_box(0); +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_10); +lean_ctor_set(x_11, 1, x_9); +return x_11; } else { -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_11 = lean_ctor_get(x_1, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_1, 1); +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_12 = lean_ctor_get(x_1, 0); lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 1); +lean_inc(x_13); lean_dec(x_1); +lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_13 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -x_14 = lean_ctor_get(x_13, 1); -lean_inc(x_14); -lean_dec(x_13); -x_1 = x_12; -x_8 = x_14; +x_14 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_12, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_15 = lean_ctor_get(x_14, 1); +lean_inc(x_15); +lean_dec(x_14); +x_1 = x_13; +x_9 = x_15; goto _start; } } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5(lean_object* x_1, size_t x_2, size_t 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_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5(lean_object* x_1, size_t x_2, size_t 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: { -uint8_t x_12; -x_12 = lean_usize_dec_eq(x_2, x_3); -if (x_12 == 0) +uint8_t x_13; +x_13 = lean_usize_dec_eq(x_2, x_3); +if (x_13 == 0) { -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; size_t x_17; size_t x_18; +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; lean_dec(x_4); -x_13 = lean_array_uget(x_1, x_2); +x_14 = lean_array_uget(x_1, x_2); +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_14 = l_List_forM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__4(x_13, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); +x_15 = l_List_forM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__4(x_14, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +x_16 = lean_ctor_get(x_15, 0); lean_inc(x_16); -lean_dec(x_14); -x_17 = 1; -x_18 = lean_usize_add(x_2, x_17); -x_2 = x_18; -x_4 = x_15; -x_11 = x_16; +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +x_18 = 1; +x_19 = lean_usize_add(x_2, x_18); +x_2 = x_19; +x_4 = x_16; +x_12 = x_17; goto _start; } else { -lean_object* x_20; +lean_object* x_21; +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_4); -lean_ctor_set(x_20, 1, x_11); -return x_20; +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_4); +lean_ctor_set(x_21, 1, x_12); +return x_21; } } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(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___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(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_object* x_10; +lean_object* x_10; lean_object* x_11; lean_inc(x_1); -x_9 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -if (lean_obj_tag(x_10) == 0) +x_10 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +if (lean_obj_tag(x_11) == 0) { -uint8_t x_11; +uint8_t x_12; +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -633,278 +1895,284 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_11 = !lean_is_exclusive(x_9); -if (x_11 == 0) +x_12 = !lean_is_exclusive(x_10); +if (x_12 == 0) { -lean_object* x_12; lean_object* x_13; -x_12 = lean_ctor_get(x_9, 0); -lean_dec(x_12); -x_13 = lean_box(0); -lean_ctor_set(x_9, 0, x_13); -return x_9; +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_10, 0); +lean_dec(x_13); +x_14 = lean_box(0); +lean_ctor_set(x_10, 0, x_14); +return x_10; } else { -lean_object* x_14; lean_object* x_15; lean_object* x_16; -x_14 = lean_ctor_get(x_9, 1); -lean_inc(x_14); -lean_dec(x_9); -x_15 = lean_box(0); -x_16 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_16, 0, x_15); -lean_ctor_set(x_16, 1, x_14); -return x_16; +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_ctor_get(x_10, 1); +lean_inc(x_15); +lean_dec(x_10); +x_16 = lean_box(0); +x_17 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_17, 0, x_16); +lean_ctor_set(x_17, 1, x_15); +return x_17; } } else { -lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; -x_17 = lean_ctor_get(x_9, 1); -lean_inc(x_17); -lean_dec(x_9); -x_18 = lean_ctor_get(x_10, 0); +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; uint8_t x_25; +x_18 = lean_ctor_get(x_10, 1); lean_inc(x_18); lean_dec(x_10); -x_19 = lean_st_ref_get(x_7, x_17); -x_20 = lean_ctor_get(x_19, 1); -lean_inc(x_20); -lean_dec(x_19); -x_21 = lean_st_ref_take(x_3, x_20); -x_22 = lean_ctor_get(x_21, 0); -lean_inc(x_22); -x_23 = lean_ctor_get(x_21, 1); +x_19 = lean_ctor_get(x_11, 0); +lean_inc(x_19); +lean_dec(x_11); +x_20 = lean_st_ref_get(x_8, x_18); +x_21 = lean_ctor_get(x_20, 1); +lean_inc(x_21); +lean_dec(x_20); +x_22 = lean_st_ref_take(x_3, x_21); +x_23 = lean_ctor_get(x_22, 0); lean_inc(x_23); -lean_dec(x_21); -x_24 = !lean_is_exclusive(x_22); -if (x_24 == 0) -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; -x_25 = lean_ctor_get(x_22, 0); -x_26 = l_Lean_HashMapImp_erase___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__1(x_25, x_1); -lean_dec(x_1); -lean_ctor_set(x_22, 0, x_26); -x_27 = lean_st_ref_set(x_3, x_22, x_23); -x_28 = !lean_is_exclusive(x_27); -if (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; uint8_t x_35; -x_29 = lean_ctor_get(x_27, 1); -x_30 = lean_ctor_get(x_27, 0); -lean_dec(x_30); -x_31 = lean_ctor_get(x_18, 1); -lean_inc(x_31); -lean_dec(x_18); -x_32 = lean_ctor_get(x_31, 1); -lean_inc(x_32); -lean_dec(x_31); -x_33 = lean_array_get_size(x_32); -x_34 = lean_unsigned_to_nat(0u); -x_35 = lean_nat_dec_lt(x_34, x_33); -if (x_35 == 0) -{ -lean_object* x_36; -lean_dec(x_33); -lean_dec(x_32); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_36 = lean_box(0); -lean_ctor_set(x_27, 0, x_36); -return x_27; -} -else -{ -uint8_t x_37; -x_37 = lean_nat_dec_le(x_33, x_33); -if (x_37 == 0) -{ -lean_object* x_38; -lean_dec(x_33); -lean_dec(x_32); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_38 = lean_box(0); -lean_ctor_set(x_27, 0, x_38); -return x_27; -} -else -{ -size_t x_39; size_t x_40; lean_object* x_41; lean_object* x_42; -lean_free_object(x_27); -x_39 = 0; -x_40 = lean_usize_of_nat(x_33); -lean_dec(x_33); -x_41 = lean_box(0); -x_42 = l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5(x_32, x_39, x_40, x_41, x_2, x_3, x_4, x_5, x_6, x_7, x_29); -lean_dec(x_32); -return x_42; -} -} -} -else -{ -lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; uint8_t x_48; -x_43 = lean_ctor_get(x_27, 1); -lean_inc(x_43); -lean_dec(x_27); -x_44 = lean_ctor_get(x_18, 1); -lean_inc(x_44); -lean_dec(x_18); -x_45 = lean_ctor_get(x_44, 1); -lean_inc(x_45); -lean_dec(x_44); -x_46 = lean_array_get_size(x_45); -x_47 = lean_unsigned_to_nat(0u); -x_48 = lean_nat_dec_lt(x_47, x_46); -if (x_48 == 0) -{ -lean_object* x_49; lean_object* x_50; -lean_dec(x_46); -lean_dec(x_45); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_49 = lean_box(0); -x_50 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_50, 0, x_49); -lean_ctor_set(x_50, 1, x_43); -return x_50; -} -else -{ -uint8_t x_51; -x_51 = lean_nat_dec_le(x_46, x_46); -if (x_51 == 0) -{ -lean_object* x_52; lean_object* x_53; -lean_dec(x_46); -lean_dec(x_45); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_52 = lean_box(0); -x_53 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_53, 0, x_52); -lean_ctor_set(x_53, 1, x_43); -return x_53; -} -else -{ -size_t x_54; size_t x_55; lean_object* x_56; lean_object* x_57; -x_54 = 0; -x_55 = lean_usize_of_nat(x_46); -lean_dec(x_46); -x_56 = lean_box(0); -x_57 = l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5(x_45, x_54, x_55, x_56, x_2, x_3, x_4, x_5, x_6, x_7, x_43); -lean_dec(x_45); -return x_57; -} -} -} -} -else -{ -lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; uint8_t x_69; -x_58 = lean_ctor_get(x_22, 0); -x_59 = lean_ctor_get(x_22, 1); -lean_inc(x_59); -lean_inc(x_58); +x_24 = lean_ctor_get(x_22, 1); +lean_inc(x_24); lean_dec(x_22); -x_60 = l_Lean_HashMapImp_erase___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__1(x_58, x_1); +x_25 = !lean_is_exclusive(x_23); +if (x_25 == 0) +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; +x_26 = lean_ctor_get(x_23, 0); +x_27 = l_Lean_HashMapImp_erase___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__1(x_26, x_1); lean_dec(x_1); -x_61 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_61, 0, x_60); -lean_ctor_set(x_61, 1, x_59); -x_62 = lean_st_ref_set(x_3, x_61, x_23); -x_63 = lean_ctor_get(x_62, 1); -lean_inc(x_63); -if (lean_is_exclusive(x_62)) { - lean_ctor_release(x_62, 0); - lean_ctor_release(x_62, 1); - x_64 = x_62; -} else { - lean_dec_ref(x_62); - x_64 = lean_box(0); +lean_ctor_set(x_23, 0, x_27); +x_28 = lean_st_ref_set(x_3, x_23, x_24); +x_29 = !lean_is_exclusive(x_28); +if (x_29 == 0) +{ +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; +x_30 = lean_ctor_get(x_28, 1); +x_31 = lean_ctor_get(x_28, 0); +lean_dec(x_31); +x_32 = lean_ctor_get(x_19, 1); +lean_inc(x_32); +lean_dec(x_19); +x_33 = lean_ctor_get(x_32, 1); +lean_inc(x_33); +lean_dec(x_32); +x_34 = lean_array_get_size(x_33); +x_35 = lean_unsigned_to_nat(0u); +x_36 = lean_nat_dec_lt(x_35, x_34); +if (x_36 == 0) +{ +lean_object* x_37; +lean_dec(x_34); +lean_dec(x_33); +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); +x_37 = lean_box(0); +lean_ctor_set(x_28, 0, x_37); +return x_28; } -x_65 = lean_ctor_get(x_18, 1); -lean_inc(x_65); -lean_dec(x_18); -x_66 = lean_ctor_get(x_65, 1); +else +{ +uint8_t x_38; +x_38 = lean_nat_dec_le(x_34, x_34); +if (x_38 == 0) +{ +lean_object* x_39; +lean_dec(x_34); +lean_dec(x_33); +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); +x_39 = lean_box(0); +lean_ctor_set(x_28, 0, x_39); +return x_28; +} +else +{ +size_t x_40; size_t x_41; lean_object* x_42; lean_object* x_43; +lean_free_object(x_28); +x_40 = 0; +x_41 = lean_usize_of_nat(x_34); +lean_dec(x_34); +x_42 = lean_box(0); +x_43 = l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5(x_33, x_40, x_41, x_42, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_30); +lean_dec(x_33); +return x_43; +} +} +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; uint8_t x_49; +x_44 = lean_ctor_get(x_28, 1); +lean_inc(x_44); +lean_dec(x_28); +x_45 = lean_ctor_get(x_19, 1); +lean_inc(x_45); +lean_dec(x_19); +x_46 = lean_ctor_get(x_45, 1); +lean_inc(x_46); +lean_dec(x_45); +x_47 = lean_array_get_size(x_46); +x_48 = lean_unsigned_to_nat(0u); +x_49 = lean_nat_dec_lt(x_48, x_47); +if (x_49 == 0) +{ +lean_object* x_50; lean_object* x_51; +lean_dec(x_47); +lean_dec(x_46); +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); +x_50 = lean_box(0); +x_51 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_51, 0, x_50); +lean_ctor_set(x_51, 1, x_44); +return x_51; +} +else +{ +uint8_t x_52; +x_52 = lean_nat_dec_le(x_47, x_47); +if (x_52 == 0) +{ +lean_object* x_53; lean_object* x_54; +lean_dec(x_47); +lean_dec(x_46); +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); +x_53 = lean_box(0); +x_54 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_54, 0, x_53); +lean_ctor_set(x_54, 1, x_44); +return x_54; +} +else +{ +size_t x_55; size_t x_56; lean_object* x_57; lean_object* x_58; +x_55 = 0; +x_56 = lean_usize_of_nat(x_47); +lean_dec(x_47); +x_57 = lean_box(0); +x_58 = l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5(x_46, x_55, x_56, x_57, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_44); +lean_dec(x_46); +return x_58; +} +} +} +} +else +{ +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; uint8_t x_70; +x_59 = lean_ctor_get(x_23, 0); +x_60 = lean_ctor_get(x_23, 1); +lean_inc(x_60); +lean_inc(x_59); +lean_dec(x_23); +x_61 = l_Lean_HashMapImp_erase___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__1(x_59, x_1); +lean_dec(x_1); +x_62 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_62, 0, x_61); +lean_ctor_set(x_62, 1, x_60); +x_63 = lean_st_ref_set(x_3, x_62, x_24); +x_64 = lean_ctor_get(x_63, 1); +lean_inc(x_64); +if (lean_is_exclusive(x_63)) { + lean_ctor_release(x_63, 0); + lean_ctor_release(x_63, 1); + x_65 = x_63; +} else { + lean_dec_ref(x_63); + x_65 = lean_box(0); +} +x_66 = lean_ctor_get(x_19, 1); lean_inc(x_66); +lean_dec(x_19); +x_67 = lean_ctor_get(x_66, 1); +lean_inc(x_67); +lean_dec(x_66); +x_68 = lean_array_get_size(x_67); +x_69 = lean_unsigned_to_nat(0u); +x_70 = lean_nat_dec_lt(x_69, x_68); +if (x_70 == 0) +{ +lean_object* x_71; lean_object* x_72; +lean_dec(x_68); +lean_dec(x_67); +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); +x_71 = lean_box(0); +if (lean_is_scalar(x_65)) { + x_72 = lean_alloc_ctor(0, 2, 0); +} else { + x_72 = x_65; +} +lean_ctor_set(x_72, 0, x_71); +lean_ctor_set(x_72, 1, x_64); +return x_72; +} +else +{ +uint8_t x_73; +x_73 = lean_nat_dec_le(x_68, x_68); +if (x_73 == 0) +{ +lean_object* x_74; lean_object* x_75; +lean_dec(x_68); +lean_dec(x_67); +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); +x_74 = lean_box(0); +if (lean_is_scalar(x_65)) { + x_75 = lean_alloc_ctor(0, 2, 0); +} else { + x_75 = x_65; +} +lean_ctor_set(x_75, 0, x_74); +lean_ctor_set(x_75, 1, x_64); +return x_75; +} +else +{ +size_t x_76; size_t x_77; lean_object* x_78; lean_object* x_79; lean_dec(x_65); -x_67 = lean_array_get_size(x_66); -x_68 = lean_unsigned_to_nat(0u); -x_69 = lean_nat_dec_lt(x_68, x_67); -if (x_69 == 0) -{ -lean_object* x_70; lean_object* x_71; +x_76 = 0; +x_77 = lean_usize_of_nat(x_68); +lean_dec(x_68); +x_78 = lean_box(0); +x_79 = l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5(x_67, x_76, x_77, x_78, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_64); lean_dec(x_67); -lean_dec(x_66); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_70 = lean_box(0); -if (lean_is_scalar(x_64)) { - x_71 = lean_alloc_ctor(0, 2, 0); -} else { - x_71 = x_64; -} -lean_ctor_set(x_71, 0, x_70); -lean_ctor_set(x_71, 1, x_63); -return x_71; -} -else -{ -uint8_t x_72; -x_72 = lean_nat_dec_le(x_67, x_67); -if (x_72 == 0) -{ -lean_object* x_73; lean_object* x_74; -lean_dec(x_67); -lean_dec(x_66); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_73 = lean_box(0); -if (lean_is_scalar(x_64)) { - x_74 = lean_alloc_ctor(0, 2, 0); -} else { - x_74 = x_64; -} -lean_ctor_set(x_74, 0, x_73); -lean_ctor_set(x_74, 1, x_63); -return x_74; -} -else -{ -size_t x_75; size_t x_76; lean_object* x_77; lean_object* x_78; -lean_dec(x_64); -x_75 = 0; -x_76 = lean_usize_of_nat(x_67); -lean_dec(x_67); -x_77 = lean_box(0); -x_78 = l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5(x_66, x_75, x_76, x_77, x_2, x_3, x_4, x_5, x_6, x_7, x_63); -lean_dec(x_66); -return x_78; +return x_79; } } } @@ -940,114 +2208,115 @@ lean_dec(x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5___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_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5___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_12; size_t x_13; lean_object* x_14; -x_12 = lean_unbox_usize(x_2); +size_t x_13; size_t x_14; lean_object* x_15; +x_13 = lean_unbox_usize(x_2); lean_dec(x_2); -x_13 = lean_unbox_usize(x_3); +x_14 = lean_unbox_usize(x_3); lean_dec(x_3); -x_14 = l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5(x_1, x_12, x_13, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +x_15 = l_Array_foldlMUnsafe_fold___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate___spec__5(x_1, x_13, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); lean_dec(x_1); -return x_14; +return x_15; } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates(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___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates(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_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_take(x_3, x_10); -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_10 = lean_st_ref_get(x_8, x_9); +x_11 = lean_ctor_get(x_10, 1); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_st_ref_take(x_3, x_11); +x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); -lean_dec(x_11); -x_14 = !lean_is_exclusive(x_12); -if (x_14 == 0) -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; -x_15 = lean_ctor_get(x_12, 0); -x_16 = lean_apply_1(x_1, x_15); -lean_ctor_set(x_12, 0, x_16); -x_17 = lean_st_ref_set(x_3, x_12, x_13); -x_18 = !lean_is_exclusive(x_17); -if (x_18 == 0) -{ -lean_object* x_19; lean_object* x_20; -x_19 = lean_ctor_get(x_17, 0); -lean_dec(x_19); -x_20 = lean_box(0); -lean_ctor_set(x_17, 0, x_20); -return x_17; -} -else -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_17, 1); -lean_inc(x_21); -lean_dec(x_17); -x_22 = lean_box(0); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_21); -return x_23; -} -} -else -{ -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; lean_object* x_32; -x_24 = lean_ctor_get(x_12, 0); -x_25 = lean_ctor_get(x_12, 1); -lean_inc(x_25); -lean_inc(x_24); +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); lean_dec(x_12); -x_26 = lean_apply_1(x_1, x_24); -x_27 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_27, 0, x_26); -lean_ctor_set(x_27, 1, x_25); -x_28 = lean_st_ref_set(x_3, x_27, x_13); -x_29 = lean_ctor_get(x_28, 1); -lean_inc(x_29); -if (lean_is_exclusive(x_28)) { - lean_ctor_release(x_28, 0); - lean_ctor_release(x_28, 1); - x_30 = x_28; +x_15 = !lean_is_exclusive(x_13); +if (x_15 == 0) +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_16 = lean_ctor_get(x_13, 0); +x_17 = lean_apply_1(x_1, x_16); +lean_ctor_set(x_13, 0, x_17); +x_18 = lean_st_ref_set(x_3, x_13, x_14); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) +{ +lean_object* x_20; lean_object* x_21; +x_20 = lean_ctor_get(x_18, 0); +lean_dec(x_20); +x_21 = lean_box(0); +lean_ctor_set(x_18, 0, x_21); +return x_18; +} +else +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_18, 1); +lean_inc(x_22); +lean_dec(x_18); +x_23 = lean_box(0); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_22); +return x_24; +} +} +else +{ +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; lean_object* x_32; lean_object* x_33; +x_25 = lean_ctor_get(x_13, 0); +x_26 = lean_ctor_get(x_13, 1); +lean_inc(x_26); +lean_inc(x_25); +lean_dec(x_13); +x_27 = lean_apply_1(x_1, x_25); +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_26); +x_29 = lean_st_ref_set(x_3, x_28, x_14); +x_30 = lean_ctor_get(x_29, 1); +lean_inc(x_30); +if (lean_is_exclusive(x_29)) { + lean_ctor_release(x_29, 0); + lean_ctor_release(x_29, 1); + x_31 = x_29; } else { - lean_dec_ref(x_28); - x_30 = lean_box(0); + lean_dec_ref(x_29); + x_31 = lean_box(0); } -x_31 = lean_box(0); -if (lean_is_scalar(x_30)) { - x_32 = lean_alloc_ctor(0, 2, 0); +x_32 = lean_box(0); +if (lean_is_scalar(x_31)) { + x_33 = lean_alloc_ctor(0, 2, 0); } else { - x_32 = x_30; + x_33 = x_31; } -lean_ctor_set(x_32, 0, x_31); -lean_ctor_set(x_32, 1, x_29); -return x_32; +lean_ctor_set(x_33, 0, x_32); +lean_ctor_set(x_33, 1, x_30); +return x_33; } } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates___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_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates___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) { _start: { -lean_object* x_9; -x_9 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; +x_10 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); -return x_9; +return x_10; } } -static lean_object* _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__1() { +static lean_object* _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__1() { _start: { lean_object* x_1; lean_object* x_2; @@ -1056,193 +2325,415 @@ x_2 = l_ReaderT_instMonadReaderT___rarg(x_1); return x_2; } } -static lean_object* _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__2() { +static lean_object* _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__1; +x_1 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__1; x_2 = l_ReaderT_instMonadReaderT___rarg(x_1); return x_2; } } -static lean_object* _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__3() { +static lean_object* _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__2; +x_1 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__2; x_2 = l_ReaderT_instMonadReaderT___rarg(x_1); return x_2; } } -static lean_object* _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__4() { +static lean_object* _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__3; +x_2 = l_ReaderT_instMonadReaderT___rarg(x_1); +return x_2; +} +} +static lean_object* _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__4; +x_2 = l_ReaderT_instMonadReaderT___rarg(x_1); +return x_2; +} +} +static lean_object* _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__3; +x_1 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__5; x_2 = l_instInhabitedPUnit; x_3 = l_instInhabited___rarg(x_1, x_2); return x_3; } } -static lean_object* _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__5() { +LEAN_EXPORT lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__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) { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__4; -x_2 = lean_alloc_closure((void*)(l_instInhabitedReaderT___rarg___boxed), 2, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__6; +x_11 = lean_panic_fn(x_10, x_1); +x_12 = lean_apply_8(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_12; } } -LEAN_EXPORT lean_object* l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__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_EXPORT lean_object* l_Lean_Compiler_LCNF_forFVarM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__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_9; lean_object* x_10; lean_object* x_11; -x_9 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__5; -x_10 = lean_panic_fn(x_9, x_1); -x_11 = lean_apply_7(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_11; +switch (lean_obj_tag(x_2)) { +case 1: +{ +lean_object* x_11; lean_object* x_12; +x_11 = lean_ctor_get(x_2, 0); +lean_inc(x_11); +lean_dec(x_2); +x_12 = lean_apply_9(x_1, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_12; +} +case 2: +{ +lean_object* x_13; lean_object* x_14; +lean_dec(x_2); +lean_dec(x_1); +x_13 = l_Lean_Compiler_LCNF_forFVarM___rarg___closed__2; +x_14 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2(x_13, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_14; +} +case 5: +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_ctor_get(x_2, 0); +lean_inc(x_15); +x_16 = lean_ctor_get(x_2, 1); +lean_inc(x_16); +lean_dec(x_2); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_1); +x_17 = l_Lean_Compiler_LCNF_forFVarM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1(x_1, x_15, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_17) == 0) +{ +lean_object* x_18; +x_18 = lean_ctor_get(x_17, 1); +lean_inc(x_18); +lean_dec(x_17); +x_2 = x_16; +x_10 = x_18; +goto _start; +} +else +{ +uint8_t x_20; +lean_dec(x_16); +lean_dec(x_9); +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_1); +x_20 = !lean_is_exclusive(x_17); +if (x_20 == 0) +{ +return x_17; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_17, 0); +x_22 = lean_ctor_get(x_17, 1); +lean_inc(x_22); +lean_inc(x_21); +lean_dec(x_17); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_21); +lean_ctor_set(x_23, 1, x_22); +return x_23; +} +} +} +case 6: +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_2, 1); +lean_inc(x_24); +x_25 = lean_ctor_get(x_2, 2); +lean_inc(x_25); +lean_dec(x_2); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_1); +x_26 = l_Lean_Compiler_LCNF_forFVarM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1(x_1, x_24, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_26) == 0) +{ +lean_object* x_27; +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_2 = x_25; +x_10 = x_27; +goto _start; +} +else +{ +uint8_t x_29; +lean_dec(x_25); +lean_dec(x_9); +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_1); +x_29 = !lean_is_exclusive(x_26); +if (x_29 == 0) +{ +return x_26; +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_26, 0); +x_31 = lean_ctor_get(x_26, 1); +lean_inc(x_31); +lean_inc(x_30); +lean_dec(x_26); +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; +} +} +} +case 7: +{ +lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_33 = lean_ctor_get(x_2, 1); +lean_inc(x_33); +x_34 = lean_ctor_get(x_2, 2); +lean_inc(x_34); +lean_dec(x_2); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_1); +x_35 = l_Lean_Compiler_LCNF_forFVarM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1(x_1, x_33, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_35) == 0) +{ +lean_object* x_36; +x_36 = lean_ctor_get(x_35, 1); +lean_inc(x_36); +lean_dec(x_35); +x_2 = x_34; +x_10 = x_36; +goto _start; +} +else +{ +uint8_t x_38; +lean_dec(x_34); +lean_dec(x_9); +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_1); +x_38 = !lean_is_exclusive(x_35); +if (x_38 == 0) +{ +return x_35; +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_39 = lean_ctor_get(x_35, 0); +x_40 = lean_ctor_get(x_35, 1); +lean_inc(x_40); +lean_inc(x_39); +lean_dec(x_35); +x_41 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_41, 0, x_39); +lean_ctor_set(x_41, 1, x_40); +return x_41; +} +} +} +case 8: +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_42 = lean_ctor_get(x_2, 1); +lean_inc(x_42); +x_43 = lean_ctor_get(x_2, 2); +lean_inc(x_43); +x_44 = lean_ctor_get(x_2, 3); +lean_inc(x_44); +lean_dec(x_2); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_1); +x_45 = l_Lean_Compiler_LCNF_forFVarM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1(x_1, x_42, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_45) == 0) +{ +lean_object* x_46; lean_object* x_47; +x_46 = lean_ctor_get(x_45, 1); +lean_inc(x_46); +lean_dec(x_45); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_1); +x_47 = l_Lean_Compiler_LCNF_forFVarM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1(x_1, x_43, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_46); +if (lean_obj_tag(x_47) == 0) +{ +lean_object* x_48; +x_48 = lean_ctor_get(x_47, 1); +lean_inc(x_48); +lean_dec(x_47); +x_2 = x_44; +x_10 = x_48; +goto _start; +} +else +{ +uint8_t x_50; +lean_dec(x_44); +lean_dec(x_9); +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_1); +x_50 = !lean_is_exclusive(x_47); +if (x_50 == 0) +{ +return x_47; +} +else +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; +x_51 = lean_ctor_get(x_47, 0); +x_52 = lean_ctor_get(x_47, 1); +lean_inc(x_52); +lean_inc(x_51); +lean_dec(x_47); +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; +} +} +} +else +{ +uint8_t x_54; +lean_dec(x_44); +lean_dec(x_43); +lean_dec(x_9); +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_1); +x_54 = !lean_is_exclusive(x_45); +if (x_54 == 0) +{ +return x_45; +} +else +{ +lean_object* x_55; lean_object* x_56; lean_object* x_57; +x_55 = lean_ctor_get(x_45, 0); +x_56 = lean_ctor_get(x_45, 1); +lean_inc(x_56); +lean_inc(x_55); +lean_dec(x_45); +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; +} +} +} +case 11: +{ +lean_object* x_58; +x_58 = lean_ctor_get(x_2, 2); +lean_inc(x_58); +lean_dec(x_2); +x_2 = x_58; +goto _start; +} +default: +{ +lean_object* x_60; lean_object* x_61; +lean_dec(x_9); +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_60 = lean_box(0); +x_61 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_61, 0, x_60); +lean_ctor_set(x_61, 1, x_10); +return x_61; +} +} } } static lean_object* _init_l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__1() { _start: { lean_object* x_1; -x_1 = lean_mk_string_from_bytes("Lean.Compiler.LCNF.JoinPoints", 29); +x_1 = lean_alloc_closure((void*)(l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate), 9, 0); return x_1; } } -static lean_object* _init_l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__2() { +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn(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_1; -x_1 = lean_mk_string_from_bytes("_private.Lean.Compiler.LCNF.JoinPoints.0.Lean.Compiler.LCNF.JoinPointFinder.removeCandidatesContainedIn", 103); -return x_1; -} -} -static lean_object* _init_l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("unreachable code has been reached", 33); -return x_1; -} -} -static lean_object* _init_l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__4() { -_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___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__1; -x_2 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__2; -x_3 = lean_unsigned_to_nat(82u); -x_4 = lean_unsigned_to_nat(16u); -x_5 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__3; -x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); -return x_6; -} -} -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn(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: -{ -switch (lean_obj_tag(x_1)) { -case 1: -{ -lean_object* x_9; lean_object* x_10; -x_9 = lean_ctor_get(x_1, 0); -lean_inc(x_9); -lean_dec(x_1); -x_10 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_9, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_10; -} -case 2: -{ -lean_object* x_11; lean_object* x_12; -lean_dec(x_1); -x_11 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__4; -x_12 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_12; -} -case 5: -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_13 = lean_ctor_get(x_1, 0); -lean_inc(x_13); -x_14 = lean_ctor_get(x_1, 1); -lean_inc(x_14); -lean_dec(x_1); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -lean_inc(x_2); -x_15 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn(x_13, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_15) == 0) -{ -lean_object* x_16; -x_16 = lean_ctor_get(x_15, 1); -lean_inc(x_16); -lean_dec(x_15); -x_1 = x_14; -x_8 = x_16; -goto _start; -} -else -{ -uint8_t x_18; -lean_dec(x_14); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_18 = !lean_is_exclusive(x_15); -if (x_18 == 0) -{ -return x_15; -} -else -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_15, 0); -x_20 = lean_ctor_get(x_15, 1); -lean_inc(x_20); -lean_inc(x_19); -lean_dec(x_15); -x_21 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_21, 0, x_19); -lean_ctor_set(x_21, 1, x_20); -return x_21; -} -} -} -case 11: -{ -lean_object* x_22; -x_22 = lean_ctor_get(x_1, 2); -lean_inc(x_22); -lean_dec(x_1); -x_1 = x_22; -goto _start; -} -default: -{ -lean_object* x_24; lean_object* x_25; -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_24 = lean_box(0); -x_25 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_25, 0, x_24); -lean_ctor_set(x_25, 1, x_8); -return x_25; -} -} +lean_object* x_10; lean_object* x_11; +x_10 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__1; +x_11 = l_Lean_Compiler_LCNF_forFVarM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1(x_10, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_11; } } LEAN_EXPORT lean_object* l_Lean_AssocList_foldlM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate___spec__4(lean_object* x_1, lean_object* x_2) { @@ -1544,33 +3035,34 @@ x_4 = l_Lean_HashMap_insert___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean return x_4; } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate(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___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate(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; lean_object* x_12; lean_object* x_13; -x_10 = l_Lean_Compiler_LCNF_JoinPointFinder_FindState_scope___default___closed__1; -x_11 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_11, 0, x_2); -lean_ctor_set(x_11, 1, x_10); -x_12 = lean_alloc_closure((void*)(l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate___lambda__1), 3, 2); -lean_closure_set(x_12, 0, x_1); -lean_closure_set(x_12, 1, x_11); -x_13 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates(x_12, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_13; +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_11 = l_Lean_Compiler_LCNF_JoinPointFinder_FindState_scope___default___closed__1; +x_12 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_12, 0, x_2); +lean_ctor_set(x_12, 1, x_11); +x_13 = lean_alloc_closure((void*)(l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate___lambda__1), 3, 2); +lean_closure_set(x_13, 0, x_1); +lean_closure_set(x_13, 1, x_12); +x_14 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates(x_13, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_14; } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate___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_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate___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) { _start: { -lean_object* x_10; -x_10 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_object* x_11; +x_11 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -return x_10; +return x_11; } } LEAN_EXPORT uint8_t l_List_elem___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___spec__2(lean_object* x_1, lean_object* x_2) { @@ -1910,45 +3402,46 @@ return x_13; } } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(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___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(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; +lean_object* x_11; lean_object* x_12; lean_inc(x_2); -x_10 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -if (lean_obj_tag(x_11) == 0) -{ -lean_object* x_12; lean_object* x_13; -lean_dec(x_2); -x_12 = lean_ctor_get(x_10, 1); +x_11 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +x_12 = lean_ctor_get(x_11, 0); lean_inc(x_12); -lean_dec(x_10); -x_13 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_12); -return x_13; +if (lean_obj_tag(x_12) == 0) +{ +lean_object* x_13; lean_object* x_14; +lean_dec(x_2); +x_13 = lean_ctor_get(x_11, 1); +lean_inc(x_13); +lean_dec(x_11); +x_14 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_13); +return x_14; } else { -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_14 = lean_ctor_get(x_10, 1); -lean_inc(x_14); -lean_dec(x_10); -x_15 = lean_ctor_get(x_11, 0); +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_15 = lean_ctor_get(x_11, 1); lean_inc(x_15); lean_dec(x_11); -x_16 = lean_alloc_closure((void*)(l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___lambda__1), 4, 3); -lean_closure_set(x_16, 0, x_15); -lean_closure_set(x_16, 1, x_1); -lean_closure_set(x_16, 2, x_2); -x_17 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates(x_16, x_3, x_4, x_5, x_6, x_7, x_8, x_14); +x_16 = lean_ctor_get(x_12, 0); +lean_inc(x_16); +lean_dec(x_12); +x_17 = lean_alloc_closure((void*)(l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___lambda__1), 4, 3); +lean_closure_set(x_17, 0, x_16); +lean_closure_set(x_17, 1, x_1); +lean_closure_set(x_17, 2, x_2); +x_18 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_modifyCandidates(x_17, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_15); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -return x_17; +return x_18; } } } @@ -1972,717 +3465,386 @@ lean_dec(x_2); return x_4; } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_withNewScope___rarg(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_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__1(lean_object* x_1, size_t x_2, size_t 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_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_get(x_3, x_10); -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 = lean_ctor_get(x_12, 1); -lean_inc(x_14); -lean_dec(x_12); -x_15 = lean_st_ref_get(x_7, x_13); -x_16 = lean_ctor_get(x_15, 1); -lean_inc(x_16); -lean_dec(x_15); -x_17 = lean_st_ref_take(x_3, x_16); -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -lean_dec(x_17); -x_20 = !lean_is_exclusive(x_18); -if (x_20 == 0) +uint8_t x_13; +x_13 = lean_usize_dec_eq(x_2, x_3); +if (x_13 == 0) { -lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_21 = lean_ctor_get(x_18, 1); -lean_dec(x_21); -x_22 = l_Lean_Compiler_LCNF_JoinPointFinder_FindState_scope___default___closed__1; -lean_ctor_set(x_18, 1, x_22); -x_23 = lean_st_ref_set(x_3, x_18, x_19); -x_24 = lean_ctor_get(x_23, 1); -lean_inc(x_24); -lean_dec(x_23); -lean_inc(x_7); -lean_inc(x_3); -x_25 = lean_apply_7(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_24); -if (lean_obj_tag(x_25) == 0) -{ -lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; -x_26 = lean_ctor_get(x_25, 0); -lean_inc(x_26); -x_27 = lean_ctor_get(x_25, 1); -lean_inc(x_27); -lean_dec(x_25); -x_28 = lean_st_ref_get(x_7, x_27); -lean_dec(x_7); -x_29 = lean_ctor_get(x_28, 1); -lean_inc(x_29); -lean_dec(x_28); -x_30 = lean_st_ref_take(x_3, x_29); -x_31 = lean_ctor_get(x_30, 0); -lean_inc(x_31); -x_32 = lean_ctor_get(x_30, 1); -lean_inc(x_32); -lean_dec(x_30); -x_33 = !lean_is_exclusive(x_31); -if (x_33 == 0) -{ -lean_object* x_34; lean_object* x_35; uint8_t x_36; -x_34 = lean_ctor_get(x_31, 1); -lean_dec(x_34); -lean_ctor_set(x_31, 1, x_14); -x_35 = lean_st_ref_set(x_3, x_31, x_32); -lean_dec(x_3); -x_36 = !lean_is_exclusive(x_35); -if (x_36 == 0) -{ -lean_object* x_37; -x_37 = lean_ctor_get(x_35, 0); -lean_dec(x_37); -lean_ctor_set(x_35, 0, x_26); -return x_35; -} -else -{ -lean_object* x_38; lean_object* x_39; -x_38 = lean_ctor_get(x_35, 1); -lean_inc(x_38); -lean_dec(x_35); -x_39 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_39, 0, x_26); -lean_ctor_set(x_39, 1, x_38); -return x_39; -} -} -else -{ -lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; -x_40 = lean_ctor_get(x_31, 0); -lean_inc(x_40); -lean_dec(x_31); -x_41 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_41, 0, x_40); -lean_ctor_set(x_41, 1, x_14); -x_42 = lean_st_ref_set(x_3, x_41, x_32); -lean_dec(x_3); -x_43 = lean_ctor_get(x_42, 1); -lean_inc(x_43); -if (lean_is_exclusive(x_42)) { - lean_ctor_release(x_42, 0); - lean_ctor_release(x_42, 1); - x_44 = x_42; -} else { - lean_dec_ref(x_42); - x_44 = lean_box(0); -} -if (lean_is_scalar(x_44)) { - x_45 = lean_alloc_ctor(0, 2, 0); -} else { - x_45 = x_44; -} -lean_ctor_set(x_45, 0, x_26); -lean_ctor_set(x_45, 1, x_43); -return x_45; -} -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; uint8_t x_53; -x_46 = lean_ctor_get(x_25, 0); -lean_inc(x_46); -x_47 = lean_ctor_get(x_25, 1); -lean_inc(x_47); -lean_dec(x_25); -x_48 = lean_st_ref_get(x_7, x_47); -lean_dec(x_7); -x_49 = lean_ctor_get(x_48, 1); -lean_inc(x_49); -lean_dec(x_48); -x_50 = lean_st_ref_take(x_3, x_49); -x_51 = lean_ctor_get(x_50, 0); -lean_inc(x_51); -x_52 = lean_ctor_get(x_50, 1); -lean_inc(x_52); -lean_dec(x_50); -x_53 = !lean_is_exclusive(x_51); -if (x_53 == 0) -{ -lean_object* x_54; lean_object* x_55; uint8_t x_56; -x_54 = lean_ctor_get(x_51, 1); -lean_dec(x_54); -lean_ctor_set(x_51, 1, x_14); -x_55 = lean_st_ref_set(x_3, x_51, x_52); -lean_dec(x_3); -x_56 = !lean_is_exclusive(x_55); -if (x_56 == 0) -{ -lean_object* x_57; -x_57 = lean_ctor_get(x_55, 0); -lean_dec(x_57); -lean_ctor_set_tag(x_55, 1); -lean_ctor_set(x_55, 0, x_46); -return x_55; -} -else -{ -lean_object* x_58; lean_object* x_59; -x_58 = lean_ctor_get(x_55, 1); -lean_inc(x_58); -lean_dec(x_55); -x_59 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_59, 0, x_46); -lean_ctor_set(x_59, 1, x_58); -return x_59; -} -} -else -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; -x_60 = lean_ctor_get(x_51, 0); -lean_inc(x_60); -lean_dec(x_51); -x_61 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_61, 0, x_60); -lean_ctor_set(x_61, 1, x_14); -x_62 = lean_st_ref_set(x_3, x_61, x_52); -lean_dec(x_3); -x_63 = lean_ctor_get(x_62, 1); -lean_inc(x_63); -if (lean_is_exclusive(x_62)) { - lean_ctor_release(x_62, 0); - lean_ctor_release(x_62, 1); - x_64 = x_62; -} else { - lean_dec_ref(x_62); - x_64 = lean_box(0); -} -if (lean_is_scalar(x_64)) { - x_65 = lean_alloc_ctor(1, 2, 0); -} else { - x_65 = x_64; - lean_ctor_set_tag(x_65, 1); -} -lean_ctor_set(x_65, 0, x_46); -lean_ctor_set(x_65, 1, x_63); -return x_65; -} -} -} -else -{ -lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; -x_66 = lean_ctor_get(x_18, 0); -lean_inc(x_66); -lean_dec(x_18); -x_67 = l_Lean_Compiler_LCNF_JoinPointFinder_FindState_scope___default___closed__1; -x_68 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_68, 0, x_66); -lean_ctor_set(x_68, 1, x_67); -x_69 = lean_st_ref_set(x_3, x_68, x_19); -x_70 = lean_ctor_get(x_69, 1); -lean_inc(x_70); -lean_dec(x_69); -lean_inc(x_7); -lean_inc(x_3); -x_71 = lean_apply_7(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_70); -if (lean_obj_tag(x_71) == 0) -{ -lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; -x_72 = lean_ctor_get(x_71, 0); -lean_inc(x_72); -x_73 = lean_ctor_get(x_71, 1); -lean_inc(x_73); -lean_dec(x_71); -x_74 = lean_st_ref_get(x_7, x_73); -lean_dec(x_7); -x_75 = lean_ctor_get(x_74, 1); -lean_inc(x_75); -lean_dec(x_74); -x_76 = lean_st_ref_take(x_3, x_75); -x_77 = lean_ctor_get(x_76, 0); -lean_inc(x_77); -x_78 = lean_ctor_get(x_76, 1); -lean_inc(x_78); -lean_dec(x_76); -x_79 = lean_ctor_get(x_77, 0); -lean_inc(x_79); -if (lean_is_exclusive(x_77)) { - lean_ctor_release(x_77, 0); - lean_ctor_release(x_77, 1); - x_80 = x_77; -} else { - lean_dec_ref(x_77); - x_80 = lean_box(0); -} -if (lean_is_scalar(x_80)) { - x_81 = lean_alloc_ctor(0, 2, 0); -} else { - x_81 = x_80; -} -lean_ctor_set(x_81, 0, x_79); -lean_ctor_set(x_81, 1, x_14); -x_82 = lean_st_ref_set(x_3, x_81, x_78); -lean_dec(x_3); -x_83 = lean_ctor_get(x_82, 1); -lean_inc(x_83); -if (lean_is_exclusive(x_82)) { - lean_ctor_release(x_82, 0); - lean_ctor_release(x_82, 1); - x_84 = x_82; -} else { - lean_dec_ref(x_82); - x_84 = lean_box(0); -} -if (lean_is_scalar(x_84)) { - x_85 = lean_alloc_ctor(0, 2, 0); -} else { - x_85 = x_84; -} -lean_ctor_set(x_85, 0, x_72); -lean_ctor_set(x_85, 1, x_83); -return x_85; -} -else -{ -lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; -x_86 = lean_ctor_get(x_71, 0); -lean_inc(x_86); -x_87 = lean_ctor_get(x_71, 1); -lean_inc(x_87); -lean_dec(x_71); -x_88 = lean_st_ref_get(x_7, x_87); -lean_dec(x_7); -x_89 = lean_ctor_get(x_88, 1); -lean_inc(x_89); -lean_dec(x_88); -x_90 = lean_st_ref_take(x_3, x_89); -x_91 = lean_ctor_get(x_90, 0); -lean_inc(x_91); -x_92 = lean_ctor_get(x_90, 1); -lean_inc(x_92); -lean_dec(x_90); -x_93 = lean_ctor_get(x_91, 0); -lean_inc(x_93); -if (lean_is_exclusive(x_91)) { - lean_ctor_release(x_91, 0); - lean_ctor_release(x_91, 1); - x_94 = x_91; -} else { - lean_dec_ref(x_91); - x_94 = lean_box(0); -} -if (lean_is_scalar(x_94)) { - x_95 = lean_alloc_ctor(0, 2, 0); -} else { - x_95 = x_94; -} -lean_ctor_set(x_95, 0, x_93); -lean_ctor_set(x_95, 1, x_14); -x_96 = lean_st_ref_set(x_3, x_95, x_92); -lean_dec(x_3); -x_97 = lean_ctor_get(x_96, 1); -lean_inc(x_97); -if (lean_is_exclusive(x_96)) { - lean_ctor_release(x_96, 0); - lean_ctor_release(x_96, 1); - x_98 = x_96; -} else { - lean_dec_ref(x_96); - x_98 = lean_box(0); -} -if (lean_is_scalar(x_98)) { - x_99 = lean_alloc_ctor(1, 2, 0); -} else { - x_99 = x_98; - lean_ctor_set_tag(x_99, 1); -} -lean_ctor_set(x_99, 0, x_86); -lean_ctor_set(x_99, 1, x_97); -return x_99; -} -} -} -} -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_withNewScope(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_withNewScope___rarg), 8, 0); -return x_2; -} -} -LEAN_EXPORT uint8_t l_Lean_HashSetImp_contains___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope___spec__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; uint64_t x_5; size_t x_6; size_t x_7; lean_object* x_8; uint8_t x_9; -x_3 = lean_ctor_get(x_1, 1); -x_4 = lean_array_get_size(x_3); -x_5 = l___private_Lean_Expr_0__Lean_hashFVarId____x40_Lean_Expr___hyg_1727_(x_2); -x_6 = lean_uint64_to_usize(x_5); -x_7 = lean_usize_modn(x_6, x_4); +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_dec(x_4); -x_8 = lean_array_uget(x_3, x_7); -x_9 = l_List_elem___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___spec__2(x_2, x_8); -lean_dec(x_8); -return x_9; -} -} -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope(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_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_get(x_3, x_10); -x_12 = !lean_is_exclusive(x_11); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; uint8_t x_15; lean_object* x_16; -x_13 = lean_ctor_get(x_11, 0); -x_14 = lean_ctor_get(x_13, 1); -lean_inc(x_14); -lean_dec(x_13); -x_15 = l_Lean_HashSetImp_contains___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope___spec__1(x_14, x_1); -lean_dec(x_14); -x_16 = lean_box(x_15); -lean_ctor_set(x_11, 0, x_16); -return x_11; -} -else -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; -x_17 = lean_ctor_get(x_11, 0); -x_18 = lean_ctor_get(x_11, 1); -lean_inc(x_18); -lean_inc(x_17); -lean_dec(x_11); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -lean_dec(x_17); -x_20 = l_Lean_HashSetImp_contains___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope___spec__1(x_19, x_1); -lean_dec(x_19); -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_18); -return x_22; -} -} -} -LEAN_EXPORT lean_object* l_Lean_HashSetImp_contains___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope___spec__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -uint8_t x_3; lean_object* x_4; -x_3 = l_Lean_HashSetImp_contains___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope___spec__1(x_1, x_2); -lean_dec(x_2); -lean_dec(x_1); -x_4 = lean_box(x_3); -return x_4; -} -} -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope___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) { -_start: -{ -lean_object* x_9; -x_9 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} -} -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addToScope(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_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_take(x_3, x_10); -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 = !lean_is_exclusive(x_12); -if (x_14 == 0) -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; -x_15 = lean_ctor_get(x_12, 1); -x_16 = l_Lean_HashSetImp_insert___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___spec__1(x_15, x_1); -lean_ctor_set(x_12, 1, x_16); -x_17 = lean_st_ref_set(x_3, x_12, x_13); -x_18 = !lean_is_exclusive(x_17); -if (x_18 == 0) -{ -lean_object* x_19; lean_object* x_20; -x_19 = lean_ctor_get(x_17, 0); -lean_dec(x_19); -x_20 = lean_box(0); -lean_ctor_set(x_17, 0, x_20); -return x_17; -} -else -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_17, 1); -lean_inc(x_21); -lean_dec(x_17); -x_22 = lean_box(0); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_21); -return x_23; -} -} -else -{ -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; lean_object* x_32; -x_24 = lean_ctor_get(x_12, 0); -x_25 = lean_ctor_get(x_12, 1); -lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_12); -x_26 = l_Lean_HashSetImp_insert___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency___spec__1(x_25, x_1); -x_27 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_27, 0, x_24); -lean_ctor_set(x_27, 1, x_26); -x_28 = lean_st_ref_set(x_3, x_27, x_13); -x_29 = lean_ctor_get(x_28, 1); -lean_inc(x_29); -if (lean_is_exclusive(x_28)) { - lean_ctor_release(x_28, 0); - lean_ctor_release(x_28, 1); - x_30 = x_28; -} else { - lean_dec_ref(x_28); - x_30 = lean_box(0); -} -x_31 = lean_box(0); -if (lean_is_scalar(x_30)) { - x_32 = lean_alloc_ctor(0, 2, 0); -} else { - x_32 = x_30; -} -lean_ctor_set(x_32, 0, x_31); -lean_ctor_set(x_32, 1, x_29); -return x_32; -} -} -} -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addToScope___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) { -_start: -{ -lean_object* x_9; -x_9 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addToScope(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__1(lean_object* x_1, size_t x_2, size_t 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) { -_start: -{ -uint8_t x_12; -x_12 = lean_usize_dec_eq(x_2, x_3); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; -lean_dec(x_4); -x_13 = lean_array_uget(x_1, x_2); +x_14 = lean_array_uget(x_1, x_2); +x_15 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__1; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_14 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn(x_13, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_14) == 0) +x_16 = l_Lean_Compiler_LCNF_forFVarM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1(x_15, x_14, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_16) == 0) { -lean_object* x_15; lean_object* x_16; size_t x_17; size_t x_18; -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -x_17 = 1; -x_18 = lean_usize_add(x_2, x_17); -x_2 = x_18; -x_4 = x_15; -x_11 = x_16; +lean_object* x_17; lean_object* x_18; size_t x_19; size_t x_20; +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = 1; +x_20 = lean_usize_add(x_2, x_19); +x_2 = x_20; +x_4 = x_17; +x_12 = x_18; goto _start; } else { -uint8_t x_20; +uint8_t x_22; +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -x_20 = !lean_is_exclusive(x_14); -if (x_20 == 0) +x_22 = !lean_is_exclusive(x_16); +if (x_22 == 0) { +return x_16; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_16, 0); +x_24 = lean_ctor_get(x_16, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_16); +x_25 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_25, 0, x_23); +lean_ctor_set(x_25, 1, x_24); +return x_25; +} +} +} +else +{ +lean_object* x_26; +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +x_26 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_26, 0, x_4); +lean_ctor_set(x_26, 1, x_12); +return x_26; +} +} +} +LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3___rarg(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; +lean_inc(x_9); +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_11 = lean_apply_8(x_1, 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; +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 = lean_apply_9(x_2, x_12, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_13); return x_14; } else { -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_14, 0); -x_22 = lean_ctor_get(x_14, 1); -lean_inc(x_22); -lean_inc(x_21); -lean_dec(x_14); -x_23 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_23, 0, x_21); -lean_ctor_set(x_23, 1, x_22); -return x_23; -} -} -} -else -{ -lean_object* x_24; -lean_dec(x_10); +uint8_t x_15; lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -x_24 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_24, 0, x_4); -lean_ctor_set(x_24, 1, x_11); -return x_24; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_AltCore_forCodeM___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__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) { -_start: +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_15 = !lean_is_exclusive(x_11); +if (x_15 == 0) { -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_10; lean_object* x_11; -x_10 = lean_ctor_get(x_1, 2); -lean_inc(x_10); -lean_dec(x_1); -x_11 = lean_apply_8(x_2, x_10, x_3, x_4, x_5, x_6, x_7, x_8, x_9); return x_11; } else { -lean_object* x_12; lean_object* x_13; -x_12 = lean_ctor_get(x_1, 0); +lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_16 = lean_ctor_get(x_11, 0); +x_17 = lean_ctor_get(x_11, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_11); +x_18 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_18, 0, x_16); +lean_ctor_set(x_18, 1, x_17); +return x_18; +} +} +} +} +LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3___rarg), 10, 0); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__4(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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = l_Lean_Compiler_LCNF_ScopeM_getScope(x_4, x_5, x_6, x_7, x_8, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); lean_inc(x_12); -lean_dec(x_1); -x_13 = lean_apply_8(x_2, x_12, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_13; +lean_dec(x_10); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +x_13 = lean_apply_8(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_12); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +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_Lean_Compiler_LCNF_ScopeM_setScope(x_11, x_4, x_5, x_6, x_7, x_8, x_15); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_17 = !lean_is_exclusive(x_16); +if (x_17 == 0) +{ +lean_object* x_18; +x_18 = lean_ctor_get(x_16, 0); +lean_dec(x_18); +lean_ctor_set(x_16, 0, x_14); +return x_16; +} +else +{ +lean_object* x_19; lean_object* x_20; +x_19 = lean_ctor_get(x_16, 1); +lean_inc(x_19); +lean_dec(x_16); +x_20 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_20, 0, x_14); +lean_ctor_set(x_20, 1, x_19); +return x_20; +} +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; +x_21 = lean_ctor_get(x_13, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_13, 1); +lean_inc(x_22); +lean_dec(x_13); +x_23 = l_Lean_Compiler_LCNF_ScopeM_setScope(x_11, x_4, x_5, x_6, x_7, x_8, x_22); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_24 = !lean_is_exclusive(x_23); +if (x_24 == 0) +{ +lean_object* x_25; +x_25 = lean_ctor_get(x_23, 0); +lean_dec(x_25); +lean_ctor_set_tag(x_23, 1); +lean_ctor_set(x_23, 0, x_21); +return x_23; +} +else +{ +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_23, 1); +lean_inc(x_26); +lean_dec(x_23); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_21); +lean_ctor_set(x_27, 1, x_26); +return x_27; } } } -static lean_object* _init_l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3___closed__1() { +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___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, lean_object* x_8) { +_start: +{ +lean_object* x_9; +x_9 = l_Lean_Compiler_LCNF_ScopeM_clearScope(x_3, x_4, x_5, x_6, x_7, x_8); +return x_9; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___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; +x_11 = lean_apply_8(x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_11; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointFinder_find_go), 8, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___lambda__1___boxed), 8, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3(lean_object* x_1, size_t x_2, size_t 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_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__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) { _start: { -uint8_t x_12; -x_12 = lean_usize_dec_eq(x_2, x_3); -if (x_12 == 0) +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___lambda__2___boxed), 10, 1); +lean_closure_set(x_10, 0, x_1); +x_11 = l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___closed__1; +x_12 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3___rarg), 10, 2); +lean_closure_set(x_12, 0, x_11); +lean_closure_set(x_12, 1, x_10); +x_13 = l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__4(x_12, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_13; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_AltCore_forCodeM___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__5(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_13; lean_object* x_14; lean_object* x_15; +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_11; lean_object* x_12; +x_11 = lean_ctor_get(x_1, 2); +lean_inc(x_11); +lean_dec(x_1); +x_12 = lean_apply_9(x_2, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_12; +} +else +{ +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_1, 0); +lean_inc(x_13); +lean_dec(x_1); +x_14 = lean_apply_9(x_2, x_13, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_14; +} +} +} +static lean_object* _init_l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__6___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointFinder_find_go), 9, 0); +return x_1; +} +} +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__6(lean_object* x_1, size_t x_2, size_t 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: +{ +uint8_t x_13; +x_13 = lean_usize_dec_eq(x_2, x_3); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_dec(x_4); -x_13 = lean_array_uget(x_1, x_2); -x_14 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3___closed__1; +x_14 = lean_array_uget(x_1, x_2); +x_15 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__6___closed__1; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_15 = l_Lean_Compiler_LCNF_AltCore_forCodeM___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2(x_13, x_14, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_15) == 0) +x_16 = l_Lean_Compiler_LCNF_AltCore_forCodeM___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__5(x_14, x_15, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_16) == 0) { -lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); +lean_object* x_17; lean_object* x_18; size_t x_19; size_t x_20; +x_17 = lean_ctor_get(x_16, 0); lean_inc(x_17); -lean_dec(x_15); -x_18 = 1; -x_19 = lean_usize_add(x_2, x_18); -x_2 = x_19; -x_4 = x_16; -x_11 = x_17; +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = 1; +x_20 = lean_usize_add(x_2, x_19); +x_2 = x_20; +x_4 = x_17; +x_12 = x_18; goto _start; } else { -uint8_t x_21; +uint8_t x_22; +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -x_21 = !lean_is_exclusive(x_15); -if (x_21 == 0) +x_22 = !lean_is_exclusive(x_16); +if (x_22 == 0) { -return x_15; +return x_16; } else { -lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_22 = lean_ctor_get(x_15, 0); -x_23 = lean_ctor_get(x_15, 1); +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_16, 0); +x_24 = lean_ctor_get(x_16, 1); +lean_inc(x_24); lean_inc(x_23); -lean_inc(x_22); -lean_dec(x_15); -x_24 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_24, 0, x_22); -lean_ctor_set(x_24, 1, x_23); -return x_24; +lean_dec(x_16); +x_25 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_25, 0, x_23); +lean_ctor_set(x_25, 1, x_24); +return x_25; } } } else { -lean_object* x_25; +lean_object* x_26; +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -x_25 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_25, 0, x_4); -lean_ctor_set(x_25, 1, x_11); -return x_25; +x_26 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_26, 0, x_4); +lean_ctor_set(x_26, 1, x_12); +return x_26; } } } @@ -2695,178 +3857,180 @@ x_2 = l_Lean_Expr_sort___override(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_find_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_Compiler_LCNF_JoinPointFinder_find_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: { switch (lean_obj_tag(x_1)) { case 0: { -lean_object* x_9; -x_9 = lean_ctor_get(x_1, 1); -lean_inc(x_9); -if (lean_obj_tag(x_9) == 5) -{ -lean_object* x_10; lean_object* x_11; -x_10 = lean_ctor_get(x_1, 0); +lean_object* x_10; +x_10 = lean_ctor_get(x_1, 1); lean_inc(x_10); -lean_dec(x_1); -x_11 = lean_ctor_get(x_10, 3); +if (lean_obj_tag(x_10) == 5) +{ +lean_object* x_11; lean_object* x_12; +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -if (lean_obj_tag(x_11) == 5) -{ -lean_object* x_12; lean_object* x_13; -x_12 = lean_ctor_get(x_9, 0); +lean_dec(x_1); +x_12 = lean_ctor_get(x_11, 3); lean_inc(x_12); -x_13 = l_Lean_Expr_getAppFn(x_11); -if (lean_obj_tag(x_13) == 1) +if (lean_obj_tag(x_12) == 5) { -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; -lean_dec(x_9); -x_14 = lean_ctor_get(x_13, 0); -lean_inc(x_14); -lean_dec(x_13); -x_15 = lean_unsigned_to_nat(0u); -x_16 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_11, x_15); -x_17 = l_Lean_Compiler_LCNF_JoinPointFinder_find_go___closed__1; -lean_inc(x_16); -x_18 = lean_mk_array(x_16, x_17); -x_19 = lean_unsigned_to_nat(1u); -x_20 = lean_nat_sub(x_16, x_19); -x_21 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_11, x_18, x_20); -x_22 = lean_array_get_size(x_21); -x_23 = lean_nat_dec_lt(x_15, x_22); -if (x_23 == 0) +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_10, 0); +lean_inc(x_13); +x_14 = l_Lean_Expr_getAppFn(x_12); +if (lean_obj_tag(x_14) == 1) { -lean_object* x_24; lean_object* x_25; +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; +lean_dec(x_10); +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +lean_dec(x_14); +x_16 = lean_unsigned_to_nat(0u); +x_17 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_12, x_16); +x_18 = l_Lean_Compiler_LCNF_JoinPointFinder_find_go___closed__1; +lean_inc(x_17); +x_19 = lean_mk_array(x_17, x_18); +x_20 = lean_unsigned_to_nat(1u); +x_21 = lean_nat_sub(x_17, x_20); +x_22 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_12, x_19, x_21); +x_23 = lean_array_get_size(x_22); +x_24 = lean_nat_dec_lt(x_16, x_23); +if (x_24 == 0) +{ +lean_object* x_25; lean_object* x_26; +lean_dec(x_23); lean_dec(x_22); -lean_dec(x_21); -lean_inc(x_14); -x_24 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -x_25 = lean_ctor_get(x_24, 0); -lean_inc(x_25); -if (lean_obj_tag(x_25) == 0) -{ -lean_object* x_26; lean_object* x_27; -lean_dec(x_16); -lean_dec(x_12); -lean_dec(x_10); -x_26 = lean_ctor_get(x_24, 1); +lean_inc(x_15); +x_25 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_26 = lean_ctor_get(x_25, 0); lean_inc(x_26); -lean_dec(x_24); -x_27 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_26); -return x_27; -} -else +if (lean_obj_tag(x_26) == 0) { -uint8_t x_28; -x_28 = !lean_is_exclusive(x_24); -if (x_28 == 0) -{ -lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; -x_29 = lean_ctor_get(x_24, 1); -x_30 = lean_ctor_get(x_24, 0); -lean_dec(x_30); -x_31 = lean_ctor_get(x_25, 0); -lean_inc(x_31); +lean_object* x_27; lean_object* x_28; +lean_dec(x_17); +lean_dec(x_13); +lean_dec(x_11); +x_27 = lean_ctor_get(x_25, 1); +lean_inc(x_27); lean_dec(x_25); -x_32 = lean_ctor_get(x_10, 0); +x_28 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_27); +return x_28; +} +else +{ +uint8_t x_29; +x_29 = !lean_is_exclusive(x_25); +if (x_29 == 0) +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; +x_30 = lean_ctor_get(x_25, 1); +x_31 = lean_ctor_get(x_25, 0); +lean_dec(x_31); +x_32 = lean_ctor_get(x_26, 0); lean_inc(x_32); -lean_dec(x_10); -x_33 = lean_name_eq(x_12, x_32); +lean_dec(x_26); +x_33 = lean_ctor_get(x_11, 0); +lean_inc(x_33); +lean_dec(x_11); +x_34 = lean_name_eq(x_13, x_33); +lean_dec(x_33); +lean_dec(x_13); +if (x_34 == 0) +{ +lean_object* x_35; lean_dec(x_32); -lean_dec(x_12); -if (x_33 == 0) -{ -lean_object* x_34; -lean_dec(x_31); -lean_free_object(x_24); -lean_dec(x_16); -x_34 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_29); -return x_34; +lean_free_object(x_25); +lean_dec(x_17); +x_35 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_30); +return x_35; } else { -lean_object* x_35; uint8_t x_36; -x_35 = lean_ctor_get(x_31, 0); -lean_inc(x_35); -lean_dec(x_31); -x_36 = lean_nat_dec_eq(x_16, x_35); -lean_dec(x_35); -lean_dec(x_16); -if (x_36 == 0) -{ -lean_object* x_37; -lean_free_object(x_24); -x_37 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_29); -return x_37; -} -else -{ -if (lean_obj_tag(x_2) == 0) +lean_object* x_36; uint8_t x_37; +x_36 = lean_ctor_get(x_32, 0); +lean_inc(x_36); +lean_dec(x_32); +x_37 = lean_nat_dec_eq(x_17, x_36); +lean_dec(x_36); +lean_dec(x_17); +if (x_37 == 0) { lean_object* x_38; -lean_dec(x_14); +lean_free_object(x_25); +x_38 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_30); +return x_38; +} +else +{ +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_39; +lean_dec(x_15); +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_38 = lean_box(0); -lean_ctor_set(x_24, 0, x_38); -return x_24; +x_39 = lean_box(0); +lean_ctor_set(x_25, 0, x_39); +return x_25; } else { -lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; -lean_free_object(x_24); -x_39 = lean_ctor_get(x_2, 0); -lean_inc(x_39); -x_40 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_29); -x_41 = lean_ctor_get(x_40, 0); -lean_inc(x_41); -x_42 = lean_unbox(x_41); +lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; +lean_free_object(x_25); +x_40 = lean_ctor_get(x_2, 0); +lean_inc(x_40); +x_41 = l_Lean_Compiler_LCNF_ScopeM_isInScope(x_15, x_4, x_5, x_6, x_7, x_8, x_30); +x_42 = lean_ctor_get(x_41, 0); +lean_inc(x_42); +x_43 = lean_unbox(x_42); +lean_dec(x_42); +if (x_43 == 0) +{ +lean_object* x_44; lean_object* x_45; +x_44 = lean_ctor_get(x_41, 1); +lean_inc(x_44); lean_dec(x_41); -if (x_42 == 0) -{ -lean_object* x_43; lean_object* x_44; -x_43 = lean_ctor_get(x_40, 1); -lean_inc(x_43); -lean_dec(x_40); -x_44 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(x_14, x_39, x_2, x_3, x_4, x_5, x_6, x_7, x_43); -return x_44; +x_45 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(x_15, x_40, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_44); +return x_45; } else { -uint8_t x_45; -lean_dec(x_39); -lean_dec(x_14); +uint8_t x_46; +lean_dec(x_40); +lean_dec(x_15); +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); -x_45 = !lean_is_exclusive(x_40); -if (x_45 == 0) +x_46 = !lean_is_exclusive(x_41); +if (x_46 == 0) { -lean_object* x_46; lean_object* x_47; -x_46 = lean_ctor_get(x_40, 0); -lean_dec(x_46); -x_47 = lean_box(0); -lean_ctor_set(x_40, 0, x_47); -return x_40; +lean_object* x_47; lean_object* x_48; +x_47 = lean_ctor_get(x_41, 0); +lean_dec(x_47); +x_48 = lean_box(0); +lean_ctor_set(x_41, 0, x_48); +return x_41; } else { -lean_object* x_48; lean_object* x_49; lean_object* x_50; -x_48 = lean_ctor_get(x_40, 1); -lean_inc(x_48); -lean_dec(x_40); -x_49 = lean_box(0); -x_50 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_50, 0, x_49); -lean_ctor_set(x_50, 1, x_48); -return x_50; +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_41, 1); +lean_inc(x_49); +lean_dec(x_41); +x_50 = lean_box(0); +x_51 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_51, 0, x_50); +lean_ctor_set(x_51, 1, x_49); +return x_51; } } } @@ -2875,108 +4039,110 @@ return x_50; } else { -lean_object* x_51; lean_object* x_52; lean_object* x_53; uint8_t x_54; -x_51 = lean_ctor_get(x_24, 1); -lean_inc(x_51); -lean_dec(x_24); -x_52 = lean_ctor_get(x_25, 0); +lean_object* x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; +x_52 = lean_ctor_get(x_25, 1); lean_inc(x_52); lean_dec(x_25); -x_53 = lean_ctor_get(x_10, 0); +x_53 = lean_ctor_get(x_26, 0); lean_inc(x_53); -lean_dec(x_10); -x_54 = lean_name_eq(x_12, x_53); -lean_dec(x_53); -lean_dec(x_12); -if (x_54 == 0) +lean_dec(x_26); +x_54 = lean_ctor_get(x_11, 0); +lean_inc(x_54); +lean_dec(x_11); +x_55 = lean_name_eq(x_13, x_54); +lean_dec(x_54); +lean_dec(x_13); +if (x_55 == 0) { -lean_object* x_55; -lean_dec(x_52); -lean_dec(x_16); -x_55 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_51); -return x_55; +lean_object* x_56; +lean_dec(x_53); +lean_dec(x_17); +x_56 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_52); +return x_56; } else { -lean_object* x_56; uint8_t x_57; -x_56 = lean_ctor_get(x_52, 0); -lean_inc(x_56); -lean_dec(x_52); -x_57 = lean_nat_dec_eq(x_16, x_56); -lean_dec(x_56); -lean_dec(x_16); -if (x_57 == 0) +lean_object* x_57; uint8_t x_58; +x_57 = lean_ctor_get(x_53, 0); +lean_inc(x_57); +lean_dec(x_53); +x_58 = lean_nat_dec_eq(x_17, x_57); +lean_dec(x_57); +lean_dec(x_17); +if (x_58 == 0) { -lean_object* x_58; -x_58 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_51); -return x_58; +lean_object* x_59; +x_59 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_52); +return x_59; } else { if (lean_obj_tag(x_2) == 0) { -lean_object* x_59; lean_object* x_60; -lean_dec(x_14); +lean_object* x_60; lean_object* x_61; +lean_dec(x_15); +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_59 = lean_box(0); -x_60 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_60, 0, x_59); -lean_ctor_set(x_60, 1, x_51); -return x_60; +x_60 = lean_box(0); +x_61 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_61, 0, x_60); +lean_ctor_set(x_61, 1, x_52); +return x_61; } else { -lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_61 = lean_ctor_get(x_2, 0); -lean_inc(x_61); -x_62 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_51); -x_63 = lean_ctor_get(x_62, 0); -lean_inc(x_63); -x_64 = lean_unbox(x_63); +lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; +x_62 = lean_ctor_get(x_2, 0); +lean_inc(x_62); +x_63 = l_Lean_Compiler_LCNF_ScopeM_isInScope(x_15, x_4, x_5, x_6, x_7, x_8, x_52); +x_64 = lean_ctor_get(x_63, 0); +lean_inc(x_64); +x_65 = lean_unbox(x_64); +lean_dec(x_64); +if (x_65 == 0) +{ +lean_object* x_66; lean_object* x_67; +x_66 = lean_ctor_get(x_63, 1); +lean_inc(x_66); lean_dec(x_63); -if (x_64 == 0) -{ -lean_object* x_65; lean_object* x_66; -x_65 = lean_ctor_get(x_62, 1); -lean_inc(x_65); -lean_dec(x_62); -x_66 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(x_14, x_61, x_2, x_3, x_4, x_5, x_6, x_7, x_65); -return x_66; +x_67 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(x_15, x_62, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_66); +return x_67; } else { -lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; -lean_dec(x_61); -lean_dec(x_14); +lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; +lean_dec(x_62); +lean_dec(x_15); +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); -x_67 = lean_ctor_get(x_62, 1); -lean_inc(x_67); -if (lean_is_exclusive(x_62)) { - lean_ctor_release(x_62, 0); - lean_ctor_release(x_62, 1); - x_68 = x_62; +x_68 = lean_ctor_get(x_63, 1); +lean_inc(x_68); +if (lean_is_exclusive(x_63)) { + lean_ctor_release(x_63, 0); + lean_ctor_release(x_63, 1); + x_69 = x_63; } else { - lean_dec_ref(x_62); - x_68 = lean_box(0); + lean_dec_ref(x_63); + x_69 = lean_box(0); } -x_69 = lean_box(0); -if (lean_is_scalar(x_68)) { - x_70 = lean_alloc_ctor(0, 2, 0); +x_70 = lean_box(0); +if (lean_is_scalar(x_69)) { + x_71 = lean_alloc_ctor(0, 2, 0); } else { - x_70 = x_68; + x_71 = x_69; } -lean_ctor_set(x_70, 0, x_69); -lean_ctor_set(x_70, 1, x_67); -return x_70; +lean_ctor_set(x_71, 0, x_70); +lean_ctor_set(x_71, 1, x_68); +return x_71; } } } @@ -2986,250 +4152,254 @@ return x_70; } else { -uint8_t x_71; -x_71 = lean_nat_dec_le(x_22, x_22); -if (x_71 == 0) +uint8_t x_72; +x_72 = lean_nat_dec_le(x_23, x_23); +if (x_72 == 0) { -lean_object* x_72; lean_object* x_73; +lean_object* x_73; lean_object* x_74; +lean_dec(x_23); lean_dec(x_22); -lean_dec(x_21); -lean_inc(x_14); -x_72 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -x_73 = lean_ctor_get(x_72, 0); -lean_inc(x_73); -if (lean_obj_tag(x_73) == 0) -{ -lean_object* x_74; lean_object* x_75; -lean_dec(x_16); -lean_dec(x_12); -lean_dec(x_10); -x_74 = lean_ctor_get(x_72, 1); +lean_inc(x_15); +x_73 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_74 = lean_ctor_get(x_73, 0); lean_inc(x_74); -lean_dec(x_72); -x_75 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_74); -return x_75; -} -else +if (lean_obj_tag(x_74) == 0) { -uint8_t x_76; -x_76 = !lean_is_exclusive(x_72); -if (x_76 == 0) -{ -lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; uint8_t x_81; -x_77 = lean_ctor_get(x_72, 1); -x_78 = lean_ctor_get(x_72, 0); -lean_dec(x_78); -x_79 = lean_ctor_get(x_73, 0); -lean_inc(x_79); +lean_object* x_75; lean_object* x_76; +lean_dec(x_17); +lean_dec(x_13); +lean_dec(x_11); +x_75 = lean_ctor_get(x_73, 1); +lean_inc(x_75); lean_dec(x_73); -x_80 = lean_ctor_get(x_10, 0); +x_76 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_75); +return x_76; +} +else +{ +uint8_t x_77; +x_77 = !lean_is_exclusive(x_73); +if (x_77 == 0) +{ +lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; uint8_t x_82; +x_78 = lean_ctor_get(x_73, 1); +x_79 = lean_ctor_get(x_73, 0); +lean_dec(x_79); +x_80 = lean_ctor_get(x_74, 0); lean_inc(x_80); -lean_dec(x_10); -x_81 = lean_name_eq(x_12, x_80); +lean_dec(x_74); +x_81 = lean_ctor_get(x_11, 0); +lean_inc(x_81); +lean_dec(x_11); +x_82 = lean_name_eq(x_13, x_81); +lean_dec(x_81); +lean_dec(x_13); +if (x_82 == 0) +{ +lean_object* x_83; lean_dec(x_80); -lean_dec(x_12); -if (x_81 == 0) -{ -lean_object* x_82; -lean_dec(x_79); -lean_free_object(x_72); -lean_dec(x_16); -x_82 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_77); -return x_82; +lean_free_object(x_73); +lean_dec(x_17); +x_83 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_78); +return x_83; } else { -lean_object* x_83; uint8_t x_84; -x_83 = lean_ctor_get(x_79, 0); -lean_inc(x_83); -lean_dec(x_79); -x_84 = lean_nat_dec_eq(x_16, x_83); -lean_dec(x_83); -lean_dec(x_16); -if (x_84 == 0) -{ -lean_object* x_85; -lean_free_object(x_72); -x_85 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_77); -return x_85; -} -else -{ -if (lean_obj_tag(x_2) == 0) +lean_object* x_84; uint8_t x_85; +x_84 = lean_ctor_get(x_80, 0); +lean_inc(x_84); +lean_dec(x_80); +x_85 = lean_nat_dec_eq(x_17, x_84); +lean_dec(x_84); +lean_dec(x_17); +if (x_85 == 0) { lean_object* x_86; -lean_dec(x_14); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_86 = lean_box(0); -lean_ctor_set(x_72, 0, x_86); -return x_72; -} -else -{ -lean_object* x_87; lean_object* x_88; lean_object* x_89; uint8_t x_90; -lean_free_object(x_72); -x_87 = lean_ctor_get(x_2, 0); -lean_inc(x_87); -x_88 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_77); -x_89 = lean_ctor_get(x_88, 0); -lean_inc(x_89); -x_90 = lean_unbox(x_89); -lean_dec(x_89); -if (x_90 == 0) -{ -lean_object* x_91; lean_object* x_92; -x_91 = lean_ctor_get(x_88, 1); -lean_inc(x_91); -lean_dec(x_88); -x_92 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(x_14, x_87, x_2, x_3, x_4, x_5, x_6, x_7, x_91); -return x_92; -} -else -{ -uint8_t x_93; -lean_dec(x_87); -lean_dec(x_14); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_93 = !lean_is_exclusive(x_88); -if (x_93 == 0) -{ -lean_object* x_94; lean_object* x_95; -x_94 = lean_ctor_get(x_88, 0); -lean_dec(x_94); -x_95 = lean_box(0); -lean_ctor_set(x_88, 0, x_95); -return x_88; -} -else -{ -lean_object* x_96; lean_object* x_97; lean_object* x_98; -x_96 = lean_ctor_get(x_88, 1); -lean_inc(x_96); -lean_dec(x_88); -x_97 = lean_box(0); -x_98 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_98, 0, x_97); -lean_ctor_set(x_98, 1, x_96); -return x_98; -} -} -} -} -} -} -else -{ -lean_object* x_99; lean_object* x_100; lean_object* x_101; uint8_t x_102; -x_99 = lean_ctor_get(x_72, 1); -lean_inc(x_99); -lean_dec(x_72); -x_100 = lean_ctor_get(x_73, 0); -lean_inc(x_100); -lean_dec(x_73); -x_101 = lean_ctor_get(x_10, 0); -lean_inc(x_101); -lean_dec(x_10); -x_102 = lean_name_eq(x_12, x_101); -lean_dec(x_101); -lean_dec(x_12); -if (x_102 == 0) -{ -lean_object* x_103; -lean_dec(x_100); -lean_dec(x_16); -x_103 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_99); -return x_103; -} -else -{ -lean_object* x_104; uint8_t x_105; -x_104 = lean_ctor_get(x_100, 0); -lean_inc(x_104); -lean_dec(x_100); -x_105 = lean_nat_dec_eq(x_16, x_104); -lean_dec(x_104); -lean_dec(x_16); -if (x_105 == 0) -{ -lean_object* x_106; -x_106 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_99); -return x_106; +lean_free_object(x_73); +x_86 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_78); +return x_86; } else { if (lean_obj_tag(x_2) == 0) { -lean_object* x_107; lean_object* x_108; -lean_dec(x_14); +lean_object* x_87; +lean_dec(x_15); +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_107 = lean_box(0); -x_108 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_108, 0, x_107); -lean_ctor_set(x_108, 1, x_99); -return x_108; +x_87 = lean_box(0); +lean_ctor_set(x_73, 0, x_87); +return x_73; } else { -lean_object* x_109; lean_object* x_110; lean_object* x_111; uint8_t x_112; -x_109 = lean_ctor_get(x_2, 0); -lean_inc(x_109); -x_110 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_99); -x_111 = lean_ctor_get(x_110, 0); -lean_inc(x_111); -x_112 = lean_unbox(x_111); -lean_dec(x_111); -if (x_112 == 0) +lean_object* x_88; lean_object* x_89; lean_object* x_90; uint8_t x_91; +lean_free_object(x_73); +x_88 = lean_ctor_get(x_2, 0); +lean_inc(x_88); +x_89 = l_Lean_Compiler_LCNF_ScopeM_isInScope(x_15, x_4, x_5, x_6, x_7, x_8, x_78); +x_90 = lean_ctor_get(x_89, 0); +lean_inc(x_90); +x_91 = lean_unbox(x_90); +lean_dec(x_90); +if (x_91 == 0) { -lean_object* x_113; lean_object* x_114; -x_113 = lean_ctor_get(x_110, 1); -lean_inc(x_113); -lean_dec(x_110); -x_114 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(x_14, x_109, x_2, x_3, x_4, x_5, x_6, x_7, x_113); -return x_114; +lean_object* x_92; lean_object* x_93; +x_92 = lean_ctor_get(x_89, 1); +lean_inc(x_92); +lean_dec(x_89); +x_93 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(x_15, x_88, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_92); +return x_93; } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; -lean_dec(x_109); -lean_dec(x_14); +uint8_t x_94; +lean_dec(x_88); +lean_dec(x_15); +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); -x_115 = lean_ctor_get(x_110, 1); -lean_inc(x_115); -if (lean_is_exclusive(x_110)) { - lean_ctor_release(x_110, 0); - lean_ctor_release(x_110, 1); - x_116 = x_110; -} else { - lean_dec_ref(x_110); - x_116 = lean_box(0); +x_94 = !lean_is_exclusive(x_89); +if (x_94 == 0) +{ +lean_object* x_95; lean_object* x_96; +x_95 = lean_ctor_get(x_89, 0); +lean_dec(x_95); +x_96 = lean_box(0); +lean_ctor_set(x_89, 0, x_96); +return x_89; } -x_117 = lean_box(0); -if (lean_is_scalar(x_116)) { - x_118 = lean_alloc_ctor(0, 2, 0); -} else { - x_118 = x_116; +else +{ +lean_object* x_97; lean_object* x_98; lean_object* x_99; +x_97 = lean_ctor_get(x_89, 1); +lean_inc(x_97); +lean_dec(x_89); +x_98 = lean_box(0); +x_99 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_99, 0, x_98); +lean_ctor_set(x_99, 1, x_97); +return x_99; } -lean_ctor_set(x_118, 0, x_117); -lean_ctor_set(x_118, 1, x_115); -return x_118; +} +} +} +} +} +else +{ +lean_object* x_100; lean_object* x_101; lean_object* x_102; uint8_t x_103; +x_100 = lean_ctor_get(x_73, 1); +lean_inc(x_100); +lean_dec(x_73); +x_101 = lean_ctor_get(x_74, 0); +lean_inc(x_101); +lean_dec(x_74); +x_102 = lean_ctor_get(x_11, 0); +lean_inc(x_102); +lean_dec(x_11); +x_103 = lean_name_eq(x_13, x_102); +lean_dec(x_102); +lean_dec(x_13); +if (x_103 == 0) +{ +lean_object* x_104; +lean_dec(x_101); +lean_dec(x_17); +x_104 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_100); +return x_104; +} +else +{ +lean_object* x_105; uint8_t x_106; +x_105 = lean_ctor_get(x_101, 0); +lean_inc(x_105); +lean_dec(x_101); +x_106 = lean_nat_dec_eq(x_17, x_105); +lean_dec(x_105); +lean_dec(x_17); +if (x_106 == 0) +{ +lean_object* x_107; +x_107 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_100); +return x_107; +} +else +{ +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_108; lean_object* x_109; +lean_dec(x_15); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_108 = lean_box(0); +x_109 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_109, 0, x_108); +lean_ctor_set(x_109, 1, x_100); +return x_109; +} +else +{ +lean_object* x_110; lean_object* x_111; lean_object* x_112; uint8_t x_113; +x_110 = lean_ctor_get(x_2, 0); +lean_inc(x_110); +x_111 = l_Lean_Compiler_LCNF_ScopeM_isInScope(x_15, x_4, x_5, x_6, x_7, x_8, x_100); +x_112 = lean_ctor_get(x_111, 0); +lean_inc(x_112); +x_113 = lean_unbox(x_112); +lean_dec(x_112); +if (x_113 == 0) +{ +lean_object* x_114; lean_object* x_115; +x_114 = lean_ctor_get(x_111, 1); +lean_inc(x_114); +lean_dec(x_111); +x_115 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(x_15, x_110, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_114); +return x_115; +} +else +{ +lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; +lean_dec(x_110); +lean_dec(x_15); +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); +x_116 = lean_ctor_get(x_111, 1); +lean_inc(x_116); +if (lean_is_exclusive(x_111)) { + lean_ctor_release(x_111, 0); + lean_ctor_release(x_111, 1); + x_117 = x_111; +} else { + lean_dec_ref(x_111); + x_117 = lean_box(0); +} +x_118 = lean_box(0); +if (lean_is_scalar(x_117)) { + x_119 = lean_alloc_ctor(0, 2, 0); +} else { + x_119 = x_117; +} +lean_ctor_set(x_119, 0, x_118); +lean_ctor_set(x_119, 1, x_116); +return x_119; } } } @@ -3239,148 +4409,151 @@ return x_118; } else { -size_t x_119; size_t x_120; lean_object* x_121; lean_object* x_122; -x_119 = 0; -x_120 = lean_usize_of_nat(x_22); -lean_dec(x_22); -x_121 = lean_box(0); +size_t x_120; size_t x_121; lean_object* x_122; lean_object* x_123; +x_120 = 0; +x_121 = lean_usize_of_nat(x_23); +lean_dec(x_23); +x_122 = lean_box(0); +lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_122 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__1(x_21, x_119, x_120, x_121, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean_dec(x_21); -if (lean_obj_tag(x_122) == 0) +x_123 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__1(x_22, x_120, x_121, x_122, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_22); +if (lean_obj_tag(x_123) == 0) { -lean_object* x_123; lean_object* x_124; lean_object* x_125; -x_123 = lean_ctor_get(x_122, 1); -lean_inc(x_123); -lean_dec(x_122); -lean_inc(x_14); -x_124 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_123); -x_125 = lean_ctor_get(x_124, 0); -lean_inc(x_125); -if (lean_obj_tag(x_125) == 0) -{ -lean_object* x_126; lean_object* x_127; -lean_dec(x_16); -lean_dec(x_12); -lean_dec(x_10); -x_126 = lean_ctor_get(x_124, 1); +lean_object* x_124; lean_object* x_125; lean_object* x_126; +x_124 = lean_ctor_get(x_123, 1); +lean_inc(x_124); +lean_dec(x_123); +lean_inc(x_15); +x_125 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_findCandidate_x3f(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_124); +x_126 = lean_ctor_get(x_125, 0); lean_inc(x_126); -lean_dec(x_124); -x_127 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_126); -return x_127; -} -else +if (lean_obj_tag(x_126) == 0) { -uint8_t x_128; -x_128 = !lean_is_exclusive(x_124); -if (x_128 == 0) -{ -lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; uint8_t x_133; -x_129 = lean_ctor_get(x_124, 1); -x_130 = lean_ctor_get(x_124, 0); -lean_dec(x_130); -x_131 = lean_ctor_get(x_125, 0); -lean_inc(x_131); +lean_object* x_127; lean_object* x_128; +lean_dec(x_17); +lean_dec(x_13); +lean_dec(x_11); +x_127 = lean_ctor_get(x_125, 1); +lean_inc(x_127); lean_dec(x_125); -x_132 = lean_ctor_get(x_10, 0); -lean_inc(x_132); -lean_dec(x_10); -x_133 = lean_name_eq(x_12, x_132); -lean_dec(x_132); -lean_dec(x_12); -if (x_133 == 0) -{ -lean_object* x_134; -lean_dec(x_131); -lean_free_object(x_124); -lean_dec(x_16); -x_134 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_129); -return x_134; +x_128 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_127); +return x_128; } else { -lean_object* x_135; uint8_t x_136; -x_135 = lean_ctor_get(x_131, 0); -lean_inc(x_135); -lean_dec(x_131); -x_136 = lean_nat_dec_eq(x_16, x_135); -lean_dec(x_135); -lean_dec(x_16); -if (x_136 == 0) +uint8_t x_129; +x_129 = !lean_is_exclusive(x_125); +if (x_129 == 0) { -lean_object* x_137; -lean_free_object(x_124); -x_137 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_129); -return x_137; +lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; uint8_t x_134; +x_130 = lean_ctor_get(x_125, 1); +x_131 = lean_ctor_get(x_125, 0); +lean_dec(x_131); +x_132 = lean_ctor_get(x_126, 0); +lean_inc(x_132); +lean_dec(x_126); +x_133 = lean_ctor_get(x_11, 0); +lean_inc(x_133); +lean_dec(x_11); +x_134 = lean_name_eq(x_13, x_133); +lean_dec(x_133); +lean_dec(x_13); +if (x_134 == 0) +{ +lean_object* x_135; +lean_dec(x_132); +lean_free_object(x_125); +lean_dec(x_17); +x_135 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_130); +return x_135; +} +else +{ +lean_object* x_136; uint8_t x_137; +x_136 = lean_ctor_get(x_132, 0); +lean_inc(x_136); +lean_dec(x_132); +x_137 = lean_nat_dec_eq(x_17, x_136); +lean_dec(x_136); +lean_dec(x_17); +if (x_137 == 0) +{ +lean_object* x_138; +lean_free_object(x_125); +x_138 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_130); +return x_138; } else { if (lean_obj_tag(x_2) == 0) { -lean_dec(x_14); +lean_dec(x_15); +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_ctor_set(x_124, 0, x_121); -return x_124; +lean_ctor_set(x_125, 0, x_122); +return x_125; } else { -lean_object* x_138; lean_object* x_139; lean_object* x_140; uint8_t x_141; -lean_free_object(x_124); -x_138 = lean_ctor_get(x_2, 0); -lean_inc(x_138); -x_139 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_129); -x_140 = lean_ctor_get(x_139, 0); -lean_inc(x_140); -x_141 = lean_unbox(x_140); +lean_object* x_139; lean_object* x_140; lean_object* x_141; uint8_t x_142; +lean_free_object(x_125); +x_139 = lean_ctor_get(x_2, 0); +lean_inc(x_139); +x_140 = l_Lean_Compiler_LCNF_ScopeM_isInScope(x_15, x_4, x_5, x_6, x_7, x_8, x_130); +x_141 = lean_ctor_get(x_140, 0); +lean_inc(x_141); +x_142 = lean_unbox(x_141); +lean_dec(x_141); +if (x_142 == 0) +{ +lean_object* x_143; lean_object* x_144; +x_143 = lean_ctor_get(x_140, 1); +lean_inc(x_143); lean_dec(x_140); -if (x_141 == 0) -{ -lean_object* x_142; lean_object* x_143; -x_142 = lean_ctor_get(x_139, 1); -lean_inc(x_142); -lean_dec(x_139); -x_143 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(x_14, x_138, x_2, x_3, x_4, x_5, x_6, x_7, x_142); -return x_143; +x_144 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(x_15, x_139, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_143); +return x_144; } else { -uint8_t x_144; -lean_dec(x_138); -lean_dec(x_14); +uint8_t x_145; +lean_dec(x_139); +lean_dec(x_15); +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); -x_144 = !lean_is_exclusive(x_139); -if (x_144 == 0) +x_145 = !lean_is_exclusive(x_140); +if (x_145 == 0) { -lean_object* x_145; -x_145 = lean_ctor_get(x_139, 0); -lean_dec(x_145); -lean_ctor_set(x_139, 0, x_121); -return x_139; +lean_object* x_146; +x_146 = lean_ctor_get(x_140, 0); +lean_dec(x_146); +lean_ctor_set(x_140, 0, x_122); +return x_140; } else { -lean_object* x_146; lean_object* x_147; -x_146 = lean_ctor_get(x_139, 1); -lean_inc(x_146); -lean_dec(x_139); -x_147 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_147, 0, x_121); -lean_ctor_set(x_147, 1, x_146); -return x_147; +lean_object* x_147; lean_object* x_148; +x_147 = lean_ctor_get(x_140, 1); +lean_inc(x_147); +lean_dec(x_140); +x_148 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_148, 0, x_122); +lean_ctor_set(x_148, 1, x_147); +return x_148; } } } @@ -3389,106 +4562,108 @@ return x_147; } else { -lean_object* x_148; lean_object* x_149; lean_object* x_150; uint8_t x_151; -x_148 = lean_ctor_get(x_124, 1); -lean_inc(x_148); -lean_dec(x_124); -x_149 = lean_ctor_get(x_125, 0); +lean_object* x_149; lean_object* x_150; lean_object* x_151; uint8_t x_152; +x_149 = lean_ctor_get(x_125, 1); lean_inc(x_149); lean_dec(x_125); -x_150 = lean_ctor_get(x_10, 0); +x_150 = lean_ctor_get(x_126, 0); lean_inc(x_150); -lean_dec(x_10); -x_151 = lean_name_eq(x_12, x_150); +lean_dec(x_126); +x_151 = lean_ctor_get(x_11, 0); +lean_inc(x_151); +lean_dec(x_11); +x_152 = lean_name_eq(x_13, x_151); +lean_dec(x_151); +lean_dec(x_13); +if (x_152 == 0) +{ +lean_object* x_153; lean_dec(x_150); -lean_dec(x_12); -if (x_151 == 0) -{ -lean_object* x_152; -lean_dec(x_149); -lean_dec(x_16); -x_152 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_148); -return x_152; +lean_dec(x_17); +x_153 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_149); +return x_153; } else { -lean_object* x_153; uint8_t x_154; -x_153 = lean_ctor_get(x_149, 0); -lean_inc(x_153); -lean_dec(x_149); -x_154 = lean_nat_dec_eq(x_16, x_153); -lean_dec(x_153); -lean_dec(x_16); -if (x_154 == 0) -{ -lean_object* x_155; -x_155 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_148); -return x_155; -} -else -{ -if (lean_obj_tag(x_2) == 0) +lean_object* x_154; uint8_t x_155; +x_154 = lean_ctor_get(x_150, 0); +lean_inc(x_154); +lean_dec(x_150); +x_155 = lean_nat_dec_eq(x_17, x_154); +lean_dec(x_154); +lean_dec(x_17); +if (x_155 == 0) { lean_object* x_156; -lean_dec(x_14); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_156 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_156, 0, x_121); -lean_ctor_set(x_156, 1, x_148); +x_156 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_149); return x_156; } else { -lean_object* x_157; lean_object* x_158; lean_object* x_159; uint8_t x_160; -x_157 = lean_ctor_get(x_2, 0); -lean_inc(x_157); -x_158 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_isInScope(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_148); -x_159 = lean_ctor_get(x_158, 0); -lean_inc(x_159); -x_160 = lean_unbox(x_159); +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_157; +lean_dec(x_15); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_157 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_157, 0, x_122); +lean_ctor_set(x_157, 1, x_149); +return x_157; +} +else +{ +lean_object* x_158; lean_object* x_159; lean_object* x_160; uint8_t x_161; +x_158 = lean_ctor_get(x_2, 0); +lean_inc(x_158); +x_159 = l_Lean_Compiler_LCNF_ScopeM_isInScope(x_15, x_4, x_5, x_6, x_7, x_8, x_149); +x_160 = lean_ctor_get(x_159, 0); +lean_inc(x_160); +x_161 = lean_unbox(x_160); +lean_dec(x_160); +if (x_161 == 0) +{ +lean_object* x_162; lean_object* x_163; +x_162 = lean_ctor_get(x_159, 1); +lean_inc(x_162); lean_dec(x_159); -if (x_160 == 0) +x_163 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(x_15, x_158, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_162); +return x_163; +} +else { -lean_object* x_161; lean_object* x_162; -x_161 = lean_ctor_get(x_158, 1); -lean_inc(x_161); +lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_dec(x_158); -x_162 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addDependency(x_14, x_157, x_2, x_3, x_4, x_5, x_6, x_7, x_161); -return x_162; -} -else -{ -lean_object* x_163; lean_object* x_164; lean_object* x_165; -lean_dec(x_157); -lean_dec(x_14); +lean_dec(x_15); +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); -x_163 = lean_ctor_get(x_158, 1); -lean_inc(x_163); -if (lean_is_exclusive(x_158)) { - lean_ctor_release(x_158, 0); - lean_ctor_release(x_158, 1); - x_164 = x_158; +x_164 = lean_ctor_get(x_159, 1); +lean_inc(x_164); +if (lean_is_exclusive(x_159)) { + lean_ctor_release(x_159, 0); + lean_ctor_release(x_159, 1); + x_165 = x_159; } else { - lean_dec_ref(x_158); - x_164 = lean_box(0); + lean_dec_ref(x_159); + x_165 = lean_box(0); } -if (lean_is_scalar(x_164)) { - x_165 = lean_alloc_ctor(0, 2, 0); +if (lean_is_scalar(x_165)) { + x_166 = lean_alloc_ctor(0, 2, 0); } else { - x_165 = x_164; + x_166 = x_165; } -lean_ctor_set(x_165, 0, x_121); -lean_ctor_set(x_165, 1, x_163); -return x_165; +lean_ctor_set(x_166, 0, x_122); +lean_ctor_set(x_166, 1, x_164); +return x_166; } } } @@ -3498,548 +4673,570 @@ return x_165; } else { -uint8_t x_166; -lean_dec(x_16); -lean_dec(x_14); -lean_dec(x_12); -lean_dec(x_10); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_166 = !lean_is_exclusive(x_122); -if (x_166 == 0) -{ -return x_122; -} -else -{ -lean_object* x_167; lean_object* x_168; lean_object* x_169; -x_167 = lean_ctor_get(x_122, 0); -x_168 = lean_ctor_get(x_122, 1); -lean_inc(x_168); -lean_inc(x_167); -lean_dec(x_122); -x_169 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_169, 0, x_167); -lean_ctor_set(x_169, 1, x_168); -return x_169; -} -} -} -} -} -else -{ -lean_object* x_170; +uint8_t x_167; +lean_dec(x_17); +lean_dec(x_15); lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_10); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -lean_inc(x_2); -x_170 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_170) == 0) -{ -lean_object* x_171; -x_171 = lean_ctor_get(x_170, 1); -lean_inc(x_171); -lean_dec(x_170); -x_1 = x_9; -x_8 = x_171; -goto _start; -} -else -{ -uint8_t x_173; -lean_dec(x_9); +lean_dec(x_11); +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); -x_173 = !lean_is_exclusive(x_170); -if (x_173 == 0) +x_167 = !lean_is_exclusive(x_123); +if (x_167 == 0) { +return x_123; +} +else +{ +lean_object* x_168; lean_object* x_169; lean_object* x_170; +x_168 = lean_ctor_get(x_123, 0); +x_169 = lean_ctor_get(x_123, 1); +lean_inc(x_169); +lean_inc(x_168); +lean_dec(x_123); +x_170 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_170, 0, x_168); +lean_ctor_set(x_170, 1, x_169); return x_170; } -else -{ -lean_object* x_174; lean_object* x_175; lean_object* x_176; -x_174 = lean_ctor_get(x_170, 0); -x_175 = lean_ctor_get(x_170, 1); -lean_inc(x_175); -lean_inc(x_174); -lean_dec(x_170); -x_176 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_176, 0, x_174); -lean_ctor_set(x_176, 1, x_175); -return x_176; } } } } else { -lean_object* x_177; -lean_dec(x_10); +lean_object* x_171; lean_object* x_172; +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_11); +x_171 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__1; +lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_177 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_177) == 0) +x_172 = l_Lean_Compiler_LCNF_forFVarM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1(x_171, x_12, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_172) == 0) { -lean_object* x_178; -x_178 = lean_ctor_get(x_177, 1); -lean_inc(x_178); -lean_dec(x_177); -x_1 = x_9; -x_8 = x_178; +lean_object* x_173; +x_173 = lean_ctor_get(x_172, 1); +lean_inc(x_173); +lean_dec(x_172); +x_1 = x_10; +x_9 = x_173; goto _start; } else { -uint8_t x_180; -lean_dec(x_9); +uint8_t x_175; +lean_dec(x_10); +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); -x_180 = !lean_is_exclusive(x_177); -if (x_180 == 0) +x_175 = !lean_is_exclusive(x_172); +if (x_175 == 0) { -return x_177; +return x_172; } else { -lean_object* x_181; lean_object* x_182; lean_object* x_183; -x_181 = lean_ctor_get(x_177, 0); -x_182 = lean_ctor_get(x_177, 1); -lean_inc(x_182); +lean_object* x_176; lean_object* x_177; lean_object* x_178; +x_176 = lean_ctor_get(x_172, 0); +x_177 = lean_ctor_get(x_172, 1); +lean_inc(x_177); +lean_inc(x_176); +lean_dec(x_172); +x_178 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_178, 0, x_176); +lean_ctor_set(x_178, 1, x_177); +return x_178; +} +} +} +} +else +{ +lean_object* x_179; lean_object* x_180; +lean_dec(x_11); +x_179 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__1; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +x_180 = l_Lean_Compiler_LCNF_forFVarM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1(x_179, x_12, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_180) == 0) +{ +lean_object* x_181; +x_181 = lean_ctor_get(x_180, 1); lean_inc(x_181); -lean_dec(x_177); -x_183 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_183, 0, x_181); -lean_ctor_set(x_183, 1, x_182); -return x_183; -} -} +lean_dec(x_180); +x_1 = x_10; +x_9 = x_181; +goto _start; } +else +{ +uint8_t x_183; +lean_dec(x_10); +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); +x_183 = !lean_is_exclusive(x_180); +if (x_183 == 0) +{ +return x_180; } else { lean_object* x_184; lean_object* x_185; lean_object* x_186; -x_184 = lean_ctor_get(x_1, 0); -lean_inc(x_184); -lean_dec(x_1); -x_185 = lean_ctor_get(x_184, 3); +x_184 = lean_ctor_get(x_180, 0); +x_185 = lean_ctor_get(x_180, 1); lean_inc(x_185); -lean_dec(x_184); +lean_inc(x_184); +lean_dec(x_180); +x_186 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_186, 0, x_184); +lean_ctor_set(x_186, 1, x_185); +return x_186; +} +} +} +} +else +{ +lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; +x_187 = lean_ctor_get(x_1, 0); +lean_inc(x_187); +lean_dec(x_1); +x_188 = lean_ctor_get(x_187, 3); +lean_inc(x_188); +lean_dec(x_187); +x_189 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__1; +lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_186 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn(x_185, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_186) == 0) +x_190 = l_Lean_Compiler_LCNF_forFVarM___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1(x_189, x_188, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_190) == 0) { -lean_object* x_187; -x_187 = lean_ctor_get(x_186, 1); -lean_inc(x_187); -lean_dec(x_186); -x_1 = x_9; -x_8 = x_187; +lean_object* x_191; +x_191 = lean_ctor_get(x_190, 1); +lean_inc(x_191); +lean_dec(x_190); +x_1 = x_10; +x_9 = x_191; goto _start; } else { -uint8_t x_189; -lean_dec(x_9); +uint8_t x_193; +lean_dec(x_10); +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); -x_189 = !lean_is_exclusive(x_186); -if (x_189 == 0) +x_193 = !lean_is_exclusive(x_190); +if (x_193 == 0) { -return x_186; +return x_190; } else { -lean_object* x_190; lean_object* x_191; lean_object* x_192; -x_190 = lean_ctor_get(x_186, 0); -x_191 = lean_ctor_get(x_186, 1); -lean_inc(x_191); -lean_inc(x_190); -lean_dec(x_186); -x_192 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_192, 0, x_190); -lean_ctor_set(x_192, 1, x_191); -return x_192; +lean_object* x_194; lean_object* x_195; lean_object* x_196; +x_194 = lean_ctor_get(x_190, 0); +x_195 = lean_ctor_get(x_190, 1); +lean_inc(x_195); +lean_inc(x_194); +lean_dec(x_190); +x_196 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_196, 0, x_194); +lean_ctor_set(x_196, 1, x_195); +return x_196; } } } } case 1: { -lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; lean_object* x_198; lean_object* x_199; -x_193 = lean_ctor_get(x_1, 0); -lean_inc(x_193); -x_194 = lean_ctor_get(x_1, 1); -lean_inc(x_194); +lean_object* x_197; lean_object* x_198; lean_object* x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; +x_197 = lean_ctor_get(x_1, 0); +lean_inc(x_197); +x_198 = lean_ctor_get(x_1, 1); +lean_inc(x_198); lean_dec(x_1); -x_195 = lean_ctor_get(x_193, 0); -lean_inc(x_195); -x_196 = lean_ctor_get(x_193, 4); -lean_inc(x_196); -x_197 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointFinder_find_go), 8, 1); -lean_closure_set(x_197, 0, x_196); -lean_inc(x_195); -x_198 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_198, 0, x_195); +x_199 = lean_ctor_get(x_197, 0); +lean_inc(x_199); +x_200 = lean_ctor_get(x_197, 4); +lean_inc(x_200); +x_201 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointFinder_find_go), 9, 1); +lean_closure_set(x_201, 0, x_200); +lean_inc(x_199); +x_202 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_202, 0, x_199); +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_199 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_withNewScope___rarg(x_197, x_198, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_199) == 0) +x_203 = l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2(x_201, x_202, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_203) == 0) { -lean_object* x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; lean_object* x_204; lean_object* x_205; -x_200 = lean_ctor_get(x_199, 1); -lean_inc(x_200); -lean_dec(x_199); -x_201 = l_Lean_Compiler_LCNF_FunDeclCore_getArity___rarg(x_193); -lean_dec(x_193); -lean_inc(x_195); -x_202 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate(x_195, x_201, x_2, x_3, x_4, x_5, x_6, x_7, x_200); -x_203 = lean_ctor_get(x_202, 1); -lean_inc(x_203); -lean_dec(x_202); -x_204 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addToScope(x_195, x_2, x_3, x_4, x_5, x_6, x_7, x_203); -x_205 = lean_ctor_get(x_204, 1); -lean_inc(x_205); -lean_dec(x_204); -x_1 = x_194; -x_8 = x_205; +lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_object* x_207; lean_object* x_208; lean_object* x_209; +x_204 = lean_ctor_get(x_203, 1); +lean_inc(x_204); +lean_dec(x_203); +x_205 = l_Lean_Compiler_LCNF_FunDeclCore_getArity___rarg(x_197); +lean_dec(x_197); +lean_inc(x_199); +x_206 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_addCandidate(x_199, x_205, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_204); +x_207 = lean_ctor_get(x_206, 1); +lean_inc(x_207); +lean_dec(x_206); +x_208 = l_Lean_Compiler_LCNF_ScopeM_addToScope(x_199, x_4, x_5, x_6, x_7, x_8, x_207); +x_209 = lean_ctor_get(x_208, 1); +lean_inc(x_209); +lean_dec(x_208); +x_1 = x_198; +x_9 = x_209; goto _start; } else { -uint8_t x_207; -lean_dec(x_195); -lean_dec(x_194); -lean_dec(x_193); +uint8_t x_211; +lean_dec(x_199); +lean_dec(x_198); +lean_dec(x_197); +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); -x_207 = !lean_is_exclusive(x_199); -if (x_207 == 0) +x_211 = !lean_is_exclusive(x_203); +if (x_211 == 0) { -return x_199; +return x_203; } else { -lean_object* x_208; lean_object* x_209; lean_object* x_210; -x_208 = lean_ctor_get(x_199, 0); -x_209 = lean_ctor_get(x_199, 1); -lean_inc(x_209); -lean_inc(x_208); -lean_dec(x_199); -x_210 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_210, 0, x_208); -lean_ctor_set(x_210, 1, x_209); -return x_210; +lean_object* x_212; lean_object* x_213; lean_object* x_214; +x_212 = lean_ctor_get(x_203, 0); +x_213 = lean_ctor_get(x_203, 1); +lean_inc(x_213); +lean_inc(x_212); +lean_dec(x_203); +x_214 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_214, 0, x_212); +lean_ctor_set(x_214, 1, x_213); +return x_214; } } } case 2: { -lean_object* x_211; lean_object* x_212; lean_object* x_213; lean_object* x_214; -x_211 = lean_ctor_get(x_1, 0); -lean_inc(x_211); -x_212 = lean_ctor_get(x_1, 1); -lean_inc(x_212); +lean_object* x_215; lean_object* x_216; lean_object* x_217; lean_object* x_218; +x_215 = lean_ctor_get(x_1, 0); +lean_inc(x_215); +x_216 = lean_ctor_get(x_1, 1); +lean_inc(x_216); lean_dec(x_1); -x_213 = lean_ctor_get(x_211, 4); -lean_inc(x_213); -lean_dec(x_211); +x_217 = lean_ctor_get(x_215, 4); +lean_inc(x_217); +lean_dec(x_215); +lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_214 = l_Lean_Compiler_LCNF_JoinPointFinder_find_go(x_213, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_214) == 0) +x_218 = l_Lean_Compiler_LCNF_JoinPointFinder_find_go(x_217, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_218) == 0) { -lean_object* x_215; -x_215 = lean_ctor_get(x_214, 1); -lean_inc(x_215); -lean_dec(x_214); -x_1 = x_212; -x_8 = x_215; +lean_object* x_219; +x_219 = lean_ctor_get(x_218, 1); +lean_inc(x_219); +lean_dec(x_218); +x_1 = x_216; +x_9 = x_219; goto _start; } else { -uint8_t x_217; -lean_dec(x_212); +uint8_t x_221; +lean_dec(x_216); +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); -x_217 = !lean_is_exclusive(x_214); -if (x_217 == 0) +x_221 = !lean_is_exclusive(x_218); +if (x_221 == 0) { -return x_214; +return x_218; } else { -lean_object* x_218; lean_object* x_219; lean_object* x_220; -x_218 = lean_ctor_get(x_214, 0); -x_219 = lean_ctor_get(x_214, 1); -lean_inc(x_219); -lean_inc(x_218); -lean_dec(x_214); -x_220 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_220, 0, x_218); -lean_ctor_set(x_220, 1, x_219); -return x_220; +lean_object* x_222; lean_object* x_223; lean_object* x_224; +x_222 = lean_ctor_get(x_218, 0); +x_223 = lean_ctor_get(x_218, 1); +lean_inc(x_223); +lean_inc(x_222); +lean_dec(x_218); +x_224 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_224, 0, x_222); +lean_ctor_set(x_224, 1, x_223); +return x_224; } } } case 3: { -lean_object* x_221; lean_object* x_222; lean_object* x_223; uint8_t x_224; -x_221 = lean_ctor_get(x_1, 1); -lean_inc(x_221); +lean_object* x_225; lean_object* x_226; lean_object* x_227; uint8_t x_228; +x_225 = lean_ctor_get(x_1, 1); +lean_inc(x_225); lean_dec(x_1); -x_222 = lean_array_get_size(x_221); -x_223 = lean_unsigned_to_nat(0u); -x_224 = lean_nat_dec_lt(x_223, x_222); -if (x_224 == 0) +x_226 = lean_array_get_size(x_225); +x_227 = lean_unsigned_to_nat(0u); +x_228 = lean_nat_dec_lt(x_227, x_226); +if (x_228 == 0) { -lean_object* x_225; lean_object* x_226; -lean_dec(x_222); -lean_dec(x_221); +lean_object* x_229; lean_object* x_230; +lean_dec(x_226); +lean_dec(x_225); +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); -x_225 = lean_box(0); -x_226 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_226, 0, x_225); -lean_ctor_set(x_226, 1, x_8); -return x_226; +x_229 = lean_box(0); +x_230 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_230, 0, x_229); +lean_ctor_set(x_230, 1, x_9); +return x_230; } else { -uint8_t x_227; -x_227 = lean_nat_dec_le(x_222, x_222); -if (x_227 == 0) +uint8_t x_231; +x_231 = lean_nat_dec_le(x_226, x_226); +if (x_231 == 0) { -lean_object* x_228; lean_object* x_229; -lean_dec(x_222); -lean_dec(x_221); +lean_object* x_232; lean_object* x_233; +lean_dec(x_226); +lean_dec(x_225); +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); -x_228 = lean_box(0); -x_229 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_229, 0, x_228); -lean_ctor_set(x_229, 1, x_8); -return x_229; -} -else -{ -size_t x_230; size_t x_231; lean_object* x_232; lean_object* x_233; -x_230 = 0; -x_231 = lean_usize_of_nat(x_222); -lean_dec(x_222); x_232 = lean_box(0); -x_233 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__1(x_221, x_230, x_231, x_232, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean_dec(x_221); +x_233 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_233, 0, x_232); +lean_ctor_set(x_233, 1, x_9); return x_233; } +else +{ +size_t x_234; size_t x_235; lean_object* x_236; lean_object* x_237; +x_234 = 0; +x_235 = lean_usize_of_nat(x_226); +lean_dec(x_226); +x_236 = lean_box(0); +x_237 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__1(x_225, x_234, x_235, x_236, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_225); +return x_237; +} } } case 4: { -lean_object* x_234; lean_object* x_235; lean_object* x_236; uint8_t x_237; -x_234 = lean_ctor_get(x_1, 0); -lean_inc(x_234); +lean_object* x_238; lean_object* x_239; lean_object* x_240; uint8_t x_241; +x_238 = lean_ctor_get(x_1, 0); +lean_inc(x_238); lean_dec(x_1); -x_235 = lean_ctor_get(x_234, 2); -lean_inc(x_235); +x_239 = lean_ctor_get(x_238, 2); +lean_inc(x_239); +lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_236 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_235, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -x_237 = !lean_is_exclusive(x_236); -if (x_237 == 0) +x_240 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_239, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_241 = !lean_is_exclusive(x_240); +if (x_241 == 0) { -lean_object* x_238; lean_object* x_239; lean_object* x_240; lean_object* x_241; lean_object* x_242; uint8_t x_243; -x_238 = lean_ctor_get(x_236, 1); -x_239 = lean_ctor_get(x_236, 0); -lean_dec(x_239); -x_240 = lean_ctor_get(x_234, 3); -lean_inc(x_240); -lean_dec(x_234); -x_241 = lean_array_get_size(x_240); -x_242 = lean_unsigned_to_nat(0u); -x_243 = lean_nat_dec_lt(x_242, x_241); -if (x_243 == 0) +lean_object* x_242; lean_object* x_243; lean_object* x_244; lean_object* x_245; lean_object* x_246; uint8_t x_247; +x_242 = lean_ctor_get(x_240, 1); +x_243 = lean_ctor_get(x_240, 0); +lean_dec(x_243); +x_244 = lean_ctor_get(x_238, 3); +lean_inc(x_244); +lean_dec(x_238); +x_245 = lean_array_get_size(x_244); +x_246 = lean_unsigned_to_nat(0u); +x_247 = lean_nat_dec_lt(x_246, x_245); +if (x_247 == 0) { -lean_object* x_244; -lean_dec(x_241); +lean_object* x_248; +lean_dec(x_245); +lean_dec(x_244); +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); +x_248 = lean_box(0); +lean_ctor_set(x_240, 0, x_248); +return x_240; +} +else +{ +uint8_t x_249; +x_249 = lean_nat_dec_le(x_245, x_245); +if (x_249 == 0) +{ +lean_object* x_250; +lean_dec(x_245); +lean_dec(x_244); +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); +x_250 = lean_box(0); +lean_ctor_set(x_240, 0, x_250); +return x_240; +} +else +{ +size_t x_251; size_t x_252; lean_object* x_253; lean_object* x_254; +lean_free_object(x_240); +x_251 = 0; +x_252 = lean_usize_of_nat(x_245); +lean_dec(x_245); +x_253 = lean_box(0); +x_254 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__6(x_244, x_251, x_252, x_253, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_242); +lean_dec(x_244); +return x_254; +} +} +} +else +{ +lean_object* x_255; lean_object* x_256; lean_object* x_257; lean_object* x_258; uint8_t x_259; +x_255 = lean_ctor_get(x_240, 1); +lean_inc(x_255); lean_dec(x_240); +x_256 = lean_ctor_get(x_238, 3); +lean_inc(x_256); +lean_dec(x_238); +x_257 = lean_array_get_size(x_256); +x_258 = lean_unsigned_to_nat(0u); +x_259 = lean_nat_dec_lt(x_258, x_257); +if (x_259 == 0) +{ +lean_object* x_260; lean_object* x_261; +lean_dec(x_257); +lean_dec(x_256); +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); -x_244 = lean_box(0); -lean_ctor_set(x_236, 0, x_244); -return x_236; +x_260 = lean_box(0); +x_261 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_261, 0, x_260); +lean_ctor_set(x_261, 1, x_255); +return x_261; } else { -uint8_t x_245; -x_245 = lean_nat_dec_le(x_241, x_241); -if (x_245 == 0) +uint8_t x_262; +x_262 = lean_nat_dec_le(x_257, x_257); +if (x_262 == 0) { -lean_object* x_246; -lean_dec(x_241); -lean_dec(x_240); +lean_object* x_263; lean_object* x_264; +lean_dec(x_257); +lean_dec(x_256); +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); -x_246 = lean_box(0); -lean_ctor_set(x_236, 0, x_246); -return x_236; -} -else -{ -size_t x_247; size_t x_248; lean_object* x_249; lean_object* x_250; -lean_free_object(x_236); -x_247 = 0; -x_248 = lean_usize_of_nat(x_241); -lean_dec(x_241); -x_249 = lean_box(0); -x_250 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3(x_240, x_247, x_248, x_249, x_2, x_3, x_4, x_5, x_6, x_7, x_238); -lean_dec(x_240); -return x_250; -} -} -} -else -{ -lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; uint8_t x_255; -x_251 = lean_ctor_get(x_236, 1); -lean_inc(x_251); -lean_dec(x_236); -x_252 = lean_ctor_get(x_234, 3); -lean_inc(x_252); -lean_dec(x_234); -x_253 = lean_array_get_size(x_252); -x_254 = lean_unsigned_to_nat(0u); -x_255 = lean_nat_dec_lt(x_254, x_253); -if (x_255 == 0) -{ -lean_object* x_256; lean_object* x_257; -lean_dec(x_253); -lean_dec(x_252); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_256 = lean_box(0); -x_257 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_257, 0, x_256); -lean_ctor_set(x_257, 1, x_251); -return x_257; -} -else -{ -uint8_t x_258; -x_258 = lean_nat_dec_le(x_253, x_253); -if (x_258 == 0) -{ -lean_object* x_259; lean_object* x_260; -lean_dec(x_253); -lean_dec(x_252); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_259 = lean_box(0); -x_260 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_260, 0, x_259); -lean_ctor_set(x_260, 1, x_251); -return x_260; -} -else -{ -size_t x_261; size_t x_262; lean_object* x_263; lean_object* x_264; -x_261 = 0; -x_262 = lean_usize_of_nat(x_253); -lean_dec(x_253); x_263 = lean_box(0); -x_264 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3(x_252, x_261, x_262, x_263, x_2, x_3, x_4, x_5, x_6, x_7, x_251); -lean_dec(x_252); +x_264 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_264, 0, x_263); +lean_ctor_set(x_264, 1, x_255); return x_264; } +else +{ +size_t x_265; size_t x_266; lean_object* x_267; lean_object* x_268; +x_265 = 0; +x_266 = lean_usize_of_nat(x_257); +lean_dec(x_257); +x_267 = lean_box(0); +x_268 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__6(x_256, x_265, x_266, x_267, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_255); +lean_dec(x_256); +return x_268; +} } } } case 5: { -lean_object* x_265; lean_object* x_266; -x_265 = lean_ctor_get(x_1, 0); -lean_inc(x_265); +lean_object* x_269; lean_object* x_270; +x_269 = lean_ctor_get(x_1, 0); +lean_inc(x_269); lean_dec(x_1); -x_266 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_265, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_266; +x_270 = l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_eraseCandidate(x_269, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_270; } default: { -lean_object* x_267; lean_object* x_268; +lean_object* x_271; lean_object* x_272; +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -4047,39 +5244,63 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_267 = lean_box(0); -x_268 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_268, 0, x_267); -lean_ctor_set(x_268, 1, x_8); -return x_268; +x_271 = lean_box(0); +x_272 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_272, 0, x_271); +lean_ctor_set(x_272, 1, x_9); +return x_272; } } } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__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_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__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) { _start: { -size_t x_12; size_t x_13; lean_object* x_14; -x_12 = lean_unbox_usize(x_2); +size_t x_13; size_t x_14; lean_object* x_15; +x_13 = lean_unbox_usize(x_2); lean_dec(x_2); -x_13 = lean_unbox_usize(x_3); +x_14 = lean_unbox_usize(x_3); lean_dec(x_3); -x_14 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__1(x_1, x_12, x_13, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +x_15 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__1(x_1, x_13, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); lean_dec(x_1); -return x_14; +return x_15; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__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_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___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) { _start: { -size_t x_12; size_t x_13; lean_object* x_14; -x_12 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_13 = lean_unbox_usize(x_3); +lean_object* x_9; +x_9 = l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); lean_dec(x_3); -x_14 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3(x_1, x_12, x_13, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_dec(x_2); lean_dec(x_1); -return x_14; +return x_9; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___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) { +_start: +{ +lean_object* x_11; +x_11 = l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_2); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__6___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; +x_13 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_14 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_15 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__6(x_1, x_13, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_1); +return x_15; } } static lean_object* _init_l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__1() { @@ -4106,79 +5327,105 @@ return x_3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointFinder_find(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; x_7 = lean_ctor_get(x_1, 4); lean_inc(x_7); lean_dec(x_1); x_8 = lean_box(0); -x_9 = lean_st_ref_get(x_5, x_6); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__2; -x_12 = lean_st_mk_ref(x_11, x_10); +x_9 = lean_box(0); +x_10 = lean_st_ref_get(x_5, x_6); +x_11 = lean_ctor_get(x_10, 1); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_st_mk_ref(x_9, x_11); x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); x_14 = lean_ctor_get(x_12, 1); lean_inc(x_14); lean_dec(x_12); -lean_inc(x_5); -lean_inc(x_13); -x_15 = l_Lean_Compiler_LCNF_JoinPointFinder_find_go(x_7, x_8, x_13, x_2, x_3, x_4, x_5, x_14); -if (lean_obj_tag(x_15) == 0) -{ -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; +x_15 = lean_st_ref_get(x_5, x_14); x_16 = lean_ctor_get(x_15, 1); lean_inc(x_16); lean_dec(x_15); -x_17 = lean_st_ref_get(x_5, x_16); -lean_dec(x_5); -x_18 = lean_ctor_get(x_17, 1); -lean_inc(x_18); -lean_dec(x_17); -x_19 = lean_st_ref_get(x_13, x_18); -lean_dec(x_13); -x_20 = !lean_is_exclusive(x_19); -if (x_20 == 0) +x_17 = l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__2; +x_18 = lean_st_mk_ref(x_17, x_16); +x_19 = lean_ctor_get(x_18, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_18, 1); +lean_inc(x_20); +lean_dec(x_18); +lean_inc(x_5); +lean_inc(x_13); +lean_inc(x_19); +x_21 = l_Lean_Compiler_LCNF_JoinPointFinder_find_go(x_7, x_8, x_19, x_13, x_2, x_3, x_4, x_5, x_20); +if (lean_obj_tag(x_21) == 0) { -return x_19; -} -else -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_19, 0); -x_22 = lean_ctor_get(x_19, 1); +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; uint8_t x_31; +x_22 = lean_ctor_get(x_21, 1); lean_inc(x_22); -lean_inc(x_21); +lean_dec(x_21); +x_23 = lean_st_ref_get(x_5, x_22); +x_24 = lean_ctor_get(x_23, 1); +lean_inc(x_24); +lean_dec(x_23); +x_25 = lean_st_ref_get(x_19, x_24); lean_dec(x_19); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_21); -lean_ctor_set(x_23, 1, x_22); -return x_23; +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_25, 1); +lean_inc(x_27); +lean_dec(x_25); +x_28 = lean_st_ref_get(x_5, x_27); +lean_dec(x_5); +x_29 = lean_ctor_get(x_28, 1); +lean_inc(x_29); +lean_dec(x_28); +x_30 = lean_st_ref_get(x_13, x_29); +lean_dec(x_13); +x_31 = !lean_is_exclusive(x_30); +if (x_31 == 0) +{ +lean_object* x_32; +x_32 = lean_ctor_get(x_30, 0); +lean_dec(x_32); +lean_ctor_set(x_30, 0, x_26); +return x_30; +} +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_26); +lean_ctor_set(x_34, 1, x_33); +return x_34; } } else { -uint8_t x_24; +uint8_t x_35; +lean_dec(x_19); lean_dec(x_13); lean_dec(x_5); -x_24 = !lean_is_exclusive(x_15); -if (x_24 == 0) +x_35 = !lean_is_exclusive(x_21); +if (x_35 == 0) { -return x_15; +return x_21; } else { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_15, 0); -x_26 = lean_ctor_get(x_15, 1); -lean_inc(x_26); -lean_inc(x_25); -lean_dec(x_15); -x_27 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_27, 0, x_25); -lean_ctor_set(x_27, 1, x_26); -return x_27; +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_21, 0); +x_37 = lean_ctor_get(x_21, 1); +lean_inc(x_37); +lean_inc(x_36); +lean_dec(x_21); +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; } } } @@ -7918,6 +9165,5176 @@ lean_dec(x_2); return x_8; } } +static lean_object* _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendContext_currentJp_x3f___default() { +_start: +{ +lean_object* x_1; +x_1 = lean_box(0); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendContext_candidates___default() { +_start: +{ +lean_object* x_1; +x_1 = lean_box(0); +return x_1; +} +} +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendState_fvarMap___default___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_mkHashMapImp___rarg(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendState_fvarMap___default() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(0u); +x_2 = l_Lean_mkHashMapImp___rarg(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendState_fvarMap___default___spec__1___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_mkHashMap___at_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendState_fvarMap___default___spec__1(x_1); +lean_dec(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__2(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_3; +x_3 = lean_box(0); +return x_3; +} +else +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; uint8_t x_7; +x_4 = lean_ctor_get(x_2, 0); +x_5 = lean_ctor_get(x_2, 1); +x_6 = lean_ctor_get(x_2, 2); +x_7 = lean_name_eq(x_4, x_1); +if (x_7 == 0) +{ +x_2 = x_6; +goto _start; +} +else +{ +lean_object* x_9; +lean_inc(x_5); +x_9 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_9, 0, x_5); +return x_9; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; uint64_t x_5; size_t x_6; size_t x_7; lean_object* x_8; lean_object* x_9; +x_3 = lean_ctor_get(x_1, 1); +lean_inc(x_3); +lean_dec(x_1); +x_4 = lean_array_get_size(x_3); +x_5 = l___private_Lean_Expr_0__Lean_hashFVarId____x40_Lean_Expr___hyg_1727_(x_2); +x_6 = lean_uint64_to_usize(x_5); +x_7 = lean_usize_modn(x_6, x_4); +lean_dec(x_4); +x_8 = lean_array_uget(x_3, x_7); +lean_dec(x_3); +x_9 = l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__2(x_2, x_8); +lean_dec(x_8); +lean_dec(x_2); +return x_9; +} +} +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; +x_2 = l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__1; +x_3 = lean_panic_fn(x_2, x_1); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___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_11; +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_1); +lean_ctor_set(x_11, 1, x_10); +return x_11; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("Lean.Data.HashMap", 17); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("Lean.HashMap.find!", 18); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("key is not in the map", 21); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__4() { +_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_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__1; +x_2 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__2; +x_3 = lean_unsigned_to_nat(177u); +x_4 = lean_unsigned_to_nat(14u); +x_5 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__3; +x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar(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_10; lean_object* x_11; +x_10 = lean_ctor_get(x_2, 1); +lean_inc(x_10); +x_11 = l_Lean_RBNode_findCore___at___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_fvarDepOn___spec__1(x_10, x_1); +lean_dec(x_10); +if (lean_obj_tag(x_11) == 0) +{ +lean_object* x_12; +lean_dec(x_2); +x_12 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_12, 0, x_1); +lean_ctor_set(x_12, 1, x_9); +return x_12; +} +else +{ +lean_object* x_13; +lean_dec(x_11); +x_13 = lean_ctor_get(x_2, 0); +lean_inc(x_13); +lean_dec(x_2); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_1); +lean_ctor_set(x_14, 1, x_9); +return x_14; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_15 = lean_ctor_get(x_13, 0); +lean_inc(x_15); +lean_dec(x_13); +x_16 = lean_st_ref_get(x_8, x_9); +x_17 = lean_ctor_get(x_16, 1); +lean_inc(x_17); +lean_dec(x_16); +x_18 = lean_st_ref_get(x_3, x_17); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) +{ +lean_object* x_20; lean_object* x_21; +x_20 = lean_ctor_get(x_18, 0); +x_21 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__1(x_20, x_15); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__4; +x_23 = l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__3(x_22); +lean_inc(x_1); +x_24 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getType___spec__3(x_23, x_1); +if (lean_obj_tag(x_24) == 0) +{ +lean_ctor_set(x_18, 0, x_1); +return x_18; +} +else +{ +lean_object* x_25; lean_object* x_26; +lean_dec(x_1); +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +lean_dec(x_24); +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +lean_dec(x_25); +lean_ctor_set(x_18, 0, x_26); +return x_18; +} +} +else +{ +lean_object* x_27; lean_object* x_28; +x_27 = lean_ctor_get(x_21, 0); +lean_inc(x_27); +lean_dec(x_21); +lean_inc(x_1); +x_28 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getType___spec__3(x_27, x_1); +if (lean_obj_tag(x_28) == 0) +{ +lean_ctor_set(x_18, 0, x_1); +return x_18; +} +else +{ +lean_object* x_29; lean_object* x_30; +lean_dec(x_1); +x_29 = lean_ctor_get(x_28, 0); +lean_inc(x_29); +lean_dec(x_28); +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +lean_dec(x_29); +lean_ctor_set(x_18, 0, x_30); +return x_18; +} +} +} +else +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_31 = lean_ctor_get(x_18, 0); +x_32 = lean_ctor_get(x_18, 1); +lean_inc(x_32); +lean_inc(x_31); +lean_dec(x_18); +x_33 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__1(x_31, x_15); +if (lean_obj_tag(x_33) == 0) +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__4; +x_35 = l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__3(x_34); +lean_inc(x_1); +x_36 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getType___spec__3(x_35, x_1); +if (lean_obj_tag(x_36) == 0) +{ +lean_object* x_37; +x_37 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_37, 0, x_1); +lean_ctor_set(x_37, 1, x_32); +return x_37; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +lean_dec(x_1); +x_38 = lean_ctor_get(x_36, 0); +lean_inc(x_38); +lean_dec(x_36); +x_39 = lean_ctor_get(x_38, 0); +lean_inc(x_39); +lean_dec(x_38); +x_40 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_40, 0, x_39); +lean_ctor_set(x_40, 1, x_32); +return x_40; +} +} +else +{ +lean_object* x_41; lean_object* x_42; +x_41 = lean_ctor_get(x_33, 0); +lean_inc(x_41); +lean_dec(x_33); +lean_inc(x_1); +x_42 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getType___spec__3(x_41, x_1); +if (lean_obj_tag(x_42) == 0) +{ +lean_object* x_43; +x_43 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_43, 0, x_1); +lean_ctor_set(x_43, 1, x_32); +return x_43; +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +lean_dec(x_1); +x_44 = lean_ctor_get(x_42, 0); +lean_inc(x_44); +lean_dec(x_42); +x_45 = lean_ctor_get(x_44, 0); +lean_inc(x_45); +lean_dec(x_44); +x_46 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_46, 0, x_45); +lean_ctor_set(x_46, 1, x_32); +return x_46; +} +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__2___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__2(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___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) { +_start: +{ +lean_object* x_11; +x_11 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_9); +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); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidate___rarg(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; lean_object* x_12; +lean_inc(x_1); +x_11 = l_Lean_Compiler_LCNF_ScopeM_addToScope(x_1, x_5, x_6, x_7, x_8, x_9, x_10); +x_12 = lean_ctor_get(x_3, 0); +lean_inc(x_12); +if (lean_obj_tag(x_12) == 0) +{ +lean_object* x_13; lean_object* x_14; +lean_dec(x_1); +x_13 = lean_ctor_get(x_11, 1); +lean_inc(x_13); +lean_dec(x_11); +x_14 = lean_apply_8(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_13); +return x_14; +} +else +{ +lean_object* x_15; uint8_t x_16; +x_15 = lean_ctor_get(x_11, 1); +lean_inc(x_15); +lean_dec(x_11); +x_16 = !lean_is_exclusive(x_3); +if (x_16 == 0) +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_17 = lean_ctor_get(x_3, 1); +x_18 = lean_ctor_get(x_3, 0); +lean_dec(x_18); +x_19 = lean_box(0); +x_20 = l_Lean_RBNode_insert___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_collectExpr___spec__1(x_17, x_1, x_19); +lean_ctor_set(x_3, 1, x_20); +x_21 = lean_apply_8(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_15); +return x_21; +} +else +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_22 = lean_ctor_get(x_3, 1); +lean_inc(x_22); +lean_dec(x_3); +x_23 = lean_box(0); +x_24 = l_Lean_RBNode_insert___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_collectExpr___spec__1(x_22, x_1, x_23); +x_25 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_25, 0, x_12); +lean_ctor_set(x_25, 1, x_24); +x_26 = lean_apply_8(x_2, x_25, x_4, x_5, x_6, x_7, x_8, x_9, x_15); +return x_26; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidate(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidate___rarg), 10, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___spec__1(lean_object* x_1, size_t x_2, size_t 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: +{ +uint8_t x_13; +x_13 = lean_usize_dec_eq(x_2, x_3); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; size_t x_19; size_t x_20; +x_14 = lean_array_uget(x_1, x_2); +lean_inc(x_14); +x_15 = l_Lean_Compiler_LCNF_ScopeM_addToScope(x_14, x_7, x_8, x_9, x_10, x_11, x_12); +x_16 = lean_ctor_get(x_15, 1); +lean_inc(x_16); +lean_dec(x_15); +x_17 = lean_box(0); +x_18 = l_Lean_RBNode_insert___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_collectExpr___spec__1(x_4, x_14, x_17); +x_19 = 1; +x_20 = lean_usize_add(x_2, x_19); +x_2 = x_20; +x_4 = x_18; +x_12 = x_16; +goto _start; +} +else +{ +lean_object* x_22; +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_4); +lean_ctor_set(x_22, 1, x_12); +return x_22; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___rarg(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; +x_11 = lean_ctor_get(x_3, 0); +lean_inc(x_11); +if (lean_obj_tag(x_11) == 0) +{ +lean_object* x_12; +x_12 = lean_apply_8(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_12; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_13 = lean_ctor_get(x_3, 1); +lean_inc(x_13); +x_14 = lean_array_get_size(x_1); +x_15 = lean_unsigned_to_nat(0u); +x_16 = lean_nat_dec_lt(x_15, x_14); +if (x_16 == 0) +{ +uint8_t x_17; +lean_dec(x_14); +x_17 = !lean_is_exclusive(x_3); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_3, 1); +lean_dec(x_18); +x_19 = lean_ctor_get(x_3, 0); +lean_dec(x_19); +x_20 = lean_apply_8(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_20; +} +else +{ +lean_object* x_21; lean_object* x_22; +lean_dec(x_3); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_11); +lean_ctor_set(x_21, 1, x_13); +x_22 = lean_apply_8(x_2, x_21, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_22; +} +} +else +{ +uint8_t x_23; +x_23 = lean_nat_dec_le(x_14, x_14); +if (x_23 == 0) +{ +uint8_t x_24; +lean_dec(x_14); +x_24 = !lean_is_exclusive(x_3); +if (x_24 == 0) +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_3, 1); +lean_dec(x_25); +x_26 = lean_ctor_get(x_3, 0); +lean_dec(x_26); +x_27 = lean_apply_8(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_27; +} +else +{ +lean_object* x_28; lean_object* x_29; +lean_dec(x_3); +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_11); +lean_ctor_set(x_28, 1, x_13); +x_29 = lean_apply_8(x_2, x_28, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_29; +} +} +else +{ +size_t x_30; size_t x_31; lean_object* x_32; uint8_t x_33; +x_30 = 0; +x_31 = lean_usize_of_nat(x_14); +lean_dec(x_14); +x_32 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___spec__1(x_1, x_30, x_31, x_13, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +x_33 = !lean_is_exclusive(x_3); +if (x_33 == 0) +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_34 = lean_ctor_get(x_3, 1); +lean_dec(x_34); +x_35 = lean_ctor_get(x_3, 0); +lean_dec(x_35); +x_36 = lean_ctor_get(x_32, 0); +lean_inc(x_36); +x_37 = lean_ctor_get(x_32, 1); +lean_inc(x_37); +lean_dec(x_32); +lean_ctor_set(x_3, 1, x_36); +x_38 = lean_apply_8(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_37); +return x_38; +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; +lean_dec(x_3); +x_39 = lean_ctor_get(x_32, 0); +lean_inc(x_39); +x_40 = lean_ctor_get(x_32, 1); +lean_inc(x_40); +lean_dec(x_32); +x_41 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_41, 0, x_11); +lean_ctor_set(x_41, 1, x_39); +x_42 = lean_apply_8(x_2, x_41, x_4, x_5, x_6, x_7, x_8, x_9, x_40); +return x_42; +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___rarg___boxed), 10, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___spec__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) { +_start: +{ +size_t x_13; size_t x_14; lean_object* x_15; +x_13 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_14 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_15 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___spec__1(x_1, x_13, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +return x_15; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___rarg___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) { +_start: +{ +lean_object* x_11; +x_11 = l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_1); +return x_11; +} +} +LEAN_EXPORT uint8_t l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; uint64_t x_5; size_t x_6; size_t x_7; lean_object* x_8; uint8_t x_9; +x_3 = lean_ctor_get(x_1, 1); +x_4 = lean_array_get_size(x_3); +x_5 = l___private_Lean_Expr_0__Lean_hashFVarId____x40_Lean_Expr___hyg_1727_(x_2); +x_6 = lean_uint64_to_usize(x_5); +x_7 = lean_usize_modn(x_6, x_4); +lean_dec(x_4); +x_8 = lean_array_uget(x_3, x_7); +x_9 = l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_LCtx_addParam___spec__2(x_2, x_8); +lean_dec(x_8); +return x_9; +} +} +LEAN_EXPORT uint8_t l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__3(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_2) == 0) +{ +uint8_t x_3; +x_3 = 0; +return x_3; +} +else +{ +lean_object* x_4; lean_object* x_5; uint8_t x_6; +x_4 = lean_ctor_get(x_2, 0); +x_5 = lean_ctor_get(x_2, 2); +x_6 = lean_name_eq(x_4, x_1); +if (x_6 == 0) +{ +x_2 = x_5; +goto _start; +} +else +{ +uint8_t x_8; +x_8 = 1; +return x_8; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_AssocList_foldlM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__6(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_2) == 0) +{ +return x_1; +} +else +{ +uint8_t x_3; +x_3 = !lean_is_exclusive(x_2); +if (x_3 == 0) +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; uint64_t x_7; size_t x_8; size_t x_9; lean_object* x_10; lean_object* x_11; +x_4 = lean_ctor_get(x_2, 0); +x_5 = lean_ctor_get(x_2, 2); +x_6 = lean_array_get_size(x_1); +x_7 = l___private_Lean_Expr_0__Lean_hashFVarId____x40_Lean_Expr___hyg_1727_(x_4); +x_8 = lean_uint64_to_usize(x_7); +x_9 = lean_usize_modn(x_8, x_6); +lean_dec(x_6); +x_10 = lean_array_uget(x_1, x_9); +lean_ctor_set(x_2, 2, x_10); +x_11 = lean_array_uset(x_1, x_9, x_2); +x_1 = x_11; +x_2 = x_5; +goto _start; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint64_t x_17; size_t x_18; size_t x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_13 = lean_ctor_get(x_2, 0); +x_14 = lean_ctor_get(x_2, 1); +x_15 = lean_ctor_get(x_2, 2); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_dec(x_2); +x_16 = lean_array_get_size(x_1); +x_17 = l___private_Lean_Expr_0__Lean_hashFVarId____x40_Lean_Expr___hyg_1727_(x_13); +x_18 = lean_uint64_to_usize(x_17); +x_19 = lean_usize_modn(x_18, x_16); +lean_dec(x_16); +x_20 = lean_array_uget(x_1, x_19); +x_21 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_21, 0, x_13); +lean_ctor_set(x_21, 1, x_14); +lean_ctor_set(x_21, 2, x_20); +x_22 = lean_array_uset(x_1, x_19, x_21); +x_1 = x_22; +x_2 = x_15; +goto _start; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_HashMapImp_moveEntries___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; uint8_t x_5; +x_4 = lean_array_get_size(x_2); +x_5 = lean_nat_dec_lt(x_1, x_4); +lean_dec(x_4); +if (x_5 == 0) +{ +lean_dec(x_2); +lean_dec(x_1); +return x_3; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_6 = lean_array_fget(x_2, x_1); +x_7 = lean_box(0); +x_8 = lean_array_fset(x_2, x_1, x_7); +x_9 = l_Lean_AssocList_foldlM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__6(x_3, x_6); +x_10 = lean_unsigned_to_nat(1u); +x_11 = lean_nat_add(x_1, x_10); +lean_dec(x_1); +x_1 = x_11; +x_2 = x_8; +x_3 = x_9; +goto _start; +} +} +} +LEAN_EXPORT lean_object* l_Lean_HashMapImp_expand___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__4(lean_object* x_1, lean_object* x_2) { +_start: +{ +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; +x_3 = lean_array_get_size(x_2); +x_4 = lean_unsigned_to_nat(2u); +x_5 = lean_nat_mul(x_3, x_4); +lean_dec(x_3); +x_6 = lean_box(0); +x_7 = lean_mk_array(x_5, x_6); +x_8 = lean_unsigned_to_nat(0u); +x_9 = l_Lean_HashMapImp_moveEntries___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__5(x_8, x_2, x_7); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_1); +lean_ctor_set(x_10, 1, x_9); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__7(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_3) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +lean_dec(x_1); +x_4 = lean_box(0); +return x_4; +} +else +{ +uint8_t x_5; +x_5 = !lean_is_exclusive(x_3); +if (x_5 == 0) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; +x_6 = lean_ctor_get(x_3, 0); +x_7 = lean_ctor_get(x_3, 1); +x_8 = lean_ctor_get(x_3, 2); +x_9 = lean_name_eq(x_6, x_1); +if (x_9 == 0) +{ +lean_object* x_10; +x_10 = l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__7(x_1, x_2, x_8); +lean_ctor_set(x_3, 2, x_10); +return x_3; +} +else +{ +lean_dec(x_7); +lean_dec(x_6); +lean_ctor_set(x_3, 1, x_2); +lean_ctor_set(x_3, 0, x_1); +return x_3; +} +} +else +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; +x_11 = lean_ctor_get(x_3, 0); +x_12 = lean_ctor_get(x_3, 1); +x_13 = lean_ctor_get(x_3, 2); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_dec(x_3); +x_14 = lean_name_eq(x_11, x_1); +if (x_14 == 0) +{ +lean_object* x_15; lean_object* x_16; +x_15 = l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__7(x_1, x_2, x_13); +x_16 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_16, 0, x_11); +lean_ctor_set(x_16, 1, x_12); +lean_ctor_set(x_16, 2, x_15); +return x_16; +} +else +{ +lean_object* x_17; +lean_dec(x_12); +lean_dec(x_11); +x_17 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_17, 0, x_1); +lean_ctor_set(x_17, 1, x_2); +lean_ctor_set(x_17, 2, x_13); +return x_17; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; +x_4 = !lean_is_exclusive(x_1); +if (x_4 == 0) +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; uint64_t x_8; size_t x_9; size_t x_10; lean_object* x_11; uint8_t x_12; +x_5 = lean_ctor_get(x_1, 0); +x_6 = lean_ctor_get(x_1, 1); +x_7 = lean_array_get_size(x_6); +x_8 = l___private_Lean_Expr_0__Lean_hashFVarId____x40_Lean_Expr___hyg_1727_(x_2); +x_9 = lean_uint64_to_usize(x_8); +x_10 = lean_usize_modn(x_9, x_7); +x_11 = lean_array_uget(x_6, x_10); +x_12 = l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__3(x_2, x_11); +if (x_12 == 0) +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; +x_13 = lean_unsigned_to_nat(1u); +x_14 = lean_nat_add(x_5, x_13); +lean_dec(x_5); +x_15 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_15, 0, x_2); +lean_ctor_set(x_15, 1, x_3); +lean_ctor_set(x_15, 2, x_11); +x_16 = lean_array_uset(x_6, x_10, x_15); +x_17 = l___private_Lean_Data_HashMap_0__Lean_numBucketsForCapacity(x_14); +x_18 = lean_nat_dec_le(x_17, x_7); +lean_dec(x_7); +lean_dec(x_17); +if (x_18 == 0) +{ +lean_object* x_19; +lean_free_object(x_1); +x_19 = l_Lean_HashMapImp_expand___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__4(x_14, x_16); +return x_19; +} +else +{ +lean_ctor_set(x_1, 1, x_16); +lean_ctor_set(x_1, 0, x_14); +return x_1; +} +} +else +{ +lean_object* x_20; lean_object* x_21; +lean_dec(x_7); +x_20 = l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__7(x_2, x_3, x_11); +x_21 = lean_array_uset(x_6, x_10, x_20); +lean_ctor_set(x_1, 1, x_21); +return x_1; +} +} +else +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; uint64_t x_25; size_t x_26; size_t x_27; lean_object* x_28; uint8_t x_29; +x_22 = lean_ctor_get(x_1, 0); +x_23 = lean_ctor_get(x_1, 1); +lean_inc(x_23); +lean_inc(x_22); +lean_dec(x_1); +x_24 = lean_array_get_size(x_23); +x_25 = l___private_Lean_Expr_0__Lean_hashFVarId____x40_Lean_Expr___hyg_1727_(x_2); +x_26 = lean_uint64_to_usize(x_25); +x_27 = lean_usize_modn(x_26, x_24); +x_28 = lean_array_uget(x_23, x_27); +x_29 = l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__3(x_2, x_28); +if (x_29 == 0) +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; +x_30 = lean_unsigned_to_nat(1u); +x_31 = lean_nat_add(x_22, x_30); +lean_dec(x_22); +x_32 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_32, 0, x_2); +lean_ctor_set(x_32, 1, x_3); +lean_ctor_set(x_32, 2, x_28); +x_33 = lean_array_uset(x_23, x_27, x_32); +x_34 = l___private_Lean_Data_HashMap_0__Lean_numBucketsForCapacity(x_31); +x_35 = lean_nat_dec_le(x_34, x_24); +lean_dec(x_24); +lean_dec(x_34); +if (x_35 == 0) +{ +lean_object* x_36; +x_36 = l_Lean_HashMapImp_expand___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__4(x_31, x_33); +return x_36; +} +else +{ +lean_object* x_37; +x_37 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_37, 0, x_31); +lean_ctor_set(x_37, 1, x_33); +return x_37; +} +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +lean_dec(x_24); +x_38 = l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__7(x_2, x_3, x_28); +x_39 = lean_array_uset(x_23, x_27, x_38); +x_40 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_40, 0, x_22); +lean_ctor_set(x_40, 1, x_39); +return x_40; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary(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_10; +x_10 = lean_ctor_get(x_2, 0); +lean_inc(x_10); +if (lean_obj_tag(x_10) == 0) +{ +lean_object* x_11; lean_object* x_12; +lean_dec(x_2); +lean_dec(x_1); +x_11 = lean_box(0); +x_12 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_12, 0, x_11); +lean_ctor_set(x_12, 1, x_9); +return x_12; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; lean_object* x_24; lean_object* x_59; +x_13 = lean_ctor_get(x_10, 0); +lean_inc(x_13); +lean_dec(x_10); +x_14 = lean_st_ref_get(x_8, x_9); +x_15 = lean_ctor_get(x_14, 1); +lean_inc(x_15); +lean_dec(x_14); +x_16 = lean_st_ref_get(x_3, x_15); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +if (lean_is_exclusive(x_16)) { + lean_ctor_release(x_16, 0); + lean_ctor_release(x_16, 1); + x_19 = x_16; +} else { + lean_dec_ref(x_16); + x_19 = lean_box(0); +} +x_20 = lean_ctor_get(x_2, 1); +lean_inc(x_20); +lean_dec(x_2); +x_21 = l_Lean_Compiler_LCNF_ScopeM_isInScope(x_1, x_4, x_5, x_6, x_7, x_8, x_18); +lean_inc(x_13); +x_59 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__1(x_17, x_13); +if (lean_obj_tag(x_59) == 0) +{ +lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; +x_60 = lean_ctor_get(x_21, 0); +lean_inc(x_60); +x_61 = lean_ctor_get(x_21, 1); +lean_inc(x_61); +lean_dec(x_21); +x_62 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__4; +x_63 = l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__3(x_62); +x_64 = lean_unbox(x_60); +lean_dec(x_60); +x_22 = x_63; +x_23 = x_64; +x_24 = x_61; +goto block_58; +} +else +{ +lean_object* x_65; lean_object* x_66; lean_object* x_67; uint8_t x_68; +x_65 = lean_ctor_get(x_59, 0); +lean_inc(x_65); +lean_dec(x_59); +x_66 = lean_ctor_get(x_21, 0); +lean_inc(x_66); +x_67 = lean_ctor_get(x_21, 1); +lean_inc(x_67); +lean_dec(x_21); +x_68 = lean_unbox(x_66); +lean_dec(x_66); +x_22 = x_65; +x_23 = x_68; +x_24 = x_67; +goto block_58; +} +block_58: +{ +if (x_23 == 0) +{ +uint8_t x_25; +x_25 = l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__1(x_22, x_1); +if (x_25 == 0) +{ +lean_object* x_26; +x_26 = l_Lean_RBNode_findCore___at___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_fvarDepOn___spec__1(x_20, x_1); +lean_dec(x_20); +if (lean_obj_tag(x_26) == 0) +{ +lean_object* x_27; lean_object* x_28; +lean_dec(x_22); +lean_dec(x_13); +lean_dec(x_1); +x_27 = lean_box(0); +if (lean_is_scalar(x_19)) { + x_28 = lean_alloc_ctor(0, 2, 0); +} else { + x_28 = x_19; +} +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_24); +return x_28; +} +else +{ +lean_object* x_29; +lean_dec(x_26); +lean_dec(x_19); +lean_inc(x_1); +x_29 = l_Lean_Compiler_LCNF_getType(x_1, x_5, x_6, x_7, x_8, x_24); +if (lean_obj_tag(x_29) == 0) +{ +lean_object* x_30; lean_object* x_31; uint8_t x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; uint8_t x_44; +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_29, 1); +lean_inc(x_31); +lean_dec(x_29); +x_32 = 0; +x_33 = l_Lean_Compiler_LCNF_mkAuxParam(x_30, x_32, x_5, x_6, x_7, x_8, x_31); +x_34 = lean_ctor_get(x_33, 0); +lean_inc(x_34); +x_35 = lean_ctor_get(x_33, 1); +lean_inc(x_35); +lean_dec(x_33); +x_36 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_LCtx_addParam___spec__1(x_22, x_1, x_34); +x_37 = lean_st_ref_get(x_8, x_35); +x_38 = lean_ctor_get(x_37, 1); +lean_inc(x_38); +lean_dec(x_37); +x_39 = lean_st_ref_take(x_3, x_38); +x_40 = lean_ctor_get(x_39, 0); +lean_inc(x_40); +x_41 = lean_ctor_get(x_39, 1); +lean_inc(x_41); +lean_dec(x_39); +x_42 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__2(x_40, x_13, x_36); +x_43 = lean_st_ref_set(x_3, x_42, x_41); +x_44 = !lean_is_exclusive(x_43); +if (x_44 == 0) +{ +lean_object* x_45; lean_object* x_46; +x_45 = lean_ctor_get(x_43, 0); +lean_dec(x_45); +x_46 = lean_box(0); +lean_ctor_set(x_43, 0, x_46); +return x_43; +} +else +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; +x_47 = lean_ctor_get(x_43, 1); +lean_inc(x_47); +lean_dec(x_43); +x_48 = lean_box(0); +x_49 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_49, 0, x_48); +lean_ctor_set(x_49, 1, x_47); +return x_49; +} +} +else +{ +uint8_t x_50; +lean_dec(x_22); +lean_dec(x_13); +lean_dec(x_1); +x_50 = !lean_is_exclusive(x_29); +if (x_50 == 0) +{ +return x_29; +} +else +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; +x_51 = lean_ctor_get(x_29, 0); +x_52 = lean_ctor_get(x_29, 1); +lean_inc(x_52); +lean_inc(x_51); +lean_dec(x_29); +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; +} +} +} +} +else +{ +lean_object* x_54; lean_object* x_55; +lean_dec(x_22); +lean_dec(x_20); +lean_dec(x_13); +lean_dec(x_1); +x_54 = lean_box(0); +if (lean_is_scalar(x_19)) { + x_55 = lean_alloc_ctor(0, 2, 0); +} else { + x_55 = x_19; +} +lean_ctor_set(x_55, 0, x_54); +lean_ctor_set(x_55, 1, x_24); +return x_55; +} +} +else +{ +lean_object* x_56; lean_object* x_57; +lean_dec(x_22); +lean_dec(x_20); +lean_dec(x_13); +lean_dec(x_1); +x_56 = lean_box(0); +if (lean_is_scalar(x_19)) { + x_57 = lean_alloc_ctor(0, 2, 0); +} else { + x_57 = x_19; +} +lean_ctor_set(x_57, 0, x_56); +lean_ctor_set(x_57, 1, x_24); +return x_57; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = l_Lean_HashMapImp_contains___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__1(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +x_4 = lean_box(x_3); +return x_4; +} +} +LEAN_EXPORT lean_object* l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__3___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +uint8_t x_3; lean_object* x_4; +x_3 = l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__3(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +x_4 = lean_box(x_3); +return x_4; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_JoinPointContextExtender_mergeJpContextIfNecessary___spec__1(lean_object* x_1, size_t x_2, size_t 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: +{ +uint8_t x_13; +x_13 = lean_usize_dec_lt(x_3, x_2); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_5); +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_4); +lean_ctor_set(x_14, 1, x_12); +return x_14; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +lean_dec(x_4); +x_15 = lean_array_uget(x_1, x_3); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +lean_dec(x_15); +lean_inc(x_5); +x_17 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary(x_16, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_17) == 0) +{ +lean_object* x_18; size_t x_19; size_t x_20; lean_object* x_21; +x_18 = lean_ctor_get(x_17, 1); +lean_inc(x_18); +lean_dec(x_17); +x_19 = 1; +x_20 = lean_usize_add(x_3, x_19); +x_21 = lean_box(0); +x_3 = x_20; +x_4 = x_21; +x_12 = x_18; +goto _start; +} +else +{ +uint8_t x_23; +lean_dec(x_5); +x_23 = !lean_is_exclusive(x_17); +if (x_23 == 0) +{ +return x_17; +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_17, 0); +x_25 = lean_ctor_get(x_17, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_17); +x_26 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_26, 0, x_24); +lean_ctor_set(x_26, 1, x_25); +return x_26; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_mergeJpContextIfNecessary(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_10; +x_10 = lean_ctor_get(x_2, 0); +lean_inc(x_10); +if (lean_obj_tag(x_10) == 0) +{ +lean_object* x_11; lean_object* x_12; +lean_dec(x_2); +lean_dec(x_1); +x_11 = lean_box(0); +x_12 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_12, 0, x_11); +lean_ctor_set(x_12, 1, x_9); +return x_12; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; size_t x_18; lean_object* x_19; +lean_dec(x_10); +x_13 = lean_st_ref_get(x_8, x_9); +x_14 = lean_ctor_get(x_13, 1); +lean_inc(x_14); +lean_dec(x_13); +x_15 = lean_st_ref_get(x_3, x_14); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +x_18 = 0; +x_19 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__1(x_16, x_1); +if (lean_obj_tag(x_19) == 0) +{ +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; +x_20 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__4; +x_21 = l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__3(x_20); +x_22 = l_Lean_HashMap_toArray___at_Lean_Compiler_LCNF_LCtx_toLocalContext___spec__1(x_21); +x_23 = lean_array_get_size(x_22); +x_24 = lean_usize_of_nat(x_23); +lean_dec(x_23); +x_25 = lean_box(0); +x_26 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_JoinPointContextExtender_mergeJpContextIfNecessary___spec__1(x_22, x_24, x_18, x_25, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_17); +lean_dec(x_22); +if (lean_obj_tag(x_26) == 0) +{ +uint8_t x_27; +x_27 = !lean_is_exclusive(x_26); +if (x_27 == 0) +{ +lean_object* x_28; +x_28 = lean_ctor_get(x_26, 0); +lean_dec(x_28); +lean_ctor_set(x_26, 0, x_25); +return x_26; +} +else +{ +lean_object* x_29; lean_object* x_30; +x_29 = lean_ctor_get(x_26, 1); +lean_inc(x_29); +lean_dec(x_26); +x_30 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_30, 0, x_25); +lean_ctor_set(x_30, 1, x_29); +return x_30; +} +} +else +{ +uint8_t x_31; +x_31 = !lean_is_exclusive(x_26); +if (x_31 == 0) +{ +return x_26; +} +else +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_32 = lean_ctor_get(x_26, 0); +x_33 = lean_ctor_get(x_26, 1); +lean_inc(x_33); +lean_inc(x_32); +lean_dec(x_26); +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; +} +} +} +else +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; size_t x_38; lean_object* x_39; lean_object* x_40; +x_35 = lean_ctor_get(x_19, 0); +lean_inc(x_35); +lean_dec(x_19); +x_36 = l_Lean_HashMap_toArray___at_Lean_Compiler_LCNF_LCtx_toLocalContext___spec__1(x_35); +x_37 = lean_array_get_size(x_36); +x_38 = lean_usize_of_nat(x_37); +lean_dec(x_37); +x_39 = lean_box(0); +x_40 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_JoinPointContextExtender_mergeJpContextIfNecessary___spec__1(x_36, x_38, x_18, x_39, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_17); +lean_dec(x_36); +if (lean_obj_tag(x_40) == 0) +{ +uint8_t x_41; +x_41 = !lean_is_exclusive(x_40); +if (x_41 == 0) +{ +lean_object* x_42; +x_42 = lean_ctor_get(x_40, 0); +lean_dec(x_42); +lean_ctor_set(x_40, 0, x_39); +return x_40; +} +else +{ +lean_object* x_43; lean_object* x_44; +x_43 = lean_ctor_get(x_40, 1); +lean_inc(x_43); +lean_dec(x_40); +x_44 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_44, 0, x_39); +lean_ctor_set(x_44, 1, x_43); +return x_44; +} +} +else +{ +uint8_t x_45; +x_45 = !lean_is_exclusive(x_40); +if (x_45 == 0) +{ +return x_40; +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_40, 0); +x_47 = lean_ctor_get(x_40, 1); +lean_inc(x_47); +lean_inc(x_46); +lean_dec(x_40); +x_48 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_48, 0, x_46); +lean_ctor_set(x_48, 1, x_47); +return x_48; +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_JoinPointContextExtender_mergeJpContextIfNecessary___spec__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) { +_start: +{ +size_t x_13; size_t x_14; lean_object* x_15; +x_13 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_14 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_15 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_JoinPointContextExtender_mergeJpContextIfNecessary___spec__1(x_1, x_13, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_1); +return x_15; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_mergeJpContextIfNecessary___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_JoinPointContextExtender_mergeJpContextIfNecessary(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +return x_10; +} +} +LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__2___rarg(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; +lean_inc(x_9); +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_11 = lean_apply_8(x_1, 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; +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 = lean_apply_9(x_2, x_12, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_13); +return x_14; +} +else +{ +uint8_t x_15; +lean_dec(x_9); +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); +x_15 = !lean_is_exclusive(x_11); +if (x_15 == 0) +{ +return x_11; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_16 = lean_ctor_get(x_11, 0); +x_17 = lean_ctor_get(x_11, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_11); +x_18 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_18, 0, x_16); +lean_ctor_set(x_18, 1, x_17); +return x_18; +} +} +} +} +LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__2(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__2___rarg), 10, 0); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__3___rarg(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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = l_Lean_Compiler_LCNF_ScopeM_getScope(x_4, x_5, x_6, x_7, x_8, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +x_13 = lean_apply_8(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_12); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +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_Lean_Compiler_LCNF_ScopeM_setScope(x_11, x_4, x_5, x_6, x_7, x_8, x_15); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_17 = !lean_is_exclusive(x_16); +if (x_17 == 0) +{ +lean_object* x_18; +x_18 = lean_ctor_get(x_16, 0); +lean_dec(x_18); +lean_ctor_set(x_16, 0, x_14); +return x_16; +} +else +{ +lean_object* x_19; lean_object* x_20; +x_19 = lean_ctor_get(x_16, 1); +lean_inc(x_19); +lean_dec(x_16); +x_20 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_20, 0, x_14); +lean_ctor_set(x_20, 1, x_19); +return x_20; +} +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; +x_21 = lean_ctor_get(x_13, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_13, 1); +lean_inc(x_22); +lean_dec(x_13); +x_23 = l_Lean_Compiler_LCNF_ScopeM_setScope(x_11, x_4, x_5, x_6, x_7, x_8, x_22); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_24 = !lean_is_exclusive(x_23); +if (x_24 == 0) +{ +lean_object* x_25; +x_25 = lean_ctor_get(x_23, 0); +lean_dec(x_25); +lean_ctor_set_tag(x_23, 1); +lean_ctor_set(x_23, 0, x_21); +return x_23; +} +else +{ +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_23, 1); +lean_inc(x_26); +lean_dec(x_23); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_21); +lean_ctor_set(x_27, 1, x_26); +return x_27; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__3___rarg), 9, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__1___rarg(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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___lambda__2___boxed), 10, 1); +lean_closure_set(x_10, 0, x_1); +x_11 = l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___closed__1; +x_12 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__2___rarg), 10, 2); +lean_closure_set(x_12, 0, x_11); +lean_closure_set(x_12, 1, x_10); +x_13 = l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__3___rarg(x_12, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_13; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__1___rarg), 9, 0); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___rarg___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = lean_box(0); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___rarg(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_10; lean_object* x_11; +lean_dec(x_2); +x_10 = l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___rarg___closed__1; +x_11 = l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__1___rarg(x_1, x_10, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___rarg), 9, 0); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope(x_1, x_2); +lean_dec(x_2); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__1(size_t x_1, size_t x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; +x_4 = lean_usize_dec_lt(x_2, x_1); +if (x_4 == 0) +{ +return x_3; +} +else +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; size_t x_9; size_t x_10; lean_object* x_11; +x_5 = lean_array_uget(x_3, x_2); +x_6 = lean_unsigned_to_nat(0u); +x_7 = lean_array_uset(x_3, x_2, x_6); +x_8 = lean_ctor_get(x_5, 0); +lean_inc(x_8); +lean_dec(x_5); +x_9 = 1; +x_10 = lean_usize_add(x_2, x_9); +x_11 = lean_array_uset(x_7, x_2, x_8); +x_2 = x_10; +x_3 = x_11; +goto _start; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__3___rarg(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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = l_Lean_Compiler_LCNF_ScopeM_getScope(x_4, x_5, x_6, x_7, x_8, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +x_13 = lean_apply_8(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_12); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +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_Lean_Compiler_LCNF_ScopeM_setScope(x_11, x_4, x_5, x_6, x_7, x_8, x_15); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_17 = !lean_is_exclusive(x_16); +if (x_17 == 0) +{ +lean_object* x_18; +x_18 = lean_ctor_get(x_16, 0); +lean_dec(x_18); +lean_ctor_set(x_16, 0, x_14); +return x_16; +} +else +{ +lean_object* x_19; lean_object* x_20; +x_19 = lean_ctor_get(x_16, 1); +lean_inc(x_19); +lean_dec(x_16); +x_20 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_20, 0, x_14); +lean_ctor_set(x_20, 1, x_19); +return x_20; +} +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; +x_21 = lean_ctor_get(x_13, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_13, 1); +lean_inc(x_22); +lean_dec(x_13); +x_23 = l_Lean_Compiler_LCNF_ScopeM_setScope(x_11, x_4, x_5, x_6, x_7, x_8, x_22); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_24 = !lean_is_exclusive(x_23); +if (x_24 == 0) +{ +lean_object* x_25; +x_25 = lean_ctor_get(x_23, 0); +lean_dec(x_25); +lean_ctor_set_tag(x_23, 1); +lean_ctor_set(x_23, 0, x_21); +return x_23; +} +else +{ +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_23, 1); +lean_inc(x_26); +lean_dec(x_23); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_21); +lean_ctor_set(x_27, 1, x_26); +return x_27; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__3___rarg), 9, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__2___rarg(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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___lambda__2___boxed), 10, 1); +lean_closure_set(x_10, 0, x_1); +x_11 = l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___closed__1; +x_12 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__2___rarg), 10, 2); +lean_closure_set(x_12, 0, x_11); +lean_closure_set(x_12, 1, x_10); +x_13 = l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__3___rarg(x_12, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_13; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__2___rarg), 9, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___rarg(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; lean_object* x_12; lean_object* x_13; uint8_t x_14; +x_11 = lean_ctor_get(x_1, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_1, 2); +lean_inc(x_12); +lean_dec(x_1); +lean_inc(x_11); +x_13 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_13, 0, x_11); +x_14 = !lean_is_exclusive(x_3); +if (x_14 == 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; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; size_t x_26; size_t x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_15 = lean_ctor_get(x_3, 0); +lean_dec(x_15); +lean_ctor_set(x_3, 0, x_13); +x_16 = lean_st_ref_get(x_9, x_10); +x_17 = lean_ctor_get(x_16, 1); +lean_inc(x_17); +lean_dec(x_16); +x_18 = lean_st_ref_take(x_4, x_17); +x_19 = lean_ctor_get(x_18, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_18, 1); +lean_inc(x_20); +lean_dec(x_18); +x_21 = l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__1; +x_22 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__2(x_19, x_11, x_21); +x_23 = lean_st_ref_set(x_4, x_22, x_20); +x_24 = lean_ctor_get(x_23, 1); +lean_inc(x_24); +lean_dec(x_23); +x_25 = lean_array_get_size(x_12); +x_26 = lean_usize_of_nat(x_25); +lean_dec(x_25); +x_27 = 0; +x_28 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__1(x_26, x_27, x_12); +x_29 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___rarg___boxed), 10, 2); +lean_closure_set(x_29, 0, x_28); +lean_closure_set(x_29, 1, x_2); +x_30 = l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__2___rarg(x_29, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_24); +return x_30; +} +else +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; size_t x_43; size_t x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_31 = lean_ctor_get(x_3, 1); +lean_inc(x_31); +lean_dec(x_3); +x_32 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_32, 0, x_13); +lean_ctor_set(x_32, 1, x_31); +x_33 = lean_st_ref_get(x_9, x_10); +x_34 = lean_ctor_get(x_33, 1); +lean_inc(x_34); +lean_dec(x_33); +x_35 = lean_st_ref_take(x_4, x_34); +x_36 = lean_ctor_get(x_35, 0); +lean_inc(x_36); +x_37 = lean_ctor_get(x_35, 1); +lean_inc(x_37); +lean_dec(x_35); +x_38 = l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__1; +x_39 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary___spec__2(x_36, x_11, x_38); +x_40 = lean_st_ref_set(x_4, x_39, x_37); +x_41 = lean_ctor_get(x_40, 1); +lean_inc(x_41); +lean_dec(x_40); +x_42 = lean_array_get_size(x_12); +x_43 = lean_usize_of_nat(x_42); +lean_dec(x_42); +x_44 = 0; +x_45 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__1(x_43, x_44, x_12); +x_46 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___rarg___boxed), 10, 2); +lean_closure_set(x_46, 0, x_45); +lean_closure_set(x_46, 1, x_2); +x_47 = l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__2___rarg(x_46, x_32, x_4, x_5, x_6, x_7, x_8, x_9, x_41); +return x_47; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___rarg), 10, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +size_t x_4; size_t x_5; lean_object* x_6; +x_4 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_5 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_6 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__1(x_4, x_5, x_3); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewAltScope___spec__1___rarg(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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = l_Lean_Compiler_LCNF_ScopeM_getScope(x_4, x_5, x_6, x_7, x_8, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +x_13 = lean_apply_8(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_12); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +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_Lean_Compiler_LCNF_ScopeM_setScope(x_11, x_4, x_5, x_6, x_7, x_8, x_15); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_17 = !lean_is_exclusive(x_16); +if (x_17 == 0) +{ +lean_object* x_18; +x_18 = lean_ctor_get(x_16, 0); +lean_dec(x_18); +lean_ctor_set(x_16, 0, x_14); +return x_16; +} +else +{ +lean_object* x_19; lean_object* x_20; +x_19 = lean_ctor_get(x_16, 1); +lean_inc(x_19); +lean_dec(x_16); +x_20 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_20, 0, x_14); +lean_ctor_set(x_20, 1, x_19); +return x_20; +} +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; +x_21 = lean_ctor_get(x_13, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_13, 1); +lean_inc(x_22); +lean_dec(x_13); +x_23 = l_Lean_Compiler_LCNF_ScopeM_setScope(x_11, x_4, x_5, x_6, x_7, x_8, x_22); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_24 = !lean_is_exclusive(x_23); +if (x_24 == 0) +{ +lean_object* x_25; +x_25 = lean_ctor_get(x_23, 0); +lean_dec(x_25); +lean_ctor_set_tag(x_23, 1); +lean_ctor_set(x_23, 0, x_21); +return x_23; +} +else +{ +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_23, 1); +lean_inc(x_26); +lean_dec(x_23); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_21); +lean_ctor_set(x_27, 1, x_26); +return x_27; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewAltScope___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewAltScope___spec__1___rarg), 9, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewAltScope___rarg(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; lean_object* x_12; size_t x_13; size_t x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_11 = l_Lean_Compiler_LCNF_AltCore_getParams(x_1); +lean_dec(x_1); +x_12 = lean_array_get_size(x_11); +x_13 = lean_usize_of_nat(x_12); +lean_dec(x_12); +x_14 = 0; +x_15 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___spec__1(x_13, x_14, x_11); +x_16 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidates___rarg___boxed), 10, 2); +lean_closure_set(x_16, 0, x_15); +lean_closure_set(x_16, 1, x_2); +x_17 = l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewAltScope___spec__1___rarg(x_16, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_17; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewAltScope(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewAltScope___rarg), 10, 0); +return x_2; +} +} +static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__2___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__5; +x_2 = l_Lean_instInhabitedExpr; +x_3 = l_instInhabited___rarg(x_1, x_2); +return x_3; +} +} +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__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) { +_start: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__2___closed__1; +x_11 = lean_panic_fn(x_10, x_1); +x_12 = lean_apply_8(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__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: +{ +switch (lean_obj_tag(x_2)) { +case 1: +{ +lean_object* x_11; lean_object* x_12; +x_11 = lean_ctor_get(x_2, 0); +lean_inc(x_11); +lean_dec(x_2); +x_12 = lean_apply_9(x_1, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_12) == 0) +{ +uint8_t x_13; +x_13 = !lean_is_exclusive(x_12); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; +x_14 = lean_ctor_get(x_12, 0); +x_15 = l_Lean_Expr_fvar___override(x_14); +lean_ctor_set(x_12, 0, x_15); +return x_12; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_16 = lean_ctor_get(x_12, 0); +x_17 = lean_ctor_get(x_12, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_12); +x_18 = l_Lean_Expr_fvar___override(x_16); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_17); +return x_19; +} +} +else +{ +uint8_t x_20; +x_20 = !lean_is_exclusive(x_12); +if (x_20 == 0) +{ +return x_12; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_12, 0); +x_22 = lean_ctor_get(x_12, 1); +lean_inc(x_22); +lean_inc(x_21); +lean_dec(x_12); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_21); +lean_ctor_set(x_23, 1, x_22); +return x_23; +} +} +} +case 2: +{ +lean_object* x_24; lean_object* x_25; +lean_dec(x_2); +lean_dec(x_1); +x_24 = l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__4; +x_25 = l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__2(x_24, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_25; +} +case 5: +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_2, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_2, 1); +lean_inc(x_27); +lean_dec(x_2); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_1); +x_28 = l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__1(x_1, x_26, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_28) == 0) +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_29 = lean_ctor_get(x_28, 0); +lean_inc(x_29); +x_30 = lean_ctor_get(x_28, 1); +lean_inc(x_30); +lean_dec(x_28); +x_31 = l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__1(x_1, x_27, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_30); +if (lean_obj_tag(x_31) == 0) +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; lean_object* x_34; +x_33 = lean_ctor_get(x_31, 0); +x_34 = l_Lean_Expr_app___override(x_29, x_33); +lean_ctor_set(x_31, 0, x_34); +return x_31; +} +else +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_35 = lean_ctor_get(x_31, 0); +x_36 = lean_ctor_get(x_31, 1); +lean_inc(x_36); +lean_inc(x_35); +lean_dec(x_31); +x_37 = l_Lean_Expr_app___override(x_29, x_35); +x_38 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_38, 1, x_36); +return x_38; +} +} +else +{ +uint8_t x_39; +lean_dec(x_29); +x_39 = !lean_is_exclusive(x_31); +if (x_39 == 0) +{ +return x_31; +} +else +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; +x_40 = lean_ctor_get(x_31, 0); +x_41 = lean_ctor_get(x_31, 1); +lean_inc(x_41); +lean_inc(x_40); +lean_dec(x_31); +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; +} +} +} +else +{ +uint8_t x_43; +lean_dec(x_27); +lean_dec(x_9); +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_1); +x_43 = !lean_is_exclusive(x_28); +if (x_43 == 0) +{ +return x_28; +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_44 = lean_ctor_get(x_28, 0); +x_45 = lean_ctor_get(x_28, 1); +lean_inc(x_45); +lean_inc(x_44); +lean_dec(x_28); +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; +} +} +} +case 6: +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; uint8_t x_50; lean_object* x_51; +x_47 = lean_ctor_get(x_2, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_2, 1); +lean_inc(x_48); +x_49 = lean_ctor_get(x_2, 2); +lean_inc(x_49); +x_50 = lean_ctor_get_uint8(x_2, sizeof(void*)*3 + 8); +lean_dec(x_2); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_1); +x_51 = l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__1(x_1, x_48, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_51) == 0) +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_52 = lean_ctor_get(x_51, 0); +lean_inc(x_52); +x_53 = lean_ctor_get(x_51, 1); +lean_inc(x_53); +lean_dec(x_51); +x_54 = l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__1(x_1, x_49, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_53); +if (lean_obj_tag(x_54) == 0) +{ +uint8_t x_55; +x_55 = !lean_is_exclusive(x_54); +if (x_55 == 0) +{ +lean_object* x_56; lean_object* x_57; +x_56 = lean_ctor_get(x_54, 0); +x_57 = l_Lean_Expr_lam___override(x_47, x_52, x_56, x_50); +lean_ctor_set(x_54, 0, x_57); +return x_54; +} +else +{ +lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; +x_58 = lean_ctor_get(x_54, 0); +x_59 = lean_ctor_get(x_54, 1); +lean_inc(x_59); +lean_inc(x_58); +lean_dec(x_54); +x_60 = l_Lean_Expr_lam___override(x_47, x_52, x_58, x_50); +x_61 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_61, 0, x_60); +lean_ctor_set(x_61, 1, x_59); +return x_61; +} +} +else +{ +uint8_t x_62; +lean_dec(x_52); +lean_dec(x_47); +x_62 = !lean_is_exclusive(x_54); +if (x_62 == 0) +{ +return x_54; +} +else +{ +lean_object* x_63; lean_object* x_64; lean_object* x_65; +x_63 = lean_ctor_get(x_54, 0); +x_64 = lean_ctor_get(x_54, 1); +lean_inc(x_64); +lean_inc(x_63); +lean_dec(x_54); +x_65 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_65, 0, x_63); +lean_ctor_set(x_65, 1, x_64); +return x_65; +} +} +} +else +{ +uint8_t x_66; +lean_dec(x_49); +lean_dec(x_47); +lean_dec(x_9); +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_1); +x_66 = !lean_is_exclusive(x_51); +if (x_66 == 0) +{ +return x_51; +} +else +{ +lean_object* x_67; lean_object* x_68; lean_object* x_69; +x_67 = lean_ctor_get(x_51, 0); +x_68 = lean_ctor_get(x_51, 1); +lean_inc(x_68); +lean_inc(x_67); +lean_dec(x_51); +x_69 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_69, 0, x_67); +lean_ctor_set(x_69, 1, x_68); +return x_69; +} +} +} +case 7: +{ +lean_object* x_70; lean_object* x_71; lean_object* x_72; uint8_t x_73; lean_object* x_74; +x_70 = lean_ctor_get(x_2, 0); +lean_inc(x_70); +x_71 = lean_ctor_get(x_2, 1); +lean_inc(x_71); +x_72 = lean_ctor_get(x_2, 2); +lean_inc(x_72); +x_73 = lean_ctor_get_uint8(x_2, sizeof(void*)*3 + 8); +lean_dec(x_2); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_1); +x_74 = l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__1(x_1, x_71, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_74) == 0) +{ +lean_object* x_75; lean_object* x_76; lean_object* x_77; +x_75 = lean_ctor_get(x_74, 0); +lean_inc(x_75); +x_76 = lean_ctor_get(x_74, 1); +lean_inc(x_76); +lean_dec(x_74); +x_77 = l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__1(x_1, x_72, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_76); +if (lean_obj_tag(x_77) == 0) +{ +uint8_t x_78; +x_78 = !lean_is_exclusive(x_77); +if (x_78 == 0) +{ +lean_object* x_79; lean_object* x_80; +x_79 = lean_ctor_get(x_77, 0); +x_80 = l_Lean_Expr_forallE___override(x_70, x_75, x_79, x_73); +lean_ctor_set(x_77, 0, x_80); +return x_77; +} +else +{ +lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_81 = lean_ctor_get(x_77, 0); +x_82 = lean_ctor_get(x_77, 1); +lean_inc(x_82); +lean_inc(x_81); +lean_dec(x_77); +x_83 = l_Lean_Expr_forallE___override(x_70, x_75, x_81, x_73); +x_84 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_84, 0, x_83); +lean_ctor_set(x_84, 1, x_82); +return x_84; +} +} +else +{ +uint8_t x_85; +lean_dec(x_75); +lean_dec(x_70); +x_85 = !lean_is_exclusive(x_77); +if (x_85 == 0) +{ +return x_77; +} +else +{ +lean_object* x_86; lean_object* x_87; lean_object* x_88; +x_86 = lean_ctor_get(x_77, 0); +x_87 = lean_ctor_get(x_77, 1); +lean_inc(x_87); +lean_inc(x_86); +lean_dec(x_77); +x_88 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_88, 0, x_86); +lean_ctor_set(x_88, 1, x_87); +return x_88; +} +} +} +else +{ +uint8_t x_89; +lean_dec(x_72); +lean_dec(x_70); +lean_dec(x_9); +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_1); +x_89 = !lean_is_exclusive(x_74); +if (x_89 == 0) +{ +return x_74; +} +else +{ +lean_object* x_90; lean_object* x_91; lean_object* x_92; +x_90 = lean_ctor_get(x_74, 0); +x_91 = lean_ctor_get(x_74, 1); +lean_inc(x_91); +lean_inc(x_90); +lean_dec(x_74); +x_92 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_92, 0, x_90); +lean_ctor_set(x_92, 1, x_91); +return x_92; +} +} +} +case 8: +{ +lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; uint8_t x_97; lean_object* x_98; +x_93 = lean_ctor_get(x_2, 0); +lean_inc(x_93); +x_94 = lean_ctor_get(x_2, 1); +lean_inc(x_94); +x_95 = lean_ctor_get(x_2, 2); +lean_inc(x_95); +x_96 = lean_ctor_get(x_2, 3); +lean_inc(x_96); +x_97 = lean_ctor_get_uint8(x_2, sizeof(void*)*4 + 8); +lean_dec(x_2); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_1); +x_98 = l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__1(x_1, x_94, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_98) == 0) +{ +lean_object* x_99; lean_object* x_100; lean_object* x_101; +x_99 = lean_ctor_get(x_98, 0); +lean_inc(x_99); +x_100 = lean_ctor_get(x_98, 1); +lean_inc(x_100); +lean_dec(x_98); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_1); +x_101 = l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__1(x_1, x_95, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_100); +if (lean_obj_tag(x_101) == 0) +{ +lean_object* x_102; lean_object* x_103; lean_object* x_104; +x_102 = lean_ctor_get(x_101, 0); +lean_inc(x_102); +x_103 = lean_ctor_get(x_101, 1); +lean_inc(x_103); +lean_dec(x_101); +x_104 = l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__1(x_1, x_96, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_103); +if (lean_obj_tag(x_104) == 0) +{ +uint8_t x_105; +x_105 = !lean_is_exclusive(x_104); +if (x_105 == 0) +{ +lean_object* x_106; lean_object* x_107; +x_106 = lean_ctor_get(x_104, 0); +x_107 = l_Lean_Expr_letE___override(x_93, x_99, x_102, x_106, x_97); +lean_ctor_set(x_104, 0, x_107); +return x_104; +} +else +{ +lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_108 = lean_ctor_get(x_104, 0); +x_109 = lean_ctor_get(x_104, 1); +lean_inc(x_109); +lean_inc(x_108); +lean_dec(x_104); +x_110 = l_Lean_Expr_letE___override(x_93, x_99, x_102, x_108, x_97); +x_111 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_111, 0, x_110); +lean_ctor_set(x_111, 1, x_109); +return x_111; +} +} +else +{ +uint8_t x_112; +lean_dec(x_102); +lean_dec(x_99); +lean_dec(x_93); +x_112 = !lean_is_exclusive(x_104); +if (x_112 == 0) +{ +return x_104; +} +else +{ +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_104, 0); +x_114 = lean_ctor_get(x_104, 1); +lean_inc(x_114); +lean_inc(x_113); +lean_dec(x_104); +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; +} +} +} +else +{ +uint8_t x_116; +lean_dec(x_99); +lean_dec(x_96); +lean_dec(x_93); +lean_dec(x_9); +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_1); +x_116 = !lean_is_exclusive(x_101); +if (x_116 == 0) +{ +return x_101; +} +else +{ +lean_object* x_117; lean_object* x_118; lean_object* x_119; +x_117 = lean_ctor_get(x_101, 0); +x_118 = lean_ctor_get(x_101, 1); +lean_inc(x_118); +lean_inc(x_117); +lean_dec(x_101); +x_119 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_119, 0, x_117); +lean_ctor_set(x_119, 1, x_118); +return x_119; +} +} +} +else +{ +uint8_t x_120; +lean_dec(x_96); +lean_dec(x_95); +lean_dec(x_93); +lean_dec(x_9); +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_1); +x_120 = !lean_is_exclusive(x_98); +if (x_120 == 0) +{ +return x_98; +} +else +{ +lean_object* x_121; lean_object* x_122; lean_object* x_123; +x_121 = lean_ctor_get(x_98, 0); +x_122 = lean_ctor_get(x_98, 1); +lean_inc(x_122); +lean_inc(x_121); +lean_dec(x_98); +x_123 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_123, 0, x_121); +lean_ctor_set(x_123, 1, x_122); +return x_123; +} +} +} +case 11: +{ +lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; +x_124 = lean_ctor_get(x_2, 0); +lean_inc(x_124); +x_125 = lean_ctor_get(x_2, 1); +lean_inc(x_125); +x_126 = lean_ctor_get(x_2, 2); +lean_inc(x_126); +lean_dec(x_2); +x_127 = l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__1(x_1, x_126, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_127) == 0) +{ +uint8_t x_128; +x_128 = !lean_is_exclusive(x_127); +if (x_128 == 0) +{ +lean_object* x_129; lean_object* x_130; +x_129 = lean_ctor_get(x_127, 0); +x_130 = l_Lean_Expr_proj___override(x_124, x_125, x_129); +lean_ctor_set(x_127, 0, x_130); +return x_127; +} +else +{ +lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; +x_131 = lean_ctor_get(x_127, 0); +x_132 = lean_ctor_get(x_127, 1); +lean_inc(x_132); +lean_inc(x_131); +lean_dec(x_127); +x_133 = l_Lean_Expr_proj___override(x_124, x_125, x_131); +x_134 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_134, 0, x_133); +lean_ctor_set(x_134, 1, x_132); +return x_134; +} +} +else +{ +uint8_t x_135; +lean_dec(x_125); +lean_dec(x_124); +x_135 = !lean_is_exclusive(x_127); +if (x_135 == 0) +{ +return x_127; +} +else +{ +lean_object* x_136; lean_object* x_137; lean_object* x_138; +x_136 = lean_ctor_get(x_127, 0); +x_137 = lean_ctor_get(x_127, 1); +lean_inc(x_137); +lean_inc(x_136); +lean_dec(x_127); +x_138 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_138, 0, x_136); +lean_ctor_set(x_138, 1, x_137); +return x_138; +} +} +} +default: +{ +lean_object* x_139; +lean_dec(x_9); +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_1); +x_139 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_139, 0, x_2); +lean_ctor_set(x_139, 1, x_10); +return x_139; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___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) { +_start: +{ +lean_object* x_10; +lean_inc(x_2); +lean_inc(x_1); +x_10 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_10) == 0) +{ +lean_object* x_11; lean_object* x_12; +x_11 = lean_ctor_get(x_10, 1); +lean_inc(x_11); +lean_dec(x_10); +x_12 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_11); +return x_12; +} +else +{ +uint8_t x_13; +lean_dec(x_2); +lean_dec(x_1); +x_13 = !lean_is_exclusive(x_10); +if (x_13 == 0) +{ +return x_10; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_14 = lean_ctor_get(x_10, 0); +x_15 = lean_ctor_get(x_10, 1); +lean_inc(x_15); +lean_inc(x_14); +lean_dec(x_10); +x_16 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_16, 0, x_14); +lean_ctor_set(x_16, 1, x_15); +return x_16; +} +} +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___lambda__1___boxed), 9, 0); +return x_1; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr(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_10; lean_object* x_11; +x_10 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___closed__1; +x_11 = l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__1(x_10, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__1(size_t x_1, size_t x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; +x_4 = lean_usize_dec_lt(x_2, x_1); +if (x_4 == 0) +{ +return x_3; +} +else +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; size_t x_9; size_t x_10; lean_object* x_11; +x_5 = lean_array_uget(x_3, x_2); +x_6 = lean_unsigned_to_nat(0u); +x_7 = lean_array_uset(x_3, x_2, x_6); +x_8 = lean_ctor_get(x_5, 1); +lean_inc(x_8); +lean_dec(x_5); +x_9 = 1; +x_10 = lean_usize_add(x_2, x_9); +x_11 = lean_array_uset(x_7, x_2, x_8); +x_2 = x_10; +x_3 = x_11; +goto _start; +} +} +} +LEAN_EXPORT lean_object* l_Array_foldrMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__2(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; +x_5 = lean_usize_dec_eq(x_2, x_3); +if (x_5 == 0) +{ +size_t x_6; size_t x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; lean_object* x_12; +x_6 = 1; +x_7 = lean_usize_sub(x_2, x_6); +x_8 = lean_array_uget(x_1, x_7); +x_9 = lean_ctor_get(x_8, 1); +lean_inc(x_9); +x_10 = lean_ctor_get(x_8, 2); +lean_inc(x_10); +lean_dec(x_8); +x_11 = 0; +x_12 = l_Lean_Expr_forallE___override(x_9, x_10, x_4, x_11); +x_2 = x_7; +x_4 = x_12; +goto _start; +} +else +{ +return x_4; +} +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__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) { +_start: +{ +uint8_t x_12; +x_12 = lean_usize_dec_lt(x_2, x_1); +if (x_12 == 0) +{ +lean_object* x_13; +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_13 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_13, 0, x_3); +lean_ctor_set(x_13, 1, x_11); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_14 = lean_array_uget(x_3, x_2); +x_15 = lean_unsigned_to_nat(0u); +x_16 = lean_array_uset(x_3, x_2, x_15); +x_17 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___closed__1; +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +x_18 = l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__1(x_17, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +if (lean_obj_tag(x_18) == 0) +{ +lean_object* x_19; lean_object* x_20; size_t x_21; size_t x_22; lean_object* x_23; +x_19 = lean_ctor_get(x_18, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_18, 1); +lean_inc(x_20); +lean_dec(x_18); +x_21 = 1; +x_22 = lean_usize_add(x_2, x_21); +x_23 = lean_array_uset(x_16, x_2, x_19); +x_2 = x_22; +x_3 = x_23; +x_11 = x_20; +goto _start; +} +else +{ +uint8_t x_25; +lean_dec(x_16); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_25 = !lean_is_exclusive(x_18); +if (x_25 == 0) +{ +return x_18; +} +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_18, 0); +x_27 = lean_ctor_get(x_18, 1); +lean_inc(x_27); +lean_inc(x_26); +lean_dec(x_18); +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_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__4(size_t x_1, size_t x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; +x_4 = lean_usize_dec_lt(x_2, x_1); +if (x_4 == 0) +{ +return x_3; +} +else +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; size_t x_9; size_t x_10; lean_object* x_11; +x_5 = lean_array_uget(x_3, x_2); +x_6 = lean_unsigned_to_nat(0u); +x_7 = lean_array_uset(x_3, x_2, x_6); +x_8 = lean_ctor_get(x_5, 0); +lean_inc(x_8); +lean_dec(x_5); +x_9 = 1; +x_10 = lean_usize_add(x_2, x_9); +x_11 = lean_array_uset(x_7, x_2, x_8); +x_2 = x_10; +x_3 = x_11; +goto _start; +} +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__5(size_t x_1, size_t x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; +x_4 = lean_usize_dec_lt(x_2, x_1); +if (x_4 == 0) +{ +return x_3; +} +else +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; size_t x_9; size_t x_10; lean_object* x_11; +x_5 = lean_array_uget(x_3, x_2); +x_6 = lean_unsigned_to_nat(0u); +x_7 = lean_array_uset(x_3, x_2, x_6); +x_8 = l_Lean_Expr_fvar___override(x_5); +x_9 = 1; +x_10 = lean_usize_add(x_2, x_9); +x_11 = lean_array_uset(x_7, x_2, x_8); +x_2 = x_10; +x_3 = x_11; +goto _start; +} +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__6(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; +x_5 = lean_usize_dec_lt(x_3, x_2); +if (x_5 == 0) +{ +lean_dec(x_1); +return x_4; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; size_t x_9; size_t x_10; lean_object* x_11; +x_6 = lean_array_uget(x_4, x_3); +x_7 = lean_unsigned_to_nat(0u); +x_8 = lean_array_uset(x_4, x_3, x_7); +x_9 = 1; +x_10 = lean_usize_add(x_3, x_9); +lean_inc(x_6); +lean_inc(x_1); +x_11 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getType___spec__3(x_1, x_6); +if (lean_obj_tag(x_11) == 0) +{ +lean_object* x_12; lean_object* x_13; +x_12 = l_Lean_Expr_fvar___override(x_6); +x_13 = lean_array_uset(x_8, x_3, x_12); +x_3 = x_10; +x_4 = x_13; +goto _start; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +lean_dec(x_6); +x_15 = lean_ctor_get(x_11, 0); +lean_inc(x_15); +lean_dec(x_11); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +lean_dec(x_15); +x_17 = l_Lean_Expr_fvar___override(x_16); +x_18 = lean_array_uset(x_8, x_3, x_17); +x_3 = x_10; +x_4 = x_18; +goto _start; +} +} +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__7(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; +x_5 = lean_usize_dec_lt(x_3, x_2); +if (x_5 == 0) +{ +lean_dec(x_1); +return x_4; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; size_t x_9; size_t x_10; lean_object* x_11; +x_6 = lean_array_uget(x_4, x_3); +x_7 = lean_unsigned_to_nat(0u); +x_8 = lean_array_uset(x_4, x_3, x_7); +x_9 = 1; +x_10 = lean_usize_add(x_3, x_9); +lean_inc(x_6); +lean_inc(x_1); +x_11 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_getType___spec__3(x_1, x_6); +if (lean_obj_tag(x_11) == 0) +{ +lean_object* x_12; lean_object* x_13; +x_12 = l_Lean_Expr_fvar___override(x_6); +x_13 = lean_array_uset(x_8, x_3, x_12); +x_3 = x_10; +x_4 = x_13; +goto _start; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +lean_dec(x_6); +x_15 = lean_ctor_get(x_11, 0); +lean_inc(x_15); +lean_dec(x_11); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +lean_dec(x_15); +x_17 = l_Lean_Expr_fvar___override(x_16); +x_18 = lean_array_uset(x_8, x_3, x_17); +x_3 = x_10; +x_4 = x_18; +goto _start; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_AltCore_mapCodeM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__8(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; lean_object* x_12; +x_11 = l_Lean_Compiler_LCNF_AltCore_getCode(x_1); +x_12 = lean_apply_9(x_2, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_12) == 0) +{ +uint8_t x_13; +x_13 = !lean_is_exclusive(x_12); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; +x_14 = lean_ctor_get(x_12, 0); +x_15 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_1, x_14); +lean_ctor_set(x_12, 0, x_15); +return x_12; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_16 = lean_ctor_get(x_12, 0); +x_17 = lean_ctor_get(x_12, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_12); +x_18 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_1, x_16); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_17); +return x_19; +} +} +else +{ +uint8_t x_20; +lean_dec(x_1); +x_20 = !lean_is_exclusive(x_12); +if (x_20 == 0) +{ +return x_12; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_12, 0); +x_22 = lean_ctor_get(x_12, 1); +lean_inc(x_22); +lean_inc(x_21); +lean_dec(x_12); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_21); +lean_ctor_set(x_23, 1, x_22); +return x_23; +} +} +} +} +static lean_object* _init_l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__9___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go), 9, 0); +return x_1; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__9(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) { +_start: +{ +uint8_t x_12; +x_12 = lean_usize_dec_lt(x_2, x_1); +if (x_12 == 0) +{ +lean_object* x_13; +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_13 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_13, 0, x_3); +lean_ctor_set(x_13, 1, x_11); +return x_13; +} +else +{ +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_array_uget(x_3, x_2); +x_15 = lean_unsigned_to_nat(0u); +x_16 = lean_array_uset(x_3, x_2, x_15); +x_17 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__9___closed__1; +lean_inc(x_14); +x_18 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_AltCore_mapCodeM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__8), 10, 2); +lean_closure_set(x_18, 0, x_14); +lean_closure_set(x_18, 1, x_17); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +x_19 = l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewAltScope___rarg(x_14, x_18, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +if (lean_obj_tag(x_19) == 0) +{ +lean_object* x_20; lean_object* x_21; size_t x_22; size_t x_23; lean_object* x_24; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +x_21 = lean_ctor_get(x_19, 1); +lean_inc(x_21); +lean_dec(x_19); +x_22 = 1; +x_23 = lean_usize_add(x_2, x_22); +x_24 = lean_array_uset(x_16, x_2, x_20); +x_2 = x_23; +x_3 = x_24; +x_11 = x_21; +goto _start; +} +else +{ +uint8_t x_26; +lean_dec(x_16); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_26 = !lean_is_exclusive(x_19); +if (x_26 == 0) +{ +return x_19; +} +else +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_27 = lean_ctor_get(x_19, 0); +x_28 = lean_ctor_get(x_19, 1); +lean_inc(x_28); +lean_inc(x_27); +lean_dec(x_19); +x_29 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_29, 0, x_27); +lean_ctor_set(x_29, 1, x_28); +return x_29; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_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, lean_object* x_11, lean_object* x_12, lean_object* x_13) { +_start: +{ +size_t x_14; size_t x_15; uint8_t x_16; +x_14 = lean_ptr_addr(x_1); +x_15 = lean_ptr_addr(x_5); +x_16 = lean_usize_dec_eq(x_14, x_15); +if (x_16 == 0) +{ +lean_object* x_17; lean_object* x_18; +lean_dec(x_4); +x_17 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_17, 0, x_2); +lean_ctor_set(x_17, 1, x_5); +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_17); +lean_ctor_set(x_18, 1, x_13); +return x_18; +} +else +{ +size_t x_19; size_t x_20; uint8_t x_21; +x_19 = lean_ptr_addr(x_3); +x_20 = lean_ptr_addr(x_2); +x_21 = lean_usize_dec_eq(x_19, x_20); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_4); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_2); +lean_ctor_set(x_22, 1, x_5); +x_23 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_13); +return x_23; +} +else +{ +lean_object* x_24; +lean_dec(x_5); +lean_dec(x_2); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_4); +lean_ctor_set(x_24, 1, x_13); +return x_24; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___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; lean_object* x_12; lean_object* x_13; +x_11 = lean_ctor_get(x_1, 3); +lean_inc(x_11); +x_12 = lean_ctor_get(x_1, 2); +lean_inc(x_12); +x_13 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_1, x_11, x_12, x_2, x_6, x_7, x_8, x_9, x_10); +return x_13; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___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, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { +_start: +{ +size_t x_14; size_t x_15; uint8_t x_16; +x_14 = lean_ptr_addr(x_1); +x_15 = lean_ptr_addr(x_5); +x_16 = lean_usize_dec_eq(x_14, x_15); +if (x_16 == 0) +{ +lean_object* x_17; lean_object* x_18; +lean_dec(x_4); +x_17 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_17, 0, x_2); +lean_ctor_set(x_17, 1, x_5); +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_17); +lean_ctor_set(x_18, 1, x_13); +return x_18; +} +else +{ +size_t x_19; size_t x_20; uint8_t x_21; +x_19 = lean_ptr_addr(x_3); +x_20 = lean_ptr_addr(x_2); +x_21 = lean_usize_dec_eq(x_19, x_20); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_4); +x_22 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_22, 0, x_2); +lean_ctor_set(x_22, 1, x_5); +x_23 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_13); +return x_23; +} +else +{ +lean_object* x_24; +lean_dec(x_5); +lean_dec(x_2); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_4); +lean_ctor_set(x_24, 1, x_13); +return x_24; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__4(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; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; size_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_34; +x_11 = lean_st_ref_get(x_9, x_10); +x_12 = lean_ctor_get(x_11, 1); +lean_inc(x_12); +lean_dec(x_11); +x_13 = lean_st_ref_get(x_4, x_12); +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 = lean_ctor_get(x_1, 0); +lean_inc(x_16); +x_17 = 0; +x_18 = lean_ctor_get(x_1, 3); +lean_inc(x_18); +x_19 = lean_ctor_get(x_1, 2); +lean_inc(x_19); +x_34 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__1(x_14, x_16); +if (lean_obj_tag(x_34) == 0) +{ +lean_object* x_35; lean_object* x_36; +x_35 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__4; +x_36 = l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__3(x_35); +x_20 = x_36; +goto block_33; +} +else +{ +lean_object* x_37; +x_37 = lean_ctor_get(x_34, 0); +lean_inc(x_37); +lean_dec(x_34); +x_20 = x_37; +goto block_33; +} +block_33: +{ +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; uint8_t x_28; +x_21 = l_Lean_HashMap_toArray___at_Lean_Compiler_LCNF_LCtx_toLocalContext___spec__1(x_20); +x_22 = lean_array_get_size(x_21); +x_23 = lean_usize_of_nat(x_22); +lean_dec(x_22); +x_24 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__1(x_23, x_17, x_21); +x_25 = lean_array_get_size(x_24); +lean_inc(x_24); +x_26 = l_Array_append___rarg(x_24, x_19); +x_27 = lean_unsigned_to_nat(0u); +x_28 = lean_nat_dec_lt(x_27, x_25); +if (x_28 == 0) +{ +lean_object* x_29; +lean_dec(x_25); +lean_dec(x_24); +x_29 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_1, x_18, x_26, x_2, x_6, x_7, x_8, x_9, x_15); +return x_29; +} +else +{ +size_t x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_usize_of_nat(x_25); +lean_dec(x_25); +x_31 = l_Array_foldrMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__2(x_24, x_30, x_17, x_18); +lean_dec(x_24); +x_32 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_1, x_31, x_26, x_2, x_6, x_7, x_8, x_9, x_15); +return x_32; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__5(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_object* x_13) { +_start: +{ +size_t x_14; size_t x_15; uint8_t x_16; +x_14 = lean_ptr_addr(x_1); +x_15 = lean_ptr_addr(x_5); +x_16 = lean_usize_dec_eq(x_14, x_15); +if (x_16 == 0) +{ +lean_object* x_17; lean_object* x_18; +lean_dec(x_4); +x_17 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_17, 0, x_2); +lean_ctor_set(x_17, 1, x_5); +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_17); +lean_ctor_set(x_18, 1, x_13); +return x_18; +} +else +{ +size_t x_19; size_t x_20; uint8_t x_21; +x_19 = lean_ptr_addr(x_3); +x_20 = lean_ptr_addr(x_2); +x_21 = lean_usize_dec_eq(x_19, x_20); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_4); +x_22 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_22, 0, x_2); +lean_ctor_set(x_22, 1, x_5); +x_23 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_13); +return x_23; +} +else +{ +lean_object* x_24; +lean_dec(x_5); +lean_dec(x_2); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_4); +lean_ctor_set(x_24, 1, x_13); +return x_24; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__6(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_object* x_13) { +_start: +{ +uint8_t x_14; +x_14 = lean_name_eq(x_1, x_1); +if (x_14 == 0) +{ +lean_object* x_15; lean_object* x_16; +lean_dec(x_3); +x_15 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_15, 0, x_1); +lean_ctor_set(x_15, 1, x_4); +x_16 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_16, 0, x_15); +lean_ctor_set(x_16, 1, x_13); +return x_16; +} +else +{ +size_t x_17; size_t x_18; uint8_t x_19; +x_17 = lean_ptr_addr(x_2); +x_18 = lean_ptr_addr(x_4); +x_19 = lean_usize_dec_eq(x_17, x_18); +if (x_19 == 0) +{ +lean_object* x_20; lean_object* x_21; +lean_dec(x_3); +x_20 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_20, 0, x_1); +lean_ctor_set(x_20, 1, x_4); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_13); +return x_21; +} +else +{ +lean_object* x_22; +lean_dec(x_4); +lean_dec(x_1); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_3); +lean_ctor_set(x_22, 1, x_13); +return x_22; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_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: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* 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); +x_12 = lean_ctor_get(x_10, 3); +lean_inc(x_12); +x_13 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___closed__1; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +x_14 = l_Lean_Compiler_LCNF_mapFVarM___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__1(x_13, x_12, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_14) == 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; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +x_16 = lean_ctor_get(x_14, 1); +lean_inc(x_16); +lean_dec(x_14); +lean_inc(x_10); +x_17 = l_Lean_Compiler_LCNF_LetDecl_updateValue(x_10, x_15, x_5, x_6, x_7, x_8, x_16); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_17, 1); +lean_inc(x_19); +lean_dec(x_17); +x_20 = lean_ctor_get(x_18, 0); +lean_inc(x_20); +lean_inc(x_11); +x_21 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go), 9, 1); +lean_closure_set(x_21, 0, x_11); +x_22 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__1___boxed), 13, 4); +lean_closure_set(x_22, 0, x_11); +lean_closure_set(x_22, 1, x_18); +lean_closure_set(x_22, 2, x_10); +lean_closure_set(x_22, 3, x_1); +x_23 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__2___rarg), 10, 2); +lean_closure_set(x_23, 0, x_21); +lean_closure_set(x_23, 1, x_22); +x_24 = l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidate___rarg(x_20, x_23, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_19); +return x_24; +} +else +{ +uint8_t x_25; +lean_dec(x_11); +lean_dec(x_10); +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_25 = !lean_is_exclusive(x_14); +if (x_25 == 0) +{ +return x_14; +} +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_14, 0); +x_27 = lean_ctor_get(x_14, 1); +lean_inc(x_27); +lean_inc(x_26); +lean_dec(x_14); +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; +} +} +} +case 1: +{ +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_1, 0); +lean_inc(x_29); +x_30 = lean_ctor_get(x_1, 1); +lean_inc(x_30); +x_31 = lean_ctor_get(x_29, 4); +lean_inc(x_31); +x_32 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go), 9, 1); +lean_closure_set(x_32, 0, x_31); +lean_inc(x_29); +x_33 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__2___boxed), 10, 1); +lean_closure_set(x_33, 0, x_29); +x_34 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__2___rarg), 10, 2); +lean_closure_set(x_34, 0, x_32); +lean_closure_set(x_34, 1, x_33); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +x_35 = l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___rarg(x_34, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_35) == 0) +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; +x_36 = lean_ctor_get(x_35, 0); +lean_inc(x_36); +x_37 = lean_ctor_get(x_35, 1); +lean_inc(x_37); +lean_dec(x_35); +x_38 = lean_ctor_get(x_36, 0); +lean_inc(x_38); +lean_inc(x_30); +x_39 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go), 9, 1); +lean_closure_set(x_39, 0, x_30); +x_40 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__3___boxed), 13, 4); +lean_closure_set(x_40, 0, x_30); +lean_closure_set(x_40, 1, x_36); +lean_closure_set(x_40, 2, x_29); +lean_closure_set(x_40, 3, x_1); +x_41 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__2___rarg), 10, 2); +lean_closure_set(x_41, 0, x_39); +lean_closure_set(x_41, 1, x_40); +x_42 = l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidate___rarg(x_38, x_41, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_37); +return x_42; +} +else +{ +uint8_t x_43; +lean_dec(x_30); +lean_dec(x_29); +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_43 = !lean_is_exclusive(x_35); +if (x_43 == 0) +{ +return x_35; +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_44 = lean_ctor_get(x_35, 0); +x_45 = lean_ctor_get(x_35, 1); +lean_inc(x_45); +lean_inc(x_44); +lean_dec(x_35); +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; +} +} +} +case 2: +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; +x_47 = lean_ctor_get(x_1, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_1, 1); +lean_inc(x_48); +x_49 = lean_ctor_get(x_47, 4); +lean_inc(x_49); +x_50 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go), 9, 1); +lean_closure_set(x_50, 0, x_49); +lean_inc(x_47); +x_51 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__4___boxed), 10, 1); +lean_closure_set(x_51, 0, x_47); +x_52 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__2___rarg), 10, 2); +lean_closure_set(x_52, 0, x_50); +lean_closure_set(x_52, 1, x_51); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +lean_inc(x_47); +x_53 = l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewJpScope___rarg(x_47, x_52, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_53) == 0) +{ +lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; +x_54 = lean_ctor_get(x_53, 0); +lean_inc(x_54); +x_55 = lean_ctor_get(x_53, 1); +lean_inc(x_55); +lean_dec(x_53); +x_56 = lean_ctor_get(x_54, 0); +lean_inc(x_56); +lean_inc(x_2); +lean_inc(x_56); +x_57 = l_Lean_Compiler_LCNF_JoinPointContextExtender_mergeJpContextIfNecessary(x_56, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_55); +if (lean_obj_tag(x_57) == 0) +{ +lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +x_58 = lean_ctor_get(x_57, 1); +lean_inc(x_58); +lean_dec(x_57); +lean_inc(x_48); +x_59 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go), 9, 1); +lean_closure_set(x_59, 0, x_48); +x_60 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__5___boxed), 13, 4); +lean_closure_set(x_60, 0, x_48); +lean_closure_set(x_60, 1, x_54); +lean_closure_set(x_60, 2, x_47); +lean_closure_set(x_60, 3, x_1); +x_61 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___spec__2___rarg), 10, 2); +lean_closure_set(x_61, 0, x_59); +lean_closure_set(x_61, 1, x_60); +x_62 = l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewCandidate___rarg(x_56, x_61, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_58); +return x_62; +} +else +{ +uint8_t x_63; +lean_dec(x_56); +lean_dec(x_54); +lean_dec(x_48); +lean_dec(x_47); +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_63 = !lean_is_exclusive(x_57); +if (x_63 == 0) +{ +return x_57; +} +else +{ +lean_object* x_64; lean_object* x_65; lean_object* x_66; +x_64 = lean_ctor_get(x_57, 0); +x_65 = lean_ctor_get(x_57, 1); +lean_inc(x_65); +lean_inc(x_64); +lean_dec(x_57); +x_66 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_66, 0, x_64); +lean_ctor_set(x_66, 1, x_65); +return x_66; +} +} +} +else +{ +uint8_t x_67; +lean_dec(x_48); +lean_dec(x_47); +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_67 = !lean_is_exclusive(x_53); +if (x_67 == 0) +{ +return x_53; +} +else +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; +x_68 = lean_ctor_get(x_53, 0); +x_69 = lean_ctor_get(x_53, 1); +lean_inc(x_69); +lean_inc(x_68); +lean_dec(x_53); +x_70 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_70, 0, x_68); +lean_ctor_set(x_70, 1, x_69); +return x_70; +} +} +} +case 3: +{ +lean_object* x_71; lean_object* x_72; lean_object* x_73; size_t x_74; size_t x_75; lean_object* x_76; +x_71 = lean_ctor_get(x_1, 0); +lean_inc(x_71); +x_72 = lean_ctor_get(x_1, 1); +lean_inc(x_72); +x_73 = lean_array_get_size(x_72); +x_74 = lean_usize_of_nat(x_73); +lean_dec(x_73); +x_75 = 0; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +lean_inc(x_72); +x_76 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__3(x_74, x_75, x_72, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_76) == 0) +{ +lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_117; +x_77 = lean_ctor_get(x_76, 0); +lean_inc(x_77); +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_st_ref_get(x_8, x_78); +x_80 = lean_ctor_get(x_79, 1); +lean_inc(x_80); +lean_dec(x_79); +x_81 = lean_st_ref_get(x_3, x_80); +x_82 = lean_ctor_get(x_81, 0); +lean_inc(x_82); +x_83 = lean_ctor_get(x_81, 1); +lean_inc(x_83); +lean_dec(x_81); +x_84 = lean_ctor_get(x_2, 0); +lean_inc(x_84); +lean_inc(x_71); +x_117 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__1(x_82, x_71); +if (lean_obj_tag(x_117) == 0) +{ +lean_object* x_118; lean_object* x_119; +x_118 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__4; +x_119 = l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__3(x_118); +x_85 = x_119; +goto block_116; +} +else +{ +lean_object* x_120; +x_120 = lean_ctor_get(x_117, 0); +lean_inc(x_120); +lean_dec(x_117); +x_85 = x_120; +goto block_116; +} +block_116: +{ +lean_object* x_86; lean_object* x_87; size_t x_88; lean_object* x_89; +x_86 = l_Lean_HashMap_toArray___at_Lean_Compiler_LCNF_LCtx_toLocalContext___spec__1(x_85); +x_87 = lean_array_get_size(x_86); +x_88 = lean_usize_of_nat(x_87); +lean_dec(x_87); +x_89 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__4(x_88, x_75, x_86); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_90; size_t x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; +x_90 = lean_array_get_size(x_89); +x_91 = lean_usize_of_nat(x_90); +lean_dec(x_90); +x_92 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__5(x_91, x_75, x_89); +x_93 = l_Array_append___rarg(x_92, x_77); +x_94 = lean_box(0); +x_95 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__6(x_71, x_72, x_1, x_93, x_94, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_83); +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_72); +return x_95; +} +else +{ +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; size_t x_103; lean_object* x_104; +x_96 = lean_ctor_get(x_84, 0); +lean_inc(x_96); +lean_dec(x_84); +x_97 = lean_st_ref_get(x_8, x_83); +x_98 = lean_ctor_get(x_97, 1); +lean_inc(x_98); +lean_dec(x_97); +x_99 = lean_st_ref_get(x_3, x_98); +x_100 = lean_ctor_get(x_99, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_99, 1); +lean_inc(x_101); +lean_dec(x_99); +x_102 = lean_array_get_size(x_89); +x_103 = lean_usize_of_nat(x_102); +lean_dec(x_102); +x_104 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__1(x_100, x_96); +if (lean_obj_tag(x_104) == 0) +{ +lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; +x_105 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__4; +x_106 = l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___spec__3(x_105); +x_107 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__6(x_106, x_103, x_75, x_89); +x_108 = l_Array_append___rarg(x_107, x_77); +x_109 = lean_box(0); +x_110 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__6(x_71, x_72, x_1, x_108, x_109, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_101); +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_72); +return x_110; +} +else +{ +lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_111 = lean_ctor_get(x_104, 0); +lean_inc(x_111); +lean_dec(x_104); +x_112 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__7(x_111, x_103, x_75, x_89); +x_113 = l_Array_append___rarg(x_112, x_77); +x_114 = lean_box(0); +x_115 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__6(x_71, x_72, x_1, x_113, x_114, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_101); +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_72); +return x_115; +} +} +} +} +else +{ +uint8_t x_121; +lean_dec(x_72); +lean_dec(x_71); +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_121 = !lean_is_exclusive(x_76); +if (x_121 == 0) +{ +return x_76; +} +else +{ +lean_object* x_122; lean_object* x_123; lean_object* x_124; +x_122 = lean_ctor_get(x_76, 0); +x_123 = lean_ctor_get(x_76, 1); +lean_inc(x_123); +lean_inc(x_122); +lean_dec(x_76); +x_124 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_124, 0, x_122); +lean_ctor_set(x_124, 1, x_123); +return x_124; +} +} +} +case 4: +{ +lean_object* x_125; uint8_t x_126; +x_125 = lean_ctor_get(x_1, 0); +lean_inc(x_125); +x_126 = !lean_is_exclusive(x_125); +if (x_126 == 0) +{ +lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; +x_127 = lean_ctor_get(x_125, 0); +x_128 = lean_ctor_get(x_125, 1); +x_129 = lean_ctor_get(x_125, 2); +x_130 = lean_ctor_get(x_125, 3); +lean_inc(x_2); +lean_inc(x_129); +x_131 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary(x_129, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_131) == 0) +{ +lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; size_t x_137; size_t x_138; lean_object* x_139; +x_132 = lean_ctor_get(x_131, 1); +lean_inc(x_132); +lean_dec(x_131); +lean_inc(x_2); +lean_inc(x_129); +x_133 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar(x_129, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_132); +x_134 = lean_ctor_get(x_133, 0); +lean_inc(x_134); +x_135 = lean_ctor_get(x_133, 1); +lean_inc(x_135); +lean_dec(x_133); +x_136 = lean_array_get_size(x_130); +x_137 = lean_usize_of_nat(x_136); +lean_dec(x_136); +x_138 = 0; +lean_inc(x_130); +x_139 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__9(x_137, x_138, x_130, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_135); +if (lean_obj_tag(x_139) == 0) +{ +uint8_t x_140; +x_140 = !lean_is_exclusive(x_139); +if (x_140 == 0) +{ +lean_object* x_141; size_t x_142; size_t x_143; uint8_t x_144; +x_141 = lean_ctor_get(x_139, 0); +x_142 = lean_ptr_addr(x_130); +lean_dec(x_130); +x_143 = lean_ptr_addr(x_141); +x_144 = lean_usize_dec_eq(x_142, x_143); +if (x_144 == 0) +{ +uint8_t x_145; +lean_dec(x_129); +x_145 = !lean_is_exclusive(x_1); +if (x_145 == 0) +{ +lean_object* x_146; +x_146 = lean_ctor_get(x_1, 0); +lean_dec(x_146); +lean_ctor_set(x_125, 3, x_141); +lean_ctor_set(x_125, 2, x_134); +lean_ctor_set(x_139, 0, x_1); +return x_139; +} +else +{ +lean_object* x_147; +lean_dec(x_1); +lean_ctor_set(x_125, 3, x_141); +lean_ctor_set(x_125, 2, x_134); +x_147 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_147, 0, x_125); +lean_ctor_set(x_139, 0, x_147); +return x_139; +} +} +else +{ +size_t x_148; uint8_t x_149; +x_148 = lean_ptr_addr(x_128); +x_149 = lean_usize_dec_eq(x_148, x_148); +if (x_149 == 0) +{ +uint8_t x_150; +lean_dec(x_129); +x_150 = !lean_is_exclusive(x_1); +if (x_150 == 0) +{ +lean_object* x_151; +x_151 = lean_ctor_get(x_1, 0); +lean_dec(x_151); +lean_ctor_set(x_125, 3, x_141); +lean_ctor_set(x_125, 2, x_134); +lean_ctor_set(x_139, 0, x_1); +return x_139; +} +else +{ +lean_object* x_152; +lean_dec(x_1); +lean_ctor_set(x_125, 3, x_141); +lean_ctor_set(x_125, 2, x_134); +x_152 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_152, 0, x_125); +lean_ctor_set(x_139, 0, x_152); +return x_139; +} +} +else +{ +uint8_t x_153; +x_153 = lean_name_eq(x_129, x_134); +lean_dec(x_129); +if (x_153 == 0) +{ +uint8_t x_154; +x_154 = !lean_is_exclusive(x_1); +if (x_154 == 0) +{ +lean_object* x_155; +x_155 = lean_ctor_get(x_1, 0); +lean_dec(x_155); +lean_ctor_set(x_125, 3, x_141); +lean_ctor_set(x_125, 2, x_134); +lean_ctor_set(x_139, 0, x_1); +return x_139; +} +else +{ +lean_object* x_156; +lean_dec(x_1); +lean_ctor_set(x_125, 3, x_141); +lean_ctor_set(x_125, 2, x_134); +x_156 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_156, 0, x_125); +lean_ctor_set(x_139, 0, x_156); +return x_139; +} +} +else +{ +lean_dec(x_141); +lean_dec(x_134); +lean_free_object(x_125); +lean_dec(x_128); +lean_dec(x_127); +lean_ctor_set(x_139, 0, x_1); +return x_139; +} +} +} +} +else +{ +lean_object* x_157; lean_object* x_158; size_t x_159; size_t x_160; uint8_t x_161; +x_157 = lean_ctor_get(x_139, 0); +x_158 = lean_ctor_get(x_139, 1); +lean_inc(x_158); +lean_inc(x_157); +lean_dec(x_139); +x_159 = lean_ptr_addr(x_130); +lean_dec(x_130); +x_160 = lean_ptr_addr(x_157); +x_161 = lean_usize_dec_eq(x_159, x_160); +if (x_161 == 0) +{ +lean_object* x_162; lean_object* x_163; lean_object* x_164; +lean_dec(x_129); +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_162 = x_1; +} else { + lean_dec_ref(x_1); + x_162 = lean_box(0); +} +lean_ctor_set(x_125, 3, x_157); +lean_ctor_set(x_125, 2, x_134); +if (lean_is_scalar(x_162)) { + x_163 = lean_alloc_ctor(4, 1, 0); +} else { + x_163 = x_162; +} +lean_ctor_set(x_163, 0, x_125); +x_164 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_164, 0, x_163); +lean_ctor_set(x_164, 1, x_158); +return x_164; +} +else +{ +size_t x_165; uint8_t x_166; +x_165 = lean_ptr_addr(x_128); +x_166 = lean_usize_dec_eq(x_165, x_165); +if (x_166 == 0) +{ +lean_object* x_167; lean_object* x_168; lean_object* x_169; +lean_dec(x_129); +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_167 = x_1; +} else { + lean_dec_ref(x_1); + x_167 = lean_box(0); +} +lean_ctor_set(x_125, 3, x_157); +lean_ctor_set(x_125, 2, x_134); +if (lean_is_scalar(x_167)) { + x_168 = lean_alloc_ctor(4, 1, 0); +} else { + x_168 = x_167; +} +lean_ctor_set(x_168, 0, x_125); +x_169 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_169, 0, x_168); +lean_ctor_set(x_169, 1, x_158); +return x_169; +} +else +{ +uint8_t x_170; +x_170 = lean_name_eq(x_129, x_134); +lean_dec(x_129); +if (x_170 == 0) +{ +lean_object* x_171; lean_object* x_172; lean_object* x_173; +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_171 = x_1; +} else { + lean_dec_ref(x_1); + x_171 = lean_box(0); +} +lean_ctor_set(x_125, 3, x_157); +lean_ctor_set(x_125, 2, x_134); +if (lean_is_scalar(x_171)) { + x_172 = lean_alloc_ctor(4, 1, 0); +} else { + x_172 = x_171; +} +lean_ctor_set(x_172, 0, x_125); +x_173 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_173, 0, x_172); +lean_ctor_set(x_173, 1, x_158); +return x_173; +} +else +{ +lean_object* x_174; +lean_dec(x_157); +lean_dec(x_134); +lean_free_object(x_125); +lean_dec(x_128); +lean_dec(x_127); +x_174 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_174, 0, x_1); +lean_ctor_set(x_174, 1, x_158); +return x_174; +} +} +} +} +} +else +{ +uint8_t x_175; +lean_dec(x_134); +lean_free_object(x_125); +lean_dec(x_130); +lean_dec(x_129); +lean_dec(x_128); +lean_dec(x_127); +lean_dec(x_1); +x_175 = !lean_is_exclusive(x_139); +if (x_175 == 0) +{ +return x_139; +} +else +{ +lean_object* x_176; lean_object* x_177; lean_object* x_178; +x_176 = lean_ctor_get(x_139, 0); +x_177 = lean_ctor_get(x_139, 1); +lean_inc(x_177); +lean_inc(x_176); +lean_dec(x_139); +x_178 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_178, 0, x_176); +lean_ctor_set(x_178, 1, x_177); +return x_178; +} +} +} +else +{ +uint8_t x_179; +lean_free_object(x_125); +lean_dec(x_130); +lean_dec(x_129); +lean_dec(x_128); +lean_dec(x_127); +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_179 = !lean_is_exclusive(x_131); +if (x_179 == 0) +{ +return x_131; +} +else +{ +lean_object* x_180; lean_object* x_181; lean_object* x_182; +x_180 = lean_ctor_get(x_131, 0); +x_181 = lean_ctor_get(x_131, 1); +lean_inc(x_181); +lean_inc(x_180); +lean_dec(x_131); +x_182 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_182, 0, x_180); +lean_ctor_set(x_182, 1, x_181); +return x_182; +} +} +} +else +{ +lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; +x_183 = lean_ctor_get(x_125, 0); +x_184 = lean_ctor_get(x_125, 1); +x_185 = lean_ctor_get(x_125, 2); +x_186 = lean_ctor_get(x_125, 3); +lean_inc(x_186); +lean_inc(x_185); +lean_inc(x_184); +lean_inc(x_183); +lean_dec(x_125); +lean_inc(x_2); +lean_inc(x_185); +x_187 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary(x_185, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_187) == 0) +{ +lean_object* x_188; lean_object* x_189; lean_object* x_190; lean_object* x_191; lean_object* x_192; size_t x_193; size_t x_194; lean_object* x_195; +x_188 = lean_ctor_get(x_187, 1); +lean_inc(x_188); +lean_dec(x_187); +lean_inc(x_2); +lean_inc(x_185); +x_189 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar(x_185, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_188); +x_190 = lean_ctor_get(x_189, 0); +lean_inc(x_190); +x_191 = lean_ctor_get(x_189, 1); +lean_inc(x_191); +lean_dec(x_189); +x_192 = lean_array_get_size(x_186); +x_193 = lean_usize_of_nat(x_192); +lean_dec(x_192); +x_194 = 0; +lean_inc(x_186); +x_195 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__9(x_193, x_194, x_186, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_191); +if (lean_obj_tag(x_195) == 0) +{ +lean_object* x_196; lean_object* x_197; lean_object* x_198; size_t x_199; size_t x_200; uint8_t x_201; +x_196 = lean_ctor_get(x_195, 0); +lean_inc(x_196); +x_197 = lean_ctor_get(x_195, 1); +lean_inc(x_197); +if (lean_is_exclusive(x_195)) { + lean_ctor_release(x_195, 0); + lean_ctor_release(x_195, 1); + x_198 = x_195; +} else { + lean_dec_ref(x_195); + x_198 = lean_box(0); +} +x_199 = lean_ptr_addr(x_186); +lean_dec(x_186); +x_200 = lean_ptr_addr(x_196); +x_201 = lean_usize_dec_eq(x_199, x_200); +if (x_201 == 0) +{ +lean_object* x_202; lean_object* x_203; lean_object* x_204; lean_object* x_205; +lean_dec(x_185); +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_202 = x_1; +} else { + lean_dec_ref(x_1); + x_202 = lean_box(0); +} +x_203 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_203, 0, x_183); +lean_ctor_set(x_203, 1, x_184); +lean_ctor_set(x_203, 2, x_190); +lean_ctor_set(x_203, 3, x_196); +if (lean_is_scalar(x_202)) { + x_204 = lean_alloc_ctor(4, 1, 0); +} else { + x_204 = x_202; +} +lean_ctor_set(x_204, 0, x_203); +if (lean_is_scalar(x_198)) { + x_205 = lean_alloc_ctor(0, 2, 0); +} else { + x_205 = x_198; +} +lean_ctor_set(x_205, 0, x_204); +lean_ctor_set(x_205, 1, x_197); +return x_205; +} +else +{ +size_t x_206; uint8_t x_207; +x_206 = lean_ptr_addr(x_184); +x_207 = lean_usize_dec_eq(x_206, x_206); +if (x_207 == 0) +{ +lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; +lean_dec(x_185); +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_208 = x_1; +} else { + lean_dec_ref(x_1); + x_208 = lean_box(0); +} +x_209 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_209, 0, x_183); +lean_ctor_set(x_209, 1, x_184); +lean_ctor_set(x_209, 2, x_190); +lean_ctor_set(x_209, 3, x_196); +if (lean_is_scalar(x_208)) { + x_210 = lean_alloc_ctor(4, 1, 0); +} else { + x_210 = x_208; +} +lean_ctor_set(x_210, 0, x_209); +if (lean_is_scalar(x_198)) { + x_211 = lean_alloc_ctor(0, 2, 0); +} else { + x_211 = x_198; +} +lean_ctor_set(x_211, 0, x_210); +lean_ctor_set(x_211, 1, x_197); +return x_211; +} +else +{ +uint8_t x_212; +x_212 = lean_name_eq(x_185, x_190); +lean_dec(x_185); +if (x_212 == 0) +{ +lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_213 = x_1; +} else { + lean_dec_ref(x_1); + x_213 = lean_box(0); +} +x_214 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_214, 0, x_183); +lean_ctor_set(x_214, 1, x_184); +lean_ctor_set(x_214, 2, x_190); +lean_ctor_set(x_214, 3, x_196); +if (lean_is_scalar(x_213)) { + x_215 = lean_alloc_ctor(4, 1, 0); +} else { + x_215 = x_213; +} +lean_ctor_set(x_215, 0, x_214); +if (lean_is_scalar(x_198)) { + x_216 = lean_alloc_ctor(0, 2, 0); +} else { + x_216 = x_198; +} +lean_ctor_set(x_216, 0, x_215); +lean_ctor_set(x_216, 1, x_197); +return x_216; +} +else +{ +lean_object* x_217; +lean_dec(x_196); +lean_dec(x_190); +lean_dec(x_184); +lean_dec(x_183); +if (lean_is_scalar(x_198)) { + x_217 = lean_alloc_ctor(0, 2, 0); +} else { + x_217 = x_198; +} +lean_ctor_set(x_217, 0, x_1); +lean_ctor_set(x_217, 1, x_197); +return x_217; +} +} +} +} +else +{ +lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; +lean_dec(x_190); +lean_dec(x_186); +lean_dec(x_185); +lean_dec(x_184); +lean_dec(x_183); +lean_dec(x_1); +x_218 = lean_ctor_get(x_195, 0); +lean_inc(x_218); +x_219 = lean_ctor_get(x_195, 1); +lean_inc(x_219); +if (lean_is_exclusive(x_195)) { + lean_ctor_release(x_195, 0); + lean_ctor_release(x_195, 1); + x_220 = x_195; +} else { + lean_dec_ref(x_195); + x_220 = lean_box(0); +} +if (lean_is_scalar(x_220)) { + x_221 = lean_alloc_ctor(1, 2, 0); +} else { + x_221 = x_220; +} +lean_ctor_set(x_221, 0, x_218); +lean_ctor_set(x_221, 1, x_219); +return x_221; +} +} +else +{ +lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; +lean_dec(x_186); +lean_dec(x_185); +lean_dec(x_184); +lean_dec(x_183); +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_222 = lean_ctor_get(x_187, 0); +lean_inc(x_222); +x_223 = lean_ctor_get(x_187, 1); +lean_inc(x_223); +if (lean_is_exclusive(x_187)) { + lean_ctor_release(x_187, 0); + lean_ctor_release(x_187, 1); + x_224 = x_187; +} else { + lean_dec_ref(x_187); + x_224 = lean_box(0); +} +if (lean_is_scalar(x_224)) { + x_225 = lean_alloc_ctor(1, 2, 0); +} else { + x_225 = x_224; +} +lean_ctor_set(x_225, 0, x_222); +lean_ctor_set(x_225, 1, x_223); +return x_225; +} +} +} +case 5: +{ +lean_object* x_226; lean_object* x_227; +x_226 = lean_ctor_get(x_1, 0); +lean_inc(x_226); +lean_inc(x_2); +lean_inc(x_226); +x_227 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extendByIfNecessary(x_226, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_227) == 0) +{ +lean_object* x_228; lean_object* x_229; uint8_t x_230; +x_228 = lean_ctor_get(x_227, 1); +lean_inc(x_228); +lean_dec(x_227); +lean_inc(x_226); +x_229 = l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar(x_226, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_228); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_230 = !lean_is_exclusive(x_229); +if (x_230 == 0) +{ +lean_object* x_231; uint8_t x_232; +x_231 = lean_ctor_get(x_229, 0); +x_232 = lean_name_eq(x_226, x_231); +lean_dec(x_226); +if (x_232 == 0) +{ +uint8_t x_233; +x_233 = !lean_is_exclusive(x_1); +if (x_233 == 0) +{ +lean_object* x_234; +x_234 = lean_ctor_get(x_1, 0); +lean_dec(x_234); +lean_ctor_set(x_1, 0, x_231); +lean_ctor_set(x_229, 0, x_1); +return x_229; +} +else +{ +lean_object* x_235; +lean_dec(x_1); +x_235 = lean_alloc_ctor(5, 1, 0); +lean_ctor_set(x_235, 0, x_231); +lean_ctor_set(x_229, 0, x_235); +return x_229; +} +} +else +{ +lean_dec(x_231); +lean_ctor_set(x_229, 0, x_1); +return x_229; +} +} +else +{ +lean_object* x_236; lean_object* x_237; uint8_t x_238; +x_236 = lean_ctor_get(x_229, 0); +x_237 = lean_ctor_get(x_229, 1); +lean_inc(x_237); +lean_inc(x_236); +lean_dec(x_229); +x_238 = lean_name_eq(x_226, x_236); +lean_dec(x_226); +if (x_238 == 0) +{ +lean_object* x_239; lean_object* x_240; lean_object* x_241; +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_239 = x_1; +} else { + lean_dec_ref(x_1); + x_239 = lean_box(0); +} +if (lean_is_scalar(x_239)) { + x_240 = lean_alloc_ctor(5, 1, 0); +} else { + x_240 = x_239; +} +lean_ctor_set(x_240, 0, x_236); +x_241 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_241, 0, x_240); +lean_ctor_set(x_241, 1, x_237); +return x_241; +} +else +{ +lean_object* x_242; +lean_dec(x_236); +x_242 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_242, 0, x_1); +lean_ctor_set(x_242, 1, x_237); +return x_242; +} +} +} +else +{ +uint8_t x_243; +lean_dec(x_226); +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_243 = !lean_is_exclusive(x_227); +if (x_243 == 0) +{ +return x_227; +} +else +{ +lean_object* x_244; lean_object* x_245; lean_object* x_246; +x_244 = lean_ctor_get(x_227, 0); +x_245 = lean_ctor_get(x_227, 1); +lean_inc(x_245); +lean_inc(x_244); +lean_dec(x_227); +x_246 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_246, 0, x_244); +lean_ctor_set(x_246, 1, x_245); +return x_246; +} +} +} +default: +{ +lean_object* x_247; +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); +x_247 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_247, 0, x_1); +lean_ctor_set(x_247, 1, x_9); +return x_247; +} +} +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +size_t x_4; size_t x_5; lean_object* x_6; +x_4 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_5 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_6 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__1(x_4, x_5, x_3); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Array_foldrMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +size_t x_5; size_t x_6; lean_object* x_7; +x_5 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_6 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_7 = l_Array_foldrMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__2(x_1, x_5, x_6, x_4); +lean_dec(x_1); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__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) { +_start: +{ +size_t x_12; size_t x_13; lean_object* x_14; +x_12 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_13 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_14 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__3(x_12, x_13, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +return x_14; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +size_t x_4; size_t x_5; lean_object* x_6; +x_4 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_5 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_6 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__4(x_4, x_5, x_3); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +size_t x_4; size_t x_5; lean_object* x_6; +x_4 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_5 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_6 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__5(x_4, x_5, x_3); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +size_t x_5; size_t x_6; lean_object* x_7; +x_5 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_6 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_7 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__6(x_1, x_5, x_6, x_4); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__7___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +size_t x_5; size_t x_6; lean_object* x_7; +x_5 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_6 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_7 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__7(x_1, x_5, x_6, x_4); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__9___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) { +_start: +{ +size_t x_12; size_t x_13; lean_object* x_14; +x_12 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_13 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_14 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__9(x_12, x_13, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +return x_14; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___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_object* x_13) { +_start: +{ +lean_object* x_14; +x_14 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_1); +return x_14; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___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) { +_start: +{ +lean_object* x_11; +x_11 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___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, lean_object* x_13) { +_start: +{ +lean_object* x_14; +x_14 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__3(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_1); +return x_14; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__4___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) { +_start: +{ +lean_object* x_11; +x_11 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__4(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__5___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_object* x_13) { +_start: +{ +lean_object* x_14; +x_14 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__5(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_1); +return x_14; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__6___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_object* x_13) { +_start: +{ +lean_object* x_14; +x_14 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_2); +return x_14; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_JoinPointContextExtender_extend(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +uint8_t x_7; +x_7 = !lean_is_exclusive(x_1); +if (x_7 == 0) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_8 = lean_ctor_get(x_1, 0); +x_9 = lean_ctor_get(x_1, 1); +x_10 = lean_ctor_get(x_1, 2); +x_11 = lean_ctor_get(x_1, 3); +x_12 = lean_ctor_get(x_1, 4); +x_13 = lean_box(0); +x_14 = lean_st_ref_get(x_5, x_6); +x_15 = lean_ctor_get(x_14, 1); +lean_inc(x_15); +lean_dec(x_14); +x_16 = lean_st_mk_ref(x_13, x_15); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = lean_st_ref_get(x_5, x_18); +x_20 = lean_ctor_get(x_19, 1); +lean_inc(x_20); +lean_dec(x_19); +x_21 = l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__1; +x_22 = lean_st_mk_ref(x_21, x_20); +x_23 = lean_ctor_get(x_22, 0); +lean_inc(x_23); +x_24 = lean_ctor_get(x_22, 1); +lean_inc(x_24); +lean_dec(x_22); +x_25 = l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___rarg___closed__1; +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +lean_inc(x_17); +lean_inc(x_23); +x_26 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go(x_12, x_25, x_23, x_17, x_2, x_3, x_4, x_5, x_24); +if (lean_obj_tag(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; lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_27 = lean_ctor_get(x_26, 0); +lean_inc(x_27); +x_28 = lean_ctor_get(x_26, 1); +lean_inc(x_28); +lean_dec(x_26); +x_29 = lean_st_ref_get(x_5, x_28); +x_30 = lean_ctor_get(x_29, 1); +lean_inc(x_30); +lean_dec(x_29); +x_31 = lean_st_ref_get(x_23, x_30); +lean_dec(x_23); +x_32 = lean_ctor_get(x_31, 1); +lean_inc(x_32); +lean_dec(x_31); +x_33 = lean_st_ref_get(x_5, x_32); +x_34 = lean_ctor_get(x_33, 1); +lean_inc(x_34); +lean_dec(x_33); +x_35 = lean_st_ref_get(x_17, x_34); +lean_dec(x_17); +x_36 = lean_ctor_get(x_35, 1); +lean_inc(x_36); +lean_dec(x_35); +lean_ctor_set(x_1, 4, x_27); +x_37 = l_Lean_Compiler_LCNF_Decl_pullFunDecls(x_1, x_2, x_3, x_4, x_5, x_36); +return x_37; +} +else +{ +uint8_t x_38; +lean_dec(x_23); +lean_dec(x_17); +lean_free_object(x_1); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_38 = !lean_is_exclusive(x_26); +if (x_38 == 0) +{ +return x_26; +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_39 = lean_ctor_get(x_26, 0); +x_40 = lean_ctor_get(x_26, 1); +lean_inc(x_40); +lean_inc(x_39); +lean_dec(x_26); +x_41 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_41, 0, x_39); +lean_ctor_set(x_41, 1, x_40); +return x_41; +} +} +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; uint8_t x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +x_42 = lean_ctor_get(x_1, 0); +x_43 = lean_ctor_get(x_1, 1); +x_44 = lean_ctor_get(x_1, 2); +x_45 = lean_ctor_get(x_1, 3); +x_46 = lean_ctor_get(x_1, 4); +x_47 = lean_ctor_get_uint8(x_1, sizeof(void*)*5); +x_48 = lean_ctor_get_uint8(x_1, sizeof(void*)*5 + 1); +lean_inc(x_46); +lean_inc(x_45); +lean_inc(x_44); +lean_inc(x_43); +lean_inc(x_42); +lean_dec(x_1); +x_49 = lean_box(0); +x_50 = lean_st_ref_get(x_5, x_6); +x_51 = lean_ctor_get(x_50, 1); +lean_inc(x_51); +lean_dec(x_50); +x_52 = lean_st_mk_ref(x_49, x_51); +x_53 = lean_ctor_get(x_52, 0); +lean_inc(x_53); +x_54 = lean_ctor_get(x_52, 1); +lean_inc(x_54); +lean_dec(x_52); +x_55 = lean_st_ref_get(x_5, x_54); +x_56 = lean_ctor_get(x_55, 1); +lean_inc(x_56); +lean_dec(x_55); +x_57 = l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__1; +x_58 = lean_st_mk_ref(x_57, x_56); +x_59 = lean_ctor_get(x_58, 0); +lean_inc(x_59); +x_60 = lean_ctor_get(x_58, 1); +lean_inc(x_60); +lean_dec(x_58); +x_61 = l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___rarg___closed__1; +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +lean_inc(x_53); +lean_inc(x_59); +x_62 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go(x_46, x_61, x_59, x_53, x_2, x_3, x_4, x_5, x_60); +if (lean_obj_tag(x_62) == 0) +{ +lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; +x_63 = lean_ctor_get(x_62, 0); +lean_inc(x_63); +x_64 = lean_ctor_get(x_62, 1); +lean_inc(x_64); +lean_dec(x_62); +x_65 = lean_st_ref_get(x_5, x_64); +x_66 = lean_ctor_get(x_65, 1); +lean_inc(x_66); +lean_dec(x_65); +x_67 = lean_st_ref_get(x_59, x_66); +lean_dec(x_59); +x_68 = lean_ctor_get(x_67, 1); +lean_inc(x_68); +lean_dec(x_67); +x_69 = lean_st_ref_get(x_5, x_68); +x_70 = lean_ctor_get(x_69, 1); +lean_inc(x_70); +lean_dec(x_69); +x_71 = lean_st_ref_get(x_53, x_70); +lean_dec(x_53); +x_72 = lean_ctor_get(x_71, 1); +lean_inc(x_72); +lean_dec(x_71); +x_73 = lean_alloc_ctor(0, 5, 2); +lean_ctor_set(x_73, 0, x_42); +lean_ctor_set(x_73, 1, x_43); +lean_ctor_set(x_73, 2, x_44); +lean_ctor_set(x_73, 3, x_45); +lean_ctor_set(x_73, 4, x_63); +lean_ctor_set_uint8(x_73, sizeof(void*)*5, x_47); +lean_ctor_set_uint8(x_73, sizeof(void*)*5 + 1, x_48); +x_74 = l_Lean_Compiler_LCNF_Decl_pullFunDecls(x_73, x_2, x_3, x_4, x_5, x_72); +return x_74; +} +else +{ +lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; +lean_dec(x_59); +lean_dec(x_53); +lean_dec(x_45); +lean_dec(x_44); +lean_dec(x_43); +lean_dec(x_42); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_75 = lean_ctor_get(x_62, 0); +lean_inc(x_75); +x_76 = lean_ctor_get(x_62, 1); +lean_inc(x_76); +if (lean_is_exclusive(x_62)) { + lean_ctor_release(x_62, 0); + lean_ctor_release(x_62, 1); + x_77 = x_62; +} else { + lean_dec_ref(x_62); + x_77 = lean_box(0); +} +if (lean_is_scalar(x_77)) { + x_78 = lean_alloc_ctor(1, 2, 0); +} else { + x_78 = x_77; +} +lean_ctor_set(x_78, 0, x_75); +lean_ctor_set(x_78, 1, x_76); +return x_78; +} +} +} +} static lean_object* _init_l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__1___closed__1() { _start: { @@ -8409,7 +14826,7 @@ x_1 = l_Lean_Compiler_LCNF_findJoinPoints___closed__3; return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_2049_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_4527_(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; lean_object* x_4; @@ -8419,9 +14836,84 @@ x_4 = l_Lean_registerTraceClass(x_2, x_3, x_1); return x_4; } } +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_extendJoinPointContext(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; +x_7 = l_Lean_Compiler_LCNF_JoinPointContextExtender_extend(x_1, x_2, x_3, x_4, x_5, x_6); +return x_7; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_extendJoinPointContext___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("extendJoinPointContext", 22); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_extendJoinPointContext___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Compiler_LCNF_extendJoinPointContext___closed__1; +x_3 = l_Lean_Name_str___override(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_extendJoinPointContext___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Decl_extendJoinPointContext), 6, 0); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_extendJoinPointContext___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; uint8_t x_3; lean_object* x_4; lean_object* x_5; +x_1 = l_Lean_Compiler_LCNF_extendJoinPointContext___closed__2; +x_2 = l_Lean_Compiler_LCNF_extendJoinPointContext___closed__3; +x_3 = 0; +x_4 = lean_unsigned_to_nat(0u); +x_5 = l_Lean_Compiler_LCNF_Pass_mkPerDeclaration(x_1, x_2, x_3, x_4); +return x_5; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_extendJoinPointContext() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Compiler_LCNF_extendJoinPointContext___closed__4; +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_4565____closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_Decl_findJoinPoints___closed__1; +x_2 = l_Lean_Compiler_LCNF_extendJoinPointContext___closed__1; +x_3 = l_Lean_Name_mkStr2(x_1, x_2); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_4565_(lean_object* x_1) { +_start: +{ +lean_object* x_2; uint8_t x_3; lean_object* x_4; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_4565____closed__1; +x_3 = 1; +x_4 = l_Lean_registerTraceClass(x_2, x_3, x_1); +return x_4; +} +} lean_object* initialize_Init(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_CompilerM(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_PassManager(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_PullFunDecls(uint8_t builtin, lean_object*); static bool _G_initialized = false; LEAN_EXPORT lean_object* initialize_Lean_Compiler_LCNF_JoinPoints(uint8_t builtin, lean_object* w) { lean_object * res; @@ -8436,6 +14928,27 @@ lean_dec_ref(res); res = initialize_Lean_Compiler_LCNF_PassManager(builtin, lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_PullFunDecls(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__1 = _init_l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__1); +l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__2 = _init_l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__2); +l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__3 = _init_l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__3); +l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__4 = _init_l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_mapFVarM___rarg___closed__4); +l_Lean_Compiler_LCNF_forFVarM___rarg___closed__1 = _init_l_Lean_Compiler_LCNF_forFVarM___rarg___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_forFVarM___rarg___closed__1); +l_Lean_Compiler_LCNF_forFVarM___rarg___closed__2 = _init_l_Lean_Compiler_LCNF_forFVarM___rarg___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_forFVarM___rarg___closed__2); +l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__3___closed__1 = _init_l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__3___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___lambda__3___closed__1); +l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___closed__1 = _init_l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ScopeM_withBackTrackingScope___rarg___closed__1); +l_Lean_Compiler_LCNF_ScopeM_withNewScope___rarg___closed__1 = _init_l_Lean_Compiler_LCNF_ScopeM_withNewScope___rarg___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ScopeM_withNewScope___rarg___closed__1); l_Lean_Compiler_LCNF_JoinPointFinder_instInhabitedCandidateInfo = _init_l_Lean_Compiler_LCNF_JoinPointFinder_instInhabitedCandidateInfo(); lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointFinder_instInhabitedCandidateInfo); l_Lean_Compiler_LCNF_JoinPointFinder_FindState_candidates___default = _init_l_Lean_Compiler_LCNF_JoinPointFinder_FindState_candidates___default(); @@ -8444,26 +14957,24 @@ l_Lean_Compiler_LCNF_JoinPointFinder_FindState_scope___default___closed__1 = _in lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointFinder_FindState_scope___default___closed__1); l_Lean_Compiler_LCNF_JoinPointFinder_FindState_scope___default = _init_l_Lean_Compiler_LCNF_JoinPointFinder_FindState_scope___default(); lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointFinder_FindState_scope___default); -l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__1 = _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__1(); -lean_mark_persistent(l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__1); -l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__2 = _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__2(); -lean_mark_persistent(l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__2); -l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__3 = _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__3(); -lean_mark_persistent(l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__3); -l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__4 = _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__4(); -lean_mark_persistent(l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__4); -l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__5 = _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__5(); -lean_mark_persistent(l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__1___closed__5); +l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__1 = _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__1(); +lean_mark_persistent(l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__1); +l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__2 = _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__2(); +lean_mark_persistent(l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__2); +l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__3 = _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__3(); +lean_mark_persistent(l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__3); +l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__4 = _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__4(); +lean_mark_persistent(l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__4); +l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__5 = _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__5(); +lean_mark_persistent(l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__5); +l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__6 = _init_l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__6(); +lean_mark_persistent(l_panic___at___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___spec__2___closed__6); l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__1 = _init_l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__1(); lean_mark_persistent(l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__1); -l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__2 = _init_l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__2(); -lean_mark_persistent(l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__2); -l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__3 = _init_l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__3(); -lean_mark_persistent(l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__3); -l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__4 = _init_l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__4(); -lean_mark_persistent(l___private_Lean_Compiler_LCNF_JoinPoints_0__Lean_Compiler_LCNF_JoinPointFinder_removeCandidatesContainedIn___closed__4); -l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3___closed__1 = _init_l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3___closed__1(); -lean_mark_persistent(l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__3___closed__1); +l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___closed__1 = _init_l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ScopeM_withNewScope___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__2___closed__1); +l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__6___closed__1 = _init_l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__6___closed__1(); +lean_mark_persistent(l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_JoinPointFinder_find_go___spec__6___closed__1); l_Lean_Compiler_LCNF_JoinPointFinder_find_go___closed__1 = _init_l_Lean_Compiler_LCNF_JoinPointFinder_find_go___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointFinder_find_go___closed__1); l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__1 = _init_l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__1(); @@ -8472,6 +14983,28 @@ l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__2 = _init_l_Lean_Compiler_LC lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointFinder_find___closed__2); l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__6___closed__1 = _init_l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__6___closed__1(); lean_mark_persistent(l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointFinder_replace_go___spec__6___closed__1); +l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendContext_currentJp_x3f___default = _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendContext_currentJp_x3f___default(); +lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendContext_currentJp_x3f___default); +l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendContext_candidates___default = _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendContext_candidates___default(); +lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendContext_candidates___default); +l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendState_fvarMap___default = _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendState_fvarMap___default(); +lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointContextExtender_ExtendState_fvarMap___default); +l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__1 = _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__1); +l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__2 = _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__2); +l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__3 = _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__3); +l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__4 = _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointContextExtender_replaceFVar___closed__4); +l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___rarg___closed__1 = _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___rarg___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointContextExtender_withNewFunScope___rarg___closed__1); +l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__2___closed__1 = _init_l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__2___closed__1(); +lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___spec__2___closed__1); +l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___closed__1 = _init_l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_JoinPointContextExtender_extend_goExpr___closed__1); +l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__9___closed__1 = _init_l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__9___closed__1(); +lean_mark_persistent(l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_JoinPointContextExtender_extend_go___spec__9___closed__1); l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__1___closed__1 = _init_l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__1___closed__1(); lean_mark_persistent(l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__1___closed__1); l_Lean_addTrace___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__2___closed__1 = _init_l_Lean_addTrace___at_Lean_Compiler_LCNF_Decl_findJoinPoints___spec__2___closed__1(); @@ -8506,7 +15039,22 @@ l_Lean_Compiler_LCNF_findJoinPoints___closed__3 = _init_l_Lean_Compiler_LCNF_fin lean_mark_persistent(l_Lean_Compiler_LCNF_findJoinPoints___closed__3); l_Lean_Compiler_LCNF_findJoinPoints = _init_l_Lean_Compiler_LCNF_findJoinPoints(); lean_mark_persistent(l_Lean_Compiler_LCNF_findJoinPoints); -res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_2049_(lean_io_mk_world()); +res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_4527_(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Compiler_LCNF_extendJoinPointContext___closed__1 = _init_l_Lean_Compiler_LCNF_extendJoinPointContext___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_extendJoinPointContext___closed__1); +l_Lean_Compiler_LCNF_extendJoinPointContext___closed__2 = _init_l_Lean_Compiler_LCNF_extendJoinPointContext___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_extendJoinPointContext___closed__2); +l_Lean_Compiler_LCNF_extendJoinPointContext___closed__3 = _init_l_Lean_Compiler_LCNF_extendJoinPointContext___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_extendJoinPointContext___closed__3); +l_Lean_Compiler_LCNF_extendJoinPointContext___closed__4 = _init_l_Lean_Compiler_LCNF_extendJoinPointContext___closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_extendJoinPointContext___closed__4); +l_Lean_Compiler_LCNF_extendJoinPointContext = _init_l_Lean_Compiler_LCNF_extendJoinPointContext(); +lean_mark_persistent(l_Lean_Compiler_LCNF_extendJoinPointContext); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_4565____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_4565____closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_4565____closed__1); +res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_JoinPoints___hyg_4565_(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)); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Main.c b/stage0/stdlib/Lean/Compiler/LCNF/Main.c index cbd052621c..e1df45f785 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Main.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Main.c @@ -14,7 +14,6 @@ extern "C" { #endif static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___closed__13; -lean_object* l_Lean_Compiler_LCNF_ppDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___closed__23; lean_object* l_Lean_KVMap_setBool(lean_object*, lean_object*, uint8_t); size_t lean_usize_add(size_t, size_t); @@ -33,6 +32,7 @@ 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_Compiler_LCNF_PassManager_run___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___lambda__2___closed__6; +lean_object* l_Lean_Compiler_LCNF_CompilerM_run___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_getPassManager___rarg(lean_object*, lean_object*); lean_object* lean_array_uset(lean_object*, size_t, lean_object*); static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_PassManager_run___spec__4___closed__3; @@ -49,6 +49,7 @@ LEAN_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_PassManager_run LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_PassManager_run(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_mkStr2(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_profileitM___at_Lean_Compiler_LCNF_main___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___closed__8; @@ -63,7 +64,6 @@ uint8_t lean_usize_dec_lt(size_t, size_t); static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___closed__19; static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___lambda__2___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__6; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_PassManager_run___spec__2___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(lean_object*, uint8_t, lean_object*); uint8_t l_Lean_Option_get___at_Lean_getSanitizeNames___spec__1(lean_object*, lean_object*); @@ -81,6 +81,7 @@ lean_object* l_Lean_Name_toString(lean_object*, uint8_t); static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___closed__12; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_PassManager_run___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_markRecDecls(lean_object*); +LEAN_EXPORT lean_object* l_Lean_profileitM___at_Lean_Compiler_LCNF_main___spec__1(lean_object*); lean_object* l_Nat_repr(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_mk_ref(lean_object*, lean_object*); @@ -89,8 +90,8 @@ uint8_t lean_is_matcher(lean_object*, lean_object*); extern lean_object* l_Lean_Expr_instHashableExpr; uint8_t l_Lean_ConstantInfo_hasValue(lean_object*); lean_object* l_Lean_Meta_InfoCacheKey_instHashableInfoCacheKey___boxed(lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__4; static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_PassManager_run___spec__4___closed__4; +LEAN_EXPORT lean_object* l_Lean_profileitM___at_Lean_Compiler_LCNF_main___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_PassManager_run___spec__4___closed__1; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_PassManager_run___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -101,16 +102,13 @@ lean_object* l_Lean_Compiler_LCNF_ppDecl_x27(lean_object*, lean_object*, lean_ob LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_isTypeFormerType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_of_nat(lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__1; lean_object* l_Lean_ConstantInfo_type(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_main___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_instBEqProd___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_checkDeadLocalDecls(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___closed__3; lean_object* l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__2; lean_object* l_Lean_PersistentArray_push___rarg(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_compile___closed__3; static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___lambda__2___closed__12; @@ -120,7 +118,6 @@ extern lean_object* l_Lean_Compiler_compiler_check; lean_object* l_List_redLength___rarg(lean_object*); static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___closed__16; LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_PassManager_run___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__5; LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_PassManager_run___spec__1(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_le(lean_object*, lean_object*); lean_object* l_Lean_Name_append(lean_object*, lean_object*); @@ -134,21 +131,26 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___lambda__1___b static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___closed__10; static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___lambda__2___closed__11; static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___closed__7; +static lean_object* l_Lean_Compiler_LCNF_main___closed__1; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_PassManager_run___spec__2___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_compile___closed__2; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374_(lean_object*); lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___closed__3; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___boxed(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_Compiler_LCNF_shouldGenerateCode___closed__15; static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___closed__18; lean_object* l_List_toArrayAux___rarg(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__1; LEAN_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_PassManager_run___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_instHashableProd___rarg___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_profileitIOUnsafe___rarg(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___closed__4; static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___lambda__2___closed__3; static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___lambda__2___closed__4; lean_object* l_Lean_Compiler_LCNF_getDeclAt_x3f(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__4; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__2; extern lean_object* l_Lean_Expr_instBEqExpr; lean_object* l_Lean_Compiler_LCNF_getDeclInfo_x3f(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_PassManager_run___spec__4(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -163,6 +165,7 @@ static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___closed__14; static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___lambda__2___closed__9; static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___lambda__2___closed__2; LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_PassManager_run___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__6; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___lambda__2(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_Compiler_LCNF_checkpoint___spec__1___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_isProp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -175,8 +178,10 @@ static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___closed__22; static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___lambda__2___closed__13; LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_PassManager_run___spec__5(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_toDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__5; static lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode___closed__6; uint8_t lean_nat_dec_lt(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_shouldGenerateCode_isCompIrrelevant(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { @@ -1305,10 +1310,8 @@ lean_inc(x_32); lean_dec(x_16); lean_inc(x_7); lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); lean_inc(x_2); -x_33 = l_Lean_Compiler_LCNF_ppDecl(x_2, x_4, x_5, x_6, x_7, x_32); +x_33 = l_Lean_Compiler_LCNF_ppDecl_x27(x_2, x_6, x_7, x_32); if (lean_obj_tag(x_33) == 0) { lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; @@ -1540,10 +1543,8 @@ lean_inc(x_95); lean_dec(x_81); lean_inc(x_7); lean_inc(x_80); -lean_inc(x_5); -lean_inc(x_4); lean_inc(x_2); -x_96 = l_Lean_Compiler_LCNF_ppDecl(x_2, x_4, x_5, x_80, x_7, x_95); +x_96 = l_Lean_Compiler_LCNF_ppDecl_x27(x_2, x_80, x_7, x_95); if (lean_obj_tag(x_96) == 0) { lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; @@ -3791,6 +3792,23 @@ x_7 = l_Lean_Compiler_LCNF_showDecl(x_6, x_2, x_3, x_4, x_5); return x_7; } } +LEAN_EXPORT lean_object* l_Lean_profileitM___at_Lean_Compiler_LCNF_main___spec__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; lean_object* x_8; +x_7 = lean_apply_2(x_3, x_4, x_5); +x_8 = l_Lean_profileitIOUnsafe___rarg(x_1, x_2, x_7, x_6); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_profileitM___at_Lean_Compiler_LCNF_main___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_profileitM___at_Lean_Compiler_LCNF_main___spec__1___rarg___boxed), 6, 0); +return x_2; +} +} LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_main___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) { _start: { @@ -3846,23 +3864,50 @@ return x_17; } } } +static lean_object* _init_l_Lean_Compiler_LCNF_main___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("compilation new", 15); +return x_1; +} +} LEAN_EXPORT lean_object* lean_lcnf_compile_decls(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { -lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10; lean_object* x_11; -x_5 = l_List_redLength___rarg(x_1); -x_6 = lean_mk_empty_array_with_capacity(x_5); +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_5 = lean_ctor_get(x_2, 2); +lean_inc(x_5); +x_6 = l_List_redLength___rarg(x_1); +x_7 = lean_mk_empty_array_with_capacity(x_6); +lean_dec(x_6); +x_8 = l_List_toArrayAux___rarg(x_1, x_7); +x_9 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_main___lambda__1), 6, 1); +lean_closure_set(x_9, 0, x_8); +x_10 = l_Lean_Compiler_LCNF_compile___closed__3; +x_11 = 0; +x_12 = lean_box(x_11); +x_13 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_CompilerM_run___rarg___boxed), 6, 3); +lean_closure_set(x_13, 0, x_9); +lean_closure_set(x_13, 1, x_10); +lean_closure_set(x_13, 2, x_12); +x_14 = l_Lean_Compiler_LCNF_main___closed__1; +x_15 = l_Lean_profileitM___at_Lean_Compiler_LCNF_main___spec__1___rarg(x_14, x_5, x_13, x_2, x_3, x_4); lean_dec(x_5); -x_7 = l_List_toArrayAux___rarg(x_1, x_6); -x_8 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_main___lambda__1), 6, 1); -lean_closure_set(x_8, 0, x_7); -x_9 = l_Lean_Compiler_LCNF_compile___closed__3; -x_10 = 0; -x_11 = l_Lean_Compiler_LCNF_CompilerM_run___rarg(x_8, x_9, x_10, x_2, x_3, x_4); -return x_11; +return x_15; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__1() { +LEAN_EXPORT lean_object* l_Lean_profileitM___at_Lean_Compiler_LCNF_main___spec__1___rarg___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) { +_start: +{ +lean_object* x_7; +x_7 = l_Lean_profileitM___at_Lean_Compiler_LCNF_main___spec__1___rarg(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_2); +lean_dec(x_1); +return x_7; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__1() { _start: { lean_object* x_1; @@ -3870,17 +3915,17 @@ x_1 = lean_mk_string_from_bytes("init", 4); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__2() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___lambda__2___closed__1; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__1; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__1; x_3 = l_Lean_Name_mkStr2(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__3() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__3() { _start: { lean_object* x_1; @@ -3888,17 +3933,17 @@ x_1 = lean_mk_string_from_bytes("test", 4); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__4() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__4() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___lambda__2___closed__1; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__3; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__3; x_3 = l_Lean_Name_mkStr2(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__5() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__5() { _start: { lean_object* x_1; @@ -3906,21 +3951,21 @@ x_1 = lean_mk_string_from_bytes("jp", 2); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__6() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_checkpoint___spec__1___lambda__2___closed__1; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__5; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__5; x_3 = l_Lean_Name_mkStr2(x_1, x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374_(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; lean_object* x_4; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__2; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__2; x_3 = 1; x_4 = l_Lean_registerTraceClass(x_2, x_3, x_1); if (lean_obj_tag(x_4) == 0) @@ -3929,7 +3974,7 @@ lean_object* x_5; lean_object* x_6; lean_object* x_7; x_5 = lean_ctor_get(x_4, 1); lean_inc(x_5); lean_dec(x_4); -x_6 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__4; +x_6 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__4; x_7 = l_Lean_registerTraceClass(x_6, x_3, x_5); if (lean_obj_tag(x_7) == 0) { @@ -3945,7 +3990,7 @@ lean_object* x_11; lean_object* x_12; uint8_t x_13; lean_object* x_14; x_11 = lean_ctor_get(x_10, 1); lean_inc(x_11); lean_dec(x_10); -x_12 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__6; +x_12 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__6; x_13 = 0; x_14 = l_Lean_registerTraceClass(x_12, x_13, x_11); return x_14; @@ -4173,19 +4218,21 @@ l_Lean_Compiler_LCNF_showDecl___closed__1 = _init_l_Lean_Compiler_LCNF_showDecl_ lean_mark_persistent(l_Lean_Compiler_LCNF_showDecl___closed__1); l_Lean_Compiler_LCNF_showDecl___closed__2 = _init_l_Lean_Compiler_LCNF_showDecl___closed__2(); lean_mark_persistent(l_Lean_Compiler_LCNF_showDecl___closed__2); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__1); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__2 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__2); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__3 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__3(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__3); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__4 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__4(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__4); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__5 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__5(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__5); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__6 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__6(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339____closed__6); -res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1339_(lean_io_mk_world()); +l_Lean_Compiler_LCNF_main___closed__1 = _init_l_Lean_Compiler_LCNF_main___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_main___closed__1); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__1); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__2 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__2); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__3 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__3); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__4 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__4); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__5 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__5(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__5); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__6 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__6(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374____closed__6); +res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Main___hyg_1374_(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)); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/MonoTypes.c b/stage0/stdlib/Lean/Compiler/LCNF/MonoTypes.c new file mode 100644 index 0000000000..691fce71d1 --- /dev/null +++ b/stage0/stdlib/Lean/Compiler/LCNF/MonoTypes.c @@ -0,0 +1,682 @@ +// Lean compiler output +// Module: Lean.Compiler.LCNF.MonoTypes +// Imports: Init Lean.Compiler.LCNF.InferType +#include +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wunused-label" +#elif defined(__GNUC__) && !defined(__CLANG__) +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wunused-label" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif +#ifdef __cplusplus +extern "C" { +#endif +lean_object* lean_array_set(lean_object*, lean_object*, lean_object*); +size_t lean_usize_add(size_t, size_t); +lean_object* lean_mk_empty_array_with_capacity(lean_object*); +lean_object* lean_array_uget(lean_object*, size_t); +uint8_t l_Lean_Expr_isErased(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toMonoType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_expr_instantiate1(lean_object*, lean_object*); +lean_object* lean_array_get_size(lean_object*); +static lean_object* l_Lean_Compiler_LCNF_toMonoType___closed__2; +uint8_t lean_usize_dec_lt(size_t, size_t); +extern lean_object* l_Lean_levelZero; +extern lean_object* l_Lean_Compiler_LCNF_erasedExpr; +static lean_object* l_Lean_Compiler_LCNF_toMonoType___closed__1; +lean_object* lean_nat_sub(lean_object*, lean_object*); +lean_object* l_Lean_Expr_headBeta(lean_object*); +lean_object* l_Lean_Compiler_LCNF_inferType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_toMonoType_visitApp___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*); +lean_object* l_Lean_Expr_sort___override(lean_object*); +lean_object* l_Lean_mkArrow(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +size_t lean_usize_of_nat(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toMonoType_visitApp___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Expr_const___override(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toMonoType_visitApp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Expr_app___override(lean_object*, lean_object*); +lean_object* lean_mk_array(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_toMonoType_visitApp___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_Lean_Compiler_LCNF_isTypeFormerType(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Expr_withAppAux___at_Lean_Compiler_LCNF_toMonoType___spec__1(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_Compiler_LCNF_toMonoType_visitApp___spec__1(lean_object* x_1, size_t x_2, size_t 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: +{ +uint8_t x_10; +x_10 = lean_usize_dec_lt(x_3, x_2); +if (x_10 == 0) +{ +lean_object* x_11; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_4); +lean_ctor_set(x_11, 1, x_9); +return x_11; +} +else +{ +lean_object* x_12; lean_object* x_13; lean_object* x_31; uint8_t x_32; +x_12 = lean_array_uget(x_1, x_3); +x_31 = l_Lean_Expr_headBeta(x_12); +x_32 = l_Lean_Expr_isErased(x_31); +if (x_32 == 0) +{ +lean_object* x_33; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_31); +x_33 = l_Lean_Compiler_LCNF_inferType(x_31, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_33) == 0) +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_43; lean_object* x_59; uint8_t x_60; +x_34 = lean_ctor_get(x_33, 0); +lean_inc(x_34); +x_35 = lean_ctor_get(x_33, 1); +lean_inc(x_35); +if (lean_is_exclusive(x_33)) { + lean_ctor_release(x_33, 0); + lean_ctor_release(x_33, 1); + x_36 = x_33; +} else { + lean_dec_ref(x_33); + x_36 = lean_box(0); +} +x_59 = l_Lean_Expr_headBeta(x_34); +x_60 = l_Lean_Expr_isErased(x_59); +if (x_60 == 0) +{ +if (lean_obj_tag(x_59) == 3) +{ +lean_object* x_61; +lean_dec(x_59); +lean_dec(x_36); +x_61 = lean_box(0); +x_43 = x_61; +goto block_58; +} +else +{ +lean_object* x_62; +lean_dec(x_59); +lean_dec(x_31); +x_62 = lean_box(0); +x_37 = x_62; +goto block_42; +} +} +else +{ +lean_object* x_63; +lean_dec(x_59); +lean_dec(x_36); +x_63 = lean_box(0); +x_43 = x_63; +goto block_58; +} +block_42: +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; +lean_dec(x_37); +x_38 = l_Lean_Compiler_LCNF_erasedExpr; +x_39 = l_Lean_Expr_app___override(x_4, x_38); +x_40 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_40, 0, x_39); +if (lean_is_scalar(x_36)) { + x_41 = lean_alloc_ctor(0, 2, 0); +} else { + x_41 = x_36; +} +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set(x_41, 1, x_35); +x_13 = x_41; +goto block_30; +} +block_58: +{ +lean_object* x_44; +lean_dec(x_43); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +x_44 = l_Lean_Compiler_LCNF_toMonoType(x_31, x_5, x_6, x_7, x_8, x_35); +if (lean_obj_tag(x_44) == 0) +{ +uint8_t x_45; +x_45 = !lean_is_exclusive(x_44); +if (x_45 == 0) +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_44, 0); +x_47 = l_Lean_Expr_app___override(x_4, x_46); +x_48 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_48, 0, x_47); +lean_ctor_set(x_44, 0, x_48); +x_13 = x_44; +goto block_30; +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; +x_49 = lean_ctor_get(x_44, 0); +x_50 = lean_ctor_get(x_44, 1); +lean_inc(x_50); +lean_inc(x_49); +lean_dec(x_44); +x_51 = l_Lean_Expr_app___override(x_4, x_49); +x_52 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_52, 0, x_51); +x_53 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_53, 0, x_52); +lean_ctor_set(x_53, 1, x_50); +x_13 = x_53; +goto block_30; +} +} +else +{ +uint8_t x_54; +lean_dec(x_4); +x_54 = !lean_is_exclusive(x_44); +if (x_54 == 0) +{ +x_13 = x_44; +goto block_30; +} +else +{ +lean_object* x_55; lean_object* x_56; lean_object* x_57; +x_55 = lean_ctor_get(x_44, 0); +x_56 = lean_ctor_get(x_44, 1); +lean_inc(x_56); +lean_inc(x_55); +lean_dec(x_44); +x_57 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_57, 0, x_55); +lean_ctor_set(x_57, 1, x_56); +x_13 = x_57; +goto block_30; +} +} +} +} +else +{ +uint8_t x_64; +lean_dec(x_31); +lean_dec(x_4); +x_64 = !lean_is_exclusive(x_33); +if (x_64 == 0) +{ +x_13 = x_33; +goto block_30; +} +else +{ +lean_object* x_65; lean_object* x_66; lean_object* x_67; +x_65 = lean_ctor_get(x_33, 0); +x_66 = lean_ctor_get(x_33, 1); +lean_inc(x_66); +lean_inc(x_65); +lean_dec(x_33); +x_67 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_67, 0, x_65); +lean_ctor_set(x_67, 1, x_66); +x_13 = x_67; +goto block_30; +} +} +} +else +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; +x_68 = l_Lean_Expr_app___override(x_4, x_31); +x_69 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_69, 0, x_68); +x_70 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_70, 0, x_69); +lean_ctor_set(x_70, 1, x_9); +x_13 = x_70; +goto block_30; +} +block_30: +{ +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +if (lean_obj_tag(x_14) == 0) +{ +uint8_t x_15; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +x_15 = !lean_is_exclusive(x_13); +if (x_15 == 0) +{ +lean_object* x_16; lean_object* x_17; +x_16 = lean_ctor_get(x_13, 0); +lean_dec(x_16); +x_17 = lean_ctor_get(x_14, 0); +lean_inc(x_17); +lean_dec(x_14); +lean_ctor_set(x_13, 0, x_17); +return x_13; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_13, 1); +lean_inc(x_18); +lean_dec(x_13); +x_19 = lean_ctor_get(x_14, 0); +lean_inc(x_19); +lean_dec(x_14); +x_20 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_20, 0, x_19); +lean_ctor_set(x_20, 1, x_18); +return x_20; +} +} +else +{ +lean_object* x_21; lean_object* x_22; size_t x_23; size_t x_24; +x_21 = lean_ctor_get(x_13, 1); +lean_inc(x_21); +lean_dec(x_13); +x_22 = lean_ctor_get(x_14, 0); +lean_inc(x_22); +lean_dec(x_14); +x_23 = 1; +x_24 = lean_usize_add(x_3, x_23); +x_3 = x_24; +x_4 = x_22; +x_9 = x_21; +goto _start; +} +} +else +{ +uint8_t x_26; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +x_26 = !lean_is_exclusive(x_13); +if (x_26 == 0) +{ +return x_13; +} +else +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_27 = lean_ctor_get(x_13, 0); +x_28 = lean_ctor_get(x_13, 1); +lean_inc(x_28); +lean_inc(x_27); +lean_dec(x_13); +x_29 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_29, 0, x_27); +lean_ctor_set(x_29, 1, x_28); +return x_29; +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toMonoType_visitApp(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: +{ +if (lean_obj_tag(x_1) == 4) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; size_t x_12; size_t x_13; lean_object* x_14; +x_8 = lean_ctor_get(x_1, 0); +lean_inc(x_8); +lean_dec(x_1); +x_9 = lean_box(0); +x_10 = l_Lean_Expr_const___override(x_8, x_9); +x_11 = lean_array_get_size(x_2); +x_12 = lean_usize_of_nat(x_11); +lean_dec(x_11); +x_13 = 0; +x_14 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_toMonoType_visitApp___spec__1(x_2, x_12, x_13, x_10, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_14) == 0) +{ +uint8_t x_15; +x_15 = !lean_is_exclusive(x_14); +if (x_15 == 0) +{ +return x_14; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_16 = lean_ctor_get(x_14, 0); +x_17 = lean_ctor_get(x_14, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_14); +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_16); +lean_ctor_set(x_18, 1, x_17); +return x_18; +} +} +else +{ +uint8_t x_19; +x_19 = !lean_is_exclusive(x_14); +if (x_19 == 0) +{ +return x_14; +} +else +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_14, 0); +x_21 = lean_ctor_get(x_14, 1); +lean_inc(x_21); +lean_inc(x_20); +lean_dec(x_14); +x_22 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_21); +return x_22; +} +} +} +else +{ +lean_object* x_23; lean_object* x_24; +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_23 = l_Lean_Compiler_LCNF_erasedExpr; +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_7); +return x_24; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Expr_withAppAux___at_Lean_Compiler_LCNF_toMonoType___spec__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) { +_start: +{ +if (lean_obj_tag(x_1) == 5) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_9 = lean_ctor_get(x_1, 0); +lean_inc(x_9); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_array_set(x_2, x_3, x_10); +x_12 = lean_unsigned_to_nat(1u); +x_13 = lean_nat_sub(x_3, x_12); +lean_dec(x_3); +x_1 = x_9; +x_2 = x_11; +x_3 = x_13; +goto _start; +} +else +{ +lean_object* x_15; +lean_dec(x_3); +x_15 = l_Lean_Compiler_LCNF_toMonoType_visitApp(x_1, x_2, x_4, x_5, x_6, x_7, x_8); +lean_dec(x_2); +return x_15; +} +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_toMonoType___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(0u); +x_2 = lean_mk_empty_array_with_capacity(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_toMonoType___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_levelZero; +x_2 = l_Lean_Expr_sort___override(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toMonoType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; uint8_t x_8; +x_7 = l_Lean_Expr_headBeta(x_1); +x_8 = l_Lean_Expr_isErased(x_7); +if (x_8 == 0) +{ +uint8_t x_9; +lean_inc(x_7); +x_9 = l_Lean_Compiler_LCNF_isTypeFormerType(x_7); +if (x_9 == 0) +{ +switch (lean_obj_tag(x_7)) { +case 4: +{ +lean_object* x_10; lean_object* x_11; +x_10 = l_Lean_Compiler_LCNF_toMonoType___closed__1; +x_11 = l_Lean_Compiler_LCNF_toMonoType_visitApp(x_7, x_10, x_2, x_3, x_4, x_5, x_6); +return x_11; +} +case 5: +{ +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 = lean_unsigned_to_nat(0u); +x_13 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_7, x_12); +x_14 = l_Lean_Compiler_LCNF_toMonoType___closed__2; +lean_inc(x_13); +x_15 = lean_mk_array(x_13, x_14); +x_16 = lean_unsigned_to_nat(1u); +x_17 = lean_nat_sub(x_13, x_16); +lean_dec(x_13); +x_18 = l_Lean_Expr_withAppAux___at_Lean_Compiler_LCNF_toMonoType___spec__1(x_7, x_15, x_17, x_2, x_3, x_4, x_5, x_6); +return x_18; +} +case 7: +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_19 = lean_ctor_get(x_7, 1); +lean_inc(x_19); +x_20 = lean_ctor_get(x_7, 2); +lean_inc(x_20); +lean_dec(x_7); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +x_21 = l_Lean_Compiler_LCNF_toMonoType(x_19, x_2, x_3, x_4, x_5, x_6); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_21, 1); +lean_inc(x_23); +lean_dec(x_21); +x_24 = l_Lean_Compiler_LCNF_erasedExpr; +x_25 = lean_expr_instantiate1(x_20, x_24); +lean_dec(x_20); +lean_inc(x_5); +lean_inc(x_4); +x_26 = l_Lean_Compiler_LCNF_toMonoType(x_25, x_2, x_3, x_4, x_5, x_23); +if (lean_obj_tag(x_26) == 0) +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_27 = lean_ctor_get(x_26, 0); +lean_inc(x_27); +x_28 = lean_ctor_get(x_26, 1); +lean_inc(x_28); +lean_dec(x_26); +x_29 = l_Lean_mkArrow(x_22, x_27, x_4, x_5, x_28); +lean_dec(x_5); +lean_dec(x_4); +return x_29; +} +else +{ +uint8_t x_30; +lean_dec(x_22); +lean_dec(x_5); +lean_dec(x_4); +x_30 = !lean_is_exclusive(x_26); +if (x_30 == 0) +{ +return x_26; +} +else +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_31 = lean_ctor_get(x_26, 0); +x_32 = lean_ctor_get(x_26, 1); +lean_inc(x_32); +lean_inc(x_31); +lean_dec(x_26); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_32); +return x_33; +} +} +} +else +{ +uint8_t x_34; +lean_dec(x_20); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_34 = !lean_is_exclusive(x_21); +if (x_34 == 0) +{ +return x_21; +} +else +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_35 = lean_ctor_get(x_21, 0); +x_36 = lean_ctor_get(x_21, 1); +lean_inc(x_36); +lean_inc(x_35); +lean_dec(x_21); +x_37 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_37, 0, x_35); +lean_ctor_set(x_37, 1, x_36); +return x_37; +} +} +} +default: +{ +lean_object* x_38; lean_object* x_39; +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_38 = l_Lean_Compiler_LCNF_erasedExpr; +x_39 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_6); +return x_39; +} +} +} +else +{ +lean_object* x_40; lean_object* x_41; +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_40 = l_Lean_Compiler_LCNF_erasedExpr; +x_41 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set(x_41, 1, x_6); +return x_41; +} +} +else +{ +lean_object* x_42; lean_object* x_43; +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_42 = l_Lean_Compiler_LCNF_erasedExpr; +x_43 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_43, 0, x_42); +lean_ctor_set(x_43, 1, x_6); +return x_43; +} +} +} +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_toMonoType_visitApp___spec__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) { +_start: +{ +size_t x_10; size_t x_11; lean_object* x_12; +x_10 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_11 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_12 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_toMonoType_visitApp___spec__1(x_1, x_10, x_11, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_1); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toMonoType_visitApp___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_Compiler_LCNF_toMonoType_visitApp(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_2); +return x_8; +} +} +lean_object* initialize_Init(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_InferType(uint8_t builtin, lean_object*); +static bool _G_initialized = false; +LEAN_EXPORT lean_object* initialize_Lean_Compiler_LCNF_MonoTypes(uint8_t builtin, lean_object* w) { +lean_object * res; +if (_G_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_initialized = true; +res = initialize_Init(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_InferType(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Compiler_LCNF_toMonoType___closed__1 = _init_l_Lean_Compiler_LCNF_toMonoType___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_toMonoType___closed__1); +l_Lean_Compiler_LCNF_toMonoType___closed__2 = _init_l_Lean_Compiler_LCNF_toMonoType___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_toMonoType___closed__2); +return lean_io_result_mk_ok(lean_box(0)); +} +#ifdef __cplusplus +} +#endif diff --git a/stage0/stdlib/Lean/Compiler/LCNF/OtherDecl.c b/stage0/stdlib/Lean/Compiler/LCNF/OtherDecl.c new file mode 100644 index 0000000000..6effb78e01 --- /dev/null +++ b/stage0/stdlib/Lean/Compiler/LCNF/OtherDecl.c @@ -0,0 +1,1727 @@ +// Lean compiler output +// Module: Lean.Compiler.LCNF.OtherDecl +// Imports: Init Lean.Compiler.LCNF.CompilerM Lean.Compiler.LCNF.Types +#include +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wunused-label" +#elif defined(__GNUC__) && !defined(__CLANG__) +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wunused-label" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif +#ifdef __cplusplus +extern "C" { +#endif +size_t lean_usize_add(size_t, size_t); +lean_object* lean_mk_empty_array_with_capacity(lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__4(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___boxed(lean_object*, lean_object*, lean_object*); +static size_t l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___closed__1; +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5___closed__1; +lean_object* l_Lean_EnvExtensionInterfaceUnsafe_registerExt___rarg(lean_object*, lean_object*); +lean_object* l_Lean_EnvExtensionInterfaceUnsafe_imp___elambda__2___rarg(lean_object*, lean_object*, lean_object*); +size_t lean_usize_sub(size_t, size_t); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__16; +lean_object* lean_st_ref_get(lean_object*, lean_object*); +uint8_t lean_name_eq(lean_object*, lean_object*); +lean_object* lean_array_push(lean_object*, lean_object*); +lean_object* lean_array_get_size(lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_OtherDecl___hyg_51____closed__1; +lean_object* l_Lean_getConstInfo___at___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_isValidMacroInline___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__10; +size_t lean_usize_shift_right(size_t, size_t); +static lean_object* l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__1; +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__20; +static size_t l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___closed__2; +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__18; +lean_object* lean_nat_add(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__15; +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__7(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__5; +size_t lean_uint64_to_usize(uint64_t); +lean_object* l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); +uint64_t l_Lean_Name_hash___override(lean_object*); +lean_object* l_Lean_ConstantInfo_levelParams(lean_object*); +static lean_object* l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__2; +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclType___closed__2; +lean_object* lean_array_fget(lean_object*, lean_object*); +lean_object* lean_st_ref_take(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclType___closed__1; +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__7; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_OtherDecl___hyg_51_(lean_object*); +lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); +lean_object* l_instInhabited___rarg(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__22; +lean_object* lean_st_mk_ref(lean_object*, lean_object*); +extern lean_object* l_Lean_Expr_instHashableExpr; +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__14; +lean_object* l_Lean_Compiler_LCNF_toLCNFType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +size_t lean_usize_shift_left(size_t, size_t); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__3; +lean_object* l_Lean_Meta_InfoCacheKey_instHashableInfoCacheKey___boxed(lean_object*); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__21; +static lean_object* l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__2; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__1(lean_object*, lean_object*); +extern lean_object* l_Lean_instInhabitedExpr; +lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +size_t lean_usize_mul(size_t, size_t); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__13; +lean_object* l_Lean_ConstantInfo_type(lean_object*); +lean_object* l_instBEqProd___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__6; +size_t lean_usize_land(size_t, size_t); +lean_object* l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); +static lean_object* l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__1; +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclType___closed__3; +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__4; +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__9; +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__17; +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__8; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instInhabitedOtherTypeExtState; +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclType___closed__4; +uint8_t lean_usize_dec_le(size_t, size_t); +lean_object* l_instInhabitedReaderT___rarg___boxed(lean_object*, lean_object*); +extern lean_object* l_Lean_Core_instMonadCoreM; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__6(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_otherTypeExt; +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__2; +lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_PersistentHashMap_mkEmptyEntries(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_OtherTypeExtState_base___default; +lean_object* lean_panic_fn(lean_object*, lean_object*); +lean_object* l_instHashableProd___rarg___boxed(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__19; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_Expr_instBEqExpr; +static lean_object* l_Lean_Compiler_LCNF_instInhabitedOtherTypeExtState___closed__1; +static lean_object* l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__3; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___lambda__2(lean_object*, lean_object*, lean_object*); +lean_object* l_ReaderT_instMonadReaderT___rarg(lean_object*); +static lean_object* l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__3; +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__12; +lean_object* lean_usize_to_nat(size_t); +lean_object* l_Lean_Compiler_LCNF_getPhase(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Expr_instantiateLevelParamsCore_visit___at_Lean_Expr_instantiateLevelParams___spec__1(lean_object*, lean_object*, lean_object*); +lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); +lean_object* l_Lean_EnvExtensionInterfaceUnsafe_getState___rarg(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_OtherTypeExtState_mono___default; +lean_object* l_Lean_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2(lean_object*, size_t, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__11; +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5(lean_object*, size_t, size_t, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getOtherDeclType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__6___boxed(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_Compiler_LCNF_OtherTypeExtState_base___default___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_box(0), lean_box(0)); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__1; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_OtherTypeExtState_base___default() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__3; +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_OtherTypeExtState_mono___default() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__3; +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_instInhabitedOtherTypeExtState___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__3; +x_2 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_2, 0, x_1); +lean_ctor_set(x_2, 1, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_instInhabitedOtherTypeExtState() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Compiler_LCNF_instInhabitedOtherTypeExtState___closed__1; +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_OtherDecl___hyg_51____closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_LCNF_instInhabitedOtherTypeExtState___closed__1; +x_2 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_OtherDecl___hyg_51_(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_OtherDecl___hyg_51____closed__1; +x_3 = l_Lean_EnvExtensionInterfaceUnsafe_registerExt___rarg(x_2, x_1); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; uint8_t x_7; +x_6 = lean_array_get_size(x_1); +x_7 = lean_nat_dec_lt(x_4, x_6); +lean_dec(x_6); +if (x_7 == 0) +{ +lean_object* x_8; +lean_dec(x_4); +x_8 = lean_box(0); +return x_8; +} +else +{ +lean_object* x_9; uint8_t x_10; +x_9 = lean_array_fget(x_1, x_4); +x_10 = lean_name_eq(x_5, x_9); +lean_dec(x_9); +if (x_10 == 0) +{ +lean_object* x_11; lean_object* x_12; +x_11 = lean_unsigned_to_nat(1u); +x_12 = lean_nat_add(x_4, x_11); +lean_dec(x_4); +x_3 = lean_box(0); +x_4 = x_12; +goto _start; +} +else +{ +lean_object* x_14; lean_object* x_15; +x_14 = lean_array_fget(x_2, x_4); +lean_dec(x_4); +x_15 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_15, 0, x_14); +return x_15; +} +} +} +} +static size_t _init_l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___closed__1() { +_start: +{ +size_t x_1; size_t x_2; size_t x_3; +x_1 = 1; +x_2 = 5; +x_3 = lean_usize_shift_left(x_1, x_2); +return x_3; +} +} +static size_t _init_l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___closed__2() { +_start: +{ +size_t x_1; size_t x_2; size_t x_3; +x_1 = 1; +x_2 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___closed__1; +x_3 = lean_usize_sub(x_2, x_1); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2(lean_object* x_1, size_t x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; size_t x_5; size_t x_6; size_t x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +lean_dec(x_1); +x_5 = 5; +x_6 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___closed__2; +x_7 = lean_usize_land(x_2, x_6); +x_8 = lean_usize_to_nat(x_7); +x_9 = lean_box(2); +x_10 = lean_array_get(x_9, x_4, x_8); +lean_dec(x_8); +lean_dec(x_4); +switch (lean_obj_tag(x_10)) { +case 0: +{ +lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +x_13 = lean_name_eq(x_3, x_11); +lean_dec(x_11); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_12); +x_14 = lean_box(0); +return x_14; +} +else +{ +lean_object* x_15; +x_15 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_15, 0, x_12); +return x_15; +} +} +case 1: +{ +lean_object* x_16; size_t x_17; +x_16 = lean_ctor_get(x_10, 0); +lean_inc(x_16); +lean_dec(x_10); +x_17 = lean_usize_shift_right(x_2, x_5); +x_1 = x_16; +x_2 = x_17; +goto _start; +} +default: +{ +lean_object* x_19; +x_19 = lean_box(0); +return x_19; +} +} +} +else +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_1, 0); +lean_inc(x_20); +x_21 = lean_ctor_get(x_1, 1); +lean_inc(x_21); +lean_dec(x_1); +x_22 = lean_unsigned_to_nat(0u); +x_23 = l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__3(x_20, x_21, lean_box(0), x_22, x_3); +lean_dec(x_21); +lean_dec(x_20); +return x_23; +} +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; uint64_t x_4; size_t x_5; lean_object* x_6; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +lean_dec(x_1); +x_4 = l_Lean_Name_hash___override(x_2); +x_5 = lean_uint64_to_usize(x_4); +x_6 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2(x_3, x_5, x_2); +lean_dec(x_2); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__6(size_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; uint8_t x_8; +x_7 = lean_array_get_size(x_2); +x_8 = lean_nat_dec_lt(x_5, x_7); +lean_dec(x_7); +if (x_8 == 0) +{ +lean_dec(x_5); +return x_6; +} +else +{ +lean_object* x_9; lean_object* x_10; uint64_t x_11; size_t x_12; size_t x_13; size_t x_14; size_t x_15; size_t x_16; size_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_9 = lean_array_fget(x_2, x_5); +x_10 = lean_array_fget(x_3, x_5); +x_11 = l_Lean_Name_hash___override(x_9); +x_12 = lean_uint64_to_usize(x_11); +x_13 = 1; +x_14 = lean_usize_sub(x_1, x_13); +x_15 = 5; +x_16 = lean_usize_mul(x_15, x_14); +x_17 = lean_usize_shift_right(x_12, x_16); +x_18 = lean_unsigned_to_nat(1u); +x_19 = lean_nat_add(x_5, x_18); +lean_dec(x_5); +x_20 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5(x_6, x_17, x_1, x_9, x_10); +x_4 = lean_box(0); +x_5 = x_19; +x_6 = x_20; +goto _start; +} +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__7(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +x_7 = lean_array_get_size(x_5); +x_8 = lean_nat_dec_lt(x_2, x_7); +lean_dec(x_7); +if (x_8 == 0) +{ +uint8_t x_9; +lean_dec(x_2); +x_9 = !lean_is_exclusive(x_1); +if (x_9 == 0) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = lean_ctor_get(x_1, 1); +lean_dec(x_10); +x_11 = lean_ctor_get(x_1, 0); +lean_dec(x_11); +x_12 = lean_array_push(x_5, x_3); +x_13 = lean_array_push(x_6, x_4); +lean_ctor_set(x_1, 1, x_13); +lean_ctor_set(x_1, 0, x_12); +return x_1; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; +lean_dec(x_1); +x_14 = lean_array_push(x_5, x_3); +x_15 = lean_array_push(x_6, x_4); +x_16 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_16, 0, x_14); +lean_ctor_set(x_16, 1, x_15); +return x_16; +} +} +else +{ +lean_object* x_17; uint8_t x_18; +x_17 = lean_array_fget(x_5, x_2); +x_18 = lean_name_eq(x_3, x_17); +lean_dec(x_17); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; +lean_dec(x_6); +lean_dec(x_5); +x_19 = lean_unsigned_to_nat(1u); +x_20 = lean_nat_add(x_2, x_19); +lean_dec(x_2); +x_2 = x_20; +goto _start; +} +else +{ +uint8_t x_22; +x_22 = !lean_is_exclusive(x_1); +if (x_22 == 0) +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_23 = lean_ctor_get(x_1, 1); +lean_dec(x_23); +x_24 = lean_ctor_get(x_1, 0); +lean_dec(x_24); +x_25 = lean_array_fset(x_5, x_2, x_3); +x_26 = lean_array_fset(x_6, x_2, x_4); +lean_dec(x_2); +lean_ctor_set(x_1, 1, x_26); +lean_ctor_set(x_1, 0, x_25); +return x_1; +} +else +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; +lean_dec(x_1); +x_27 = lean_array_fset(x_5, x_2, x_3); +x_28 = lean_array_fset(x_6, x_2, x_4); +lean_dec(x_2); +x_29 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_29, 0, x_27); +lean_ctor_set(x_29, 1, x_28); +return x_29; +} +} +} +} +} +static lean_object* _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_PersistentHashMap_mkEmptyEntries(lean_box(0), lean_box(0)); +return x_1; +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +uint8_t x_6; +x_6 = !lean_is_exclusive(x_1); +if (x_6 == 0) +{ +lean_object* x_7; size_t x_8; size_t x_9; size_t x_10; size_t x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; +x_7 = lean_ctor_get(x_1, 0); +x_8 = 1; +x_9 = 5; +x_10 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___closed__2; +x_11 = lean_usize_land(x_2, x_10); +x_12 = lean_usize_to_nat(x_11); +x_13 = lean_array_get_size(x_7); +x_14 = lean_nat_dec_lt(x_12, x_13); +lean_dec(x_13); +if (x_14 == 0) +{ +lean_dec(x_12); +lean_dec(x_5); +lean_dec(x_4); +return x_1; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_array_fget(x_7, x_12); +x_16 = lean_box(0); +x_17 = lean_array_fset(x_7, x_12, x_16); +switch (lean_obj_tag(x_15)) { +case 0: +{ +uint8_t x_18; +x_18 = !lean_is_exclusive(x_15); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; uint8_t x_21; +x_19 = lean_ctor_get(x_15, 0); +x_20 = lean_ctor_get(x_15, 1); +x_21 = lean_name_eq(x_4, x_19); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +lean_free_object(x_15); +x_22 = l_Lean_PersistentHashMap_mkCollisionNode___rarg(x_19, x_20, x_4, x_5); +x_23 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_23, 0, x_22); +x_24 = lean_array_fset(x_17, x_12, x_23); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_24); +return x_1; +} +else +{ +lean_object* x_25; +lean_dec(x_20); +lean_dec(x_19); +lean_ctor_set(x_15, 1, x_5); +lean_ctor_set(x_15, 0, x_4); +x_25 = lean_array_fset(x_17, x_12, x_15); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_25); +return x_1; +} +} +else +{ +lean_object* x_26; lean_object* x_27; uint8_t x_28; +x_26 = lean_ctor_get(x_15, 0); +x_27 = lean_ctor_get(x_15, 1); +lean_inc(x_27); +lean_inc(x_26); +lean_dec(x_15); +x_28 = lean_name_eq(x_4, x_26); +if (x_28 == 0) +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_29 = l_Lean_PersistentHashMap_mkCollisionNode___rarg(x_26, x_27, x_4, x_5); +x_30 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_30, 0, x_29); +x_31 = lean_array_fset(x_17, x_12, x_30); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_31); +return x_1; +} +else +{ +lean_object* x_32; lean_object* x_33; +lean_dec(x_27); +lean_dec(x_26); +x_32 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_32, 0, x_4); +lean_ctor_set(x_32, 1, x_5); +x_33 = lean_array_fset(x_17, x_12, x_32); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_33); +return x_1; +} +} +} +case 1: +{ +uint8_t x_34; +x_34 = !lean_is_exclusive(x_15); +if (x_34 == 0) +{ +lean_object* x_35; size_t x_36; size_t x_37; lean_object* x_38; lean_object* x_39; +x_35 = lean_ctor_get(x_15, 0); +x_36 = lean_usize_shift_right(x_2, x_9); +x_37 = lean_usize_add(x_3, x_8); +x_38 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5(x_35, x_36, x_37, x_4, x_5); +lean_ctor_set(x_15, 0, x_38); +x_39 = lean_array_fset(x_17, x_12, x_15); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_39); +return x_1; +} +else +{ +lean_object* x_40; size_t x_41; size_t x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_40 = lean_ctor_get(x_15, 0); +lean_inc(x_40); +lean_dec(x_15); +x_41 = lean_usize_shift_right(x_2, x_9); +x_42 = lean_usize_add(x_3, x_8); +x_43 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5(x_40, x_41, x_42, x_4, x_5); +x_44 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_44, 0, x_43); +x_45 = lean_array_fset(x_17, x_12, x_44); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_45); +return x_1; +} +} +default: +{ +lean_object* x_46; lean_object* x_47; +x_46 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_46, 0, x_4); +lean_ctor_set(x_46, 1, x_5); +x_47 = lean_array_fset(x_17, x_12, x_46); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_47); +return x_1; +} +} +} +} +else +{ +lean_object* x_48; size_t x_49; size_t x_50; size_t x_51; size_t x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; +x_48 = lean_ctor_get(x_1, 0); +lean_inc(x_48); +lean_dec(x_1); +x_49 = 1; +x_50 = 5; +x_51 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___closed__2; +x_52 = lean_usize_land(x_2, x_51); +x_53 = lean_usize_to_nat(x_52); +x_54 = lean_array_get_size(x_48); +x_55 = lean_nat_dec_lt(x_53, x_54); +lean_dec(x_54); +if (x_55 == 0) +{ +lean_object* x_56; +lean_dec(x_53); +lean_dec(x_5); +lean_dec(x_4); +x_56 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_56, 0, x_48); +return x_56; +} +else +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_57 = lean_array_fget(x_48, x_53); +x_58 = lean_box(0); +x_59 = lean_array_fset(x_48, x_53, x_58); +switch (lean_obj_tag(x_57)) { +case 0: +{ +lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_60 = lean_ctor_get(x_57, 0); +lean_inc(x_60); +x_61 = lean_ctor_get(x_57, 1); +lean_inc(x_61); +if (lean_is_exclusive(x_57)) { + lean_ctor_release(x_57, 0); + lean_ctor_release(x_57, 1); + x_62 = x_57; +} else { + lean_dec_ref(x_57); + x_62 = lean_box(0); +} +x_63 = lean_name_eq(x_4, x_60); +if (x_63 == 0) +{ +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +lean_dec(x_62); +x_64 = l_Lean_PersistentHashMap_mkCollisionNode___rarg(x_60, x_61, x_4, x_5); +x_65 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_65, 0, x_64); +x_66 = lean_array_fset(x_59, x_53, x_65); +lean_dec(x_53); +x_67 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_67, 0, x_66); +return x_67; +} +else +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_dec(x_61); +lean_dec(x_60); +if (lean_is_scalar(x_62)) { + x_68 = lean_alloc_ctor(0, 2, 0); +} else { + x_68 = x_62; +} +lean_ctor_set(x_68, 0, x_4); +lean_ctor_set(x_68, 1, x_5); +x_69 = lean_array_fset(x_59, x_53, x_68); +lean_dec(x_53); +x_70 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_70, 0, x_69); +return x_70; +} +} +case 1: +{ +lean_object* x_71; lean_object* x_72; size_t x_73; size_t x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; +x_71 = lean_ctor_get(x_57, 0); +lean_inc(x_71); +if (lean_is_exclusive(x_57)) { + lean_ctor_release(x_57, 0); + x_72 = x_57; +} else { + lean_dec_ref(x_57); + x_72 = lean_box(0); +} +x_73 = lean_usize_shift_right(x_2, x_50); +x_74 = lean_usize_add(x_3, x_49); +x_75 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5(x_71, x_73, x_74, x_4, x_5); +if (lean_is_scalar(x_72)) { + x_76 = lean_alloc_ctor(1, 1, 0); +} else { + x_76 = x_72; +} +lean_ctor_set(x_76, 0, x_75); +x_77 = lean_array_fset(x_59, x_53, x_76); +lean_dec(x_53); +x_78 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_78, 0, x_77); +return x_78; +} +default: +{ +lean_object* x_79; lean_object* x_80; lean_object* x_81; +x_79 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_79, 0, x_4); +lean_ctor_set(x_79, 1, x_5); +x_80 = lean_array_fset(x_59, x_53, x_79); +lean_dec(x_53); +x_81 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_81, 0, x_80); +return x_81; +} +} +} +} +} +else +{ +uint8_t x_82; +x_82 = !lean_is_exclusive(x_1); +if (x_82 == 0) +{ +lean_object* x_83; lean_object* x_84; size_t x_85; uint8_t x_86; +x_83 = lean_unsigned_to_nat(0u); +x_84 = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__7(x_1, x_83, x_4, x_5); +x_85 = 7; +x_86 = lean_usize_dec_le(x_85, x_3); +if (x_86 == 0) +{ +lean_object* x_87; lean_object* x_88; uint8_t x_89; +x_87 = l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(x_84); +x_88 = lean_unsigned_to_nat(4u); +x_89 = lean_nat_dec_lt(x_87, x_88); +lean_dec(x_87); +if (x_89 == 0) +{ +lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; +x_90 = lean_ctor_get(x_84, 0); +lean_inc(x_90); +x_91 = lean_ctor_get(x_84, 1); +lean_inc(x_91); +lean_dec(x_84); +x_92 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5___closed__1; +x_93 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__6(x_3, x_90, x_91, lean_box(0), x_83, x_92); +lean_dec(x_91); +lean_dec(x_90); +return x_93; +} +else +{ +return x_84; +} +} +else +{ +return x_84; +} +} +else +{ +lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; size_t x_99; uint8_t x_100; +x_94 = lean_ctor_get(x_1, 0); +x_95 = lean_ctor_get(x_1, 1); +lean_inc(x_95); +lean_inc(x_94); +lean_dec(x_1); +x_96 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_96, 0, x_94); +lean_ctor_set(x_96, 1, x_95); +x_97 = lean_unsigned_to_nat(0u); +x_98 = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__7(x_96, x_97, x_4, x_5); +x_99 = 7; +x_100 = lean_usize_dec_le(x_99, x_3); +if (x_100 == 0) +{ +lean_object* x_101; lean_object* x_102; uint8_t x_103; +x_101 = l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(x_98); +x_102 = lean_unsigned_to_nat(4u); +x_103 = lean_nat_dec_lt(x_101, x_102); +lean_dec(x_101); +if (x_103 == 0) +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; +x_104 = lean_ctor_get(x_98, 0); +lean_inc(x_104); +x_105 = lean_ctor_get(x_98, 1); +lean_inc(x_105); +lean_dec(x_98); +x_106 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5___closed__1; +x_107 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__6(x_3, x_104, x_105, lean_box(0), x_97, x_106); +lean_dec(x_105); +lean_dec(x_104); +return x_107; +} +else +{ +return x_98; +} +} +else +{ +return x_98; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; +x_4 = !lean_is_exclusive(x_1); +if (x_4 == 0) +{ +lean_object* x_5; lean_object* x_6; uint64_t x_7; size_t x_8; size_t x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_5 = lean_ctor_get(x_1, 0); +x_6 = lean_ctor_get(x_1, 1); +x_7 = l_Lean_Name_hash___override(x_2); +x_8 = lean_uint64_to_usize(x_7); +x_9 = 1; +x_10 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5(x_5, x_8, x_9, x_2, x_3); +x_11 = lean_unsigned_to_nat(1u); +x_12 = lean_nat_add(x_6, x_11); +lean_dec(x_6); +lean_ctor_set(x_1, 1, x_12); +lean_ctor_set(x_1, 0, x_10); +return x_1; +} +else +{ +lean_object* x_13; lean_object* x_14; uint64_t x_15; size_t x_16; size_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_13 = lean_ctor_get(x_1, 0); +x_14 = lean_ctor_get(x_1, 1); +lean_inc(x_14); +lean_inc(x_13); +lean_dec(x_1); +x_15 = l_Lean_Name_hash___override(x_2); +x_16 = lean_uint64_to_usize(x_15); +x_17 = 1; +x_18 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5(x_13, x_16, x_17, x_2, x_3); +x_19 = lean_unsigned_to_nat(1u); +x_20 = lean_nat_add(x_14, x_19); +lean_dec(x_14); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_18); +lean_ctor_set(x_21, 1, x_20); +return x_21; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___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) { +_start: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_7 = l_Lean_ConstantInfo_levelParams(x_1); +x_8 = l_Lean_Expr_instantiateLevelParamsCore_visit___at_Lean_Expr_instantiateLevelParams___spec__1(x_7, x_2, x_3); +lean_dec(x_7); +x_9 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_9, 0, x_8); +lean_ctor_set(x_9, 1, x_6); +return x_9; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; +x_4 = !lean_is_exclusive(x_3); +if (x_4 == 0) +{ +lean_object* x_5; lean_object* x_6; +x_5 = lean_ctor_get(x_3, 0); +x_6 = l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__4(x_5, x_1, x_2); +lean_ctor_set(x_3, 0, x_6); +return x_3; +} +else +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_7 = lean_ctor_get(x_3, 0); +x_8 = lean_ctor_get(x_3, 1); +lean_inc(x_8); +lean_inc(x_7); +lean_dec(x_3); +x_9 = l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__4(x_7, x_1, x_2); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_9); +lean_ctor_set(x_10, 1, x_8); +return x_10; +} +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Compiler_LCNF_otherTypeExt; +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__2() { +_start: +{ +uint8_t x_1; uint8_t x_2; uint8_t x_3; uint8_t x_4; lean_object* x_5; +x_1 = 0; +x_2 = 1; +x_3 = 1; +x_4 = 0; +x_5 = lean_alloc_ctor(0, 0, 14); +lean_ctor_set_uint8(x_5, 0, x_1); +lean_ctor_set_uint8(x_5, 1, x_1); +lean_ctor_set_uint8(x_5, 2, x_1); +lean_ctor_set_uint8(x_5, 3, x_1); +lean_ctor_set_uint8(x_5, 4, x_1); +lean_ctor_set_uint8(x_5, 5, x_2); +lean_ctor_set_uint8(x_5, 6, x_3); +lean_ctor_set_uint8(x_5, 7, x_1); +lean_ctor_set_uint8(x_5, 8, x_3); +lean_ctor_set_uint8(x_5, 9, x_3); +lean_ctor_set_uint8(x_5, 10, x_1); +lean_ctor_set_uint8(x_5, 11, x_3); +lean_ctor_set_uint8(x_5, 12, x_3); +lean_ctor_set_uint8(x_5, 13, x_4); +return x_5; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(32u); +x_2 = lean_mk_empty_array_with_capacity(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__4; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__6() { +_start: +{ +size_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = 5; +x_2 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__5; +x_3 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__4; +x_4 = lean_unsigned_to_nat(0u); +x_5 = lean_alloc_ctor(0, 4, sizeof(size_t)*1); +lean_ctor_set(x_5, 0, x_2); +lean_ctor_set(x_5, 1, x_3); +lean_ctor_set(x_5, 2, x_4); +lean_ctor_set(x_5, 3, x_4); +lean_ctor_set_usize(x_5, 4, x_1); +return x_5; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__3; +x_2 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__6; +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(0u); +x_2 = lean_mk_empty_array_with_capacity(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__9() { +_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 = lean_box(0); +x_2 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__2; +x_3 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__7; +x_4 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__8; +x_5 = lean_unsigned_to_nat(0u); +x_6 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_6, 0, x_2); +lean_ctor_set(x_6, 1, x_3); +lean_ctor_set(x_6, 2, x_4); +lean_ctor_set(x_6, 3, x_1); +lean_ctor_set(x_6, 4, x_5); +lean_ctor_set(x_6, 5, x_1); +return x_6; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__10() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__11() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__12() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = lean_unsigned_to_nat(0u); +x_2 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__10; +x_3 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__11; +x_4 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__3; +x_5 = lean_alloc_ctor(0, 8, 0); +lean_ctor_set(x_5, 0, x_1); +lean_ctor_set(x_5, 1, x_1); +lean_ctor_set(x_5, 2, x_2); +lean_ctor_set(x_5, 3, x_3); +lean_ctor_set(x_5, 4, x_4); +lean_ctor_set(x_5, 5, x_2); +lean_ctor_set(x_5, 6, x_3); +lean_ctor_set(x_5, 7, x_3); +return x_5; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__13() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__14() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Meta_InfoCacheKey_instHashableInfoCacheKey___boxed), 1, 0); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__15() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__16() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__17() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Expr_instBEqExpr; +x_2 = lean_alloc_closure((void*)(l_instBEqProd___rarg), 4, 2); +lean_closure_set(x_2, 0, x_1); +lean_closure_set(x_2, 1, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__18() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Expr_instHashableExpr; +x_2 = lean_alloc_closure((void*)(l_instHashableProd___rarg___boxed), 3, 2); +lean_closure_set(x_2, 0, x_1); +lean_closure_set(x_2, 1, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__19() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__20() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__13; +x_2 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__15; +x_3 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__16; +x_4 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__19; +x_5 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_5, 0, x_1); +lean_ctor_set(x_5, 1, x_2); +lean_ctor_set(x_5, 2, x_3); +lean_ctor_set(x_5, 3, x_1); +lean_ctor_set(x_5, 4, x_1); +lean_ctor_set(x_5, 5, x_4); +return x_5; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__21() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = lean_box(0); +x_2 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__12; +x_3 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__20; +x_4 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__6; +x_5 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_5, 0, x_2); +lean_ctor_set(x_5, 1, x_3); +lean_ctor_set(x_5, 2, x_1); +lean_ctor_set(x_5, 3, x_4); +return x_5; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__22() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__3; +x_2 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_2, 0, x_1); +lean_ctor_set(x_2, 1, x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +lean_inc(x_1); +x_6 = l_Lean_getConstInfo___at___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_isValidMacroInline___spec__1(x_1, x_3, x_4, x_5); +if (lean_obj_tag(x_6) == 0) +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_7 = lean_ctor_get(x_6, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_6, 1); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_st_ref_get(x_4, x_8); +x_10 = lean_ctor_get(x_9, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = lean_ctor_get(x_10, 0); +lean_inc(x_12); +lean_dec(x_10); +x_13 = l_Lean_Compiler_LCNF_instInhabitedOtherTypeExtState; +x_14 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__1; +x_15 = l_Lean_EnvExtensionInterfaceUnsafe_getState___rarg(x_13, x_14, x_12); +lean_dec(x_12); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +lean_dec(x_15); +lean_inc(x_1); +x_17 = l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__1(x_16, x_1); +if (lean_obj_tag(x_17) == 0) +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_18 = l_Lean_ConstantInfo_type(x_7); +x_19 = lean_st_ref_get(x_4, x_11); +x_20 = lean_ctor_get(x_19, 1); +lean_inc(x_20); +lean_dec(x_19); +x_21 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__21; +x_22 = lean_st_mk_ref(x_21, x_20); +x_23 = lean_ctor_get(x_22, 0); +lean_inc(x_23); +x_24 = lean_ctor_get(x_22, 1); +lean_inc(x_24); +lean_dec(x_22); +x_25 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__9; +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_23); +x_26 = l_Lean_Compiler_LCNF_toLCNFType(x_18, x_25, x_23, x_3, x_4, x_24); +if (lean_obj_tag(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; lean_object* x_35; uint8_t x_36; +x_27 = lean_ctor_get(x_26, 0); +lean_inc(x_27); +x_28 = lean_ctor_get(x_26, 1); +lean_inc(x_28); +lean_dec(x_26); +x_29 = lean_st_ref_get(x_4, x_28); +x_30 = lean_ctor_get(x_29, 1); +lean_inc(x_30); +lean_dec(x_29); +x_31 = lean_st_ref_get(x_23, x_30); +lean_dec(x_23); +x_32 = lean_ctor_get(x_31, 1); +lean_inc(x_32); +lean_dec(x_31); +x_33 = lean_st_ref_take(x_4, x_32); +x_34 = lean_ctor_get(x_33, 0); +lean_inc(x_34); +x_35 = lean_ctor_get(x_33, 1); +lean_inc(x_35); +lean_dec(x_33); +x_36 = !lean_is_exclusive(x_34); +if (x_36 == 0) +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_37 = lean_ctor_get(x_34, 0); +x_38 = lean_ctor_get(x_34, 4); +lean_dec(x_38); +lean_inc(x_27); +x_39 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_getOtherDeclBaseType___lambda__2), 3, 2); +lean_closure_set(x_39, 0, x_1); +lean_closure_set(x_39, 1, x_27); +x_40 = l_Lean_EnvExtensionInterfaceUnsafe_imp___elambda__2___rarg(x_14, x_37, x_39); +x_41 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__22; +lean_ctor_set(x_34, 4, x_41); +lean_ctor_set(x_34, 0, x_40); +x_42 = lean_st_ref_set(x_4, x_34, x_35); +x_43 = lean_ctor_get(x_42, 1); +lean_inc(x_43); +lean_dec(x_42); +x_44 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___lambda__1(x_7, x_2, x_27, x_3, x_4, x_43); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_7); +return x_44; +} +else +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; +x_45 = lean_ctor_get(x_34, 0); +x_46 = lean_ctor_get(x_34, 1); +x_47 = lean_ctor_get(x_34, 2); +x_48 = lean_ctor_get(x_34, 3); +x_49 = lean_ctor_get(x_34, 5); +x_50 = lean_ctor_get(x_34, 6); +lean_inc(x_50); +lean_inc(x_49); +lean_inc(x_48); +lean_inc(x_47); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_34); +lean_inc(x_27); +x_51 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_getOtherDeclBaseType___lambda__2), 3, 2); +lean_closure_set(x_51, 0, x_1); +lean_closure_set(x_51, 1, x_27); +x_52 = l_Lean_EnvExtensionInterfaceUnsafe_imp___elambda__2___rarg(x_14, x_45, x_51); +x_53 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__22; +x_54 = lean_alloc_ctor(0, 7, 0); +lean_ctor_set(x_54, 0, x_52); +lean_ctor_set(x_54, 1, x_46); +lean_ctor_set(x_54, 2, x_47); +lean_ctor_set(x_54, 3, x_48); +lean_ctor_set(x_54, 4, x_53); +lean_ctor_set(x_54, 5, x_49); +lean_ctor_set(x_54, 6, x_50); +x_55 = lean_st_ref_set(x_4, x_54, x_35); +x_56 = lean_ctor_get(x_55, 1); +lean_inc(x_56); +lean_dec(x_55); +x_57 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___lambda__1(x_7, x_2, x_27, x_3, x_4, x_56); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_7); +return x_57; +} +} +else +{ +uint8_t x_58; +lean_dec(x_23); +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_58 = !lean_is_exclusive(x_26); +if (x_58 == 0) +{ +return x_26; +} +else +{ +lean_object* x_59; lean_object* x_60; lean_object* x_61; +x_59 = lean_ctor_get(x_26, 0); +x_60 = lean_ctor_get(x_26, 1); +lean_inc(x_60); +lean_inc(x_59); +lean_dec(x_26); +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; +} +} +} +else +{ +lean_object* x_62; lean_object* x_63; +lean_dec(x_1); +x_62 = lean_ctor_get(x_17, 0); +lean_inc(x_62); +lean_dec(x_17); +x_63 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___lambda__1(x_7, x_2, x_62, x_3, x_4, x_11); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_7); +return x_63; +} +} +else +{ +uint8_t x_64; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_64 = !lean_is_exclusive(x_6); +if (x_64 == 0) +{ +return x_6; +} +else +{ +lean_object* x_65; lean_object* x_66; lean_object* x_67; +x_65 = lean_ctor_get(x_6, 0); +x_66 = lean_ctor_get(x_6, 1); +lean_inc(x_66); +lean_inc(x_65); +lean_dec(x_6); +x_67 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_67, 0, x_65); +lean_ctor_set(x_67, 1, x_66); +return x_67; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +x_6 = l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__3(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +size_t x_4; lean_object* x_5; +x_4 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_5 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2(x_1, x_4, x_3); +lean_dec(x_3); +return x_5; +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__6___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) { +_start: +{ +size_t x_7; lean_object* x_8; +x_7 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_8 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__6(x_7, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_3); +lean_dec(x_2); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +size_t x_6; size_t x_7; lean_object* x_8; +x_6 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_7 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_8 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5(x_1, x_6, x_7, x_4, x_5); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___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) { +_start: +{ +lean_object* x_7; +x_7 = l_Lean_Compiler_LCNF_getOtherDeclBaseType___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getOtherDeclBaseType___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +x_6 = l_Lean_Compiler_LCNF_getOtherDeclBaseType(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_2); +return x_6; +} +} +static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Core_instMonadCoreM; +x_2 = l_ReaderT_instMonadReaderT___rarg(x_1); +return x_2; +} +} +static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__1; +x_2 = l_Lean_instInhabitedExpr; +x_3 = l_instInhabited___rarg(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__2; +x_2 = lean_alloc_closure((void*)(l_instInhabitedReaderT___rarg___boxed), 2, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__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) { +_start: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_7 = l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__3; +x_8 = lean_panic_fn(x_7, x_1); +x_9 = lean_apply_5(x_8, x_2, x_3, x_4, x_5, x_6); +return x_9; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclType___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("Lean.Compiler.LCNF.OtherDecl", 28); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclType___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("Lean.Compiler.LCNF.getOtherDeclType", 35); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclType___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("unreachable code has been reached", 33); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_getOtherDeclType___closed__4() { +_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_Compiler_LCNF_getOtherDeclType___closed__1; +x_2 = l_Lean_Compiler_LCNF_getOtherDeclType___closed__2; +x_3 = lean_unsigned_to_nat(42u); +x_4 = lean_unsigned_to_nat(9u); +x_5 = l_Lean_Compiler_LCNF_getOtherDeclType___closed__3; +x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getOtherDeclType(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; lean_object* x_9; +x_8 = l_Lean_Compiler_LCNF_getPhase(x_3, x_4, x_5, x_6, x_7); +x_9 = lean_ctor_get(x_8, 0); +lean_inc(x_9); +if (lean_obj_tag(x_9) == 0) +{ +lean_object* x_10; lean_object* x_11; +lean_dec(x_4); +lean_dec(x_3); +x_10 = lean_ctor_get(x_8, 1); +lean_inc(x_10); +lean_dec(x_8); +x_11 = l_Lean_Compiler_LCNF_getOtherDeclBaseType(x_1, x_2, x_5, x_6, x_10); +lean_dec(x_2); +return x_11; +} +else +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; +lean_dec(x_9); +lean_dec(x_2); +lean_dec(x_1); +x_12 = lean_ctor_get(x_8, 1); +lean_inc(x_12); +lean_dec(x_8); +x_13 = l_Lean_Compiler_LCNF_getOtherDeclType___closed__4; +x_14 = l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1(x_13, x_3, x_4, x_5, x_6, x_12); +return x_14; +} +} +} +lean_object* initialize_Init(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_CompilerM(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_Types(uint8_t builtin, lean_object*); +static bool _G_initialized = false; +LEAN_EXPORT lean_object* initialize_Lean_Compiler_LCNF_OtherDecl(uint8_t builtin, lean_object* w) { +lean_object * res; +if (_G_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_initialized = true; +res = initialize_Init(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_CompilerM(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_Types(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__1 = _init_l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__1); +l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__2 = _init_l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__2); +l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__3 = _init_l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_OtherTypeExtState_base___default___closed__3); +l_Lean_Compiler_LCNF_OtherTypeExtState_base___default = _init_l_Lean_Compiler_LCNF_OtherTypeExtState_base___default(); +lean_mark_persistent(l_Lean_Compiler_LCNF_OtherTypeExtState_base___default); +l_Lean_Compiler_LCNF_OtherTypeExtState_mono___default = _init_l_Lean_Compiler_LCNF_OtherTypeExtState_mono___default(); +lean_mark_persistent(l_Lean_Compiler_LCNF_OtherTypeExtState_mono___default); +l_Lean_Compiler_LCNF_instInhabitedOtherTypeExtState___closed__1 = _init_l_Lean_Compiler_LCNF_instInhabitedOtherTypeExtState___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_instInhabitedOtherTypeExtState___closed__1); +l_Lean_Compiler_LCNF_instInhabitedOtherTypeExtState = _init_l_Lean_Compiler_LCNF_instInhabitedOtherTypeExtState(); +lean_mark_persistent(l_Lean_Compiler_LCNF_instInhabitedOtherTypeExtState); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_OtherDecl___hyg_51____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_OtherDecl___hyg_51____closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_OtherDecl___hyg_51____closed__1); +if (builtin) {res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_OtherDecl___hyg_51_(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +l_Lean_Compiler_LCNF_otherTypeExt = lean_io_result_get_value(res); +lean_mark_persistent(l_Lean_Compiler_LCNF_otherTypeExt); +lean_dec_ref(res); +}l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___closed__1 = _init_l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___closed__1(); +l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___closed__2 = _init_l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__2___closed__2(); +l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5___closed__1 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5___closed__1(); +lean_mark_persistent(l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_getOtherDeclBaseType___spec__5___closed__1); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__1 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__1); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__2 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__2); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__3 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__3); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__4 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__4); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__5 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__5(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__5); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__6 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__6(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__6); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__7 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__7(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__7); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__8 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__8(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__8); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__9 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__9(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__9); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__10 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__10(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__10); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__11 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__11(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__11); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__12 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__12(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__12); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__13 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__13(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__13); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__14 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__14(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__14); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__15 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__15(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__15); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__16 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__16(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__16); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__17 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__17(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__17); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__18 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__18(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__18); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__19 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__19(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__19); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__20 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__20(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__20); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__21 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__21(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__21); +l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__22 = _init_l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__22(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclBaseType___closed__22); +l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__1 = _init_l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__1(); +lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__1); +l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__2 = _init_l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__2(); +lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__2); +l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__3 = _init_l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__3(); +lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_getOtherDeclType___spec__1___closed__3); +l_Lean_Compiler_LCNF_getOtherDeclType___closed__1 = _init_l_Lean_Compiler_LCNF_getOtherDeclType___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclType___closed__1); +l_Lean_Compiler_LCNF_getOtherDeclType___closed__2 = _init_l_Lean_Compiler_LCNF_getOtherDeclType___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclType___closed__2); +l_Lean_Compiler_LCNF_getOtherDeclType___closed__3 = _init_l_Lean_Compiler_LCNF_getOtherDeclType___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclType___closed__3); +l_Lean_Compiler_LCNF_getOtherDeclType___closed__4 = _init_l_Lean_Compiler_LCNF_getOtherDeclType___closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_getOtherDeclType___closed__4); +return lean_io_result_mk_ok(lean_box(0)); +} +#ifdef __cplusplus +} +#endif diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Passes.c b/stage0/stdlib/Lean/Compiler/LCNF/Passes.c index 2b214d5cf0..e07818c0c5 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Passes.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Passes.c @@ -13,156 +13,172 @@ #ifdef __cplusplus extern "C" { #endif +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__6; lean_object* l_List_reverse___rarg(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__4(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_add(size_t, size_t); lean_object* l_Lean_registerTraceClass(lean_object*, uint8_t, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_builtinPassManager; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__19; lean_object* l_Lean_stringToMessageData(lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___closed__2; lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__3; static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__2(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__15; uint8_t lean_usize_dec_eq(size_t, size_t); lean_object* lean_array_uget(lean_object*, size_t); static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__17; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__2; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__8; +static lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds___closed__1; static lean_object* l_Lean_Compiler_LCNF_addPass___closed__11; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__18; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getPassManager___rarg(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__14; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__5; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___closed__1; +static lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds___closed__2; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__1; static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__2; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__7; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__2; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__6; +static lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_runImportedDecls___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__7; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__1; lean_object* l_Lean_Name_mkStr2(lean_object*, lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); lean_object* l_Lean_getConstInfo___at___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_isValidMacroInline___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Decl_internalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__13; static lean_object* l_Lean_Compiler_LCNF_addPass___closed__6; +static lean_object* l_Lean_Compiler_LCNF_saveBase___closed__2; uint8_t lean_usize_dec_lt(size_t, size_t); static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__6; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__1; static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__14; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__13; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_PassInstaller_runFromDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___closed__1; extern lean_object* l_Lean_Compiler_LCNF_instInhabitedPassManager; +static lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3; extern lean_object* l_Lean_Compiler_LCNF_findJoinPoints; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__2; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__13; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__4___boxed(lean_object*); +lean_object* l_Lean_mkHashMapImp___rarg(lean_object*); uint8_t l___private_Lean_Attributes_0__Lean_beqAttributeKind____x40_Lean_Attributes___hyg_182_(uint8_t, uint8_t); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__15; static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__3; lean_object* lean_st_ref_take(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_getPassManager___rarg___closed__2; static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__5; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__11; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___closed__2; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__2___boxed(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__18; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__7; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__17; extern lean_object* l_Lean_Compiler_LCNF_reduceJpArity; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__2(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__6; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_runImportedDecls___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_num___override(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__17; lean_object* l_Lean_throwError___at_Lean_registerTagAttribute___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__6; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__4; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__4(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__4; extern lean_object* l_Lean_Compiler_LCNF_specialize; LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_init___elambda__1___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_runImportedDecls___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__8; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__2; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___closed__2; static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__16; static lean_object* l_Lean_Compiler_LCNF_addPass___closed__9; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737____closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_init; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__1; +lean_object* l_Lean_Compiler_LCNF_Pass_mkPerDeclaration(lean_object*, lean_object*, uint8_t, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_848____closed__1; static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__7; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__9; static lean_object* l_Lean_Compiler_LCNF_addPass___closed__4; static lean_object* l_Lean_Compiler_LCNF_addPass___closed__3; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__19; lean_object* l_Lean_Compiler_LCNF_Decl_saveBase(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Compiler_LCNF_pullFunDecls; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___closed__1; lean_object* l_Lean_registerBuiltinAttribute(lean_object*, lean_object*); lean_object* l_Lean_throwError___at_Lean_AttributeImpl_erase___default___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__4___boxed(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__3(lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__3; static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__10; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_runImportedDecls(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__15; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__18; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveBase___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__20; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_runImportedDecls___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_throwError___at_Lean_addDecl___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__10; size_t lean_usize_of_nat(lean_object*); lean_object* l_Lean_ConstantInfo_type(lean_object*); static lean_object* l_Lean_Compiler_LCNF_init___closed__3; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__5; lean_object* l_Lean_PersistentEnvExtension_addEntry___rarg(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_addPass(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_addPass___closed__5; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__3; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__11; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_passManagerExt; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getPassManager___rarg___boxed(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___closed__1; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__9; lean_object* l_List_redLength___rarg(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_runImportedDecls___spec__2(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Compiler_LCNF_pullInstances; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_init___elambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_simp(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__12; uint8_t lean_nat_dec_le(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_getPassManager___rarg___closed__1; static lean_object* l_Lean_Compiler_LCNF_addPass___closed__10; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__4; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_init___elambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_CompilerM_run___rarg(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__12; static lean_object* l_Lean_Compiler_LCNF_addPass___closed__12; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getPassManager___boxed(lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_init___elambda__1___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_ImportM_runCoreM___rarg(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_saveBase___closed__1; static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__11; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__5; lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_addPass___closed__8; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737_(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588_(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_848_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347_(lean_object*); lean_object* l_List_toArrayAux___rarg(lean_object*, lean_object*); -extern lean_object* l_Lean_Compiler_LCNF_saveBase; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__2___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveBase; +static lean_object* l_Lean_Compiler_LCNF_saveBase___closed__3; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveBase___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Compiler_LCNF_cse; static lean_object* l_Lean_Compiler_LCNF_addPass___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getPassManager(lean_object*); lean_object* l_Lean_PersistentEnvExtension_getState___rarg(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_addPass___closed__2; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__4; lean_object* l_Lean_Attribute_Builtin_ensureNoArgs(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__14; +static lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds___closed__5; +static lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__3(lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__16; lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__16; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__12; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_init___closed__4; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737____closed__2; static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__8; static lean_object* l_Lean_Compiler_LCNF_init___closed__1; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__3; static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__4; static lean_object* l_Lean_Compiler_LCNF_addPass___closed__7; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__20; +static lean_object* l_Lean_Compiler_LCNF_saveBase___closed__4; static lean_object* l_Lean_Compiler_LCNF_builtinPassManager___closed__9; -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__10; +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__7; static lean_object* l_Lean_Compiler_LCNF_init___closed__2; uint8_t lean_string_dec_eq(lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__5; LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_init___elambda__1___spec__1(lean_object* x_1, size_t x_2, size_t 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: { @@ -336,6 +352,599 @@ lean_dec(x_2); return x_7; } } +static lean_object* _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("_uniq", 5); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__1; +x_3 = l_Lean_Name_str___override(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__2; +x_2 = lean_unsigned_to_nat(1u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(0u); +x_2 = l_Lean_mkHashMapImp___rarg(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4; +x_2 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_2, 0, x_1); +lean_ctor_set(x_2, 1, x_1); +lean_ctor_set(x_2, 2, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__5; +x_2 = lean_unsigned_to_nat(1u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +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; uint8_t x_12; +x_5 = lean_st_ref_get(x_3, x_4); +x_6 = lean_ctor_get(x_5, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_5, 1); +lean_inc(x_7); +lean_dec(x_5); +x_8 = lean_ctor_get(x_6, 2); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_st_ref_take(x_3, x_7); +x_10 = lean_ctor_get(x_9, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = !lean_is_exclusive(x_10); +if (x_12 == 0) +{ +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; uint8_t x_20; lean_object* x_21; +x_13 = lean_ctor_get(x_10, 2); +lean_dec(x_13); +x_14 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3; +lean_ctor_set(x_10, 2, x_14); +x_15 = lean_st_ref_set(x_3, x_10, x_11); +x_16 = lean_ctor_get(x_15, 1); +lean_inc(x_16); +lean_dec(x_15); +x_17 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4; +x_18 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Decl_internalize), 7, 2); +lean_closure_set(x_18, 0, x_1); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6; +x_20 = 0; +lean_inc(x_3); +x_21 = l_Lean_Compiler_LCNF_CompilerM_run___rarg(x_18, x_19, x_20, x_2, x_3, x_16); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_21, 1); +lean_inc(x_23); +lean_dec(x_21); +x_24 = lean_st_ref_take(x_3, x_23); +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +x_26 = lean_ctor_get(x_24, 1); +lean_inc(x_26); +lean_dec(x_24); +x_27 = !lean_is_exclusive(x_25); +if (x_27 == 0) +{ +lean_object* x_28; lean_object* x_29; uint8_t x_30; +x_28 = lean_ctor_get(x_25, 2); +lean_dec(x_28); +lean_ctor_set(x_25, 2, x_8); +x_29 = lean_st_ref_set(x_3, x_25, x_26); +lean_dec(x_3); +x_30 = !lean_is_exclusive(x_29); +if (x_30 == 0) +{ +lean_object* x_31; +x_31 = lean_ctor_get(x_29, 0); +lean_dec(x_31); +lean_ctor_set(x_29, 0, x_22); +return x_29; +} +else +{ +lean_object* x_32; lean_object* x_33; +x_32 = lean_ctor_get(x_29, 1); +lean_inc(x_32); +lean_dec(x_29); +x_33 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_33, 0, x_22); +lean_ctor_set(x_33, 1, x_32); +return x_33; +} +} +else +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_34 = lean_ctor_get(x_25, 0); +x_35 = lean_ctor_get(x_25, 1); +x_36 = lean_ctor_get(x_25, 3); +x_37 = lean_ctor_get(x_25, 4); +x_38 = lean_ctor_get(x_25, 5); +x_39 = lean_ctor_get(x_25, 6); +lean_inc(x_39); +lean_inc(x_38); +lean_inc(x_37); +lean_inc(x_36); +lean_inc(x_35); +lean_inc(x_34); +lean_dec(x_25); +x_40 = lean_alloc_ctor(0, 7, 0); +lean_ctor_set(x_40, 0, x_34); +lean_ctor_set(x_40, 1, x_35); +lean_ctor_set(x_40, 2, x_8); +lean_ctor_set(x_40, 3, x_36); +lean_ctor_set(x_40, 4, x_37); +lean_ctor_set(x_40, 5, x_38); +lean_ctor_set(x_40, 6, x_39); +x_41 = lean_st_ref_set(x_3, x_40, x_26); +lean_dec(x_3); +x_42 = lean_ctor_get(x_41, 1); +lean_inc(x_42); +if (lean_is_exclusive(x_41)) { + lean_ctor_release(x_41, 0); + lean_ctor_release(x_41, 1); + x_43 = x_41; +} else { + lean_dec_ref(x_41); + x_43 = lean_box(0); +} +if (lean_is_scalar(x_43)) { + x_44 = lean_alloc_ctor(0, 2, 0); +} else { + x_44 = x_43; +} +lean_ctor_set(x_44, 0, x_22); +lean_ctor_set(x_44, 1, x_42); +return x_44; +} +} +else +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; uint8_t x_50; +x_45 = lean_ctor_get(x_21, 0); +lean_inc(x_45); +x_46 = lean_ctor_get(x_21, 1); +lean_inc(x_46); +lean_dec(x_21); +x_47 = lean_st_ref_take(x_3, x_46); +x_48 = lean_ctor_get(x_47, 0); +lean_inc(x_48); +x_49 = lean_ctor_get(x_47, 1); +lean_inc(x_49); +lean_dec(x_47); +x_50 = !lean_is_exclusive(x_48); +if (x_50 == 0) +{ +lean_object* x_51; lean_object* x_52; uint8_t x_53; +x_51 = lean_ctor_get(x_48, 2); +lean_dec(x_51); +lean_ctor_set(x_48, 2, x_8); +x_52 = lean_st_ref_set(x_3, x_48, x_49); +lean_dec(x_3); +x_53 = !lean_is_exclusive(x_52); +if (x_53 == 0) +{ +lean_object* x_54; +x_54 = lean_ctor_get(x_52, 0); +lean_dec(x_54); +lean_ctor_set_tag(x_52, 1); +lean_ctor_set(x_52, 0, x_45); +return x_52; +} +else +{ +lean_object* x_55; lean_object* x_56; +x_55 = lean_ctor_get(x_52, 1); +lean_inc(x_55); +lean_dec(x_52); +x_56 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_56, 0, x_45); +lean_ctor_set(x_56, 1, x_55); +return x_56; +} +} +else +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +x_57 = lean_ctor_get(x_48, 0); +x_58 = lean_ctor_get(x_48, 1); +x_59 = lean_ctor_get(x_48, 3); +x_60 = lean_ctor_get(x_48, 4); +x_61 = lean_ctor_get(x_48, 5); +x_62 = lean_ctor_get(x_48, 6); +lean_inc(x_62); +lean_inc(x_61); +lean_inc(x_60); +lean_inc(x_59); +lean_inc(x_58); +lean_inc(x_57); +lean_dec(x_48); +x_63 = lean_alloc_ctor(0, 7, 0); +lean_ctor_set(x_63, 0, x_57); +lean_ctor_set(x_63, 1, x_58); +lean_ctor_set(x_63, 2, x_8); +lean_ctor_set(x_63, 3, x_59); +lean_ctor_set(x_63, 4, x_60); +lean_ctor_set(x_63, 5, x_61); +lean_ctor_set(x_63, 6, x_62); +x_64 = lean_st_ref_set(x_3, x_63, x_49); +lean_dec(x_3); +x_65 = lean_ctor_get(x_64, 1); +lean_inc(x_65); +if (lean_is_exclusive(x_64)) { + lean_ctor_release(x_64, 0); + lean_ctor_release(x_64, 1); + x_66 = x_64; +} else { + lean_dec_ref(x_64); + x_66 = lean_box(0); +} +if (lean_is_scalar(x_66)) { + x_67 = lean_alloc_ctor(1, 2, 0); +} else { + x_67 = x_66; + lean_ctor_set_tag(x_67, 1); +} +lean_ctor_set(x_67, 0, x_45); +lean_ctor_set(x_67, 1, x_65); +return x_67; +} +} +} +else +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; uint8_t x_81; lean_object* x_82; +x_68 = lean_ctor_get(x_10, 0); +x_69 = lean_ctor_get(x_10, 1); +x_70 = lean_ctor_get(x_10, 3); +x_71 = lean_ctor_get(x_10, 4); +x_72 = lean_ctor_get(x_10, 5); +x_73 = lean_ctor_get(x_10, 6); +lean_inc(x_73); +lean_inc(x_72); +lean_inc(x_71); +lean_inc(x_70); +lean_inc(x_69); +lean_inc(x_68); +lean_dec(x_10); +x_74 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3; +x_75 = lean_alloc_ctor(0, 7, 0); +lean_ctor_set(x_75, 0, x_68); +lean_ctor_set(x_75, 1, x_69); +lean_ctor_set(x_75, 2, x_74); +lean_ctor_set(x_75, 3, x_70); +lean_ctor_set(x_75, 4, x_71); +lean_ctor_set(x_75, 5, x_72); +lean_ctor_set(x_75, 6, x_73); +x_76 = lean_st_ref_set(x_3, x_75, x_11); +x_77 = lean_ctor_get(x_76, 1); +lean_inc(x_77); +lean_dec(x_76); +x_78 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4; +x_79 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Decl_internalize), 7, 2); +lean_closure_set(x_79, 0, x_1); +lean_closure_set(x_79, 1, x_78); +x_80 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6; +x_81 = 0; +lean_inc(x_3); +x_82 = l_Lean_Compiler_LCNF_CompilerM_run___rarg(x_79, x_80, x_81, x_2, x_3, x_77); +if (lean_obj_tag(x_82) == 0) +{ +lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; +x_83 = lean_ctor_get(x_82, 0); +lean_inc(x_83); +x_84 = lean_ctor_get(x_82, 1); +lean_inc(x_84); +lean_dec(x_82); +x_85 = lean_st_ref_take(x_3, x_84); +x_86 = lean_ctor_get(x_85, 0); +lean_inc(x_86); +x_87 = lean_ctor_get(x_85, 1); +lean_inc(x_87); +lean_dec(x_85); +x_88 = lean_ctor_get(x_86, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_86, 1); +lean_inc(x_89); +x_90 = lean_ctor_get(x_86, 3); +lean_inc(x_90); +x_91 = lean_ctor_get(x_86, 4); +lean_inc(x_91); +x_92 = lean_ctor_get(x_86, 5); +lean_inc(x_92); +x_93 = lean_ctor_get(x_86, 6); +lean_inc(x_93); +if (lean_is_exclusive(x_86)) { + lean_ctor_release(x_86, 0); + lean_ctor_release(x_86, 1); + lean_ctor_release(x_86, 2); + lean_ctor_release(x_86, 3); + lean_ctor_release(x_86, 4); + lean_ctor_release(x_86, 5); + lean_ctor_release(x_86, 6); + x_94 = x_86; +} else { + lean_dec_ref(x_86); + x_94 = lean_box(0); +} +if (lean_is_scalar(x_94)) { + x_95 = lean_alloc_ctor(0, 7, 0); +} else { + x_95 = x_94; +} +lean_ctor_set(x_95, 0, x_88); +lean_ctor_set(x_95, 1, x_89); +lean_ctor_set(x_95, 2, x_8); +lean_ctor_set(x_95, 3, x_90); +lean_ctor_set(x_95, 4, x_91); +lean_ctor_set(x_95, 5, x_92); +lean_ctor_set(x_95, 6, x_93); +x_96 = lean_st_ref_set(x_3, x_95, x_87); +lean_dec(x_3); +x_97 = lean_ctor_get(x_96, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_96)) { + lean_ctor_release(x_96, 0); + lean_ctor_release(x_96, 1); + x_98 = x_96; +} else { + lean_dec_ref(x_96); + x_98 = lean_box(0); +} +if (lean_is_scalar(x_98)) { + x_99 = lean_alloc_ctor(0, 2, 0); +} else { + x_99 = x_98; +} +lean_ctor_set(x_99, 0, x_83); +lean_ctor_set(x_99, 1, x_97); +return x_99; +} +else +{ +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; +x_100 = lean_ctor_get(x_82, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_82, 1); +lean_inc(x_101); +lean_dec(x_82); +x_102 = lean_st_ref_take(x_3, x_101); +x_103 = lean_ctor_get(x_102, 0); +lean_inc(x_103); +x_104 = lean_ctor_get(x_102, 1); +lean_inc(x_104); +lean_dec(x_102); +x_105 = lean_ctor_get(x_103, 0); +lean_inc(x_105); +x_106 = lean_ctor_get(x_103, 1); +lean_inc(x_106); +x_107 = lean_ctor_get(x_103, 3); +lean_inc(x_107); +x_108 = lean_ctor_get(x_103, 4); +lean_inc(x_108); +x_109 = lean_ctor_get(x_103, 5); +lean_inc(x_109); +x_110 = lean_ctor_get(x_103, 6); +lean_inc(x_110); +if (lean_is_exclusive(x_103)) { + lean_ctor_release(x_103, 0); + lean_ctor_release(x_103, 1); + lean_ctor_release(x_103, 2); + lean_ctor_release(x_103, 3); + lean_ctor_release(x_103, 4); + lean_ctor_release(x_103, 5); + lean_ctor_release(x_103, 6); + x_111 = x_103; +} else { + lean_dec_ref(x_103); + x_111 = lean_box(0); +} +if (lean_is_scalar(x_111)) { + x_112 = lean_alloc_ctor(0, 7, 0); +} else { + x_112 = x_111; +} +lean_ctor_set(x_112, 0, x_105); +lean_ctor_set(x_112, 1, x_106); +lean_ctor_set(x_112, 2, x_8); +lean_ctor_set(x_112, 3, x_107); +lean_ctor_set(x_112, 4, x_108); +lean_ctor_set(x_112, 5, x_109); +lean_ctor_set(x_112, 6, x_110); +x_113 = lean_st_ref_set(x_3, x_112, x_104); +lean_dec(x_3); +x_114 = lean_ctor_get(x_113, 1); +lean_inc(x_114); +if (lean_is_exclusive(x_113)) { + lean_ctor_release(x_113, 0); + lean_ctor_release(x_113, 1); + x_115 = x_113; +} else { + lean_dec_ref(x_113); + x_115 = lean_box(0); +} +if (lean_is_scalar(x_115)) { + x_116 = lean_alloc_ctor(1, 2, 0); +} else { + x_116 = x_115; + lean_ctor_set_tag(x_116, 1); +} +lean_ctor_set(x_116, 0, x_100); +lean_ctor_set(x_116, 1, x_114); +return x_116; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveBase___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) { +_start: +{ +lean_object* x_7; +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_1); +x_7 = l_Lean_Compiler_LCNF_normalizeFVarIds(x_1, x_4, x_5, x_6); +if (lean_obj_tag(x_7) == 0) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; +x_8 = lean_ctor_get(x_7, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_7, 1); +lean_inc(x_9); +lean_dec(x_7); +x_10 = l_Lean_Compiler_LCNF_Decl_saveBase(x_8, x_4, x_5, x_9); +lean_dec(x_5); +lean_dec(x_4); +x_11 = !lean_is_exclusive(x_10); +if (x_11 == 0) +{ +lean_object* x_12; +x_12 = lean_ctor_get(x_10, 0); +lean_dec(x_12); +lean_ctor_set(x_10, 0, x_1); +return x_10; +} +else +{ +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_10, 1); +lean_inc(x_13); +lean_dec(x_10); +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_1); +lean_ctor_set(x_14, 1, x_13); +return x_14; +} +} +else +{ +uint8_t x_15; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_1); +x_15 = !lean_is_exclusive(x_7); +if (x_15 == 0) +{ +return x_7; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_16 = lean_ctor_get(x_7, 0); +x_17 = lean_ctor_get(x_7, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_7); +x_18 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_18, 0, x_16); +lean_ctor_set(x_18, 1, x_17); +return x_18; +} +} +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_saveBase___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("saveBase", 8); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_saveBase___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Compiler_LCNF_saveBase___closed__1; +x_3 = l_Lean_Name_str___override(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_saveBase___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_saveBase___lambda__1___boxed), 6, 0); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_saveBase___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; uint8_t x_3; lean_object* x_4; lean_object* x_5; +x_1 = l_Lean_Compiler_LCNF_saveBase___closed__2; +x_2 = l_Lean_Compiler_LCNF_saveBase___closed__3; +x_3 = 0; +x_4 = lean_unsigned_to_nat(0u); +x_5 = l_Lean_Compiler_LCNF_Pass_mkPerDeclaration(x_1, x_2, x_3, x_4); +return x_5; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_saveBase() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Compiler_LCNF_saveBase___closed__4; +return x_1; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveBase___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) { +_start: +{ +lean_object* x_7; +x_7 = l_Lean_Compiler_LCNF_saveBase___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_3); +lean_dec(x_2); +return x_7; +} +} static lean_object* _init_l_Lean_Compiler_LCNF_builtinPassManager___closed__1() { _start: { @@ -751,7 +1360,7 @@ lean_dec(x_1); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; @@ -814,7 +1423,7 @@ return x_17; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__2(lean_object* x_1, lean_object* x_2) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__2(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; @@ -851,7 +1460,7 @@ return x_11; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__3(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__3(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; @@ -866,7 +1475,7 @@ x_6 = l_List_toArrayAux___rarg(x_3, x_5); return x_6; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__4(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__4(lean_object* x_1) { _start: { lean_object* x_2; @@ -874,7 +1483,7 @@ x_2 = lean_box(0); return x_2; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__1() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__1() { _start: { lean_object* x_1; @@ -882,17 +1491,17 @@ x_1 = lean_mk_string_from_bytes("cpass", 5); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__2() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__1; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__1; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__3() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; @@ -904,52 +1513,52 @@ lean_ctor_set(x_3, 1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__4() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__4() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__3; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__3; x_2 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__5() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__5() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__2___boxed), 2, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__2___boxed), 2, 0); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__6() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__6() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__3), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__3), 1, 0); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__7() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__7() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__4___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__4___boxed), 1, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347_(lean_object* x_1) { _start: { 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; x_2 = lean_box(0); -x_3 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__1___boxed), 4, 1); +x_3 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__1___boxed), 4, 1); lean_closure_set(x_3, 0, x_2); -x_4 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__2; -x_5 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__4; -x_6 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__5; -x_7 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__6; -x_8 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__7; +x_4 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__2; +x_5 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__4; +x_6 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__5; +x_7 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__6; +x_8 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__7; x_9 = lean_alloc_ctor(0, 6, 0); lean_ctor_set(x_9, 0, x_4); lean_ctor_set(x_9, 1, x_5); @@ -961,29 +1570,29 @@ x_10 = l_Lean_registerPersistentEnvExtensionUnsafe___rarg(x_9, x_1); return x_10; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__1(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__1(x_1, x_2, x_3, x_4); lean_dec(x_3); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__2___boxed(lean_object* x_1, lean_object* x_2) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__2___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__2(x_1, x_2); +x_3 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__2(x_1, x_2); lean_dec(x_1); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__4___boxed(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__4___boxed(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____lambda__4(x_1); +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____lambda__4(x_1); lean_dec(x_1); return x_2; } @@ -1618,7 +2227,7 @@ return x_120; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; @@ -1673,7 +2282,7 @@ return x_16; } } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___closed__1() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___closed__1() { _start: { lean_object* x_1; @@ -1681,16 +2290,16 @@ x_1 = lean_mk_string_from_bytes("invalid attribute 'cpass', must be global", 41) return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___closed__2() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___closed__1; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___closed__1; x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2(lean_object* x_1, lean_object* x_2, uint8_t x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2(lean_object* x_1, lean_object* x_2, uint8_t x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; @@ -1709,7 +2318,7 @@ if (x_10 == 0) { lean_object* x_11; lean_object* x_12; uint8_t x_13; lean_dec(x_1); -x_11 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___closed__2; +x_11 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___closed__2; x_12 = l_Lean_throwError___at_Lean_registerTagAttribute___spec__1(x_11, x_4, x_5, x_8); lean_dec(x_5); lean_dec(x_4); @@ -1736,7 +2345,7 @@ else { lean_object* x_17; lean_object* x_18; x_17 = lean_box(0); -x_18 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__1(x_1, x_17, x_4, x_5, x_8); +x_18 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__1(x_1, x_17, x_4, x_5, x_8); return x_18; } } @@ -1767,7 +2376,7 @@ return x_22; } } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___closed__1() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___closed__1() { _start: { lean_object* x_1; @@ -1775,25 +2384,25 @@ x_1 = lean_mk_string_from_bytes("attribute cannot be erased", 26); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___closed__2() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___closed__1; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___closed__1; x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___closed__2; +x_5 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___closed__2; x_6 = l_Lean_throwError___at_Lean_AttributeImpl_erase___default___spec__1(x_5, x_2, x_3, x_4); return x_6; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__1() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__1() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; @@ -1803,27 +2412,27 @@ x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__2() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__1; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__1; x_2 = l_Lean_Compiler_LCNF_addPass___closed__6; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__3() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__2; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__2; x_2 = l_Lean_Compiler_LCNF_addPass___closed__7; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__4() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__4() { _start: { lean_object* x_1; @@ -1831,17 +2440,17 @@ x_1 = lean_mk_string_from_bytes("initFn", 6); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__5() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__3; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__4; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__3; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__4; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__6() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__6() { _start: { lean_object* x_1; @@ -1849,47 +2458,47 @@ x_1 = lean_mk_string_from_bytes("_@", 2); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__7() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__7() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__5; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__6; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__5; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__6; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__8() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__8() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__7; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__7; x_2 = l_Lean_Compiler_LCNF_addPass___closed__5; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__9() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__9() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__8; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__8; x_2 = l_Lean_Compiler_LCNF_addPass___closed__6; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__10() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__10() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__9; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__9; x_2 = l_Lean_Compiler_LCNF_addPass___closed__7; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__11() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__11() { _start: { lean_object* x_1; @@ -1897,17 +2506,17 @@ x_1 = lean_mk_string_from_bytes("Passes", 6); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__12() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__12() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__10; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__11; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__10; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__11; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__13() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__13() { _start: { lean_object* x_1; @@ -1915,27 +2524,27 @@ x_1 = lean_mk_string_from_bytes("_hyg", 4); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__14() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__14() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__12; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__13; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__12; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__13; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__15() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__15() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__14; -x_2 = lean_unsigned_to_nat(588u); +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__14; +x_2 = lean_unsigned_to_nat(699u); x_3 = l_Lean_Name_num___override(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__16() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__16() { _start: { lean_object* x_1; @@ -1943,13 +2552,13 @@ x_1 = lean_mk_string_from_bytes("compiler passes for the code generator", 38); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__17() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__17() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__15; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__2; -x_3 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__16; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__15; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__2; +x_3 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__16; x_4 = 1; x_5 = lean_alloc_ctor(0, 3, 1); lean_ctor_set(x_5, 0, x_1); @@ -1959,29 +2568,29 @@ lean_ctor_set_uint8(x_5, sizeof(void*)*3, x_4); return x_5; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__18() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__18() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___boxed), 6, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___boxed), 6, 0); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__19() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__19() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___boxed), 4, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___boxed), 4, 0); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__20() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__20() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__17; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__18; -x_3 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__19; +x_1 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__17; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__18; +x_3 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__19; x_4 = lean_alloc_ctor(0, 3, 0); lean_ctor_set(x_4, 0, x_1); lean_ctor_set(x_4, 1, x_2); @@ -1989,68 +2598,60 @@ lean_ctor_set(x_4, 2, x_3); return x_4; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__20; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__20; x_3 = l_Lean_registerBuiltinAttribute(x_2, x_1); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { lean_object* x_6; -x_6 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__1(x_1, x_2, x_3, x_4, x_5); +x_6 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__1(x_1, x_2, x_3, x_4, x_5); lean_dec(x_2); return x_6; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____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_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____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) { _start: { uint8_t x_7; lean_object* x_8; x_7 = lean_unbox(x_3); lean_dec(x_3); -x_8 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2(x_1, x_2, x_7, x_4, x_5, x_6); +x_8 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2(x_1, x_2, x_7, x_4, x_5, x_6); return x_8; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3(x_1, x_2, x_3, x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); return x_5; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737____closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("saveBase", 8); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737____closed__2() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_848____closed__1() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Compiler_LCNF_addPass___closed__6; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737____closed__1; +x_2 = l_Lean_Compiler_LCNF_saveBase___closed__1; x_3 = l_Lean_Name_mkStr2(x_1, x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_848_(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; lean_object* x_4; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737____closed__2; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_848____closed__1; x_3 = 1; x_4 = l_Lean_registerTraceClass(x_2, x_3, x_1); return x_4; @@ -2111,6 +2712,28 @@ l_Lean_Compiler_LCNF_init___closed__4 = _init_l_Lean_Compiler_LCNF_init___closed lean_mark_persistent(l_Lean_Compiler_LCNF_init___closed__4); l_Lean_Compiler_LCNF_init = _init_l_Lean_Compiler_LCNF_init(); lean_mark_persistent(l_Lean_Compiler_LCNF_init); +l_Lean_Compiler_LCNF_normalizeFVarIds___closed__1 = _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_normalizeFVarIds___closed__1); +l_Lean_Compiler_LCNF_normalizeFVarIds___closed__2 = _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_normalizeFVarIds___closed__2); +l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3 = _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3); +l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4 = _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4); +l_Lean_Compiler_LCNF_normalizeFVarIds___closed__5 = _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__5(); +lean_mark_persistent(l_Lean_Compiler_LCNF_normalizeFVarIds___closed__5); +l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6 = _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6(); +lean_mark_persistent(l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6); +l_Lean_Compiler_LCNF_saveBase___closed__1 = _init_l_Lean_Compiler_LCNF_saveBase___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_saveBase___closed__1); +l_Lean_Compiler_LCNF_saveBase___closed__2 = _init_l_Lean_Compiler_LCNF_saveBase___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_saveBase___closed__2); +l_Lean_Compiler_LCNF_saveBase___closed__3 = _init_l_Lean_Compiler_LCNF_saveBase___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_saveBase___closed__3); +l_Lean_Compiler_LCNF_saveBase___closed__4 = _init_l_Lean_Compiler_LCNF_saveBase___closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_saveBase___closed__4); +l_Lean_Compiler_LCNF_saveBase = _init_l_Lean_Compiler_LCNF_saveBase(); +lean_mark_persistent(l_Lean_Compiler_LCNF_saveBase); l_Lean_Compiler_LCNF_builtinPassManager___closed__1 = _init_l_Lean_Compiler_LCNF_builtinPassManager___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_builtinPassManager___closed__1); l_Lean_Compiler_LCNF_builtinPassManager___closed__2 = _init_l_Lean_Compiler_LCNF_builtinPassManager___closed__2(); @@ -2149,21 +2772,21 @@ l_Lean_Compiler_LCNF_builtinPassManager___closed__18 = _init_l_Lean_Compiler_LCN lean_mark_persistent(l_Lean_Compiler_LCNF_builtinPassManager___closed__18); l_Lean_Compiler_LCNF_builtinPassManager = _init_l_Lean_Compiler_LCNF_builtinPassManager(); lean_mark_persistent(l_Lean_Compiler_LCNF_builtinPassManager); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__1); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__2 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__2); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__3 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__3(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__3); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__4 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__4(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__4); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__5 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__5(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__5); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__6 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__6(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__6); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__7 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__7(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236____closed__7); -if (builtin) {res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_236_(lean_io_mk_world()); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__1); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__2 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__2); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__3 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__3); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__4 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__4); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__5 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__5(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__5); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__6 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__6(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__6); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__7 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__7(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347____closed__7); +if (builtin) {res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_347_(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; l_Lean_Compiler_LCNF_passManagerExt = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_Compiler_LCNF_passManagerExt); @@ -2196,62 +2819,60 @@ l_Lean_Compiler_LCNF_addPass___closed__11 = _init_l_Lean_Compiler_LCNF_addPass__ lean_mark_persistent(l_Lean_Compiler_LCNF_addPass___closed__11); l_Lean_Compiler_LCNF_addPass___closed__12 = _init_l_Lean_Compiler_LCNF_addPass___closed__12(); lean_mark_persistent(l_Lean_Compiler_LCNF_addPass___closed__12); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___closed__1); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___closed__2 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__2___closed__2); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___closed__1); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___closed__2 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____lambda__3___closed__2); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__1); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__2 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__2); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__3 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__3(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__3); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__4 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__4(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__4); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__5 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__5(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__5); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__6 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__6(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__6); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__7 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__7(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__7); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__8 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__8(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__8); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__9 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__9(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__9); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__10 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__10(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__10); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__11 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__11(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__11); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__12 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__12(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__12); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__13 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__13(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__13); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__14 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__14(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__14); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__15 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__15(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__15); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__16 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__16(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__16); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__17 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__17(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__17); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__18 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__18(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__18); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__19 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__19(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__19); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__20 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__20(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588____closed__20); -res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_588_(lean_io_mk_world()); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___closed__1); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___closed__2 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__2___closed__2); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___closed__1); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___closed__2 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____lambda__3___closed__2); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__1); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__2 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__2); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__3 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__3); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__4 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__4); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__5 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__5(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__5); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__6 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__6(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__6); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__7 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__7(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__7); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__8 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__8(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__8); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__9 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__9(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__9); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__10 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__10(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__10); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__11 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__11(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__11); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__12 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__12(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__12); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__13 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__13(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__13); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__14 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__14(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__14); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__15 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__15(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__15); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__16 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__16(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__16); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__17 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__17(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__17); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__18 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__18(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__18); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__19 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__19(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__19); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__20 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__20(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699____closed__20); +res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_699_(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737____closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737____closed__1); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737____closed__2 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737____closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737____closed__2); -res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_737_(lean_io_mk_world()); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_848____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_848____closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_848____closed__1); +res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Passes___hyg_848_(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)); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/PhaseExt.c b/stage0/stdlib/Lean/Compiler/LCNF/PhaseExt.c index 094cf16692..71a25e0330 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/PhaseExt.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/PhaseExt.c @@ -26,10 +26,8 @@ uint8_t lean_usize_dec_eq(size_t, size_t); lean_object* lean_array_uget(lean_object*, size_t); static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____closed__5; uint8_t l_Lean_Name_quickLt(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getBaseDeclCore_x3f(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getBaseDecl_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds___closed__2; LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_forEachDecl___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_sub(size_t, size_t); LEAN_EXPORT lean_object* l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_PhaseExt_0__Lean_Compiler_LCNF_sortDecls___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -42,7 +40,6 @@ LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_foldlMAux___at_Lean_Compiler_L extern lean_object* l_Lean_instHashableName; uint8_t lean_name_eq(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_forM___at_Lean_Compiler_LCNF_forEachDecl___spec__3___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4; static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____closed__7; static lean_object* l_Lean_Compiler_LCNF_forEachModuleDecl___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getDeclAt_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -55,7 +52,6 @@ lean_object* l_Array_qpartition_loop___rarg(lean_object*, lean_object*, lean_obj size_t lean_usize_shift_right(size_t, size_t); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forEachDecl___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____spec__2___closed__1; -static lean_object* l_Lean_Compiler_LCNF_saveBase___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forEachDecl___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_foldlMAux_traverse___at_Lean_Compiler_LCNF_forEachDecl___spec__7(lean_object*, lean_object*, lean_object*); uint8_t lean_usize_dec_lt(size_t, size_t); @@ -69,12 +65,10 @@ LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_PhaseExt_0__Lean_Compile size_t lean_uint64_to_usize(uint64_t); static lean_object* l_Lean_Compiler_LCNF_Decl_saveBase___closed__1; LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_forEachDecl___spec__6(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3; lean_object* l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); uint64_t l_Lean_Name_hash___override(lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_forEachModuleDecl___spec__1(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); -lean_object* l_Lean_mkHashMapImp___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____spec__1(lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forEachMainModuleDecl(lean_object*, lean_object*, lean_object*, lean_object*); @@ -96,7 +90,6 @@ LEAN_EXPORT lean_object* l_Array_qsort_sort___at___private_Lean_Compiler_LCNF_Ph static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____closed__4; static lean_object* l_Lean_Compiler_LCNF_forEachModuleDecl___closed__4; size_t lean_usize_shift_left(size_t, size_t); -lean_object* l_Lean_Compiler_LCNF_Pass_mkPerDeclaration(lean_object*, lean_object*, uint8_t, lean_object*); static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____lambda__5(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getDecl_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -107,7 +100,6 @@ LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_foldlMAux___at_Lean_Compiler_L size_t lean_usize_mul(size_t, size_t); static lean_object* l_Lean_Compiler_LCNF_getBaseDeclCore_x3f___closed__2; lean_object* l_Lean_Expr_bvar___override(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveBase___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_throwError___at_Lean_addDecl___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_of_nat(lean_object*); static lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____spec__2___closed__3; @@ -115,7 +107,6 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forEachDecl(lean_object*, lean_obj lean_object* l_Lean_PersistentEnvExtension_addEntry___rarg(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getDecl_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_land(size_t, size_t); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____closed__2; @@ -136,17 +127,12 @@ static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseE LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_foldlMAux_traverse___at_Lean_Compiler_LCNF_forEachDecl___spec__7___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Environment_addExtraName(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_binSearchAux___at___private_Lean_Compiler_LCNF_PhaseExt_0__Lean_Compiler_LCNF_findAtSorted_x3f___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_CompilerM_run___rarg(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____lambda__3___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____lambda__4___closed__1; -static lean_object* l_Lean_Compiler_LCNF_saveBase___closed__1; lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); lean_object* l_Lean_Environment_getModuleIdxFor_x3f(lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkEmptyEntries(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveBase; -static lean_object* l_Lean_Compiler_LCNF_saveBase___closed__3; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveBase___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Compiler_LCNF_instInhabitedDecl; lean_object* l_Lean_Environment_allImportedModuleNames(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveBaseDeclCore(lean_object*, lean_object*); @@ -157,8 +143,6 @@ LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_PhaseExt_0__Lean_Compile static lean_object* l_Lean_Compiler_LCNF_forEachModuleDecl___closed__3; LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getBaseDeclCore_x3f___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds___closed__5; -static lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6; static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____closed__6; static lean_object* l___private_Lean_Compiler_LCNF_PhaseExt_0__Lean_Compiler_LCNF_findAtSorted_x3f___closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getBaseDecl_x3f(lean_object*, lean_object*, lean_object*, lean_object*); @@ -167,10 +151,8 @@ lean_object* lean_usize_to_nat(size_t); lean_object* l_Lean_Compiler_LCNF_getPhase(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_forEachModuleDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Decl_internalize___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_saveBase___closed__4; lean_object* l_Lean_PersistentHashMap_instInhabitedPersistentHashMap___rarg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_PhaseExt___hyg_50____lambda__4(lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); @@ -1842,599 +1824,6 @@ lean_dec(x_2); return x_7; } } -static lean_object* _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("_uniq", 5); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__1; -x_3 = l_Lean_Name_str___override(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__2; -x_2 = lean_unsigned_to_nat(1u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(0u); -x_2 = l_Lean_mkHashMapImp___rarg(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4; -x_2 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_2, 0, x_1); -lean_ctor_set(x_2, 1, x_1); -lean_ctor_set(x_2, 2, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__5; -x_2 = lean_unsigned_to_nat(1u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normalizeFVarIds(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -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; uint8_t x_12; -x_5 = lean_st_ref_get(x_3, x_4); -x_6 = lean_ctor_get(x_5, 0); -lean_inc(x_6); -x_7 = lean_ctor_get(x_5, 1); -lean_inc(x_7); -lean_dec(x_5); -x_8 = lean_ctor_get(x_6, 2); -lean_inc(x_8); -lean_dec(x_6); -x_9 = lean_st_ref_take(x_3, x_7); -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -x_11 = lean_ctor_get(x_9, 1); -lean_inc(x_11); -lean_dec(x_9); -x_12 = !lean_is_exclusive(x_10); -if (x_12 == 0) -{ -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; uint8_t x_20; lean_object* x_21; -x_13 = lean_ctor_get(x_10, 2); -lean_dec(x_13); -x_14 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3; -lean_ctor_set(x_10, 2, x_14); -x_15 = lean_st_ref_set(x_3, x_10, x_11); -x_16 = lean_ctor_get(x_15, 1); -lean_inc(x_16); -lean_dec(x_15); -x_17 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4; -x_18 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Decl_internalize___boxed), 7, 2); -lean_closure_set(x_18, 0, x_1); -lean_closure_set(x_18, 1, x_17); -x_19 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6; -x_20 = 0; -lean_inc(x_3); -x_21 = l_Lean_Compiler_LCNF_CompilerM_run___rarg(x_18, x_19, x_20, x_2, x_3, x_16); -if (lean_obj_tag(x_21) == 0) -{ -lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; -x_22 = lean_ctor_get(x_21, 0); -lean_inc(x_22); -x_23 = lean_ctor_get(x_21, 1); -lean_inc(x_23); -lean_dec(x_21); -x_24 = lean_st_ref_take(x_3, x_23); -x_25 = lean_ctor_get(x_24, 0); -lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = !lean_is_exclusive(x_25); -if (x_27 == 0) -{ -lean_object* x_28; lean_object* x_29; uint8_t x_30; -x_28 = lean_ctor_get(x_25, 2); -lean_dec(x_28); -lean_ctor_set(x_25, 2, x_8); -x_29 = lean_st_ref_set(x_3, x_25, x_26); -lean_dec(x_3); -x_30 = !lean_is_exclusive(x_29); -if (x_30 == 0) -{ -lean_object* x_31; -x_31 = lean_ctor_get(x_29, 0); -lean_dec(x_31); -lean_ctor_set(x_29, 0, x_22); -return x_29; -} -else -{ -lean_object* x_32; lean_object* x_33; -x_32 = lean_ctor_get(x_29, 1); -lean_inc(x_32); -lean_dec(x_29); -x_33 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_33, 0, x_22); -lean_ctor_set(x_33, 1, x_32); -return x_33; -} -} -else -{ -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_34 = lean_ctor_get(x_25, 0); -x_35 = lean_ctor_get(x_25, 1); -x_36 = lean_ctor_get(x_25, 3); -x_37 = lean_ctor_get(x_25, 4); -x_38 = lean_ctor_get(x_25, 5); -x_39 = lean_ctor_get(x_25, 6); -lean_inc(x_39); -lean_inc(x_38); -lean_inc(x_37); -lean_inc(x_36); -lean_inc(x_35); -lean_inc(x_34); -lean_dec(x_25); -x_40 = lean_alloc_ctor(0, 7, 0); -lean_ctor_set(x_40, 0, x_34); -lean_ctor_set(x_40, 1, x_35); -lean_ctor_set(x_40, 2, x_8); -lean_ctor_set(x_40, 3, x_36); -lean_ctor_set(x_40, 4, x_37); -lean_ctor_set(x_40, 5, x_38); -lean_ctor_set(x_40, 6, x_39); -x_41 = lean_st_ref_set(x_3, x_40, x_26); -lean_dec(x_3); -x_42 = lean_ctor_get(x_41, 1); -lean_inc(x_42); -if (lean_is_exclusive(x_41)) { - lean_ctor_release(x_41, 0); - lean_ctor_release(x_41, 1); - x_43 = x_41; -} else { - lean_dec_ref(x_41); - x_43 = lean_box(0); -} -if (lean_is_scalar(x_43)) { - x_44 = lean_alloc_ctor(0, 2, 0); -} else { - x_44 = x_43; -} -lean_ctor_set(x_44, 0, x_22); -lean_ctor_set(x_44, 1, x_42); -return x_44; -} -} -else -{ -lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; uint8_t x_50; -x_45 = lean_ctor_get(x_21, 0); -lean_inc(x_45); -x_46 = lean_ctor_get(x_21, 1); -lean_inc(x_46); -lean_dec(x_21); -x_47 = lean_st_ref_take(x_3, x_46); -x_48 = lean_ctor_get(x_47, 0); -lean_inc(x_48); -x_49 = lean_ctor_get(x_47, 1); -lean_inc(x_49); -lean_dec(x_47); -x_50 = !lean_is_exclusive(x_48); -if (x_50 == 0) -{ -lean_object* x_51; lean_object* x_52; uint8_t x_53; -x_51 = lean_ctor_get(x_48, 2); -lean_dec(x_51); -lean_ctor_set(x_48, 2, x_8); -x_52 = lean_st_ref_set(x_3, x_48, x_49); -lean_dec(x_3); -x_53 = !lean_is_exclusive(x_52); -if (x_53 == 0) -{ -lean_object* x_54; -x_54 = lean_ctor_get(x_52, 0); -lean_dec(x_54); -lean_ctor_set_tag(x_52, 1); -lean_ctor_set(x_52, 0, x_45); -return x_52; -} -else -{ -lean_object* x_55; lean_object* x_56; -x_55 = lean_ctor_get(x_52, 1); -lean_inc(x_55); -lean_dec(x_52); -x_56 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_56, 0, x_45); -lean_ctor_set(x_56, 1, x_55); -return x_56; -} -} -else -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; -x_57 = lean_ctor_get(x_48, 0); -x_58 = lean_ctor_get(x_48, 1); -x_59 = lean_ctor_get(x_48, 3); -x_60 = lean_ctor_get(x_48, 4); -x_61 = lean_ctor_get(x_48, 5); -x_62 = lean_ctor_get(x_48, 6); -lean_inc(x_62); -lean_inc(x_61); -lean_inc(x_60); -lean_inc(x_59); -lean_inc(x_58); -lean_inc(x_57); -lean_dec(x_48); -x_63 = lean_alloc_ctor(0, 7, 0); -lean_ctor_set(x_63, 0, x_57); -lean_ctor_set(x_63, 1, x_58); -lean_ctor_set(x_63, 2, x_8); -lean_ctor_set(x_63, 3, x_59); -lean_ctor_set(x_63, 4, x_60); -lean_ctor_set(x_63, 5, x_61); -lean_ctor_set(x_63, 6, x_62); -x_64 = lean_st_ref_set(x_3, x_63, x_49); -lean_dec(x_3); -x_65 = lean_ctor_get(x_64, 1); -lean_inc(x_65); -if (lean_is_exclusive(x_64)) { - lean_ctor_release(x_64, 0); - lean_ctor_release(x_64, 1); - x_66 = x_64; -} else { - lean_dec_ref(x_64); - x_66 = lean_box(0); -} -if (lean_is_scalar(x_66)) { - x_67 = lean_alloc_ctor(1, 2, 0); -} else { - x_67 = x_66; - lean_ctor_set_tag(x_67, 1); -} -lean_ctor_set(x_67, 0, x_45); -lean_ctor_set(x_67, 1, x_65); -return x_67; -} -} -} -else -{ -lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; uint8_t x_81; lean_object* x_82; -x_68 = lean_ctor_get(x_10, 0); -x_69 = lean_ctor_get(x_10, 1); -x_70 = lean_ctor_get(x_10, 3); -x_71 = lean_ctor_get(x_10, 4); -x_72 = lean_ctor_get(x_10, 5); -x_73 = lean_ctor_get(x_10, 6); -lean_inc(x_73); -lean_inc(x_72); -lean_inc(x_71); -lean_inc(x_70); -lean_inc(x_69); -lean_inc(x_68); -lean_dec(x_10); -x_74 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3; -x_75 = lean_alloc_ctor(0, 7, 0); -lean_ctor_set(x_75, 0, x_68); -lean_ctor_set(x_75, 1, x_69); -lean_ctor_set(x_75, 2, x_74); -lean_ctor_set(x_75, 3, x_70); -lean_ctor_set(x_75, 4, x_71); -lean_ctor_set(x_75, 5, x_72); -lean_ctor_set(x_75, 6, x_73); -x_76 = lean_st_ref_set(x_3, x_75, x_11); -x_77 = lean_ctor_get(x_76, 1); -lean_inc(x_77); -lean_dec(x_76); -x_78 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4; -x_79 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Decl_internalize___boxed), 7, 2); -lean_closure_set(x_79, 0, x_1); -lean_closure_set(x_79, 1, x_78); -x_80 = l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6; -x_81 = 0; -lean_inc(x_3); -x_82 = l_Lean_Compiler_LCNF_CompilerM_run___rarg(x_79, x_80, x_81, x_2, x_3, x_77); -if (lean_obj_tag(x_82) == 0) -{ -lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; -x_83 = lean_ctor_get(x_82, 0); -lean_inc(x_83); -x_84 = lean_ctor_get(x_82, 1); -lean_inc(x_84); -lean_dec(x_82); -x_85 = lean_st_ref_take(x_3, x_84); -x_86 = lean_ctor_get(x_85, 0); -lean_inc(x_86); -x_87 = lean_ctor_get(x_85, 1); -lean_inc(x_87); -lean_dec(x_85); -x_88 = lean_ctor_get(x_86, 0); -lean_inc(x_88); -x_89 = lean_ctor_get(x_86, 1); -lean_inc(x_89); -x_90 = lean_ctor_get(x_86, 3); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 4); -lean_inc(x_91); -x_92 = lean_ctor_get(x_86, 5); -lean_inc(x_92); -x_93 = lean_ctor_get(x_86, 6); -lean_inc(x_93); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - lean_ctor_release(x_86, 2); - lean_ctor_release(x_86, 3); - lean_ctor_release(x_86, 4); - lean_ctor_release(x_86, 5); - lean_ctor_release(x_86, 6); - x_94 = x_86; -} else { - lean_dec_ref(x_86); - x_94 = lean_box(0); -} -if (lean_is_scalar(x_94)) { - x_95 = lean_alloc_ctor(0, 7, 0); -} else { - x_95 = x_94; -} -lean_ctor_set(x_95, 0, x_88); -lean_ctor_set(x_95, 1, x_89); -lean_ctor_set(x_95, 2, x_8); -lean_ctor_set(x_95, 3, x_90); -lean_ctor_set(x_95, 4, x_91); -lean_ctor_set(x_95, 5, x_92); -lean_ctor_set(x_95, 6, x_93); -x_96 = lean_st_ref_set(x_3, x_95, x_87); -lean_dec(x_3); -x_97 = lean_ctor_get(x_96, 1); -lean_inc(x_97); -if (lean_is_exclusive(x_96)) { - lean_ctor_release(x_96, 0); - lean_ctor_release(x_96, 1); - x_98 = x_96; -} else { - lean_dec_ref(x_96); - x_98 = lean_box(0); -} -if (lean_is_scalar(x_98)) { - x_99 = lean_alloc_ctor(0, 2, 0); -} else { - x_99 = x_98; -} -lean_ctor_set(x_99, 0, x_83); -lean_ctor_set(x_99, 1, x_97); -return x_99; -} -else -{ -lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; -x_100 = lean_ctor_get(x_82, 0); -lean_inc(x_100); -x_101 = lean_ctor_get(x_82, 1); -lean_inc(x_101); -lean_dec(x_82); -x_102 = lean_st_ref_take(x_3, x_101); -x_103 = lean_ctor_get(x_102, 0); -lean_inc(x_103); -x_104 = lean_ctor_get(x_102, 1); -lean_inc(x_104); -lean_dec(x_102); -x_105 = lean_ctor_get(x_103, 0); -lean_inc(x_105); -x_106 = lean_ctor_get(x_103, 1); -lean_inc(x_106); -x_107 = lean_ctor_get(x_103, 3); -lean_inc(x_107); -x_108 = lean_ctor_get(x_103, 4); -lean_inc(x_108); -x_109 = lean_ctor_get(x_103, 5); -lean_inc(x_109); -x_110 = lean_ctor_get(x_103, 6); -lean_inc(x_110); -if (lean_is_exclusive(x_103)) { - lean_ctor_release(x_103, 0); - lean_ctor_release(x_103, 1); - lean_ctor_release(x_103, 2); - lean_ctor_release(x_103, 3); - lean_ctor_release(x_103, 4); - lean_ctor_release(x_103, 5); - lean_ctor_release(x_103, 6); - x_111 = x_103; -} else { - lean_dec_ref(x_103); - x_111 = lean_box(0); -} -if (lean_is_scalar(x_111)) { - x_112 = lean_alloc_ctor(0, 7, 0); -} else { - x_112 = x_111; -} -lean_ctor_set(x_112, 0, x_105); -lean_ctor_set(x_112, 1, x_106); -lean_ctor_set(x_112, 2, x_8); -lean_ctor_set(x_112, 3, x_107); -lean_ctor_set(x_112, 4, x_108); -lean_ctor_set(x_112, 5, x_109); -lean_ctor_set(x_112, 6, x_110); -x_113 = lean_st_ref_set(x_3, x_112, x_104); -lean_dec(x_3); -x_114 = lean_ctor_get(x_113, 1); -lean_inc(x_114); -if (lean_is_exclusive(x_113)) { - lean_ctor_release(x_113, 0); - lean_ctor_release(x_113, 1); - x_115 = x_113; -} else { - lean_dec_ref(x_113); - x_115 = lean_box(0); -} -if (lean_is_scalar(x_115)) { - x_116 = lean_alloc_ctor(1, 2, 0); -} else { - x_116 = x_115; - lean_ctor_set_tag(x_116, 1); -} -lean_ctor_set(x_116, 0, x_100); -lean_ctor_set(x_116, 1, x_114); -return x_116; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveBase___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) { -_start: -{ -lean_object* x_7; -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_1); -x_7 = l_Lean_Compiler_LCNF_normalizeFVarIds(x_1, x_4, x_5, x_6); -if (lean_obj_tag(x_7) == 0) -{ -lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; -x_8 = lean_ctor_get(x_7, 0); -lean_inc(x_8); -x_9 = lean_ctor_get(x_7, 1); -lean_inc(x_9); -lean_dec(x_7); -x_10 = l_Lean_Compiler_LCNF_Decl_saveBase(x_8, x_4, x_5, x_9); -lean_dec(x_5); -lean_dec(x_4); -x_11 = !lean_is_exclusive(x_10); -if (x_11 == 0) -{ -lean_object* x_12; -x_12 = lean_ctor_get(x_10, 0); -lean_dec(x_12); -lean_ctor_set(x_10, 0, x_1); -return x_10; -} -else -{ -lean_object* x_13; lean_object* x_14; -x_13 = lean_ctor_get(x_10, 1); -lean_inc(x_13); -lean_dec(x_10); -x_14 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_14, 0, x_1); -lean_ctor_set(x_14, 1, x_13); -return x_14; -} -} -else -{ -uint8_t x_15; -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_15 = !lean_is_exclusive(x_7); -if (x_15 == 0) -{ -return x_7; -} -else -{ -lean_object* x_16; lean_object* x_17; lean_object* x_18; -x_16 = lean_ctor_get(x_7, 0); -x_17 = lean_ctor_get(x_7, 1); -lean_inc(x_17); -lean_inc(x_16); -lean_dec(x_7); -x_18 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_18, 0, x_16); -lean_ctor_set(x_18, 1, x_17); -return x_18; -} -} -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_saveBase___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("saveBase", 8); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_saveBase___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Compiler_LCNF_saveBase___closed__1; -x_3 = l_Lean_Name_str___override(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_saveBase___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_saveBase___lambda__1___boxed), 6, 0); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_saveBase___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; uint8_t x_3; lean_object* x_4; lean_object* x_5; -x_1 = l_Lean_Compiler_LCNF_saveBase___closed__2; -x_2 = l_Lean_Compiler_LCNF_saveBase___closed__3; -x_3 = 0; -x_4 = lean_unsigned_to_nat(0u); -x_5 = l_Lean_Compiler_LCNF_Pass_mkPerDeclaration(x_1, x_2, x_3, x_4); -return x_5; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_saveBase() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Compiler_LCNF_saveBase___closed__4; -return x_1; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveBase___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) { -_start: -{ -lean_object* x_7; -x_7 = l_Lean_Compiler_LCNF_saveBase___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_3); -lean_dec(x_2); -return x_7; -} -} LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_forEachDecl___spec__1(lean_object* x_1, lean_object* x_2, size_t x_3, size_t x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { _start: { @@ -3375,28 +2764,6 @@ l_Lean_Compiler_LCNF_getBaseDeclCore_x3f___closed__2 = _init_l_Lean_Compiler_LCN lean_mark_persistent(l_Lean_Compiler_LCNF_getBaseDeclCore_x3f___closed__2); l_Lean_Compiler_LCNF_Decl_saveBase___closed__1 = _init_l_Lean_Compiler_LCNF_Decl_saveBase___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_Decl_saveBase___closed__1); -l_Lean_Compiler_LCNF_normalizeFVarIds___closed__1 = _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_normalizeFVarIds___closed__1); -l_Lean_Compiler_LCNF_normalizeFVarIds___closed__2 = _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_normalizeFVarIds___closed__2); -l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3 = _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3(); -lean_mark_persistent(l_Lean_Compiler_LCNF_normalizeFVarIds___closed__3); -l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4 = _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4(); -lean_mark_persistent(l_Lean_Compiler_LCNF_normalizeFVarIds___closed__4); -l_Lean_Compiler_LCNF_normalizeFVarIds___closed__5 = _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__5(); -lean_mark_persistent(l_Lean_Compiler_LCNF_normalizeFVarIds___closed__5); -l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6 = _init_l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6(); -lean_mark_persistent(l_Lean_Compiler_LCNF_normalizeFVarIds___closed__6); -l_Lean_Compiler_LCNF_saveBase___closed__1 = _init_l_Lean_Compiler_LCNF_saveBase___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_saveBase___closed__1); -l_Lean_Compiler_LCNF_saveBase___closed__2 = _init_l_Lean_Compiler_LCNF_saveBase___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_saveBase___closed__2); -l_Lean_Compiler_LCNF_saveBase___closed__3 = _init_l_Lean_Compiler_LCNF_saveBase___closed__3(); -lean_mark_persistent(l_Lean_Compiler_LCNF_saveBase___closed__3); -l_Lean_Compiler_LCNF_saveBase___closed__4 = _init_l_Lean_Compiler_LCNF_saveBase___closed__4(); -lean_mark_persistent(l_Lean_Compiler_LCNF_saveBase___closed__4); -l_Lean_Compiler_LCNF_saveBase = _init_l_Lean_Compiler_LCNF_saveBase(); -lean_mark_persistent(l_Lean_Compiler_LCNF_saveBase); l_Lean_Compiler_LCNF_forEachModuleDecl___closed__1 = _init_l_Lean_Compiler_LCNF_forEachModuleDecl___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_forEachModuleDecl___closed__1); l_Lean_Compiler_LCNF_forEachModuleDecl___closed__2 = _init_l_Lean_Compiler_LCNF_forEachModuleDecl___closed__2(); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/PrettyPrinter.c b/stage0/stdlib/Lean/Compiler/LCNF/PrettyPrinter.c index 781b458826..3469580c9b 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/PrettyPrinter.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/PrettyPrinter.c @@ -1,6 +1,6 @@ // Lean compiler output // Module: Lean.Compiler.LCNF.PrettyPrinter -// Imports: Init Lean.PrettyPrinter Lean.Compiler.LCNF.CompilerM +// Imports: Init Lean.PrettyPrinter Lean.Compiler.LCNF.CompilerM Lean.Compiler.LCNF.Internalize #include #if defined(__clang__) #pragma clang diagnostic ignored "-Wunused-parameter" @@ -3866,9 +3866,16 @@ return x_2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ppDecl_x27_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) { _start: { -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_object* x_7; lean_object* x_8; x_7 = l_Lean_Compiler_LCNF_ppDecl_x27_go___closed__1; +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); x_8 = l_Lean_Compiler_LCNF_Decl_internalize(x_1, x_7, x_2, x_3, x_4, x_5, x_6); +if (lean_obj_tag(x_8) == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; x_9 = lean_ctor_get(x_8, 0); lean_inc(x_9); x_10 = lean_ctor_get(x_8, 1); @@ -3877,6 +3884,33 @@ lean_dec(x_8); x_11 = l_Lean_Compiler_LCNF_ppDecl(x_9, x_2, x_3, x_4, x_5, x_10); return x_11; } +else +{ +uint8_t x_12; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_12 = !lean_is_exclusive(x_8); +if (x_12 == 0) +{ +return x_8; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_13 = lean_ctor_get(x_8, 0); +x_14 = lean_ctor_get(x_8, 1); +lean_inc(x_14); +lean_inc(x_13); +lean_dec(x_8); +x_15 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_15, 0, x_13); +lean_ctor_set(x_15, 1, x_14); +return x_15; +} +} +} } static lean_object* _init_l_Lean_Compiler_LCNF_ppDecl_x27___closed__1() { _start: @@ -3986,6 +4020,7 @@ return x_25; lean_object* initialize_Init(uint8_t builtin, lean_object*); lean_object* initialize_Lean_PrettyPrinter(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_CompilerM(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_Internalize(uint8_t builtin, lean_object*); static bool _G_initialized = false; LEAN_EXPORT lean_object* initialize_Lean_Compiler_LCNF_PrettyPrinter(uint8_t builtin, lean_object* w) { lean_object * res; @@ -4000,6 +4035,9 @@ lean_dec_ref(res); res = initialize_Lean_Compiler_LCNF_CompilerM(builtin, lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_Internalize(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); l_Subarray_forInUnsafe_loop___at___private_Lean_Compiler_LCNF_PrettyPrinter_0__Lean_Compiler_LCNF_PP_join___spec__1___rarg___closed__1 = _init_l_Subarray_forInUnsafe_loop___at___private_Lean_Compiler_LCNF_PrettyPrinter_0__Lean_Compiler_LCNF_PP_join___spec__1___rarg___closed__1(); lean_mark_persistent(l_Subarray_forInUnsafe_loop___at___private_Lean_Compiler_LCNF_PrettyPrinter_0__Lean_Compiler_LCNF_PP_join___spec__1___rarg___closed__1); l_Subarray_forInUnsafe_loop___at___private_Lean_Compiler_LCNF_PrettyPrinter_0__Lean_Compiler_LCNF_PP_join___spec__1___rarg___closed__2 = _init_l_Subarray_forInUnsafe_loop___at___private_Lean_Compiler_LCNF_PrettyPrinter_0__Lean_Compiler_LCNF_PP_join___spec__1___rarg___closed__2(); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/PullLetDecls.c b/stage0/stdlib/Lean/Compiler/LCNF/PullLetDecls.c index cfc615f25f..78eb6bdb99 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/PullLetDecls.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/PullLetDecls.c @@ -1748,7 +1748,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_Compiler_LCNF_PullLetDecls_pullDecls___lambda__1___closed__1; x_2 = l_Lean_Compiler_LCNF_PullLetDecls_pullDecls___lambda__1___closed__2; -x_3 = lean_unsigned_to_nat(203u); +x_3 = lean_unsigned_to_nat(207u); x_4 = lean_unsigned_to_nat(9u); x_5 = l_Lean_Compiler_LCNF_PullLetDecls_pullDecls___lambda__1___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -2468,7 +2468,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_Compiler_LCNF_PullLetDecls_pullDecls___lambda__1___closed__1; x_2 = l_Lean_Compiler_LCNF_PullLetDecls_pullDecls___lambda__2___closed__1; -x_3 = lean_unsigned_to_nat(172u); +x_3 = lean_unsigned_to_nat(176u); x_4 = lean_unsigned_to_nat(9u); x_5 = l_Lean_Compiler_LCNF_PullLetDecls_pullDecls___lambda__1___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Simp.c b/stage0/stdlib/Lean/Compiler/LCNF/Simp.c index b5433a59ea..02fdb85ef0 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Simp.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Simp.c @@ -15,10 +15,10 @@ extern "C" { #endif static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__11; lean_object* l_Lean_Compiler_LCNF_ppDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_736____closed__1; lean_object* l_Lean_registerTraceClass(lean_object*, uint8_t, lean_object*); lean_object* l_Lean_stringToMessageData(lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_744____closed__1; static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___closed__6; static lean_object* l_Lean_Compiler_LCNF_Decl_simp_go___closed__7; static lean_object* l_Lean_Compiler_LCNF_simp___closed__1; @@ -27,16 +27,17 @@ static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__6; lean_object* l_Lean_Name_mkStr2(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Decl_simp_go___closed__5; lean_object* l_Lean_Name_mkStr3(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkHashSetImp___rarg(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___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*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___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*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Decl_simp_go___closed__8; static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__2; lean_object* l_Lean_mkHashMapImp___rarg(lean_object*); static lean_object* l_Lean_Compiler_LCNF_Decl_simp_go___closed__6; -lean_object* l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__19; static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__7; -lean_object* l_Lean_Compiler_LCNF_Simp_simp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_simp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Nat_repr(lean_object*); lean_object* l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_format(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_mk_ref(lean_object*, lean_object*); @@ -55,7 +56,7 @@ static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__5; static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__3; static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___closed__4; lean_object* l_Lean_Compiler_LCNF_Decl_isTemplateLike(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__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_Compiler_LCNF_Decl_simp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Decl_simp_go___closed__2; static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__12; @@ -64,307 +65,307 @@ static lean_object* l_Lean_Compiler_LCNF_Decl_simp_go___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Decl_simp_go___closed__4; static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__17; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___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*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___boxed(lean_object**); static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__1; static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__4; lean_object* l_Lean_Compiler_LCNF_Code_size_go(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, uint8_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_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__10; lean_object* l_Lean_Compiler_LCNF_Decl_reduceJpArity(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_Code_applyRenaming(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__20; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_736_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_744_(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_simp___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__13; lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__15; lean_object* l_Lean_Name_mkStr4(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(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_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__9; static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___closed__2; static lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___closed__1; lean_object* lean_nat_to_int(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, uint8_t x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, uint8_t x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { _start: { -lean_object* x_16; +lean_object* x_17; +lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); lean_inc(x_12); -lean_inc(x_11); lean_inc(x_1); -x_16 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f(x_1, x_11, x_12, x_13, x_14, x_15); -if (lean_obj_tag(x_16) == 0) -{ -lean_object* x_17; -x_17 = lean_ctor_get(x_16, 0); -lean_inc(x_17); +x_17 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f(x_1, x_12, x_13, x_14, x_15, x_16); if (lean_obj_tag(x_17) == 0) { -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; +lean_object* x_18; +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +if (lean_obj_tag(x_18) == 0) +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; +lean_dec(x_14); lean_dec(x_13); lean_dec(x_12); -lean_dec(x_11); -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_st_ref_get(x_14, x_18); -lean_dec(x_14); -x_20 = lean_ctor_get(x_19, 1); -lean_inc(x_20); -lean_dec(x_19); -x_21 = lean_st_ref_get(x_10, x_20); -x_22 = lean_ctor_get(x_21, 0); -lean_inc(x_22); -x_23 = lean_ctor_get_uint8(x_22, sizeof(void*)*7); -lean_dec(x_22); -if (x_23 == 0) -{ -uint8_t x_24; -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_24 = !lean_is_exclusive(x_21); +x_19 = lean_ctor_get(x_17, 1); +lean_inc(x_19); +lean_dec(x_17); +x_20 = lean_st_ref_get(x_15, x_19); +lean_dec(x_15); +x_21 = lean_ctor_get(x_20, 1); +lean_inc(x_21); +lean_dec(x_20); +x_22 = lean_st_ref_get(x_10, x_21); +x_23 = lean_ctor_get(x_22, 0); +lean_inc(x_23); +x_24 = lean_ctor_get_uint8(x_23, sizeof(void*)*7); +lean_dec(x_23); if (x_24 == 0) { -lean_object* x_25; lean_object* x_26; -x_25 = lean_ctor_get(x_21, 0); -lean_dec(x_25); -x_26 = lean_box(0); -lean_ctor_set(x_21, 0, x_26); -return x_21; -} -else -{ -lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_27 = lean_ctor_get(x_21, 1); -lean_inc(x_27); -lean_dec(x_21); -x_28 = lean_box(0); -x_29 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_29, 0, x_28); -lean_ctor_set(x_29, 1, x_27); -return x_29; -} -} -else -{ -uint8_t x_30; -x_30 = !lean_is_exclusive(x_21); -if (x_30 == 0) -{ -lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_31 = lean_ctor_get(x_21, 0); -lean_dec(x_31); -x_32 = lean_alloc_ctor(0, 5, 2); -lean_ctor_set(x_32, 0, x_2); -lean_ctor_set(x_32, 1, x_3); -lean_ctor_set(x_32, 2, x_4); -lean_ctor_set(x_32, 3, x_5); -lean_ctor_set(x_32, 4, x_1); -lean_ctor_set_uint8(x_32, sizeof(void*)*5, x_6); -lean_ctor_set_uint8(x_32, sizeof(void*)*5 + 1, x_7); -x_33 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_21, 0, x_33); -return x_21; -} -else -{ -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_34 = lean_ctor_get(x_21, 1); -lean_inc(x_34); -lean_dec(x_21); -x_35 = lean_alloc_ctor(0, 5, 2); -lean_ctor_set(x_35, 0, x_2); -lean_ctor_set(x_35, 1, x_3); -lean_ctor_set(x_35, 2, x_4); -lean_ctor_set(x_35, 3, x_5); -lean_ctor_set(x_35, 4, x_1); -lean_ctor_set_uint8(x_35, sizeof(void*)*5, x_6); -lean_ctor_set_uint8(x_35, sizeof(void*)*5 + 1, x_7); -x_36 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_36, 0, x_35); -x_37 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_37, 0, x_36); -lean_ctor_set(x_37, 1, x_34); -return x_37; -} -} -} -else -{ -lean_object* x_38; uint8_t x_39; -lean_dec(x_1); -x_38 = lean_ctor_get(x_16, 1); -lean_inc(x_38); -lean_dec(x_16); -x_39 = !lean_is_exclusive(x_17); -if (x_39 == 0) -{ -lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_40 = lean_ctor_get(x_17, 0); -x_41 = lean_alloc_ctor(0, 5, 2); -lean_ctor_set(x_41, 0, x_2); -lean_ctor_set(x_41, 1, x_3); -lean_ctor_set(x_41, 2, x_4); -lean_ctor_set(x_41, 3, x_5); -lean_ctor_set(x_41, 4, x_40); -lean_ctor_set_uint8(x_41, sizeof(void*)*5, x_6); -lean_ctor_set_uint8(x_41, sizeof(void*)*5 + 1, x_7); -x_42 = l_Lean_Compiler_LCNF_Decl_reduceJpArity(x_41, x_11, x_12, x_13, x_14, x_38); -if (lean_obj_tag(x_42) == 0) -{ -uint8_t x_43; -x_43 = !lean_is_exclusive(x_42); -if (x_43 == 0) -{ -lean_object* x_44; -x_44 = lean_ctor_get(x_42, 0); -lean_ctor_set(x_17, 0, x_44); -lean_ctor_set(x_42, 0, x_17); -return x_42; -} -else -{ -lean_object* x_45; lean_object* x_46; lean_object* x_47; -x_45 = lean_ctor_get(x_42, 0); -x_46 = lean_ctor_get(x_42, 1); -lean_inc(x_46); -lean_inc(x_45); -lean_dec(x_42); -lean_ctor_set(x_17, 0, x_45); -x_47 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_47, 0, x_17); -lean_ctor_set(x_47, 1, x_46); -return x_47; -} -} -else -{ -uint8_t x_48; -lean_free_object(x_17); -x_48 = !lean_is_exclusive(x_42); -if (x_48 == 0) -{ -return x_42; -} -else -{ -lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_49 = lean_ctor_get(x_42, 0); -x_50 = lean_ctor_get(x_42, 1); -lean_inc(x_50); -lean_inc(x_49); -lean_dec(x_42); -x_51 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_51, 0, x_49); -lean_ctor_set(x_51, 1, x_50); -return x_51; -} -} -} -else -{ -lean_object* x_52; lean_object* x_53; lean_object* x_54; -x_52 = lean_ctor_get(x_17, 0); -lean_inc(x_52); -lean_dec(x_17); -x_53 = lean_alloc_ctor(0, 5, 2); -lean_ctor_set(x_53, 0, x_2); -lean_ctor_set(x_53, 1, x_3); -lean_ctor_set(x_53, 2, x_4); -lean_ctor_set(x_53, 3, x_5); -lean_ctor_set(x_53, 4, x_52); -lean_ctor_set_uint8(x_53, sizeof(void*)*5, x_6); -lean_ctor_set_uint8(x_53, sizeof(void*)*5 + 1, x_7); -x_54 = l_Lean_Compiler_LCNF_Decl_reduceJpArity(x_53, x_11, x_12, x_13, x_14, x_38); -if (lean_obj_tag(x_54) == 0) -{ -lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_55 = lean_ctor_get(x_54, 0); -lean_inc(x_55); -x_56 = lean_ctor_get(x_54, 1); -lean_inc(x_56); -if (lean_is_exclusive(x_54)) { - lean_ctor_release(x_54, 0); - lean_ctor_release(x_54, 1); - x_57 = x_54; -} else { - lean_dec_ref(x_54); - x_57 = lean_box(0); -} -x_58 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_58, 0, x_55); -if (lean_is_scalar(x_57)) { - x_59 = lean_alloc_ctor(0, 2, 0); -} else { - x_59 = x_57; -} -lean_ctor_set(x_59, 0, x_58); -lean_ctor_set(x_59, 1, x_56); -return x_59; -} -else -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; -x_60 = lean_ctor_get(x_54, 0); -lean_inc(x_60); -x_61 = lean_ctor_get(x_54, 1); -lean_inc(x_61); -if (lean_is_exclusive(x_54)) { - lean_ctor_release(x_54, 0); - lean_ctor_release(x_54, 1); - x_62 = x_54; -} else { - lean_dec_ref(x_54); - x_62 = lean_box(0); -} -if (lean_is_scalar(x_62)) { - x_63 = lean_alloc_ctor(1, 2, 0); -} else { - x_63 = x_62; -} -lean_ctor_set(x_63, 0, x_60); -lean_ctor_set(x_63, 1, x_61); -return x_63; -} -} -} -} -else -{ -uint8_t x_64; -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); +uint8_t x_25; lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_64 = !lean_is_exclusive(x_16); -if (x_64 == 0) +x_25 = !lean_is_exclusive(x_22); +if (x_25 == 0) { -return x_16; +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_22, 0); +lean_dec(x_26); +x_27 = lean_box(0); +lean_ctor_set(x_22, 0, x_27); +return x_22; } else { -lean_object* x_65; lean_object* x_66; lean_object* x_67; -x_65 = lean_ctor_get(x_16, 0); -x_66 = lean_ctor_get(x_16, 1); +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_22, 1); +lean_inc(x_28); +lean_dec(x_22); +x_29 = lean_box(0); +x_30 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_30, 0, x_29); +lean_ctor_set(x_30, 1, x_28); +return x_30; +} +} +else +{ +uint8_t x_31; +x_31 = !lean_is_exclusive(x_22); +if (x_31 == 0) +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_32 = lean_ctor_get(x_22, 0); +lean_dec(x_32); +x_33 = lean_alloc_ctor(0, 5, 2); +lean_ctor_set(x_33, 0, x_2); +lean_ctor_set(x_33, 1, x_3); +lean_ctor_set(x_33, 2, x_4); +lean_ctor_set(x_33, 3, x_5); +lean_ctor_set(x_33, 4, x_1); +lean_ctor_set_uint8(x_33, sizeof(void*)*5, x_6); +lean_ctor_set_uint8(x_33, sizeof(void*)*5 + 1, x_7); +x_34 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_34, 0, x_33); +lean_ctor_set(x_22, 0, x_34); +return x_22; +} +else +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_35 = lean_ctor_get(x_22, 1); +lean_inc(x_35); +lean_dec(x_22); +x_36 = lean_alloc_ctor(0, 5, 2); +lean_ctor_set(x_36, 0, x_2); +lean_ctor_set(x_36, 1, x_3); +lean_ctor_set(x_36, 2, x_4); +lean_ctor_set(x_36, 3, x_5); +lean_ctor_set(x_36, 4, x_1); +lean_ctor_set_uint8(x_36, sizeof(void*)*5, x_6); +lean_ctor_set_uint8(x_36, sizeof(void*)*5 + 1, x_7); +x_37 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_37, 0, x_36); +x_38 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_38, 1, x_35); +return x_38; +} +} +} +else +{ +lean_object* x_39; uint8_t x_40; +lean_dec(x_1); +x_39 = lean_ctor_get(x_17, 1); +lean_inc(x_39); +lean_dec(x_17); +x_40 = !lean_is_exclusive(x_18); +if (x_40 == 0) +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_41 = lean_ctor_get(x_18, 0); +x_42 = lean_alloc_ctor(0, 5, 2); +lean_ctor_set(x_42, 0, x_2); +lean_ctor_set(x_42, 1, x_3); +lean_ctor_set(x_42, 2, x_4); +lean_ctor_set(x_42, 3, x_5); +lean_ctor_set(x_42, 4, x_41); +lean_ctor_set_uint8(x_42, sizeof(void*)*5, x_6); +lean_ctor_set_uint8(x_42, sizeof(void*)*5 + 1, x_7); +x_43 = l_Lean_Compiler_LCNF_Decl_reduceJpArity(x_42, x_12, x_13, x_14, x_15, x_39); +if (lean_obj_tag(x_43) == 0) +{ +uint8_t x_44; +x_44 = !lean_is_exclusive(x_43); +if (x_44 == 0) +{ +lean_object* x_45; +x_45 = lean_ctor_get(x_43, 0); +lean_ctor_set(x_18, 0, x_45); +lean_ctor_set(x_43, 0, x_18); +return x_43; +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_43, 0); +x_47 = lean_ctor_get(x_43, 1); +lean_inc(x_47); +lean_inc(x_46); +lean_dec(x_43); +lean_ctor_set(x_18, 0, x_46); +x_48 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_48, 0, x_18); +lean_ctor_set(x_48, 1, x_47); +return x_48; +} +} +else +{ +uint8_t x_49; +lean_free_object(x_18); +x_49 = !lean_is_exclusive(x_43); +if (x_49 == 0) +{ +return x_43; +} +else +{ +lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_50 = lean_ctor_get(x_43, 0); +x_51 = lean_ctor_get(x_43, 1); +lean_inc(x_51); +lean_inc(x_50); +lean_dec(x_43); +x_52 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_52, 0, x_50); +lean_ctor_set(x_52, 1, x_51); +return x_52; +} +} +} +else +{ +lean_object* x_53; lean_object* x_54; lean_object* x_55; +x_53 = lean_ctor_get(x_18, 0); +lean_inc(x_53); +lean_dec(x_18); +x_54 = lean_alloc_ctor(0, 5, 2); +lean_ctor_set(x_54, 0, x_2); +lean_ctor_set(x_54, 1, x_3); +lean_ctor_set(x_54, 2, x_4); +lean_ctor_set(x_54, 3, x_5); +lean_ctor_set(x_54, 4, x_53); +lean_ctor_set_uint8(x_54, sizeof(void*)*5, x_6); +lean_ctor_set_uint8(x_54, sizeof(void*)*5 + 1, x_7); +x_55 = l_Lean_Compiler_LCNF_Decl_reduceJpArity(x_54, x_12, x_13, x_14, x_15, x_39); +if (lean_obj_tag(x_55) == 0) +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; +x_56 = lean_ctor_get(x_55, 0); +lean_inc(x_56); +x_57 = lean_ctor_get(x_55, 1); +lean_inc(x_57); +if (lean_is_exclusive(x_55)) { + lean_ctor_release(x_55, 0); + lean_ctor_release(x_55, 1); + x_58 = x_55; +} else { + lean_dec_ref(x_55); + x_58 = lean_box(0); +} +x_59 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_59, 0, x_56); +if (lean_is_scalar(x_58)) { + x_60 = lean_alloc_ctor(0, 2, 0); +} else { + x_60 = x_58; +} +lean_ctor_set(x_60, 0, x_59); +lean_ctor_set(x_60, 1, x_57); +return x_60; +} +else +{ +lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; +x_61 = lean_ctor_get(x_55, 0); +lean_inc(x_61); +x_62 = lean_ctor_get(x_55, 1); +lean_inc(x_62); +if (lean_is_exclusive(x_55)) { + lean_ctor_release(x_55, 0); + lean_ctor_release(x_55, 1); + x_63 = x_55; +} else { + lean_dec_ref(x_55); + x_63 = lean_box(0); +} +if (lean_is_scalar(x_63)) { + x_64 = lean_alloc_ctor(1, 2, 0); +} else { + x_64 = x_63; +} +lean_ctor_set(x_64, 0, x_61); +lean_ctor_set(x_64, 1, x_62); +return x_64; +} +} +} +} +else +{ +uint8_t x_65; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_65 = !lean_is_exclusive(x_17); +if (x_65 == 0) +{ +return x_17; +} +else +{ +lean_object* x_66; lean_object* x_67; lean_object* x_68; +x_66 = lean_ctor_get(x_17, 0); +x_67 = lean_ctor_get(x_17, 1); +lean_inc(x_67); lean_inc(x_66); -lean_inc(x_65); -lean_dec(x_16); -x_67 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_67, 0, x_65); -lean_ctor_set(x_67, 1, x_66); -return x_67; +lean_dec(x_17); +x_68 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_68, 0, x_66); +lean_ctor_set(x_68, 1, x_67); +return x_68; } } } @@ -545,58 +546,59 @@ x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, uint8_t x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, uint8_t x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16, lean_object* x_17) { _start: { -lean_object* x_17; lean_object* x_109; lean_object* x_110; lean_object* x_111; uint8_t x_112; +lean_object* x_18; lean_object* x_110; lean_object* x_111; lean_object* x_112; uint8_t x_113; lean_dec(x_9); -x_109 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__4; -x_110 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(x_109, x_10, x_11, x_12, x_13, x_14, x_15, x_16); -x_111 = lean_ctor_get(x_110, 0); -lean_inc(x_111); -x_112 = lean_unbox(x_111); -lean_dec(x_111); -if (x_112 == 0) +x_110 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__4; +x_111 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(x_110, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17); +x_112 = lean_ctor_get(x_111, 0); +lean_inc(x_112); +x_113 = lean_unbox(x_112); +lean_dec(x_112); +if (x_113 == 0) { -lean_object* x_113; +lean_object* x_114; lean_dec(x_8); -x_113 = lean_ctor_get(x_110, 1); -lean_inc(x_113); -lean_dec(x_110); -x_17 = x_113; -goto block_108; +x_114 = lean_ctor_get(x_111, 1); +lean_inc(x_114); +lean_dec(x_111); +x_18 = x_114; +goto block_109; } else { -lean_object* x_114; lean_object* x_115; -x_114 = lean_ctor_get(x_110, 1); -lean_inc(x_114); -lean_dec(x_110); +lean_object* x_115; lean_object* x_116; +x_115 = lean_ctor_get(x_111, 1); +lean_inc(x_115); +lean_dec(x_111); +lean_inc(x_16); lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); -lean_inc(x_12); -x_115 = l_Lean_Compiler_LCNF_ppDecl(x_8, x_12, x_13, x_14, x_15, x_114); -if (lean_obj_tag(x_115) == 0) +x_116 = l_Lean_Compiler_LCNF_ppDecl(x_8, x_13, x_14, x_15, x_16, x_115); +if (lean_obj_tag(x_116) == 0) { -lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; -x_116 = lean_ctor_get(x_115, 0); -lean_inc(x_116); -x_117 = lean_ctor_get(x_115, 1); +lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; +x_117 = lean_ctor_get(x_116, 0); lean_inc(x_117); -lean_dec(x_115); -x_118 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_118, 0, x_116); -x_119 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(x_109, x_118, x_10, x_11, x_12, x_13, x_14, x_15, x_117); -x_120 = lean_ctor_get(x_119, 1); -lean_inc(x_120); -lean_dec(x_119); -x_17 = x_120; -goto block_108; +x_118 = lean_ctor_get(x_116, 1); +lean_inc(x_118); +lean_dec(x_116); +x_119 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_119, 0, x_117); +x_120 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(x_110, x_119, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_118); +x_121 = lean_ctor_get(x_120, 1); +lean_inc(x_121); +lean_dec(x_120); +x_18 = x_121; +goto block_109; } else { -uint8_t x_121; +uint8_t x_122; +lean_dec(x_16); lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -608,135 +610,137 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_121 = !lean_is_exclusive(x_115); -if (x_121 == 0) +x_122 = !lean_is_exclusive(x_116); +if (x_122 == 0) { -return x_115; +return x_116; } else { -lean_object* x_122; lean_object* x_123; lean_object* x_124; -x_122 = lean_ctor_get(x_115, 0); -x_123 = lean_ctor_get(x_115, 1); +lean_object* x_123; lean_object* x_124; lean_object* x_125; +x_123 = lean_ctor_get(x_116, 0); +x_124 = lean_ctor_get(x_116, 1); +lean_inc(x_124); lean_inc(x_123); -lean_inc(x_122); -lean_dec(x_115); -x_124 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_124, 0, x_122); -lean_ctor_set(x_124, 1, x_123); -return x_124; +lean_dec(x_116); +x_125 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_125, 0, x_123); +lean_ctor_set(x_125, 1, x_124); +return x_125; } } } -block_108: +block_109: { -lean_object* x_18; +lean_object* x_19; +lean_inc(x_16); lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); -x_18 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_10, x_11, x_12, x_13, x_14, x_15, x_17); -if (lean_obj_tag(x_18) == 0) +x_19 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_10, x_11, x_12, x_13, x_14, x_15, x_16, 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; lean_object* x_27; -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; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -lean_dec(x_18); -x_21 = lean_st_ref_get(x_15, x_20); -x_22 = lean_ctor_get(x_21, 1); -lean_inc(x_22); -lean_dec(x_21); -x_23 = lean_st_ref_get(x_11, x_22); -x_24 = lean_ctor_get(x_23, 0); -lean_inc(x_24); -x_25 = lean_ctor_get(x_23, 1); +x_21 = lean_ctor_get(x_19, 1); +lean_inc(x_21); +lean_dec(x_19); +x_22 = lean_st_ref_get(x_16, x_21); +x_23 = lean_ctor_get(x_22, 1); +lean_inc(x_23); +lean_dec(x_22); +x_24 = lean_st_ref_get(x_11, x_23); +x_25 = lean_ctor_get(x_24, 0); lean_inc(x_25); -lean_dec(x_23); -x_26 = lean_ctor_get(x_24, 2); +x_26 = lean_ctor_get(x_24, 1); lean_inc(x_26); +lean_dec(x_24); +x_27 = lean_ctor_get(x_25, 2); +lean_inc(x_27); +lean_inc(x_16); lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); -lean_inc(x_12); -x_27 = l_Lean_Compiler_LCNF_Code_applyRenaming(x_19, x_26, x_12, x_13, x_14, x_15, x_25); -if (lean_obj_tag(x_27) == 0) +x_28 = l_Lean_Compiler_LCNF_Code_applyRenaming(x_20, x_27, x_13, x_14, x_15, x_16, x_26); +if (lean_obj_tag(x_28) == 0) { -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_77; lean_object* x_78; lean_object* x_79; uint8_t x_80; -x_28 = lean_ctor_get(x_27, 0); -lean_inc(x_28); -x_29 = lean_ctor_get(x_27, 1); +lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_78; lean_object* x_79; lean_object* x_80; uint8_t x_81; +x_29 = lean_ctor_get(x_28, 0); lean_inc(x_29); -lean_dec(x_27); -x_77 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__6; -x_78 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(x_77, x_10, x_11, x_12, x_13, x_14, x_15, x_29); -x_79 = lean_ctor_get(x_78, 0); -lean_inc(x_79); -x_80 = lean_unbox(x_79); -lean_dec(x_79); -if (x_80 == 0) +x_30 = lean_ctor_get(x_28, 1); +lean_inc(x_30); +lean_dec(x_28); +x_78 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__6; +x_79 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(x_78, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_30); +x_80 = lean_ctor_get(x_79, 0); +lean_inc(x_80); +x_81 = lean_unbox(x_80); +lean_dec(x_80); +if (x_81 == 0) { -lean_object* x_81; -x_81 = lean_ctor_get(x_78, 1); -lean_inc(x_81); -lean_dec(x_78); -x_30 = x_81; -goto block_76; +lean_object* x_82; +x_82 = lean_ctor_get(x_79, 1); +lean_inc(x_82); +lean_dec(x_79); +x_31 = x_82; +goto block_77; } else { -lean_object* x_82; lean_object* x_83; -x_82 = lean_ctor_get(x_78, 1); -lean_inc(x_82); -lean_dec(x_78); +lean_object* x_83; lean_object* x_84; +x_83 = lean_ctor_get(x_79, 1); +lean_inc(x_83); +lean_dec(x_79); +lean_inc(x_16); lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_28); -x_83 = l_Lean_Compiler_LCNF_ppCode(x_28, x_12, x_13, x_14, x_15, x_82); -if (lean_obj_tag(x_83) == 0) +lean_inc(x_29); +x_84 = l_Lean_Compiler_LCNF_ppCode(x_29, x_13, x_14, x_15, x_16, x_83); +if (lean_obj_tag(x_84) == 0) { -lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; -x_84 = lean_ctor_get(x_83, 0); -lean_inc(x_84); -x_85 = lean_ctor_get(x_83, 1); +lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; +x_85 = lean_ctor_get(x_84, 0); lean_inc(x_85); -lean_dec(x_83); +x_86 = lean_ctor_get(x_84, 1); +lean_inc(x_86); +lean_dec(x_84); lean_inc(x_2); -x_86 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_86, 0, x_2); -x_87 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__10; -x_88 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_88, 0, x_87); -lean_ctor_set(x_88, 1, x_86); -x_89 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__20; -x_90 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_90, 0, x_88); -lean_ctor_set(x_90, 1, x_89); -x_91 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_91, 0, x_84); -x_92 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_92, 0, x_90); -lean_ctor_set(x_92, 1, x_91); +x_87 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_87, 0, x_2); +x_88 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__10; +x_89 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_89, 0, x_88); +lean_ctor_set(x_89, 1, x_87); +x_90 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__20; +x_91 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_91, 0, x_89); +lean_ctor_set(x_91, 1, x_90); +x_92 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_92, 0, x_85); x_93 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_93, 0, x_92); -lean_ctor_set(x_93, 1, x_87); -x_94 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(x_77, x_93, x_10, x_11, x_12, x_13, x_14, x_15, x_85); -x_95 = lean_ctor_get(x_94, 1); -lean_inc(x_95); -lean_dec(x_94); -x_30 = x_95; -goto block_76; +lean_ctor_set(x_93, 0, x_91); +lean_ctor_set(x_93, 1, x_92); +x_94 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_94, 0, x_93); +lean_ctor_set(x_94, 1, x_88); +x_95 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(x_78, x_94, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_86); +x_96 = lean_ctor_get(x_95, 1); +lean_inc(x_96); +lean_dec(x_95); +x_31 = x_96; +goto block_77; } else { -uint8_t x_96; -lean_dec(x_28); -lean_dec(x_24); +uint8_t x_97; +lean_dec(x_29); +lean_dec(x_25); +lean_dec(x_16); lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -747,140 +751,143 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_96 = !lean_is_exclusive(x_83); -if (x_96 == 0) +x_97 = !lean_is_exclusive(x_84); +if (x_97 == 0) { -return x_83; +return x_84; } else { -lean_object* x_97; lean_object* x_98; lean_object* x_99; -x_97 = lean_ctor_get(x_83, 0); -x_98 = lean_ctor_get(x_83, 1); +lean_object* x_98; lean_object* x_99; lean_object* x_100; +x_98 = lean_ctor_get(x_84, 0); +x_99 = lean_ctor_get(x_84, 1); +lean_inc(x_99); lean_inc(x_98); -lean_inc(x_97); -lean_dec(x_83); -x_99 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_99, 0, x_97); -lean_ctor_set(x_99, 1, x_98); -return x_99; +lean_dec(x_84); +x_100 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_100, 0, x_98); +lean_ctor_set(x_100, 1, x_99); +return x_100; } } } -block_76: +block_77: { -lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; -x_31 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__8; -x_32 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(x_31, x_10, x_11, x_12, x_13, x_14, x_15, x_30); -x_33 = lean_ctor_get(x_32, 0); -lean_inc(x_33); -x_34 = lean_unbox(x_33); +lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; +x_32 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__8; +x_33 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(x_32, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_31); +x_34 = lean_ctor_get(x_33, 0); +lean_inc(x_34); +x_35 = lean_unbox(x_34); +lean_dec(x_34); +if (x_35 == 0) +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; +lean_dec(x_25); +x_36 = lean_ctor_get(x_33, 1); +lean_inc(x_36); lean_dec(x_33); -if (x_34 == 0) -{ -lean_object* x_35; lean_object* x_36; lean_object* x_37; -lean_dec(x_24); -x_35 = lean_ctor_get(x_32, 1); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_box(0); -x_37 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__1(x_28, x_2, x_3, x_4, x_5, x_6, x_7, x_36, x_10, x_11, x_12, x_13, x_14, x_15, x_35); +x_37 = lean_box(0); +x_38 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__1(x_29, x_2, x_3, x_4, x_5, x_6, x_7, x_37, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_36); +lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); -return x_37; +return x_38; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; -x_38 = lean_ctor_get(x_32, 1); -lean_inc(x_38); -lean_dec(x_32); +lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_39 = lean_ctor_get(x_33, 1); +lean_inc(x_39); +lean_dec(x_33); lean_inc(x_2); -x_39 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_39, 0, x_2); -x_40 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__10; -x_41 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_41, 0, x_40); -lean_ctor_set(x_41, 1, x_39); -x_42 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__12; -x_43 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_43, 0, x_41); -lean_ctor_set(x_43, 1, x_42); -x_44 = lean_unsigned_to_nat(0u); -lean_inc(x_28); -x_45 = l_Lean_Compiler_LCNF_Code_size_go(x_28, x_44); -x_46 = l_Nat_repr(x_45); -x_47 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_47, 0, x_46); -x_48 = lean_alloc_ctor(0, 1, 0); +x_40 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_40, 0, x_2); +x_41 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__10; +x_42 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_42, 0, x_41); +lean_ctor_set(x_42, 1, x_40); +x_43 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__12; +x_44 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_44, 0, x_42); +lean_ctor_set(x_44, 1, x_43); +x_45 = lean_unsigned_to_nat(0u); +lean_inc(x_29); +x_46 = l_Lean_Compiler_LCNF_Code_size_go(x_29, x_45); +x_47 = l_Nat_repr(x_46); +x_48 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_48, 0, x_47); -x_49 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_49, 0, x_43); -lean_ctor_set(x_49, 1, x_48); -x_50 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__14; -x_51 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_51, 0, x_49); -lean_ctor_set(x_51, 1, x_50); -x_52 = lean_ctor_get(x_24, 4); -lean_inc(x_52); -x_53 = l_Nat_repr(x_52); -x_54 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_54, 0, x_53); -x_55 = lean_alloc_ctor(0, 1, 0); +x_49 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_49, 0, x_48); +x_50 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_50, 0, x_44); +lean_ctor_set(x_50, 1, x_49); +x_51 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__14; +x_52 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_52, 0, x_50); +lean_ctor_set(x_52, 1, x_51); +x_53 = lean_ctor_get(x_25, 4); +lean_inc(x_53); +x_54 = l_Nat_repr(x_53); +x_55 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_55, 0, x_54); -x_56 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_56, 0, x_51); -lean_ctor_set(x_56, 1, x_55); -x_57 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__16; -x_58 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_58, 0, x_56); -lean_ctor_set(x_58, 1, x_57); -x_59 = lean_ctor_get(x_24, 5); -lean_inc(x_59); -x_60 = l_Nat_repr(x_59); -x_61 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_61, 0, x_60); -x_62 = lean_alloc_ctor(0, 1, 0); +x_56 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_56, 0, x_55); +x_57 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_57, 0, x_52); +lean_ctor_set(x_57, 1, x_56); +x_58 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__16; +x_59 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_59, 0, x_57); +lean_ctor_set(x_59, 1, x_58); +x_60 = lean_ctor_get(x_25, 5); +lean_inc(x_60); +x_61 = l_Nat_repr(x_60); +x_62 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_62, 0, x_61); -x_63 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_63, 0, x_58); -lean_ctor_set(x_63, 1, x_62); -x_64 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__18; -x_65 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_65, 0, x_63); -lean_ctor_set(x_65, 1, x_64); -x_66 = lean_ctor_get(x_24, 6); -lean_inc(x_66); -lean_dec(x_24); -x_67 = l_Nat_repr(x_66); -x_68 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_68, 0, x_67); -x_69 = lean_alloc_ctor(0, 1, 0); +x_63 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_63, 0, x_62); +x_64 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_64, 0, x_59); +lean_ctor_set(x_64, 1, x_63); +x_65 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__18; +x_66 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_66, 0, x_64); +lean_ctor_set(x_66, 1, x_65); +x_67 = lean_ctor_get(x_25, 6); +lean_inc(x_67); +lean_dec(x_25); +x_68 = l_Nat_repr(x_67); +x_69 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_69, 0, x_68); -x_70 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_70, 0, x_65); -lean_ctor_set(x_70, 1, x_69); +x_70 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_70, 0, x_69); x_71 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_71, 0, x_70); -lean_ctor_set(x_71, 1, x_40); -x_72 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(x_31, x_71, x_10, x_11, x_12, x_13, x_14, x_15, x_38); -x_73 = lean_ctor_get(x_72, 0); -lean_inc(x_73); -x_74 = lean_ctor_get(x_72, 1); +lean_ctor_set(x_71, 0, x_66); +lean_ctor_set(x_71, 1, x_70); +x_72 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_72, 0, x_71); +lean_ctor_set(x_72, 1, x_41); +x_73 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(x_32, x_72, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_39); +x_74 = lean_ctor_get(x_73, 0); lean_inc(x_74); -lean_dec(x_72); -x_75 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__1(x_28, x_2, x_3, x_4, x_5, x_6, x_7, x_73, x_10, x_11, x_12, x_13, x_14, x_15, x_74); -lean_dec(x_11); -lean_dec(x_10); +x_75 = lean_ctor_get(x_73, 1); +lean_inc(x_75); lean_dec(x_73); -return x_75; +x_76 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__1(x_29, x_2, x_3, x_4, x_5, x_6, x_7, x_74, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_75); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_74); +return x_76; } } } else { -uint8_t x_100; -lean_dec(x_24); +uint8_t x_101; +lean_dec(x_25); +lean_dec(x_16); lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -891,29 +898,30 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_100 = !lean_is_exclusive(x_27); -if (x_100 == 0) +x_101 = !lean_is_exclusive(x_28); +if (x_101 == 0) { -return x_27; +return x_28; } else { -lean_object* x_101; lean_object* x_102; lean_object* x_103; -x_101 = lean_ctor_get(x_27, 0); -x_102 = lean_ctor_get(x_27, 1); +lean_object* x_102; lean_object* x_103; lean_object* x_104; +x_102 = lean_ctor_get(x_28, 0); +x_103 = lean_ctor_get(x_28, 1); +lean_inc(x_103); lean_inc(x_102); -lean_inc(x_101); -lean_dec(x_27); -x_103 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_103, 0, x_101); -lean_ctor_set(x_103, 1, x_102); -return x_103; +lean_dec(x_28); +x_104 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_104, 0, x_102); +lean_ctor_set(x_104, 1, x_103); +return x_104; } } } else { -uint8_t x_104; +uint8_t x_105; +lean_dec(x_16); lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); @@ -924,23 +932,23 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_104 = !lean_is_exclusive(x_18); -if (x_104 == 0) +x_105 = !lean_is_exclusive(x_19); +if (x_105 == 0) { -return x_18; +return x_19; } else { -lean_object* x_105; lean_object* x_106; lean_object* x_107; -x_105 = lean_ctor_get(x_18, 0); -x_106 = lean_ctor_get(x_18, 1); +lean_object* x_106; lean_object* x_107; lean_object* x_108; +x_106 = lean_ctor_get(x_19, 0); +x_107 = lean_ctor_get(x_19, 1); +lean_inc(x_107); lean_inc(x_106); -lean_inc(x_105); -lean_dec(x_18); -x_107 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_107, 0, x_105); -lean_ctor_set(x_107, 1, x_106); -return x_107; +lean_dec(x_19); +x_108 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_108, 0, x_106); +lean_ctor_set(x_108, 1, x_107); +return x_108; } } } @@ -1000,199 +1008,186 @@ x_2 = lean_nat_to_int(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f(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_Compiler_LCNF_Decl_simp_x3f(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_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; uint8_t x_15; uint8_t x_16; lean_object* x_17; -x_9 = lean_ctor_get(x_1, 0); -lean_inc(x_9); -x_10 = lean_ctor_get(x_1, 1); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; uint8_t x_16; uint8_t x_17; lean_object* x_18; +x_10 = lean_ctor_get(x_1, 0); lean_inc(x_10); -x_11 = lean_ctor_get(x_1, 2); +x_11 = lean_ctor_get(x_1, 1); lean_inc(x_11); -x_12 = lean_ctor_get(x_1, 3); +x_12 = lean_ctor_get(x_1, 2); lean_inc(x_12); -x_13 = lean_ctor_get(x_1, 4); +x_13 = lean_ctor_get(x_1, 3); lean_inc(x_13); -x_14 = lean_ctor_get_uint8(x_1, sizeof(void*)*5); -x_15 = lean_ctor_get_uint8(x_1, sizeof(void*)*5 + 1); -x_16 = 0; +x_14 = lean_ctor_get(x_1, 4); +lean_inc(x_14); +x_15 = lean_ctor_get_uint8(x_1, sizeof(void*)*5); +x_16 = lean_ctor_get_uint8(x_1, sizeof(void*)*5 + 1); +x_17 = 0; +lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_13); -x_17 = l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(x_13, x_16, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_17) == 0) +lean_inc(x_14); +x_18 = l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(x_14, x_17, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_18) == 0) { -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; -x_18 = lean_ctor_get(x_17, 1); -lean_inc(x_18); -lean_dec(x_17); -x_19 = l_Lean_Compiler_LCNF_Decl_simp_x3f___closed__3; -x_20 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(x_19, x_2, x_3, x_4, x_5, x_6, x_7, x_18); -x_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -x_22 = lean_unbox(x_21); +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; +x_19 = lean_ctor_get(x_18, 1); +lean_inc(x_19); +lean_dec(x_18); +x_20 = l_Lean_Compiler_LCNF_Decl_simp_x3f___closed__3; +x_21 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(x_20, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_19); +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +x_23 = lean_unbox(x_22); +lean_dec(x_22); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_21, 1); +lean_inc(x_24); lean_dec(x_21); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_23 = lean_ctor_get(x_20, 1); -lean_inc(x_23); -lean_dec(x_20); -x_24 = lean_box(0); -x_25 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2(x_13, x_9, x_10, x_11, x_12, x_14, x_15, x_1, x_24, x_2, x_3, x_4, x_5, x_6, x_7, x_23); -return x_25; +x_25 = lean_box(0); +x_26 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2(x_14, x_10, x_11, x_12, x_13, x_15, x_16, x_1, x_25, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_24); +return x_26; } else { -lean_object* x_26; 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; -x_26 = lean_ctor_get(x_20, 1); -lean_inc(x_26); -lean_dec(x_20); -x_27 = lean_st_ref_get(x_7, x_26); -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = lean_st_ref_get(x_3, x_28); -x_30 = lean_ctor_get(x_29, 0); -lean_inc(x_30); -x_31 = lean_ctor_get(x_29, 1); +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; +x_27 = lean_ctor_get(x_21, 1); +lean_inc(x_27); +lean_dec(x_21); +x_28 = lean_st_ref_get(x_8, x_27); +x_29 = lean_ctor_get(x_28, 1); +lean_inc(x_29); +lean_dec(x_28); +x_30 = lean_st_ref_get(x_3, x_29); +x_31 = lean_ctor_get(x_30, 0); lean_inc(x_31); -lean_dec(x_29); -x_32 = lean_ctor_get(x_30, 3); +x_32 = lean_ctor_get(x_30, 1); lean_inc(x_32); lean_dec(x_30); -x_33 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_format(x_32, x_4, x_5, x_6, x_7, x_31); -if (lean_obj_tag(x_33) == 0) +x_33 = lean_ctor_get(x_31, 3); +lean_inc(x_33); +lean_dec(x_31); +x_34 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_format(x_33, x_5, x_6, x_7, x_8, x_32); +if (lean_obj_tag(x_34) == 0) { -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; -x_34 = lean_ctor_get(x_33, 0); -lean_inc(x_34); -x_35 = lean_ctor_get(x_33, 1); +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; +x_35 = lean_ctor_get(x_34, 0); lean_inc(x_35); -lean_dec(x_33); -lean_inc(x_9); -x_36 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_36, 0, x_9); -x_37 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__10; -x_38 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_36); -x_39 = l_Lean_Compiler_LCNF_Decl_simp_x3f___closed__5; -x_40 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -x_41 = l_Lean_Compiler_LCNF_Decl_simp_x3f___closed__6; -x_42 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_42, 0, x_41); -lean_ctor_set(x_42, 1, x_34); -x_43 = lean_alloc_ctor(0, 1, 0); +x_36 = lean_ctor_get(x_34, 1); +lean_inc(x_36); +lean_dec(x_34); +lean_inc(x_10); +x_37 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_37, 0, x_10); +x_38 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___closed__10; +x_39 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_37); +x_40 = l_Lean_Compiler_LCNF_Decl_simp_x3f___closed__5; +x_41 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_41, 0, x_39); +lean_ctor_set(x_41, 1, x_40); +x_42 = l_Lean_Compiler_LCNF_Decl_simp_x3f___closed__6; +x_43 = lean_alloc_ctor(3, 2, 0); lean_ctor_set(x_43, 0, x_42); -x_44 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_44, 0, x_40); -lean_ctor_set(x_44, 1, x_43); +lean_ctor_set(x_43, 1, x_35); +x_44 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_44, 0, x_43); x_45 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_45, 0, x_44); -lean_ctor_set(x_45, 1, x_37); -x_46 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(x_19, x_45, x_2, x_3, x_4, x_5, x_6, x_7, x_35); -x_47 = lean_ctor_get(x_46, 0); -lean_inc(x_47); -x_48 = lean_ctor_get(x_46, 1); +lean_ctor_set(x_45, 0, x_41); +lean_ctor_set(x_45, 1, x_44); +x_46 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_46, 0, x_45); +lean_ctor_set(x_46, 1, x_38); +x_47 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(x_20, x_46, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_36); +x_48 = lean_ctor_get(x_47, 0); lean_inc(x_48); -lean_dec(x_46); -x_49 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2(x_13, x_9, x_10, x_11, x_12, x_14, x_15, x_1, x_47, x_2, x_3, x_4, x_5, x_6, x_7, x_48); -return x_49; +x_49 = lean_ctor_get(x_47, 1); +lean_inc(x_49); +lean_dec(x_47); +x_50 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2(x_14, x_10, x_11, x_12, x_13, x_15, x_16, x_1, x_48, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_49); +return x_50; } else { -uint8_t x_50; +uint8_t x_51; +lean_dec(x_14); lean_dec(x_13); lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); -lean_dec(x_9); -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_50 = !lean_is_exclusive(x_33); -if (x_50 == 0) -{ -return x_33; -} -else -{ -lean_object* x_51; lean_object* x_52; lean_object* x_53; -x_51 = lean_ctor_get(x_33, 0); -x_52 = lean_ctor_get(x_33, 1); -lean_inc(x_52); -lean_inc(x_51); -lean_dec(x_33); -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; -} -} -} -} -else -{ -uint8_t x_54; -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -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_54 = !lean_is_exclusive(x_17); -if (x_54 == 0) -{ -return x_17; -} -else -{ -lean_object* x_55; lean_object* x_56; lean_object* x_57; -x_55 = lean_ctor_get(x_17, 0); -x_56 = lean_ctor_get(x_17, 1); -lean_inc(x_56); -lean_inc(x_55); -lean_dec(x_17); -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_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___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_object* x_13, lean_object* x_14, lean_object* x_15) { -_start: -{ -uint8_t x_16; uint8_t x_17; lean_object* x_18; -x_16 = lean_unbox(x_6); -lean_dec(x_6); -x_17 = lean_unbox(x_7); -lean_dec(x_7); -x_18 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__1(x_1, x_2, x_3, x_4, x_5, x_16, x_17, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); -lean_dec(x_10); -lean_dec(x_9); 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_51 = !lean_is_exclusive(x_34); +if (x_51 == 0) +{ +return x_34; +} +else +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_52 = lean_ctor_get(x_34, 0); +x_53 = lean_ctor_get(x_34, 1); +lean_inc(x_53); +lean_inc(x_52); +lean_dec(x_34); +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_55; +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +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_55 = !lean_is_exclusive(x_18); +if (x_55 == 0) +{ return x_18; } +else +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_56 = lean_ctor_get(x_18, 0); +x_57 = lean_ctor_get(x_18, 1); +lean_inc(x_57); +lean_inc(x_56); +lean_dec(x_18); +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; } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___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_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___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_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { _start: { uint8_t x_17; uint8_t x_18; lean_object* x_19; @@ -1200,10 +1195,43 @@ x_17 = lean_unbox(x_6); lean_dec(x_6); x_18 = lean_unbox(x_7); lean_dec(x_7); -x_19 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2(x_1, x_2, x_3, x_4, x_5, x_17, x_18, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +x_19 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__1(x_1, x_2, x_3, x_4, x_5, x_17, x_18, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); return x_19; } } +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2___boxed(lean_object** _args) { +lean_object* x_1 = _args[0]; +lean_object* x_2 = _args[1]; +lean_object* x_3 = _args[2]; +lean_object* x_4 = _args[3]; +lean_object* x_5 = _args[4]; +lean_object* x_6 = _args[5]; +lean_object* x_7 = _args[6]; +lean_object* x_8 = _args[7]; +lean_object* x_9 = _args[8]; +lean_object* x_10 = _args[9]; +lean_object* x_11 = _args[10]; +lean_object* x_12 = _args[11]; +lean_object* x_13 = _args[12]; +lean_object* x_14 = _args[13]; +lean_object* x_15 = _args[14]; +lean_object* x_16 = _args[15]; +lean_object* x_17 = _args[16]; +_start: +{ +uint8_t x_18; uint8_t x_19; lean_object* x_20; +x_18 = lean_unbox(x_6); +lean_dec(x_6); +x_19 = lean_unbox(x_7); +lean_dec(x_7); +x_20 = l_Lean_Compiler_LCNF_Decl_simp_x3f___lambda__2(x_1, x_2, x_3, x_4, x_5, x_18, x_19, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17); +return x_20; +} +} static lean_object* _init_l_Lean_Compiler_LCNF_Decl_simp_go___closed__1() { _start: { @@ -1237,25 +1265,13 @@ return x_3; static lean_object* _init_l_Lean_Compiler_LCNF_Decl_simp_go___closed__4() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_Decl_simp_go___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Decl_simp_go___closed__5() { -_start: -{ lean_object* x_1; lean_object* x_2; x_1 = lean_unsigned_to_nat(0u); x_2 = l_Lean_mkHashMapImp___rarg(x_1); return x_2; } } -static lean_object* _init_l_Lean_Compiler_LCNF_Decl_simp_go___closed__6() { +static lean_object* _init_l_Lean_Compiler_LCNF_Decl_simp_go___closed__5() { _start: { lean_object* x_1; lean_object* x_2; @@ -1264,13 +1280,13 @@ x_2 = l_Lean_mkHashSetImp___rarg(x_1); return x_2; } } -static lean_object* _init_l_Lean_Compiler_LCNF_Decl_simp_go___closed__7() { +static lean_object* _init_l_Lean_Compiler_LCNF_Decl_simp_go___closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; lean_object* x_6; x_1 = lean_box(0); -x_2 = l_Lean_Compiler_LCNF_Decl_simp_go___closed__5; -x_3 = l_Lean_Compiler_LCNF_Decl_simp_go___closed__6; +x_2 = l_Lean_Compiler_LCNF_Decl_simp_go___closed__4; +x_3 = l_Lean_Compiler_LCNF_Decl_simp_go___closed__5; x_4 = 0; x_5 = lean_unsigned_to_nat(0u); x_6 = lean_alloc_ctor(0, 7, 1); @@ -1285,127 +1301,148 @@ lean_ctor_set_uint8(x_6, sizeof(void*)*7, x_4); return x_6; } } +static lean_object* _init_l_Lean_Compiler_LCNF_Decl_simp_go___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_Decl_simp_go___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Decl_simp_go___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Compiler_LCNF_Decl_simp_go___closed__7; +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Decl_simp_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) { _start: { -lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; x_8 = lean_ctor_get(x_1, 0); lean_inc(x_8); x_9 = lean_box(0); -x_10 = lean_box(0); -x_11 = l_Lean_Compiler_LCNF_Decl_simp_go___closed__3; -x_12 = l_Lean_Compiler_LCNF_Decl_simp_go___closed__4; +x_10 = l_Lean_Compiler_LCNF_Decl_simp_go___closed__3; lean_inc(x_2); -x_13 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_13, 0, x_8); -lean_ctor_set(x_13, 1, x_2); -lean_ctor_set(x_13, 2, x_9); -lean_ctor_set(x_13, 3, x_11); -lean_ctor_set(x_13, 4, x_10); -lean_ctor_set(x_13, 5, x_12); -x_14 = lean_st_ref_get(x_6, x_7); -x_15 = lean_ctor_get(x_14, 1); -lean_inc(x_15); -lean_dec(x_14); -x_16 = l_Lean_Compiler_LCNF_Decl_simp_go___closed__7; -x_17 = lean_st_mk_ref(x_16, x_15); -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -lean_dec(x_17); +x_11 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_11, 0, x_8); +lean_ctor_set(x_11, 1, x_2); +lean_ctor_set(x_11, 2, x_9); +lean_ctor_set(x_11, 3, x_10); +x_12 = lean_st_ref_get(x_6, x_7); +x_13 = lean_ctor_get(x_12, 1); +lean_inc(x_13); +lean_dec(x_12); +x_14 = l_Lean_Compiler_LCNF_Decl_simp_go___closed__6; +x_15 = lean_st_mk_ref(x_14, x_13); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +x_18 = l_Lean_Compiler_LCNF_Decl_simp_go___closed__8; lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -lean_inc(x_18); +lean_inc(x_16); lean_inc(x_1); -x_20 = l_Lean_Compiler_LCNF_Decl_simp_x3f(x_1, x_13, x_18, x_3, x_4, x_5, x_6, x_19); +x_19 = l_Lean_Compiler_LCNF_Decl_simp_x3f(x_1, x_11, x_16, x_18, x_3, x_4, x_5, x_6, x_17); +if (lean_obj_tag(x_19) == 0) +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +x_21 = lean_ctor_get(x_19, 1); +lean_inc(x_21); +lean_dec(x_19); +x_22 = lean_st_ref_get(x_6, x_21); +x_23 = lean_ctor_get(x_22, 1); +lean_inc(x_23); +lean_dec(x_22); +x_24 = lean_st_ref_get(x_16, x_23); +lean_dec(x_16); if (lean_obj_tag(x_20) == 0) { -lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -x_22 = lean_ctor_get(x_20, 1); -lean_inc(x_22); -lean_dec(x_20); -x_23 = lean_st_ref_get(x_6, x_22); -x_24 = lean_ctor_get(x_23, 1); -lean_inc(x_24); -lean_dec(x_23); -x_25 = lean_st_ref_get(x_18, x_24); -lean_dec(x_18); -if (lean_obj_tag(x_21) == 0) -{ -uint8_t x_26; +uint8_t x_25; lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_26 = !lean_is_exclusive(x_25); -if (x_26 == 0) +x_25 = !lean_is_exclusive(x_24); +if (x_25 == 0) { -lean_object* x_27; -x_27 = lean_ctor_get(x_25, 0); -lean_dec(x_27); -lean_ctor_set(x_25, 0, x_1); -return x_25; +lean_object* x_26; +x_26 = lean_ctor_get(x_24, 0); +lean_dec(x_26); +lean_ctor_set(x_24, 0, x_1); +return x_24; } else { -lean_object* x_28; lean_object* x_29; -x_28 = lean_ctor_get(x_25, 1); -lean_inc(x_28); -lean_dec(x_25); -x_29 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_29, 0, x_1); -lean_ctor_set(x_29, 1, x_28); -return x_29; +lean_object* x_27; lean_object* x_28; +x_27 = lean_ctor_get(x_24, 1); +lean_inc(x_27); +lean_dec(x_24); +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_1); +lean_ctor_set(x_28, 1, x_27); +return x_28; } } else { -lean_object* x_30; lean_object* x_31; +lean_object* x_29; lean_object* x_30; lean_dec(x_1); -x_30 = lean_ctor_get(x_25, 1); +x_29 = lean_ctor_get(x_24, 1); +lean_inc(x_29); +lean_dec(x_24); +x_30 = lean_ctor_get(x_20, 0); lean_inc(x_30); -lean_dec(x_25); -x_31 = lean_ctor_get(x_21, 0); -lean_inc(x_31); -lean_dec(x_21); -x_1 = x_31; -x_7 = x_30; +lean_dec(x_20); +x_1 = x_30; +x_7 = x_29; goto _start; } } else { -uint8_t x_33; -lean_dec(x_18); +uint8_t x_32; +lean_dec(x_16); 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_33 = !lean_is_exclusive(x_20); -if (x_33 == 0) +x_32 = !lean_is_exclusive(x_19); +if (x_32 == 0) { -return x_20; +return x_19; } else { -lean_object* x_34; lean_object* x_35; lean_object* x_36; -x_34 = lean_ctor_get(x_20, 0); -x_35 = lean_ctor_get(x_20, 1); -lean_inc(x_35); +lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_33 = lean_ctor_get(x_19, 0); +x_34 = lean_ctor_get(x_19, 1); lean_inc(x_34); -lean_dec(x_20); -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; +lean_inc(x_33); +lean_dec(x_19); +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; } } } @@ -1508,7 +1545,7 @@ x_6 = l_Lean_Compiler_LCNF_Pass_mkPerDeclaration(x_4, x_3, x_5, x_2); return x_6; } } -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_736____closed__1() { +static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_744____closed__1() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; @@ -1518,11 +1555,11 @@ x_3 = l_Lean_Name_mkStr2(x_1, x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_736_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_744_(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; lean_object* x_4; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_736____closed__1; +x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_744____closed__1; x_3 = 1; x_4 = l_Lean_registerTraceClass(x_2, x_3, x_1); if (lean_obj_tag(x_4) == 0) @@ -1749,11 +1786,13 @@ l_Lean_Compiler_LCNF_Decl_simp_go___closed__6 = _init_l_Lean_Compiler_LCNF_Decl_ lean_mark_persistent(l_Lean_Compiler_LCNF_Decl_simp_go___closed__6); l_Lean_Compiler_LCNF_Decl_simp_go___closed__7 = _init_l_Lean_Compiler_LCNF_Decl_simp_go___closed__7(); lean_mark_persistent(l_Lean_Compiler_LCNF_Decl_simp_go___closed__7); +l_Lean_Compiler_LCNF_Decl_simp_go___closed__8 = _init_l_Lean_Compiler_LCNF_Decl_simp_go___closed__8(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Decl_simp_go___closed__8); l_Lean_Compiler_LCNF_simp___closed__1 = _init_l_Lean_Compiler_LCNF_simp___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_simp___closed__1); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_736____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_736____closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_736____closed__1); -res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_736_(lean_io_mk_world()); +l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_744____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_744____closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_744____closed__1); +res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp___hyg_744_(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)); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Simp/DefaultAlt.c b/stage0/stdlib/Lean/Compiler/LCNF/Simp/DefaultAlt.c index 7966e20eed..7c699cb07d 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Simp/DefaultAlt.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Simp/DefaultAlt.c @@ -38,24 +38,24 @@ static lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Sim static lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_DefaultAlt_0__Lean_Compiler_LCNF_Simp_getMaxOccs_getNumOccsOf___spec__1___closed__2; LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_DefaultAlt_0__Lean_Compiler_LCNF_Simp_getMaxOccs___boxed(lean_object*); static lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_DefaultAlt_0__Lean_Compiler_LCNF_Simp_getMaxOccs_getNumOccsOf___spec__1___closed__4; -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(lean_object*, uint8_t, 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_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___closed__2; static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__1; lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__2; static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___closed__1; -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__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_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__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*); size_t lean_usize_of_nat(lean_object*); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_DefaultAlt_0__Lean_Compiler_LCNF_Simp_getMaxOccs___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_DefaultAlt_0__Lean_Compiler_LCNF_Simp_getMaxOccs_getNumOccsOf___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__3; -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2(lean_object*, lean_object*, size_t, size_t, 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_Compiler_LCNF_Simp_addDefaultAlt___spec__2(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_DefaultAlt_0__Lean_Compiler_LCNF_Simp_getMaxOccs___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1___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_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___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*); uint8_t lean_nat_dec_le(lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__3(lean_object*, size_t, size_t); lean_object* l_Lean_Compiler_LCNF_AltCore_getCode(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addDefaultAlt(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addDefaultAlt(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_eraseCode(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_eraseParams(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_instInhabitedReaderT___rarg___boxed(lean_object*, lean_object*); @@ -63,15 +63,16 @@ extern lean_object* l_Lean_Core_instMonadCoreM; uint8_t lean_nat_dec_eq(lean_object*, lean_object*); static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__5; lean_object* lean_panic_fn(lean_object*, lean_object*); +static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__6; lean_object* l_ReaderT_instMonadReaderT___rarg(lean_object*); static lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_DefaultAlt_0__Lean_Compiler_LCNF_Simp_getMaxOccs_getNumOccsOf___spec__1___closed__3; static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___closed__4; LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_DefaultAlt_0__Lean_Compiler_LCNF_Simp_getMaxOccs___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_DefaultAlt_0__Lean_Compiler_LCNF_Simp_getMaxOccs___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_panic___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___spec__1(lean_object*); -LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_instInhabitedPUnit; -lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__4; uint8_t lean_nat_dec_lt(lean_object*, lean_object*); static lean_object* _init_l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_DefaultAlt_0__Lean_Compiler_LCNF_Simp_getMaxOccs_getNumOccsOf___spec__1___closed__1() { @@ -675,48 +676,57 @@ return x_2; static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__4() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; +lean_object* x_1; lean_object* x_2; x_1 = l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__3; -x_2 = l_instInhabitedPUnit; -x_3 = l_instInhabited___rarg(x_1, x_2); -return x_3; +x_2 = l_ReaderT_instMonadReaderT___rarg(x_1); +return x_2; } } static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__5() { _start: { -lean_object* x_1; lean_object* x_2; +lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__4; +x_2 = l_instInhabitedPUnit; +x_3 = l_instInhabited___rarg(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__5; x_2 = lean_alloc_closure((void*)(l_instInhabitedReaderT___rarg___boxed), 2, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__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_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__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) { _start: { -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__5; -x_10 = lean_panic_fn(x_9, x_1); -x_11 = lean_apply_7(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_11; +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__6; +x_11 = lean_panic_fn(x_10, x_1); +x_12 = lean_apply_8(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_12; } } -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(lean_object* x_1, uint8_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_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(lean_object* x_1, uint8_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) { _start: { -uint8_t x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_11 = 0; -x_12 = lean_box(x_11); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_1); -lean_ctor_set(x_13, 1, x_12); -x_14 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_14, 0, x_13); -x_15 = lean_alloc_ctor(0, 2, 0); +uint8_t x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_12 = 0; +x_13 = lean_box(x_12); +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_1); +lean_ctor_set(x_14, 1, x_13); +x_15 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_15, 0, x_14); -lean_ctor_set(x_15, 1, x_10); -return x_15; +x_16 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_16, 0, x_15); +lean_ctor_set(x_16, 1, x_11); +return x_16; } } static lean_object* _init_l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___closed__1() { @@ -756,327 +766,332 @@ x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); return x_6; } } -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2(lean_object* x_1, lean_object* x_2, size_t x_3, size_t 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_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2(lean_object* x_1, lean_object* x_2, size_t x_3, size_t x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { _start: { -uint8_t x_13; -x_13 = lean_usize_dec_lt(x_4, x_3); -if (x_13 == 0) +uint8_t x_14; +x_14 = lean_usize_dec_lt(x_4, x_3); +if (x_14 == 0) { -lean_object* x_14; +lean_object* x_15; +lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); -x_14 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_14, 0, x_5); -lean_ctor_set(x_14, 1, x_12); -return x_14; +x_15 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_15, 0, x_5); +lean_ctor_set(x_15, 1, x_13); +return x_15; } else { -lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_23; -x_15 = lean_array_uget(x_2, x_4); -x_23 = !lean_is_exclusive(x_5); -if (x_23 == 0) +lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_24; +x_16 = lean_array_uget(x_2, x_4); +x_24 = !lean_is_exclusive(x_5); +if (x_24 == 0) { -lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; -x_24 = lean_ctor_get(x_5, 0); -x_25 = lean_ctor_get(x_5, 1); -x_26 = l_Lean_Compiler_LCNF_AltCore_getCode(x_15); -x_27 = l_Lean_Compiler_LCNF_AltCore_getCode(x_1); -x_28 = l_Lean_Compiler_LCNF_Code_alphaEqv(x_26, x_27); -x_29 = lean_unbox(x_28); -lean_dec(x_28); -if (x_29 == 0) +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; uint8_t x_30; +x_25 = lean_ctor_get(x_5, 0); +x_26 = lean_ctor_get(x_5, 1); +x_27 = l_Lean_Compiler_LCNF_AltCore_getCode(x_16); +x_28 = l_Lean_Compiler_LCNF_AltCore_getCode(x_1); +x_29 = l_Lean_Compiler_LCNF_Code_alphaEqv(x_27, x_28); +x_30 = lean_unbox(x_29); +lean_dec(x_29); +if (x_30 == 0) { -lean_object* x_30; lean_object* x_31; -x_30 = lean_array_push(x_24, x_15); -lean_ctor_set(x_5, 0, x_30); -x_31 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_31, 0, x_5); -x_16 = x_31; -x_17 = x_12; -goto block_22; +lean_object* x_31; lean_object* x_32; +x_31 = lean_array_push(x_25, x_16); +lean_ctor_set(x_5, 0, x_31); +x_32 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_32, 0, x_5); +x_17 = x_32; +x_18 = x_13; +goto block_23; } else { -if (lean_obj_tag(x_15) == 0) +if (lean_obj_tag(x_16) == 0) { -lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; +lean_object* x_33; lean_object* x_34; lean_object* x_35; uint8_t x_36; lean_free_object(x_5); -x_32 = lean_ctor_get(x_15, 1); -lean_inc(x_32); -x_33 = lean_ctor_get(x_15, 2); +x_33 = lean_ctor_get(x_16, 1); lean_inc(x_33); -lean_dec(x_15); -x_34 = l_Lean_Compiler_LCNF_eraseParams(x_32, x_8, x_9, x_10, x_11, x_12); -lean_dec(x_32); -x_35 = lean_unbox(x_25); -if (x_35 == 0) -{ -lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; uint8_t x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_36 = lean_ctor_get(x_34, 1); -lean_inc(x_36); -lean_dec(x_34); -x_37 = l_Lean_Compiler_LCNF_eraseCode(x_33, x_8, x_9, x_10, x_11, x_36); -x_38 = lean_ctor_get(x_37, 0); -lean_inc(x_38); -x_39 = lean_ctor_get(x_37, 1); -lean_inc(x_39); -lean_dec(x_37); -x_40 = lean_unbox(x_25); -lean_dec(x_25); -x_41 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(x_24, x_40, x_38, x_6, x_7, x_8, x_9, x_10, x_11, x_39); -lean_dec(x_38); -x_42 = lean_ctor_get(x_41, 0); -lean_inc(x_42); -x_43 = lean_ctor_get(x_41, 1); -lean_inc(x_43); -lean_dec(x_41); -x_16 = x_42; -x_17 = x_43; -goto block_22; -} -else -{ -lean_object* x_44; lean_object* x_45; uint8_t x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; -lean_dec(x_33); -x_44 = lean_ctor_get(x_34, 1); -lean_inc(x_44); -lean_dec(x_34); -x_45 = lean_box(0); -x_46 = lean_unbox(x_25); -lean_dec(x_25); -x_47 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(x_24, x_46, x_45, x_6, x_7, x_8, x_9, x_10, x_11, x_44); -x_48 = lean_ctor_get(x_47, 0); -lean_inc(x_48); -x_49 = lean_ctor_get(x_47, 1); -lean_inc(x_49); -lean_dec(x_47); -x_16 = x_48; -x_17 = x_49; -goto block_22; -} -} -else -{ -lean_object* x_50; lean_object* x_51; -lean_dec(x_15); -x_50 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___closed__4; -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -x_51 = l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1(x_50, x_6, x_7, x_8, x_9, x_10, x_11, x_12); -if (lean_obj_tag(x_51) == 0) -{ -lean_object* x_52; lean_object* x_53; -x_52 = lean_ctor_get(x_51, 1); -lean_inc(x_52); -lean_dec(x_51); -x_53 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_53, 0, x_5); -x_16 = x_53; -x_17 = x_52; -goto block_22; -} -else -{ -uint8_t x_54; -lean_free_object(x_5); -lean_dec(x_25); -lean_dec(x_24); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -x_54 = !lean_is_exclusive(x_51); -if (x_54 == 0) -{ -return x_51; -} -else -{ -lean_object* x_55; lean_object* x_56; lean_object* x_57; -x_55 = lean_ctor_get(x_51, 0); -x_56 = lean_ctor_get(x_51, 1); -lean_inc(x_56); -lean_inc(x_55); -lean_dec(x_51); -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; -} -} -} -} -} -else -{ -lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; -x_58 = lean_ctor_get(x_5, 0); -x_59 = lean_ctor_get(x_5, 1); -lean_inc(x_59); -lean_inc(x_58); -lean_dec(x_5); -x_60 = l_Lean_Compiler_LCNF_AltCore_getCode(x_15); -x_61 = l_Lean_Compiler_LCNF_AltCore_getCode(x_1); -x_62 = l_Lean_Compiler_LCNF_Code_alphaEqv(x_60, x_61); -x_63 = lean_unbox(x_62); -lean_dec(x_62); -if (x_63 == 0) -{ -lean_object* x_64; lean_object* x_65; lean_object* x_66; -x_64 = lean_array_push(x_58, x_15); -x_65 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_65, 0, x_64); -lean_ctor_set(x_65, 1, x_59); -x_66 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_66, 0, x_65); -x_16 = x_66; -x_17 = x_12; -goto block_22; -} -else -{ -if (lean_obj_tag(x_15) == 0) -{ -lean_object* x_67; lean_object* x_68; lean_object* x_69; uint8_t x_70; -x_67 = lean_ctor_get(x_15, 1); -lean_inc(x_67); -x_68 = lean_ctor_get(x_15, 2); -lean_inc(x_68); -lean_dec(x_15); -x_69 = l_Lean_Compiler_LCNF_eraseParams(x_67, x_8, x_9, x_10, x_11, x_12); -lean_dec(x_67); -x_70 = lean_unbox(x_59); -if (x_70 == 0) -{ -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; uint8_t x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_69, 1); -lean_inc(x_71); -lean_dec(x_69); -x_72 = l_Lean_Compiler_LCNF_eraseCode(x_68, x_8, x_9, x_10, x_11, x_71); -x_73 = lean_ctor_get(x_72, 0); -lean_inc(x_73); -x_74 = lean_ctor_get(x_72, 1); -lean_inc(x_74); -lean_dec(x_72); -x_75 = lean_unbox(x_59); -lean_dec(x_59); -x_76 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(x_58, x_75, x_73, x_6, x_7, x_8, x_9, x_10, x_11, x_74); -lean_dec(x_73); -x_77 = lean_ctor_get(x_76, 0); -lean_inc(x_77); -x_78 = lean_ctor_get(x_76, 1); -lean_inc(x_78); -lean_dec(x_76); -x_16 = x_77; -x_17 = x_78; -goto block_22; -} -else -{ -lean_object* x_79; lean_object* x_80; uint8_t x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; -lean_dec(x_68); -x_79 = lean_ctor_get(x_69, 1); -lean_inc(x_79); -lean_dec(x_69); -x_80 = lean_box(0); -x_81 = lean_unbox(x_59); -lean_dec(x_59); -x_82 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(x_58, x_81, x_80, x_6, x_7, x_8, x_9, x_10, x_11, x_79); -x_83 = lean_ctor_get(x_82, 0); -lean_inc(x_83); -x_84 = lean_ctor_get(x_82, 1); -lean_inc(x_84); -lean_dec(x_82); -x_16 = x_83; -x_17 = x_84; -goto block_22; -} -} -else -{ -lean_object* x_85; lean_object* x_86; -lean_dec(x_15); -x_85 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___closed__4; -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -x_86 = l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1(x_85, x_6, x_7, x_8, x_9, x_10, x_11, x_12); -if (lean_obj_tag(x_86) == 0) -{ -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_86, 1); -lean_inc(x_87); -lean_dec(x_86); -x_88 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_88, 0, x_58); -lean_ctor_set(x_88, 1, x_59); -x_89 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_89, 0, x_88); -x_16 = x_89; -x_17 = x_87; -goto block_22; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_59); -lean_dec(x_58); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -x_90 = lean_ctor_get(x_86, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_86, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_86)) { - lean_ctor_release(x_86, 0); - lean_ctor_release(x_86, 1); - x_92 = x_86; -} else { - lean_dec_ref(x_86); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -} -} -block_22: -{ -lean_object* x_18; size_t x_19; size_t x_20; -x_18 = lean_ctor_get(x_16, 0); -lean_inc(x_18); +x_34 = lean_ctor_get(x_16, 2); +lean_inc(x_34); lean_dec(x_16); -x_19 = 1; -x_20 = lean_usize_add(x_4, x_19); -x_4 = x_20; -x_5 = x_18; -x_12 = x_17; +x_35 = l_Lean_Compiler_LCNF_eraseParams(x_33, x_9, x_10, x_11, x_12, x_13); +lean_dec(x_33); +x_36 = lean_unbox(x_26); +if (x_36 == 0) +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_37 = lean_ctor_get(x_35, 1); +lean_inc(x_37); +lean_dec(x_35); +x_38 = l_Lean_Compiler_LCNF_eraseCode(x_34, x_9, x_10, x_11, x_12, x_37); +x_39 = lean_ctor_get(x_38, 0); +lean_inc(x_39); +x_40 = lean_ctor_get(x_38, 1); +lean_inc(x_40); +lean_dec(x_38); +x_41 = lean_unbox(x_26); +lean_dec(x_26); +x_42 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(x_25, x_41, x_39, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_40); +lean_dec(x_39); +x_43 = lean_ctor_get(x_42, 0); +lean_inc(x_43); +x_44 = lean_ctor_get(x_42, 1); +lean_inc(x_44); +lean_dec(x_42); +x_17 = x_43; +x_18 = x_44; +goto block_23; +} +else +{ +lean_object* x_45; lean_object* x_46; uint8_t x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; +lean_dec(x_34); +x_45 = lean_ctor_get(x_35, 1); +lean_inc(x_45); +lean_dec(x_35); +x_46 = lean_box(0); +x_47 = lean_unbox(x_26); +lean_dec(x_26); +x_48 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(x_25, x_47, x_46, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_45); +x_49 = lean_ctor_get(x_48, 0); +lean_inc(x_49); +x_50 = lean_ctor_get(x_48, 1); +lean_inc(x_50); +lean_dec(x_48); +x_17 = x_49; +x_18 = x_50; +goto block_23; +} +} +else +{ +lean_object* x_51; lean_object* x_52; +lean_dec(x_16); +x_51 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___closed__4; +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_52 = l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1(x_51, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +if (lean_obj_tag(x_52) == 0) +{ +lean_object* x_53; lean_object* x_54; +x_53 = lean_ctor_get(x_52, 1); +lean_inc(x_53); +lean_dec(x_52); +x_54 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_54, 0, x_5); +x_17 = x_54; +x_18 = x_53; +goto block_23; +} +else +{ +uint8_t x_55; +lean_free_object(x_5); +lean_dec(x_26); +lean_dec(x_25); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_55 = !lean_is_exclusive(x_52); +if (x_55 == 0) +{ +return x_52; +} +else +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_56 = lean_ctor_get(x_52, 0); +x_57 = lean_ctor_get(x_52, 1); +lean_inc(x_57); +lean_inc(x_56); +lean_dec(x_52); +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 +{ +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; +x_59 = lean_ctor_get(x_5, 0); +x_60 = lean_ctor_get(x_5, 1); +lean_inc(x_60); +lean_inc(x_59); +lean_dec(x_5); +x_61 = l_Lean_Compiler_LCNF_AltCore_getCode(x_16); +x_62 = l_Lean_Compiler_LCNF_AltCore_getCode(x_1); +x_63 = l_Lean_Compiler_LCNF_Code_alphaEqv(x_61, x_62); +x_64 = lean_unbox(x_63); +lean_dec(x_63); +if (x_64 == 0) +{ +lean_object* x_65; lean_object* x_66; lean_object* x_67; +x_65 = lean_array_push(x_59, x_16); +x_66 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_66, 0, x_65); +lean_ctor_set(x_66, 1, x_60); +x_67 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_67, 0, x_66); +x_17 = x_67; +x_18 = x_13; +goto block_23; +} +else +{ +if (lean_obj_tag(x_16) == 0) +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; uint8_t x_71; +x_68 = lean_ctor_get(x_16, 1); +lean_inc(x_68); +x_69 = lean_ctor_get(x_16, 2); +lean_inc(x_69); +lean_dec(x_16); +x_70 = l_Lean_Compiler_LCNF_eraseParams(x_68, x_9, x_10, x_11, x_12, x_13); +lean_dec(x_68); +x_71 = lean_unbox(x_60); +if (x_71 == 0) +{ +lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; uint8_t x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_72 = lean_ctor_get(x_70, 1); +lean_inc(x_72); +lean_dec(x_70); +x_73 = l_Lean_Compiler_LCNF_eraseCode(x_69, x_9, x_10, x_11, x_12, x_72); +x_74 = lean_ctor_get(x_73, 0); +lean_inc(x_74); +x_75 = lean_ctor_get(x_73, 1); +lean_inc(x_75); +lean_dec(x_73); +x_76 = lean_unbox(x_60); +lean_dec(x_60); +x_77 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(x_59, x_76, x_74, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_75); +lean_dec(x_74); +x_78 = lean_ctor_get(x_77, 0); +lean_inc(x_78); +x_79 = lean_ctor_get(x_77, 1); +lean_inc(x_79); +lean_dec(x_77); +x_17 = x_78; +x_18 = x_79; +goto block_23; +} +else +{ +lean_object* x_80; lean_object* x_81; uint8_t x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; +lean_dec(x_69); +x_80 = lean_ctor_get(x_70, 1); +lean_inc(x_80); +lean_dec(x_70); +x_81 = lean_box(0); +x_82 = lean_unbox(x_60); +lean_dec(x_60); +x_83 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(x_59, x_82, x_81, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_80); +x_84 = lean_ctor_get(x_83, 0); +lean_inc(x_84); +x_85 = lean_ctor_get(x_83, 1); +lean_inc(x_85); +lean_dec(x_83); +x_17 = x_84; +x_18 = x_85; +goto block_23; +} +} +else +{ +lean_object* x_86; lean_object* x_87; +lean_dec(x_16); +x_86 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___closed__4; +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_87 = l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1(x_86, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +if (lean_obj_tag(x_87) == 0) +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; +x_88 = lean_ctor_get(x_87, 1); +lean_inc(x_88); +lean_dec(x_87); +x_89 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_89, 0, x_59); +lean_ctor_set(x_89, 1, x_60); +x_90 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_90, 0, x_89); +x_17 = x_90; +x_18 = x_88; +goto block_23; +} +else +{ +lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; +lean_dec(x_60); +lean_dec(x_59); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_91 = lean_ctor_get(x_87, 0); +lean_inc(x_91); +x_92 = lean_ctor_get(x_87, 1); +lean_inc(x_92); +if (lean_is_exclusive(x_87)) { + lean_ctor_release(x_87, 0); + lean_ctor_release(x_87, 1); + x_93 = x_87; +} else { + lean_dec_ref(x_87); + x_93 = lean_box(0); +} +if (lean_is_scalar(x_93)) { + x_94 = lean_alloc_ctor(1, 2, 0); +} else { + x_94 = x_93; +} +lean_ctor_set(x_94, 0, x_91); +lean_ctor_set(x_94, 1, x_92); +return x_94; +} +} +} +} +block_23: +{ +lean_object* x_19; size_t x_20; size_t x_21; +x_19 = lean_ctor_get(x_17, 0); +lean_inc(x_19); +lean_dec(x_17); +x_20 = 1; +x_21 = lean_usize_add(x_4, x_20); +x_4 = x_21; +x_5 = x_19; +x_13 = x_18; goto _start; } } @@ -1138,73 +1153,56 @@ lean_ctor_set(x_4, 1, x_3); return x_4; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addDefaultAlt(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_Compiler_LCNF_Simp_addDefaultAlt(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_object* x_41; lean_object* x_42; uint8_t x_43; -x_41 = lean_array_get_size(x_1); -x_42 = lean_unsigned_to_nat(1u); -x_43 = lean_nat_dec_le(x_41, x_42); -if (x_43 == 0) +lean_object* x_10; lean_object* x_42; lean_object* x_43; uint8_t x_44; +x_42 = lean_array_get_size(x_1); +x_43 = lean_unsigned_to_nat(1u); +x_44 = lean_nat_dec_le(x_42, x_43); +if (x_44 == 0) { -lean_object* x_44; uint8_t x_45; -x_44 = lean_unsigned_to_nat(0u); -x_45 = lean_nat_dec_lt(x_44, x_41); -if (x_45 == 0) +lean_object* x_45; uint8_t x_46; +x_45 = lean_unsigned_to_nat(0u); +x_46 = lean_nat_dec_lt(x_45, x_42); +if (x_46 == 0) { -lean_object* x_46; -lean_dec(x_41); -x_46 = lean_box(0); -x_9 = x_46; -goto block_40; +lean_object* x_47; +lean_dec(x_42); +x_47 = lean_box(0); +x_10 = x_47; +goto block_41; } else { -uint8_t x_47; -x_47 = lean_nat_dec_le(x_41, x_41); -if (x_47 == 0) +uint8_t x_48; +x_48 = lean_nat_dec_le(x_42, x_42); +if (x_48 == 0) { -lean_object* x_48; -lean_dec(x_41); -x_48 = lean_box(0); -x_9 = x_48; -goto block_40; +lean_object* x_49; +lean_dec(x_42); +x_49 = lean_box(0); +x_10 = x_49; +goto block_41; } else { -size_t x_49; size_t x_50; uint8_t x_51; -x_49 = 0; -x_50 = lean_usize_of_nat(x_41); -lean_dec(x_41); -x_51 = l_Array_anyMUnsafe_any___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__3(x_1, x_49, x_50); -if (x_51 == 0) -{ -lean_object* x_52; -x_52 = lean_box(0); -x_9 = x_52; -goto block_40; -} -else +size_t x_50; size_t x_51; uint8_t x_52; +x_50 = 0; +x_51 = lean_usize_of_nat(x_42); +lean_dec(x_42); +x_52 = l_Array_anyMUnsafe_any___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__3(x_1, x_50, x_51); +if (x_52 == 0) { lean_object* x_53; -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_53 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_53, 0, x_1); -lean_ctor_set(x_53, 1, x_8); -return x_53; -} -} -} +x_53 = lean_box(0); +x_10 = x_53; +goto block_41; } else { lean_object* x_54; -lean_dec(x_41); +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -1213,126 +1211,147 @@ lean_dec(x_3); lean_dec(x_2); x_54 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_54, 0, x_1); -lean_ctor_set(x_54, 1, x_8); +lean_ctor_set(x_54, 1, x_9); return x_54; } -block_40: -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -lean_dec(x_9); -x_10 = l___private_Lean_Compiler_LCNF_Simp_DefaultAlt_0__Lean_Compiler_LCNF_Simp_getMaxOccs(x_1); -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_10, 1); -lean_inc(x_12); -lean_dec(x_10); -x_13 = lean_unsigned_to_nat(1u); -x_14 = lean_nat_dec_eq(x_12, x_13); -lean_dec(x_12); -if (x_14 == 0) -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; lean_object* x_20; lean_object* x_21; -x_15 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8); -x_16 = lean_ctor_get(x_15, 1); -lean_inc(x_16); -lean_dec(x_15); -x_17 = lean_array_get_size(x_1); -x_18 = lean_usize_of_nat(x_17); -lean_dec(x_17); -x_19 = 0; -x_20 = l_Lean_Compiler_LCNF_Simp_addDefaultAlt___closed__2; -x_21 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2(x_11, x_1, x_18, x_19, x_20, x_2, x_3, x_4, x_5, x_6, x_7, x_16); -lean_dec(x_1); -if (lean_obj_tag(x_21) == 0) -{ -uint8_t x_22; -x_22 = !lean_is_exclusive(x_21); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_23 = lean_ctor_get(x_21, 0); -x_24 = lean_ctor_get(x_23, 0); -lean_inc(x_24); -lean_dec(x_23); -x_25 = l_Lean_Compiler_LCNF_AltCore_getCode(x_11); -lean_dec(x_11); -x_26 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_26, 0, x_25); -x_27 = lean_array_push(x_24, x_26); -lean_ctor_set(x_21, 0, x_27); -return x_21; -} -else -{ -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_21, 0); -x_29 = lean_ctor_get(x_21, 1); -lean_inc(x_29); -lean_inc(x_28); -lean_dec(x_21); -x_30 = lean_ctor_get(x_28, 0); -lean_inc(x_30); -lean_dec(x_28); -x_31 = l_Lean_Compiler_LCNF_AltCore_getCode(x_11); -lean_dec(x_11); -x_32 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_32, 0, x_31); -x_33 = lean_array_push(x_30, x_32); -x_34 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_34, 0, x_33); -lean_ctor_set(x_34, 1, x_29); -return x_34; -} -} -else -{ -uint8_t x_35; -lean_dec(x_11); -x_35 = !lean_is_exclusive(x_21); -if (x_35 == 0) -{ -return x_21; -} -else -{ -lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_36 = lean_ctor_get(x_21, 0); -x_37 = lean_ctor_get(x_21, 1); -lean_inc(x_37); -lean_inc(x_36); -lean_dec(x_21); -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; } } } else { -lean_object* x_39; -lean_dec(x_11); +lean_object* x_55; +lean_dec(x_42); +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); -x_39 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_39, 0, x_1); -lean_ctor_set(x_39, 1, x_8); +x_55 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_55, 0, x_1); +lean_ctor_set(x_55, 1, x_9); +return x_55; +} +block_41: +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +lean_dec(x_10); +x_11 = l___private_Lean_Compiler_LCNF_Simp_DefaultAlt_0__Lean_Compiler_LCNF_Simp_getMaxOccs(x_1); +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 = lean_unsigned_to_nat(1u); +x_15 = lean_nat_dec_eq(x_13, x_14); +lean_dec(x_13); +if (x_15 == 0) +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; size_t x_19; size_t x_20; lean_object* x_21; lean_object* x_22; +x_16 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_17 = lean_ctor_get(x_16, 1); +lean_inc(x_17); +lean_dec(x_16); +x_18 = lean_array_get_size(x_1); +x_19 = lean_usize_of_nat(x_18); +lean_dec(x_18); +x_20 = 0; +x_21 = l_Lean_Compiler_LCNF_Simp_addDefaultAlt___closed__2; +x_22 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2(x_12, x_1, x_19, x_20, x_21, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_17); +lean_dec(x_1); +if (lean_obj_tag(x_22) == 0) +{ +uint8_t x_23; +x_23 = !lean_is_exclusive(x_22); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_24 = lean_ctor_get(x_22, 0); +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +lean_dec(x_24); +x_26 = l_Lean_Compiler_LCNF_AltCore_getCode(x_12); +lean_dec(x_12); +x_27 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_27, 0, x_26); +x_28 = lean_array_push(x_25, x_27); +lean_ctor_set(x_22, 0, x_28); +return x_22; +} +else +{ +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_22, 0); +x_30 = lean_ctor_get(x_22, 1); +lean_inc(x_30); +lean_inc(x_29); +lean_dec(x_22); +x_31 = lean_ctor_get(x_29, 0); +lean_inc(x_31); +lean_dec(x_29); +x_32 = l_Lean_Compiler_LCNF_AltCore_getCode(x_12); +lean_dec(x_12); +x_33 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_33, 0, x_32); +x_34 = lean_array_push(x_31, x_33); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_34); +lean_ctor_set(x_35, 1, x_30); +return x_35; +} +} +else +{ +uint8_t x_36; +lean_dec(x_12); +x_36 = !lean_is_exclusive(x_22); +if (x_36 == 0) +{ +return x_22; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_22, 0); +x_38 = lean_ctor_get(x_22, 1); +lean_inc(x_38); +lean_inc(x_37); +lean_dec(x_22); +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_40; +lean_dec(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); +x_40 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_40, 0, x_1); +lean_ctor_set(x_40, 1, x_9); +return x_40; } -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___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_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___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) { _start: { -uint8_t x_11; lean_object* x_12; -x_11 = lean_unbox(x_2); +uint8_t x_12; lean_object* x_13; +x_12 = lean_unbox(x_2); lean_dec(x_2); -x_12 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(x_1, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +x_13 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___lambda__1(x_1, x_12, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1340,21 +1359,21 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -return x_12; +return x_13; } } -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__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_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__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_object* x_13) { _start: { -size_t x_13; size_t x_14; lean_object* x_15; -x_13 = lean_unbox_usize(x_3); +size_t x_14; size_t x_15; lean_object* x_16; +x_14 = lean_unbox_usize(x_3); lean_dec(x_3); -x_14 = lean_unbox_usize(x_4); +x_15 = lean_unbox_usize(x_4); lean_dec(x_4); -x_15 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2(x_1, x_2, x_13, x_14, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +x_16 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2(x_1, x_2, x_14, x_15, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); lean_dec(x_2); lean_dec(x_1); -return x_15; +return x_16; } } LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -1402,6 +1421,8 @@ l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__4 = _init lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__4); l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__5 = _init_l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__5(); lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__5); +l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__6 = _init_l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__6(); +lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__1___closed__6); l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___closed__1 = _init_l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___closed__1(); lean_mark_persistent(l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___closed__1); l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___closed__2 = _init_l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_addDefaultAlt___spec__2___closed__2(); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Simp/DiscrM.c b/stage0/stdlib/Lean/Compiler/LCNF/Simp/DiscrM.c new file mode 100644 index 0000000000..0a073b7297 --- /dev/null +++ b/stage0/stdlib/Lean/Compiler/LCNF/Simp/DiscrM.c @@ -0,0 +1,4749 @@ +// Lean compiler output +// Module: Lean.Compiler.LCNF.Simp.DiscrM +// Imports: Init Lean.Compiler.LCNF.CompilerM Lean.Compiler.LCNF.Types Lean.Compiler.LCNF.InferType Lean.Compiler.LCNF.Simp.Basic +#include +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wunused-label" +#elif defined(__GNUC__) && !defined(__CLANG__) +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wunused-label" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif +#ifdef __cplusplus +extern "C" { +#endif +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +size_t lean_usize_add(size_t, size_t); +lean_object* l_Lean_stringToMessageData(lean_object*); +static lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_DiscrM_Context_discrCtorMap___default; +static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__3; +size_t lean_usize_sub(size_t, size_t); +lean_object* lean_environment_find(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_st_ref_get(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__2(lean_object*, size_t, lean_object*); +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_findCtor___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_toSubarray___rarg(lean_object*, lean_object*, lean_object*); +lean_object* lean_array_push(lean_object*, lean_object*); +lean_object* lean_array_get_size(lean_object*); +lean_object* l_Lean_getConstInfo___at___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_isValidMacroInline___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__4; +LEAN_EXPORT lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +size_t lean_usize_shift_right(size_t, size_t); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_levelZero; +lean_object* lean_nat_add(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtor(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__2; +lean_object* l_Lean_mkAppN(lean_object*, lean_object*); +size_t lean_uint64_to_usize(uint64_t); +lean_object* l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); +extern lean_object* l_Lean_Compiler_LCNF_erasedExpr; +lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__3; +lean_object* lean_array_fget(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_findCtor(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__2___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__1(lean_object*, lean_object*); +lean_object* lean_nat_sub(lean_object*, lean_object*); +lean_object* l_Lean_RBNode_setBlack___rarg(lean_object*); +lean_object* l_Lean_Expr_headBeta(lean_object*); +LEAN_EXPORT lean_object* l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__1; +lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_inferType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__9(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__2; +uint8_t l_Lean_Name_quickCmp(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__1; +lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___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_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1___closed__1; +lean_object* l_Lean_Compiler_LCNF_Simp_findExpr(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtor___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint64_t l_Lean_Expr_hash(lean_object*); +static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__4; +lean_object* l_Lean_Expr_sort___override(lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1___closed__2; +size_t lean_usize_shift_left(size_t, size_t); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__10(lean_object*, lean_object*, lean_object*, lean_object*); +static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__2; +size_t lean_usize_mul(size_t, size_t); +LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1___boxed(lean_object*, lean_object*); +size_t lean_usize_of_nat(lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8(lean_object*, size_t, size_t, lean_object*, lean_object*); +size_t lean_usize_land(size_t, size_t); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtor___rarg___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default; +lean_object* l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__2; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___closed__1; +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__7(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__9___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Expr_fvar___override(lean_object*); +LEAN_EXPORT lean_object* l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__6(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Expr_const___override(lean_object*, lean_object*); +uint8_t lean_expr_eqv(lean_object*, lean_object*); +uint8_t lean_nat_dec_le(lean_object*, lean_object*); +uint8_t lean_usize_dec_le(size_t, size_t); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtorImp(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_Lean_RBNode_isRed___rarg(lean_object*); +lean_object* l_Lean_Compiler_LCNF_compatibleTypes(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_LCtx_toLocalContext(lean_object*); +lean_object* l_Array_ofSubarray___rarg(lean_object*); +lean_object* l_Lean_Compiler_LCNF_getType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_PersistentHashMap_mkEmptyEntries(lean_object*, lean_object*); +lean_object* lean_mk_array(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__3; +lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(size_t, size_t, lean_object*); +lean_object* l_Lean_Expr_getAppFn(lean_object*); +lean_object* lean_usize_to_nat(size_t); +LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1(lean_object*, lean_object*); +lean_object* l_Lean_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__3; +LEAN_EXPORT lean_object* l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__5(lean_object*, lean_object*, lean_object*); +uint8_t lean_nat_dec_lt(lean_object*, lean_object*); +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_DiscrM_Context_discrCtorMap___default() { +_start: +{ +lean_object* x_1; +x_1 = lean_box(0); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_box(0), lean_box(0)); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__1; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__3; +return x_1; +} +} +LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_3; +x_3 = lean_box(0); +return x_3; +} +else +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; +x_4 = lean_ctor_get(x_1, 0); +x_5 = lean_ctor_get(x_1, 1); +x_6 = lean_ctor_get(x_1, 2); +x_7 = lean_ctor_get(x_1, 3); +x_8 = l_Lean_Name_quickCmp(x_2, x_5); +switch (x_8) { +case 0: +{ +x_1 = x_4; +goto _start; +} +case 1: +{ +lean_object* x_10; +lean_inc(x_6); +x_10 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_10, 0, x_6); +return x_10; +} +default: +{ +x_1 = x_7; +goto _start; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_findCtor(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 = l_Lean_Compiler_LCNF_Simp_findExpr(x_1, x_8, x_3, x_4, x_5, x_6, x_7); +x_10 = lean_ctor_get(x_9, 0); +lean_inc(x_10); +if (lean_obj_tag(x_10) == 1) +{ +uint8_t x_11; +x_11 = !lean_is_exclusive(x_9); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_12 = lean_ctor_get(x_9, 0); +lean_dec(x_12); +x_13 = lean_ctor_get(x_10, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_2, 0); +x_15 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1(x_14, x_13); +lean_dec(x_13); +if (lean_obj_tag(x_15) == 0) +{ +return x_9; +} +else +{ +lean_object* x_16; +lean_dec(x_10); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +lean_dec(x_15); +lean_ctor_set(x_9, 0, x_16); +return x_9; +} +} +else +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_17 = lean_ctor_get(x_9, 1); +lean_inc(x_17); +lean_dec(x_9); +x_18 = lean_ctor_get(x_10, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_2, 0); +x_20 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1(x_19, x_18); +lean_dec(x_18); +if (lean_obj_tag(x_20) == 0) +{ +lean_object* x_21; +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_10); +lean_ctor_set(x_21, 1, x_17); +return x_21; +} +else +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_10); +x_22 = lean_ctor_get(x_20, 0); +lean_inc(x_22); +lean_dec(x_20); +x_23 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_17); +return x_23; +} +} +} +else +{ +uint8_t x_24; +x_24 = !lean_is_exclusive(x_9); +if (x_24 == 0) +{ +lean_object* x_25; +x_25 = lean_ctor_get(x_9, 0); +lean_dec(x_25); +return x_9; +} +else +{ +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_9, 1); +lean_inc(x_26); +lean_dec(x_9); +x_27 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_27, 0, x_10); +lean_ctor_set(x_27, 1, x_26); +return x_27; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1(x_1, x_2); +lean_dec(x_2); +lean_dec(x_1); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_findCtor___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_Compiler_LCNF_Simp_findCtor(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); +return x_8; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_levelZero; +x_2 = l_Lean_Expr_sort___override(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___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: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_8 = lean_unsigned_to_nat(0u); +x_9 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_8); +x_10 = l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___closed__1; +lean_inc(x_9); +x_11 = lean_mk_array(x_9, x_10); +x_12 = lean_unsigned_to_nat(1u); +x_13 = lean_nat_sub(x_9, x_12); +lean_dec(x_9); +x_14 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_11, x_13); +x_15 = lean_ctor_get(x_2, 1); +lean_inc(x_15); +lean_dec(x_2); +x_16 = l_Array_toSubarray___rarg(x_14, x_8, x_15); +x_17 = l_Array_ofSubarray___rarg(x_16); +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_3); +lean_ctor_set(x_18, 1, x_17); +x_19 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_19, 0, x_18); +x_20 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_20, 0, x_19); +lean_ctor_set(x_20, 1, x_7); +return x_20; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; lean_object* x_6; +x_5 = l_Lean_Expr_headBeta(x_1); +x_6 = l_Lean_Expr_getAppFn(x_5); +if (lean_obj_tag(x_6) == 4) +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +x_7 = lean_ctor_get(x_6, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_6, 1); +lean_inc(x_8); +lean_dec(x_6); +x_9 = l_Lean_getConstInfo___at___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_isValidMacroInline___spec__1(x_7, x_2, x_3, x_4); +if (lean_obj_tag(x_9) == 0) +{ +lean_object* x_10; +x_10 = lean_ctor_get(x_9, 0); +lean_inc(x_10); +if (lean_obj_tag(x_10) == 5) +{ +uint8_t x_11; +x_11 = !lean_is_exclusive(x_9); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; +x_12 = lean_ctor_get(x_9, 1); +x_13 = lean_ctor_get(x_9, 0); +lean_dec(x_13); +x_14 = lean_ctor_get(x_10, 0); +lean_inc(x_14); +lean_dec(x_10); +x_15 = lean_ctor_get(x_14, 1); +lean_inc(x_15); +x_16 = lean_unsigned_to_nat(0u); +x_17 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_5, x_16); +x_18 = lean_nat_dec_le(x_15, x_17); +lean_dec(x_17); +lean_dec(x_15); +if (x_18 == 0) +{ +lean_object* x_19; +lean_dec(x_14); +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_19 = lean_box(0); +lean_ctor_set(x_9, 0, x_19); +return x_9; +} +else +{ +lean_object* x_20; lean_object* x_21; +lean_free_object(x_9); +x_20 = lean_box(0); +x_21 = l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1(x_5, x_14, x_8, x_20, x_2, x_3, x_12); +lean_dec(x_3); +lean_dec(x_2); +return x_21; +} +} +else +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; +x_22 = lean_ctor_get(x_9, 1); +lean_inc(x_22); +lean_dec(x_9); +x_23 = lean_ctor_get(x_10, 0); +lean_inc(x_23); +lean_dec(x_10); +x_24 = lean_ctor_get(x_23, 1); +lean_inc(x_24); +x_25 = lean_unsigned_to_nat(0u); +x_26 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_5, x_25); +x_27 = lean_nat_dec_le(x_24, x_26); +lean_dec(x_26); +lean_dec(x_24); +if (x_27 == 0) +{ +lean_object* x_28; lean_object* x_29; +lean_dec(x_23); +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_28 = lean_box(0); +x_29 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_29, 0, x_28); +lean_ctor_set(x_29, 1, x_22); +return x_29; +} +else +{ +lean_object* x_30; lean_object* x_31; +x_30 = lean_box(0); +x_31 = l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1(x_5, x_23, x_8, x_30, x_2, x_3, x_22); +lean_dec(x_3); +lean_dec(x_2); +return x_31; +} +} +} +else +{ +uint8_t x_32; +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_32 = !lean_is_exclusive(x_9); +if (x_32 == 0) +{ +lean_object* x_33; lean_object* x_34; +x_33 = lean_ctor_get(x_9, 0); +lean_dec(x_33); +x_34 = lean_box(0); +lean_ctor_set(x_9, 0, x_34); +return x_9; +} +else +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_35 = lean_ctor_get(x_9, 1); +lean_inc(x_35); +lean_dec(x_9); +x_36 = lean_box(0); +x_37 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_37, 0, x_36); +lean_ctor_set(x_37, 1, x_35); +return x_37; +} +} +} +else +{ +uint8_t x_38; +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_38 = !lean_is_exclusive(x_9); +if (x_38 == 0) +{ +return x_9; +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_39 = lean_ctor_get(x_9, 0); +x_40 = lean_ctor_get(x_9, 1); +lean_inc(x_40); +lean_inc(x_39); +lean_dec(x_9); +x_41 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_41, 0, x_39); +lean_ctor_set(x_41, 1, x_40); +return x_41; +} +} +} +else +{ +lean_object* x_42; lean_object* x_43; +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_42 = lean_box(0); +x_43 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_43, 0, x_42); +lean_ctor_set(x_43, 1, x_4); +return x_43; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___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_Compiler_LCNF_Simp_getIndInfo_x3f___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); +return x_8; +} +} +static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = lean_unsigned_to_nat(0u); +x_2 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__1; +x_3 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__2; +x_4 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__3; +x_5 = lean_alloc_ctor(0, 8, 0); +lean_ctor_set(x_5, 0, x_1); +lean_ctor_set(x_5, 1, x_1); +lean_ctor_set(x_5, 2, x_2); +lean_ctor_set(x_5, 3, x_3); +lean_ctor_set(x_5, 4, x_4); +lean_ctor_set(x_5, 5, x_2); +lean_ctor_set(x_5, 6, x_3); +lean_ctor_set(x_5, 7, x_3); +return x_5; +} +} +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__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) { +_start: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; +x_8 = lean_ctor_get(x_5, 5); +x_9 = lean_st_ref_get(x_6, x_7); +x_10 = lean_ctor_get(x_9, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = lean_ctor_get(x_10, 0); +lean_inc(x_12); +lean_dec(x_10); +x_13 = lean_st_ref_get(x_4, x_11); +x_14 = !lean_is_exclusive(x_13); +if (x_14 == 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; lean_object* x_22; +x_15 = lean_ctor_get(x_13, 0); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +lean_dec(x_15); +x_17 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_16); +x_18 = lean_ctor_get(x_5, 2); +x_19 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__4; +lean_inc(x_18); +x_20 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_20, 0, x_12); +lean_ctor_set(x_20, 1, x_19); +lean_ctor_set(x_20, 2, x_17); +lean_ctor_set(x_20, 3, x_18); +x_21 = lean_alloc_ctor(6, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_1); +lean_inc(x_8); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_8); +lean_ctor_set(x_22, 1, x_21); +lean_ctor_set_tag(x_13, 1); +lean_ctor_set(x_13, 0, x_22); +return x_13; +} +else +{ +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; lean_object* x_32; +x_23 = lean_ctor_get(x_13, 0); +x_24 = lean_ctor_get(x_13, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_13); +x_25 = lean_ctor_get(x_23, 0); +lean_inc(x_25); +lean_dec(x_23); +x_26 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_25); +x_27 = lean_ctor_get(x_5, 2); +x_28 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__4; +lean_inc(x_27); +x_29 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_29, 0, x_12); +lean_ctor_set(x_29, 1, x_28); +lean_ctor_set(x_29, 2, x_26); +lean_ctor_set(x_29, 3, x_27); +x_30 = lean_alloc_ctor(6, 2, 0); +lean_ctor_set(x_30, 0, x_29); +lean_ctor_set(x_30, 1, x_1); +lean_inc(x_8); +x_31 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_31, 0, x_8); +lean_ctor_set(x_31, 1, x_30); +x_32 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_32, 0, x_31); +lean_ctor_set(x_32, 1, x_24); +return x_32; +} +} +} +static lean_object* _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("unknown constant '", 18); +return x_1; +} +} +static lean_object* _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("'", 1); +return x_1; +} +} +static lean_object* _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__3; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__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) { +_start: +{ +lean_object* x_8; uint8_t x_9; +x_8 = lean_st_ref_get(x_6, x_7); +x_9 = !lean_is_exclusive(x_8); +if (x_9 == 0) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = lean_ctor_get(x_8, 0); +x_11 = lean_ctor_get(x_8, 1); +x_12 = lean_ctor_get(x_10, 0); +lean_inc(x_12); +lean_dec(x_10); +lean_inc(x_1); +x_13 = lean_environment_find(x_12, x_1); +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_19; lean_object* x_20; lean_object* x_21; +lean_free_object(x_8); +x_14 = lean_box(0); +x_15 = l_Lean_Expr_const___override(x_1, x_14); +x_16 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_16, 0, x_15); +x_17 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__2; +x_18 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_18, 0, x_17); +lean_ctor_set(x_18, 1, x_16); +x_19 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__4; +x_20 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_20, 0, x_18); +lean_ctor_set(x_20, 1, x_19); +x_21 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3(x_20, x_2, x_3, x_4, x_5, x_6, x_11); +return x_21; +} +else +{ +lean_object* x_22; +lean_dec(x_1); +x_22 = lean_ctor_get(x_13, 0); +lean_inc(x_22); +lean_dec(x_13); +lean_ctor_set(x_8, 0, x_22); +return x_8; +} +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_23 = lean_ctor_get(x_8, 0); +x_24 = lean_ctor_get(x_8, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_8); +x_25 = lean_ctor_get(x_23, 0); +lean_inc(x_25); +lean_dec(x_23); +lean_inc(x_1); +x_26 = lean_environment_find(x_25, x_1); +if (lean_obj_tag(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; +x_27 = lean_box(0); +x_28 = l_Lean_Expr_const___override(x_1, x_27); +x_29 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_29, 0, x_28); +x_30 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___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_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___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 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3(x_33, x_2, x_3, x_4, x_5, x_6, x_24); +return x_34; +} +else +{ +lean_object* x_35; lean_object* x_36; +lean_dec(x_1); +x_35 = lean_ctor_get(x_26, 0); +lean_inc(x_35); +lean_dec(x_26); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_35); +lean_ctor_set(x_36, 1, x_24); +return x_36; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__4(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; +x_8 = lean_ctor_get(x_5, 5); +x_9 = lean_st_ref_get(x_6, x_7); +x_10 = lean_ctor_get(x_9, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = lean_ctor_get(x_10, 0); +lean_inc(x_12); +lean_dec(x_10); +x_13 = lean_st_ref_get(x_4, x_11); +x_14 = !lean_is_exclusive(x_13); +if (x_14 == 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; lean_object* x_22; +x_15 = lean_ctor_get(x_13, 0); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +lean_dec(x_15); +x_17 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_16); +x_18 = lean_ctor_get(x_5, 2); +x_19 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__4; +lean_inc(x_18); +x_20 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_20, 0, x_12); +lean_ctor_set(x_20, 1, x_19); +lean_ctor_set(x_20, 2, x_17); +lean_ctor_set(x_20, 3, x_18); +x_21 = lean_alloc_ctor(6, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_1); +lean_inc(x_8); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_8); +lean_ctor_set(x_22, 1, x_21); +lean_ctor_set_tag(x_13, 1); +lean_ctor_set(x_13, 0, x_22); +return x_13; +} +else +{ +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; lean_object* x_32; +x_23 = lean_ctor_get(x_13, 0); +x_24 = lean_ctor_get(x_13, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_13); +x_25 = lean_ctor_get(x_23, 0); +lean_inc(x_25); +lean_dec(x_23); +x_26 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_25); +x_27 = lean_ctor_get(x_5, 2); +x_28 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__4; +lean_inc(x_27); +x_29 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_29, 0, x_12); +lean_ctor_set(x_29, 1, x_28); +lean_ctor_set(x_29, 2, x_26); +lean_ctor_set(x_29, 3, x_27); +x_30 = lean_alloc_ctor(6, 2, 0); +lean_ctor_set(x_30, 0, x_29); +lean_ctor_set(x_30, 1, x_1); +lean_inc(x_8); +x_31 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_31, 0, x_8); +lean_ctor_set(x_31, 1, x_30); +x_32 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_32, 0, x_31); +lean_ctor_set(x_32, 1, x_24); +return x_32; +} +} +} +static lean_object* _init_l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("' is not a constructor", 22); +return x_1; +} +} +static lean_object* _init_l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__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: +{ +lean_object* x_8; +lean_inc(x_1); +x_8 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_8) == 0) +{ +lean_object* x_9; +x_9 = lean_ctor_get(x_8, 0); +lean_inc(x_9); +if (lean_obj_tag(x_9) == 6) +{ +uint8_t x_10; +lean_dec(x_1); +x_10 = !lean_is_exclusive(x_8); +if (x_10 == 0) +{ +lean_object* x_11; lean_object* x_12; +x_11 = lean_ctor_get(x_8, 0); +lean_dec(x_11); +x_12 = lean_ctor_get(x_9, 0); +lean_inc(x_12); +lean_dec(x_9); +lean_ctor_set(x_8, 0, x_12); +return x_8; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_13 = lean_ctor_get(x_8, 1); +lean_inc(x_13); +lean_dec(x_8); +x_14 = lean_ctor_get(x_9, 0); +lean_inc(x_14); +lean_dec(x_9); +x_15 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_13); +return x_15; +} +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +lean_dec(x_9); +x_16 = lean_ctor_get(x_8, 1); +lean_inc(x_16); +lean_dec(x_8); +x_17 = lean_box(0); +x_18 = l_Lean_Expr_const___override(x_1, x_17); +x_19 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_19, 0, x_18); +x_20 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__4; +x_21 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_19); +x_22 = l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1___closed__2; +x_23 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_23, 0, x_21); +lean_ctor_set(x_23, 1, x_22); +x_24 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__4(x_23, x_2, x_3, x_4, x_5, x_6, x_16); +return x_24; +} +} +else +{ +uint8_t x_25; +lean_dec(x_1); +x_25 = !lean_is_exclusive(x_8); +if (x_25 == 0) +{ +return x_8; +} +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_8, 0); +x_27 = lean_ctor_get(x_8, 1); +lean_inc(x_27); +lean_inc(x_26); +lean_dec(x_8); +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_EXPORT lean_object* l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; uint8_t x_5; lean_object* x_6; +x_4 = lean_box(0); +x_5 = 0; +x_6 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_6, 0, x_4); +lean_ctor_set(x_6, 1, x_2); +lean_ctor_set(x_6, 2, x_3); +lean_ctor_set(x_6, 3, x_4); +lean_ctor_set_uint8(x_6, sizeof(void*)*4, x_5); +return x_6; +} +else +{ +uint8_t x_7; +x_7 = lean_ctor_get_uint8(x_1, sizeof(void*)*4); +if (x_7 == 0) +{ +uint8_t x_8; +x_8 = !lean_is_exclusive(x_1); +if (x_8 == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_9 = lean_ctor_get(x_1, 0); +x_10 = lean_ctor_get(x_1, 1); +x_11 = lean_ctor_get(x_1, 2); +x_12 = lean_ctor_get(x_1, 3); +x_13 = l_Lean_Name_quickCmp(x_2, x_10); +switch (x_13) { +case 0: +{ +lean_object* x_14; uint8_t x_15; +x_14 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__6(x_9, x_2, x_3); +x_15 = 0; +lean_ctor_set(x_1, 0, x_14); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_15); +return x_1; +} +case 1: +{ +uint8_t x_16; +lean_dec(x_11); +lean_dec(x_10); +x_16 = 0; +lean_ctor_set(x_1, 2, x_3); +lean_ctor_set(x_1, 1, x_2); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_16); +return x_1; +} +default: +{ +lean_object* x_17; uint8_t x_18; +x_17 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__6(x_12, x_2, x_3); +x_18 = 0; +lean_ctor_set(x_1, 3, x_17); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_18); +return x_1; +} +} +} +else +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; +x_19 = lean_ctor_get(x_1, 0); +x_20 = lean_ctor_get(x_1, 1); +x_21 = lean_ctor_get(x_1, 2); +x_22 = lean_ctor_get(x_1, 3); +lean_inc(x_22); +lean_inc(x_21); +lean_inc(x_20); +lean_inc(x_19); +lean_dec(x_1); +x_23 = l_Lean_Name_quickCmp(x_2, x_20); +switch (x_23) { +case 0: +{ +lean_object* x_24; uint8_t x_25; lean_object* x_26; +x_24 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__6(x_19, x_2, x_3); +x_25 = 0; +x_26 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_26, 0, x_24); +lean_ctor_set(x_26, 1, x_20); +lean_ctor_set(x_26, 2, x_21); +lean_ctor_set(x_26, 3, x_22); +lean_ctor_set_uint8(x_26, sizeof(void*)*4, x_25); +return x_26; +} +case 1: +{ +uint8_t x_27; lean_object* x_28; +lean_dec(x_21); +lean_dec(x_20); +x_27 = 0; +x_28 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_28, 0, x_19); +lean_ctor_set(x_28, 1, x_2); +lean_ctor_set(x_28, 2, x_3); +lean_ctor_set(x_28, 3, x_22); +lean_ctor_set_uint8(x_28, sizeof(void*)*4, x_27); +return x_28; +} +default: +{ +lean_object* x_29; uint8_t x_30; lean_object* x_31; +x_29 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__6(x_22, x_2, x_3); +x_30 = 0; +x_31 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_31, 0, x_19); +lean_ctor_set(x_31, 1, x_20); +lean_ctor_set(x_31, 2, x_21); +lean_ctor_set(x_31, 3, x_29); +lean_ctor_set_uint8(x_31, sizeof(void*)*4, x_30); +return x_31; +} +} +} +} +else +{ +uint8_t x_32; +x_32 = !lean_is_exclusive(x_1); +if (x_32 == 0) +{ +lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; uint8_t x_37; +x_33 = lean_ctor_get(x_1, 0); +x_34 = lean_ctor_get(x_1, 1); +x_35 = lean_ctor_get(x_1, 2); +x_36 = lean_ctor_get(x_1, 3); +x_37 = l_Lean_Name_quickCmp(x_2, x_34); +switch (x_37) { +case 0: +{ +lean_object* x_38; uint8_t x_39; +x_38 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__6(x_33, x_2, x_3); +x_39 = lean_ctor_get_uint8(x_38, sizeof(void*)*4); +if (x_39 == 0) +{ +lean_object* x_40; +x_40 = lean_ctor_get(x_38, 0); +lean_inc(x_40); +if (lean_obj_tag(x_40) == 0) +{ +lean_object* x_41; +x_41 = lean_ctor_get(x_38, 3); +lean_inc(x_41); +if (lean_obj_tag(x_41) == 0) +{ +uint8_t x_42; +x_42 = !lean_is_exclusive(x_38); +if (x_42 == 0) +{ +lean_object* x_43; lean_object* x_44; uint8_t x_45; +x_43 = lean_ctor_get(x_38, 3); +lean_dec(x_43); +x_44 = lean_ctor_get(x_38, 0); +lean_dec(x_44); +lean_ctor_set(x_38, 0, x_41); +x_45 = 1; +lean_ctor_set(x_1, 0, x_38); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_45); +return x_1; +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; uint8_t x_49; +x_46 = lean_ctor_get(x_38, 1); +x_47 = lean_ctor_get(x_38, 2); +lean_inc(x_47); +lean_inc(x_46); +lean_dec(x_38); +x_48 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_48, 0, x_41); +lean_ctor_set(x_48, 1, x_46); +lean_ctor_set(x_48, 2, x_47); +lean_ctor_set(x_48, 3, x_41); +lean_ctor_set_uint8(x_48, sizeof(void*)*4, x_39); +x_49 = 1; +lean_ctor_set(x_1, 0, x_48); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_49); +return x_1; +} +} +else +{ +uint8_t x_50; +x_50 = lean_ctor_get_uint8(x_41, sizeof(void*)*4); +if (x_50 == 0) +{ +uint8_t x_51; +x_51 = !lean_is_exclusive(x_38); +if (x_51 == 0) +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; uint8_t x_56; +x_52 = lean_ctor_get(x_38, 1); +x_53 = lean_ctor_get(x_38, 2); +x_54 = lean_ctor_get(x_38, 3); +lean_dec(x_54); +x_55 = lean_ctor_get(x_38, 0); +lean_dec(x_55); +x_56 = !lean_is_exclusive(x_41); +if (x_56 == 0) +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; uint8_t x_61; uint8_t x_62; +x_57 = lean_ctor_get(x_41, 0); +x_58 = lean_ctor_get(x_41, 1); +x_59 = lean_ctor_get(x_41, 2); +x_60 = lean_ctor_get(x_41, 3); +x_61 = 1; +lean_ctor_set(x_41, 3, x_57); +lean_ctor_set(x_41, 2, x_53); +lean_ctor_set(x_41, 1, x_52); +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set_uint8(x_41, sizeof(void*)*4, x_61); +lean_ctor_set(x_38, 3, x_36); +lean_ctor_set(x_38, 2, x_35); +lean_ctor_set(x_38, 1, x_34); +lean_ctor_set(x_38, 0, x_60); +lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_61); +x_62 = 0; +lean_ctor_set(x_1, 3, x_38); +lean_ctor_set(x_1, 2, x_59); +lean_ctor_set(x_1, 1, x_58); +lean_ctor_set(x_1, 0, x_41); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_62); +return x_1; +} +else +{ +lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; uint8_t x_67; lean_object* x_68; uint8_t x_69; +x_63 = lean_ctor_get(x_41, 0); +x_64 = lean_ctor_get(x_41, 1); +x_65 = lean_ctor_get(x_41, 2); +x_66 = lean_ctor_get(x_41, 3); +lean_inc(x_66); +lean_inc(x_65); +lean_inc(x_64); +lean_inc(x_63); +lean_dec(x_41); +x_67 = 1; +x_68 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_68, 0, x_40); +lean_ctor_set(x_68, 1, x_52); +lean_ctor_set(x_68, 2, x_53); +lean_ctor_set(x_68, 3, x_63); +lean_ctor_set_uint8(x_68, sizeof(void*)*4, x_67); +lean_ctor_set(x_38, 3, x_36); +lean_ctor_set(x_38, 2, x_35); +lean_ctor_set(x_38, 1, x_34); +lean_ctor_set(x_38, 0, x_66); +lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_67); +x_69 = 0; +lean_ctor_set(x_1, 3, x_38); +lean_ctor_set(x_1, 2, x_65); +lean_ctor_set(x_1, 1, x_64); +lean_ctor_set(x_1, 0, x_68); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_69); +return x_1; +} +} +else +{ +lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; uint8_t x_77; lean_object* x_78; lean_object* x_79; uint8_t x_80; +x_70 = lean_ctor_get(x_38, 1); +x_71 = lean_ctor_get(x_38, 2); +lean_inc(x_71); +lean_inc(x_70); +lean_dec(x_38); +x_72 = lean_ctor_get(x_41, 0); +lean_inc(x_72); +x_73 = lean_ctor_get(x_41, 1); +lean_inc(x_73); +x_74 = lean_ctor_get(x_41, 2); +lean_inc(x_74); +x_75 = lean_ctor_get(x_41, 3); +lean_inc(x_75); +if (lean_is_exclusive(x_41)) { + lean_ctor_release(x_41, 0); + lean_ctor_release(x_41, 1); + lean_ctor_release(x_41, 2); + lean_ctor_release(x_41, 3); + x_76 = x_41; +} else { + lean_dec_ref(x_41); + x_76 = lean_box(0); +} +x_77 = 1; +if (lean_is_scalar(x_76)) { + x_78 = lean_alloc_ctor(1, 4, 1); +} else { + x_78 = x_76; +} +lean_ctor_set(x_78, 0, x_40); +lean_ctor_set(x_78, 1, x_70); +lean_ctor_set(x_78, 2, x_71); +lean_ctor_set(x_78, 3, x_72); +lean_ctor_set_uint8(x_78, sizeof(void*)*4, x_77); +x_79 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_79, 0, x_75); +lean_ctor_set(x_79, 1, x_34); +lean_ctor_set(x_79, 2, x_35); +lean_ctor_set(x_79, 3, x_36); +lean_ctor_set_uint8(x_79, sizeof(void*)*4, x_77); +x_80 = 0; +lean_ctor_set(x_1, 3, x_79); +lean_ctor_set(x_1, 2, x_74); +lean_ctor_set(x_1, 1, x_73); +lean_ctor_set(x_1, 0, x_78); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_80); +return x_1; +} +} +else +{ +uint8_t x_81; +lean_free_object(x_1); +x_81 = !lean_is_exclusive(x_41); +if (x_81 == 0) +{ +lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; uint8_t x_86; +x_82 = lean_ctor_get(x_41, 3); +lean_dec(x_82); +x_83 = lean_ctor_get(x_41, 2); +lean_dec(x_83); +x_84 = lean_ctor_get(x_41, 1); +lean_dec(x_84); +x_85 = lean_ctor_get(x_41, 0); +lean_dec(x_85); +x_86 = 1; +lean_ctor_set(x_41, 3, x_36); +lean_ctor_set(x_41, 2, x_35); +lean_ctor_set(x_41, 1, x_34); +lean_ctor_set(x_41, 0, x_38); +lean_ctor_set_uint8(x_41, sizeof(void*)*4, x_86); +return x_41; +} +else +{ +uint8_t x_87; lean_object* x_88; +lean_dec(x_41); +x_87 = 1; +x_88 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_88, 0, x_38); +lean_ctor_set(x_88, 1, x_34); +lean_ctor_set(x_88, 2, x_35); +lean_ctor_set(x_88, 3, x_36); +lean_ctor_set_uint8(x_88, sizeof(void*)*4, x_87); +return x_88; +} +} +} +} +else +{ +uint8_t x_89; +x_89 = lean_ctor_get_uint8(x_40, sizeof(void*)*4); +if (x_89 == 0) +{ +uint8_t x_90; +x_90 = !lean_is_exclusive(x_38); +if (x_90 == 0) +{ +lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; uint8_t x_95; +x_91 = lean_ctor_get(x_38, 1); +x_92 = lean_ctor_get(x_38, 2); +x_93 = lean_ctor_get(x_38, 3); +x_94 = lean_ctor_get(x_38, 0); +lean_dec(x_94); +x_95 = !lean_is_exclusive(x_40); +if (x_95 == 0) +{ +uint8_t x_96; uint8_t x_97; +x_96 = 1; +lean_ctor_set_uint8(x_40, sizeof(void*)*4, x_96); +lean_ctor_set(x_38, 3, x_36); +lean_ctor_set(x_38, 2, x_35); +lean_ctor_set(x_38, 1, x_34); +lean_ctor_set(x_38, 0, x_93); +lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_96); +x_97 = 0; +lean_ctor_set(x_1, 3, x_38); +lean_ctor_set(x_1, 2, x_92); +lean_ctor_set(x_1, 1, x_91); +lean_ctor_set(x_1, 0, x_40); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_97); +return x_1; +} +else +{ +lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; uint8_t x_102; lean_object* x_103; uint8_t x_104; +x_98 = lean_ctor_get(x_40, 0); +x_99 = lean_ctor_get(x_40, 1); +x_100 = lean_ctor_get(x_40, 2); +x_101 = lean_ctor_get(x_40, 3); +lean_inc(x_101); +lean_inc(x_100); +lean_inc(x_99); +lean_inc(x_98); +lean_dec(x_40); +x_102 = 1; +x_103 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_103, 0, x_98); +lean_ctor_set(x_103, 1, x_99); +lean_ctor_set(x_103, 2, x_100); +lean_ctor_set(x_103, 3, x_101); +lean_ctor_set_uint8(x_103, sizeof(void*)*4, x_102); +lean_ctor_set(x_38, 3, x_36); +lean_ctor_set(x_38, 2, x_35); +lean_ctor_set(x_38, 1, x_34); +lean_ctor_set(x_38, 0, x_93); +lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_102); +x_104 = 0; +lean_ctor_set(x_1, 3, x_38); +lean_ctor_set(x_1, 2, x_92); +lean_ctor_set(x_1, 1, x_91); +lean_ctor_set(x_1, 0, x_103); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_104); +return x_1; +} +} +else +{ +lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; uint8_t x_113; lean_object* x_114; lean_object* x_115; uint8_t x_116; +x_105 = lean_ctor_get(x_38, 1); +x_106 = lean_ctor_get(x_38, 2); +x_107 = lean_ctor_get(x_38, 3); +lean_inc(x_107); +lean_inc(x_106); +lean_inc(x_105); +lean_dec(x_38); +x_108 = lean_ctor_get(x_40, 0); +lean_inc(x_108); +x_109 = lean_ctor_get(x_40, 1); +lean_inc(x_109); +x_110 = lean_ctor_get(x_40, 2); +lean_inc(x_110); +x_111 = lean_ctor_get(x_40, 3); +lean_inc(x_111); +if (lean_is_exclusive(x_40)) { + lean_ctor_release(x_40, 0); + lean_ctor_release(x_40, 1); + lean_ctor_release(x_40, 2); + lean_ctor_release(x_40, 3); + x_112 = x_40; +} else { + lean_dec_ref(x_40); + x_112 = lean_box(0); +} +x_113 = 1; +if (lean_is_scalar(x_112)) { + x_114 = lean_alloc_ctor(1, 4, 1); +} else { + x_114 = x_112; +} +lean_ctor_set(x_114, 0, x_108); +lean_ctor_set(x_114, 1, x_109); +lean_ctor_set(x_114, 2, x_110); +lean_ctor_set(x_114, 3, x_111); +lean_ctor_set_uint8(x_114, sizeof(void*)*4, x_113); +x_115 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_115, 0, x_107); +lean_ctor_set(x_115, 1, x_34); +lean_ctor_set(x_115, 2, x_35); +lean_ctor_set(x_115, 3, x_36); +lean_ctor_set_uint8(x_115, sizeof(void*)*4, x_113); +x_116 = 0; +lean_ctor_set(x_1, 3, x_115); +lean_ctor_set(x_1, 2, x_106); +lean_ctor_set(x_1, 1, x_105); +lean_ctor_set(x_1, 0, x_114); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_116); +return x_1; +} +} +else +{ +lean_object* x_117; +x_117 = lean_ctor_get(x_38, 3); +lean_inc(x_117); +if (lean_obj_tag(x_117) == 0) +{ +uint8_t x_118; +lean_free_object(x_1); +x_118 = !lean_is_exclusive(x_40); +if (x_118 == 0) +{ +lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; uint8_t x_123; +x_119 = lean_ctor_get(x_40, 3); +lean_dec(x_119); +x_120 = lean_ctor_get(x_40, 2); +lean_dec(x_120); +x_121 = lean_ctor_get(x_40, 1); +lean_dec(x_121); +x_122 = lean_ctor_get(x_40, 0); +lean_dec(x_122); +x_123 = 1; +lean_ctor_set(x_40, 3, x_36); +lean_ctor_set(x_40, 2, x_35); +lean_ctor_set(x_40, 1, x_34); +lean_ctor_set(x_40, 0, x_38); +lean_ctor_set_uint8(x_40, sizeof(void*)*4, x_123); +return x_40; +} +else +{ +uint8_t x_124; lean_object* x_125; +lean_dec(x_40); +x_124 = 1; +x_125 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_125, 0, x_38); +lean_ctor_set(x_125, 1, x_34); +lean_ctor_set(x_125, 2, x_35); +lean_ctor_set(x_125, 3, x_36); +lean_ctor_set_uint8(x_125, sizeof(void*)*4, x_124); +return x_125; +} +} +else +{ +uint8_t x_126; +x_126 = lean_ctor_get_uint8(x_117, sizeof(void*)*4); +if (x_126 == 0) +{ +uint8_t x_127; +lean_free_object(x_1); +x_127 = !lean_is_exclusive(x_38); +if (x_127 == 0) +{ +lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; uint8_t x_132; +x_128 = lean_ctor_get(x_38, 1); +x_129 = lean_ctor_get(x_38, 2); +x_130 = lean_ctor_get(x_38, 3); +lean_dec(x_130); +x_131 = lean_ctor_get(x_38, 0); +lean_dec(x_131); +x_132 = !lean_is_exclusive(x_117); +if (x_132 == 0) +{ +lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; uint8_t x_137; uint8_t x_138; +x_133 = lean_ctor_get(x_117, 0); +x_134 = lean_ctor_get(x_117, 1); +x_135 = lean_ctor_get(x_117, 2); +x_136 = lean_ctor_get(x_117, 3); +x_137 = 1; +lean_inc(x_40); +lean_ctor_set(x_117, 3, x_133); +lean_ctor_set(x_117, 2, x_129); +lean_ctor_set(x_117, 1, x_128); +lean_ctor_set(x_117, 0, x_40); +x_138 = !lean_is_exclusive(x_40); +if (x_138 == 0) +{ +lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; uint8_t x_143; +x_139 = lean_ctor_get(x_40, 3); +lean_dec(x_139); +x_140 = lean_ctor_get(x_40, 2); +lean_dec(x_140); +x_141 = lean_ctor_get(x_40, 1); +lean_dec(x_141); +x_142 = lean_ctor_get(x_40, 0); +lean_dec(x_142); +lean_ctor_set_uint8(x_117, sizeof(void*)*4, x_137); +lean_ctor_set(x_40, 3, x_36); +lean_ctor_set(x_40, 2, x_35); +lean_ctor_set(x_40, 1, x_34); +lean_ctor_set(x_40, 0, x_136); +lean_ctor_set_uint8(x_40, sizeof(void*)*4, x_137); +x_143 = 0; +lean_ctor_set(x_38, 3, x_40); +lean_ctor_set(x_38, 2, x_135); +lean_ctor_set(x_38, 1, x_134); +lean_ctor_set(x_38, 0, x_117); +lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_143); +return x_38; +} +else +{ +lean_object* x_144; uint8_t x_145; +lean_dec(x_40); +lean_ctor_set_uint8(x_117, sizeof(void*)*4, x_137); +x_144 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_144, 0, x_136); +lean_ctor_set(x_144, 1, x_34); +lean_ctor_set(x_144, 2, x_35); +lean_ctor_set(x_144, 3, x_36); +lean_ctor_set_uint8(x_144, sizeof(void*)*4, x_137); +x_145 = 0; +lean_ctor_set(x_38, 3, x_144); +lean_ctor_set(x_38, 2, x_135); +lean_ctor_set(x_38, 1, x_134); +lean_ctor_set(x_38, 0, x_117); +lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_145); +return x_38; +} +} +else +{ +lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; uint8_t x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; uint8_t x_154; +x_146 = lean_ctor_get(x_117, 0); +x_147 = lean_ctor_get(x_117, 1); +x_148 = lean_ctor_get(x_117, 2); +x_149 = lean_ctor_get(x_117, 3); +lean_inc(x_149); +lean_inc(x_148); +lean_inc(x_147); +lean_inc(x_146); +lean_dec(x_117); +x_150 = 1; +lean_inc(x_40); +x_151 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_151, 0, x_40); +lean_ctor_set(x_151, 1, x_128); +lean_ctor_set(x_151, 2, x_129); +lean_ctor_set(x_151, 3, x_146); +if (lean_is_exclusive(x_40)) { + lean_ctor_release(x_40, 0); + lean_ctor_release(x_40, 1); + lean_ctor_release(x_40, 2); + lean_ctor_release(x_40, 3); + x_152 = x_40; +} else { + lean_dec_ref(x_40); + x_152 = lean_box(0); +} +lean_ctor_set_uint8(x_151, sizeof(void*)*4, x_150); +if (lean_is_scalar(x_152)) { + x_153 = lean_alloc_ctor(1, 4, 1); +} else { + x_153 = x_152; +} +lean_ctor_set(x_153, 0, x_149); +lean_ctor_set(x_153, 1, x_34); +lean_ctor_set(x_153, 2, x_35); +lean_ctor_set(x_153, 3, x_36); +lean_ctor_set_uint8(x_153, sizeof(void*)*4, x_150); +x_154 = 0; +lean_ctor_set(x_38, 3, x_153); +lean_ctor_set(x_38, 2, x_148); +lean_ctor_set(x_38, 1, x_147); +lean_ctor_set(x_38, 0, x_151); +lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_154); +return x_38; +} +} +else +{ +lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; uint8_t x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; uint8_t x_166; lean_object* x_167; +x_155 = lean_ctor_get(x_38, 1); +x_156 = lean_ctor_get(x_38, 2); +lean_inc(x_156); +lean_inc(x_155); +lean_dec(x_38); +x_157 = lean_ctor_get(x_117, 0); +lean_inc(x_157); +x_158 = lean_ctor_get(x_117, 1); +lean_inc(x_158); +x_159 = lean_ctor_get(x_117, 2); +lean_inc(x_159); +x_160 = lean_ctor_get(x_117, 3); +lean_inc(x_160); +if (lean_is_exclusive(x_117)) { + lean_ctor_release(x_117, 0); + lean_ctor_release(x_117, 1); + lean_ctor_release(x_117, 2); + lean_ctor_release(x_117, 3); + x_161 = x_117; +} else { + lean_dec_ref(x_117); + x_161 = lean_box(0); +} +x_162 = 1; +lean_inc(x_40); +if (lean_is_scalar(x_161)) { + x_163 = lean_alloc_ctor(1, 4, 1); +} else { + x_163 = x_161; +} +lean_ctor_set(x_163, 0, x_40); +lean_ctor_set(x_163, 1, x_155); +lean_ctor_set(x_163, 2, x_156); +lean_ctor_set(x_163, 3, x_157); +if (lean_is_exclusive(x_40)) { + lean_ctor_release(x_40, 0); + lean_ctor_release(x_40, 1); + lean_ctor_release(x_40, 2); + lean_ctor_release(x_40, 3); + x_164 = x_40; +} else { + lean_dec_ref(x_40); + x_164 = lean_box(0); +} +lean_ctor_set_uint8(x_163, sizeof(void*)*4, x_162); +if (lean_is_scalar(x_164)) { + x_165 = lean_alloc_ctor(1, 4, 1); +} else { + x_165 = x_164; +} +lean_ctor_set(x_165, 0, x_160); +lean_ctor_set(x_165, 1, x_34); +lean_ctor_set(x_165, 2, x_35); +lean_ctor_set(x_165, 3, x_36); +lean_ctor_set_uint8(x_165, sizeof(void*)*4, x_162); +x_166 = 0; +x_167 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_167, 0, x_163); +lean_ctor_set(x_167, 1, x_158); +lean_ctor_set(x_167, 2, x_159); +lean_ctor_set(x_167, 3, x_165); +lean_ctor_set_uint8(x_167, sizeof(void*)*4, x_166); +return x_167; +} +} +else +{ +uint8_t x_168; +x_168 = !lean_is_exclusive(x_38); +if (x_168 == 0) +{ +lean_object* x_169; lean_object* x_170; uint8_t x_171; +x_169 = lean_ctor_get(x_38, 3); +lean_dec(x_169); +x_170 = lean_ctor_get(x_38, 0); +lean_dec(x_170); +x_171 = !lean_is_exclusive(x_40); +if (x_171 == 0) +{ +uint8_t x_172; +lean_ctor_set_uint8(x_40, sizeof(void*)*4, x_126); +x_172 = 1; +lean_ctor_set(x_1, 0, x_38); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_172); +return x_1; +} +else +{ +lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; uint8_t x_178; +x_173 = lean_ctor_get(x_40, 0); +x_174 = lean_ctor_get(x_40, 1); +x_175 = lean_ctor_get(x_40, 2); +x_176 = lean_ctor_get(x_40, 3); +lean_inc(x_176); +lean_inc(x_175); +lean_inc(x_174); +lean_inc(x_173); +lean_dec(x_40); +x_177 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_177, 0, x_173); +lean_ctor_set(x_177, 1, x_174); +lean_ctor_set(x_177, 2, x_175); +lean_ctor_set(x_177, 3, x_176); +lean_ctor_set_uint8(x_177, sizeof(void*)*4, x_126); +lean_ctor_set(x_38, 0, x_177); +x_178 = 1; +lean_ctor_set(x_1, 0, x_38); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_178); +return x_1; +} +} +else +{ +lean_object* x_179; lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; uint8_t x_188; +x_179 = lean_ctor_get(x_38, 1); +x_180 = lean_ctor_get(x_38, 2); +lean_inc(x_180); +lean_inc(x_179); +lean_dec(x_38); +x_181 = lean_ctor_get(x_40, 0); +lean_inc(x_181); +x_182 = lean_ctor_get(x_40, 1); +lean_inc(x_182); +x_183 = lean_ctor_get(x_40, 2); +lean_inc(x_183); +x_184 = lean_ctor_get(x_40, 3); +lean_inc(x_184); +if (lean_is_exclusive(x_40)) { + lean_ctor_release(x_40, 0); + lean_ctor_release(x_40, 1); + lean_ctor_release(x_40, 2); + lean_ctor_release(x_40, 3); + x_185 = x_40; +} else { + lean_dec_ref(x_40); + x_185 = lean_box(0); +} +if (lean_is_scalar(x_185)) { + x_186 = lean_alloc_ctor(1, 4, 1); +} else { + x_186 = x_185; +} +lean_ctor_set(x_186, 0, x_181); +lean_ctor_set(x_186, 1, x_182); +lean_ctor_set(x_186, 2, x_183); +lean_ctor_set(x_186, 3, x_184); +lean_ctor_set_uint8(x_186, sizeof(void*)*4, x_126); +x_187 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_187, 0, x_186); +lean_ctor_set(x_187, 1, x_179); +lean_ctor_set(x_187, 2, x_180); +lean_ctor_set(x_187, 3, x_117); +lean_ctor_set_uint8(x_187, sizeof(void*)*4, x_39); +x_188 = 1; +lean_ctor_set(x_1, 0, x_187); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_188); +return x_1; +} +} +} +} +} +} +else +{ +uint8_t x_189; +x_189 = 1; +lean_ctor_set(x_1, 0, x_38); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_189); +return x_1; +} +} +case 1: +{ +uint8_t x_190; +lean_dec(x_35); +lean_dec(x_34); +x_190 = 1; +lean_ctor_set(x_1, 2, x_3); +lean_ctor_set(x_1, 1, x_2); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_190); +return x_1; +} +default: +{ +lean_object* x_191; uint8_t x_192; +x_191 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__6(x_36, x_2, x_3); +x_192 = lean_ctor_get_uint8(x_191, sizeof(void*)*4); +if (x_192 == 0) +{ +lean_object* x_193; +x_193 = lean_ctor_get(x_191, 0); +lean_inc(x_193); +if (lean_obj_tag(x_193) == 0) +{ +lean_object* x_194; +x_194 = lean_ctor_get(x_191, 3); +lean_inc(x_194); +if (lean_obj_tag(x_194) == 0) +{ +uint8_t x_195; +x_195 = !lean_is_exclusive(x_191); +if (x_195 == 0) +{ +lean_object* x_196; lean_object* x_197; uint8_t x_198; +x_196 = lean_ctor_get(x_191, 3); +lean_dec(x_196); +x_197 = lean_ctor_get(x_191, 0); +lean_dec(x_197); +lean_ctor_set(x_191, 0, x_194); +x_198 = 1; +lean_ctor_set(x_1, 3, x_191); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_198); +return x_1; +} +else +{ +lean_object* x_199; lean_object* x_200; lean_object* x_201; uint8_t x_202; +x_199 = lean_ctor_get(x_191, 1); +x_200 = lean_ctor_get(x_191, 2); +lean_inc(x_200); +lean_inc(x_199); +lean_dec(x_191); +x_201 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_201, 0, x_194); +lean_ctor_set(x_201, 1, x_199); +lean_ctor_set(x_201, 2, x_200); +lean_ctor_set(x_201, 3, x_194); +lean_ctor_set_uint8(x_201, sizeof(void*)*4, x_192); +x_202 = 1; +lean_ctor_set(x_1, 3, x_201); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_202); +return x_1; +} +} +else +{ +uint8_t x_203; +x_203 = lean_ctor_get_uint8(x_194, sizeof(void*)*4); +if (x_203 == 0) +{ +uint8_t x_204; +x_204 = !lean_is_exclusive(x_191); +if (x_204 == 0) +{ +lean_object* x_205; lean_object* x_206; lean_object* x_207; lean_object* x_208; uint8_t x_209; +x_205 = lean_ctor_get(x_191, 1); +x_206 = lean_ctor_get(x_191, 2); +x_207 = lean_ctor_get(x_191, 3); +lean_dec(x_207); +x_208 = lean_ctor_get(x_191, 0); +lean_dec(x_208); +x_209 = !lean_is_exclusive(x_194); +if (x_209 == 0) +{ +lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; uint8_t x_214; uint8_t x_215; +x_210 = lean_ctor_get(x_194, 0); +x_211 = lean_ctor_get(x_194, 1); +x_212 = lean_ctor_get(x_194, 2); +x_213 = lean_ctor_get(x_194, 3); +x_214 = 1; +lean_ctor_set(x_194, 3, x_193); +lean_ctor_set(x_194, 2, x_35); +lean_ctor_set(x_194, 1, x_34); +lean_ctor_set(x_194, 0, x_33); +lean_ctor_set_uint8(x_194, sizeof(void*)*4, x_214); +lean_ctor_set(x_191, 3, x_213); +lean_ctor_set(x_191, 2, x_212); +lean_ctor_set(x_191, 1, x_211); +lean_ctor_set(x_191, 0, x_210); +lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_214); +x_215 = 0; +lean_ctor_set(x_1, 3, x_191); +lean_ctor_set(x_1, 2, x_206); +lean_ctor_set(x_1, 1, x_205); +lean_ctor_set(x_1, 0, x_194); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_215); +return x_1; +} +else +{ +lean_object* x_216; lean_object* x_217; lean_object* x_218; lean_object* x_219; uint8_t x_220; lean_object* x_221; uint8_t x_222; +x_216 = lean_ctor_get(x_194, 0); +x_217 = lean_ctor_get(x_194, 1); +x_218 = lean_ctor_get(x_194, 2); +x_219 = lean_ctor_get(x_194, 3); +lean_inc(x_219); +lean_inc(x_218); +lean_inc(x_217); +lean_inc(x_216); +lean_dec(x_194); +x_220 = 1; +x_221 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_221, 0, x_33); +lean_ctor_set(x_221, 1, x_34); +lean_ctor_set(x_221, 2, x_35); +lean_ctor_set(x_221, 3, x_193); +lean_ctor_set_uint8(x_221, sizeof(void*)*4, x_220); +lean_ctor_set(x_191, 3, x_219); +lean_ctor_set(x_191, 2, x_218); +lean_ctor_set(x_191, 1, x_217); +lean_ctor_set(x_191, 0, x_216); +lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_220); +x_222 = 0; +lean_ctor_set(x_1, 3, x_191); +lean_ctor_set(x_1, 2, x_206); +lean_ctor_set(x_1, 1, x_205); +lean_ctor_set(x_1, 0, x_221); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_222); +return x_1; +} +} +else +{ +lean_object* x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; uint8_t x_230; lean_object* x_231; lean_object* x_232; uint8_t x_233; +x_223 = lean_ctor_get(x_191, 1); +x_224 = lean_ctor_get(x_191, 2); +lean_inc(x_224); +lean_inc(x_223); +lean_dec(x_191); +x_225 = lean_ctor_get(x_194, 0); +lean_inc(x_225); +x_226 = lean_ctor_get(x_194, 1); +lean_inc(x_226); +x_227 = lean_ctor_get(x_194, 2); +lean_inc(x_227); +x_228 = lean_ctor_get(x_194, 3); +lean_inc(x_228); +if (lean_is_exclusive(x_194)) { + lean_ctor_release(x_194, 0); + lean_ctor_release(x_194, 1); + lean_ctor_release(x_194, 2); + lean_ctor_release(x_194, 3); + x_229 = x_194; +} else { + lean_dec_ref(x_194); + x_229 = lean_box(0); +} +x_230 = 1; +if (lean_is_scalar(x_229)) { + x_231 = lean_alloc_ctor(1, 4, 1); +} else { + x_231 = x_229; +} +lean_ctor_set(x_231, 0, x_33); +lean_ctor_set(x_231, 1, x_34); +lean_ctor_set(x_231, 2, x_35); +lean_ctor_set(x_231, 3, x_193); +lean_ctor_set_uint8(x_231, sizeof(void*)*4, x_230); +x_232 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_232, 0, x_225); +lean_ctor_set(x_232, 1, x_226); +lean_ctor_set(x_232, 2, x_227); +lean_ctor_set(x_232, 3, x_228); +lean_ctor_set_uint8(x_232, sizeof(void*)*4, x_230); +x_233 = 0; +lean_ctor_set(x_1, 3, x_232); +lean_ctor_set(x_1, 2, x_224); +lean_ctor_set(x_1, 1, x_223); +lean_ctor_set(x_1, 0, x_231); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_233); +return x_1; +} +} +else +{ +uint8_t x_234; +lean_free_object(x_1); +x_234 = !lean_is_exclusive(x_194); +if (x_234 == 0) +{ +lean_object* x_235; lean_object* x_236; lean_object* x_237; lean_object* x_238; uint8_t x_239; +x_235 = lean_ctor_get(x_194, 3); +lean_dec(x_235); +x_236 = lean_ctor_get(x_194, 2); +lean_dec(x_236); +x_237 = lean_ctor_get(x_194, 1); +lean_dec(x_237); +x_238 = lean_ctor_get(x_194, 0); +lean_dec(x_238); +x_239 = 1; +lean_ctor_set(x_194, 3, x_191); +lean_ctor_set(x_194, 2, x_35); +lean_ctor_set(x_194, 1, x_34); +lean_ctor_set(x_194, 0, x_33); +lean_ctor_set_uint8(x_194, sizeof(void*)*4, x_239); +return x_194; +} +else +{ +uint8_t x_240; lean_object* x_241; +lean_dec(x_194); +x_240 = 1; +x_241 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_241, 0, x_33); +lean_ctor_set(x_241, 1, x_34); +lean_ctor_set(x_241, 2, x_35); +lean_ctor_set(x_241, 3, x_191); +lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_240); +return x_241; +} +} +} +} +else +{ +uint8_t x_242; +x_242 = lean_ctor_get_uint8(x_193, sizeof(void*)*4); +if (x_242 == 0) +{ +uint8_t x_243; +x_243 = !lean_is_exclusive(x_191); +if (x_243 == 0) +{ +lean_object* x_244; uint8_t x_245; +x_244 = lean_ctor_get(x_191, 0); +lean_dec(x_244); +x_245 = !lean_is_exclusive(x_193); +if (x_245 == 0) +{ +lean_object* x_246; lean_object* x_247; lean_object* x_248; lean_object* x_249; uint8_t x_250; uint8_t x_251; +x_246 = lean_ctor_get(x_193, 0); +x_247 = lean_ctor_get(x_193, 1); +x_248 = lean_ctor_get(x_193, 2); +x_249 = lean_ctor_get(x_193, 3); +x_250 = 1; +lean_ctor_set(x_193, 3, x_246); +lean_ctor_set(x_193, 2, x_35); +lean_ctor_set(x_193, 1, x_34); +lean_ctor_set(x_193, 0, x_33); +lean_ctor_set_uint8(x_193, sizeof(void*)*4, x_250); +lean_ctor_set(x_191, 0, x_249); +lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_250); +x_251 = 0; +lean_ctor_set(x_1, 3, x_191); +lean_ctor_set(x_1, 2, x_248); +lean_ctor_set(x_1, 1, x_247); +lean_ctor_set(x_1, 0, x_193); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_251); +return x_1; +} +else +{ +lean_object* x_252; lean_object* x_253; lean_object* x_254; lean_object* x_255; uint8_t x_256; lean_object* x_257; uint8_t x_258; +x_252 = lean_ctor_get(x_193, 0); +x_253 = lean_ctor_get(x_193, 1); +x_254 = lean_ctor_get(x_193, 2); +x_255 = lean_ctor_get(x_193, 3); +lean_inc(x_255); +lean_inc(x_254); +lean_inc(x_253); +lean_inc(x_252); +lean_dec(x_193); +x_256 = 1; +x_257 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_257, 0, x_33); +lean_ctor_set(x_257, 1, x_34); +lean_ctor_set(x_257, 2, x_35); +lean_ctor_set(x_257, 3, x_252); +lean_ctor_set_uint8(x_257, sizeof(void*)*4, x_256); +lean_ctor_set(x_191, 0, x_255); +lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_256); +x_258 = 0; +lean_ctor_set(x_1, 3, x_191); +lean_ctor_set(x_1, 2, x_254); +lean_ctor_set(x_1, 1, x_253); +lean_ctor_set(x_1, 0, x_257); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_258); +return x_1; +} +} +else +{ +lean_object* x_259; lean_object* x_260; lean_object* x_261; lean_object* x_262; lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; uint8_t x_267; lean_object* x_268; lean_object* x_269; uint8_t x_270; +x_259 = lean_ctor_get(x_191, 1); +x_260 = lean_ctor_get(x_191, 2); +x_261 = lean_ctor_get(x_191, 3); +lean_inc(x_261); +lean_inc(x_260); +lean_inc(x_259); +lean_dec(x_191); +x_262 = lean_ctor_get(x_193, 0); +lean_inc(x_262); +x_263 = lean_ctor_get(x_193, 1); +lean_inc(x_263); +x_264 = lean_ctor_get(x_193, 2); +lean_inc(x_264); +x_265 = lean_ctor_get(x_193, 3); +lean_inc(x_265); +if (lean_is_exclusive(x_193)) { + lean_ctor_release(x_193, 0); + lean_ctor_release(x_193, 1); + lean_ctor_release(x_193, 2); + lean_ctor_release(x_193, 3); + x_266 = x_193; +} else { + lean_dec_ref(x_193); + x_266 = lean_box(0); +} +x_267 = 1; +if (lean_is_scalar(x_266)) { + x_268 = lean_alloc_ctor(1, 4, 1); +} else { + x_268 = x_266; +} +lean_ctor_set(x_268, 0, x_33); +lean_ctor_set(x_268, 1, x_34); +lean_ctor_set(x_268, 2, x_35); +lean_ctor_set(x_268, 3, x_262); +lean_ctor_set_uint8(x_268, sizeof(void*)*4, x_267); +x_269 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_269, 0, x_265); +lean_ctor_set(x_269, 1, x_259); +lean_ctor_set(x_269, 2, x_260); +lean_ctor_set(x_269, 3, x_261); +lean_ctor_set_uint8(x_269, sizeof(void*)*4, x_267); +x_270 = 0; +lean_ctor_set(x_1, 3, x_269); +lean_ctor_set(x_1, 2, x_264); +lean_ctor_set(x_1, 1, x_263); +lean_ctor_set(x_1, 0, x_268); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_270); +return x_1; +} +} +else +{ +lean_object* x_271; +x_271 = lean_ctor_get(x_191, 3); +lean_inc(x_271); +if (lean_obj_tag(x_271) == 0) +{ +uint8_t x_272; +lean_free_object(x_1); +x_272 = !lean_is_exclusive(x_193); +if (x_272 == 0) +{ +lean_object* x_273; lean_object* x_274; lean_object* x_275; lean_object* x_276; uint8_t x_277; +x_273 = lean_ctor_get(x_193, 3); +lean_dec(x_273); +x_274 = lean_ctor_get(x_193, 2); +lean_dec(x_274); +x_275 = lean_ctor_get(x_193, 1); +lean_dec(x_275); +x_276 = lean_ctor_get(x_193, 0); +lean_dec(x_276); +x_277 = 1; +lean_ctor_set(x_193, 3, x_191); +lean_ctor_set(x_193, 2, x_35); +lean_ctor_set(x_193, 1, x_34); +lean_ctor_set(x_193, 0, x_33); +lean_ctor_set_uint8(x_193, sizeof(void*)*4, x_277); +return x_193; +} +else +{ +uint8_t x_278; lean_object* x_279; +lean_dec(x_193); +x_278 = 1; +x_279 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_279, 0, x_33); +lean_ctor_set(x_279, 1, x_34); +lean_ctor_set(x_279, 2, x_35); +lean_ctor_set(x_279, 3, x_191); +lean_ctor_set_uint8(x_279, sizeof(void*)*4, x_278); +return x_279; +} +} +else +{ +uint8_t x_280; +x_280 = lean_ctor_get_uint8(x_271, sizeof(void*)*4); +if (x_280 == 0) +{ +uint8_t x_281; +lean_free_object(x_1); +x_281 = !lean_is_exclusive(x_191); +if (x_281 == 0) +{ +lean_object* x_282; lean_object* x_283; uint8_t x_284; +x_282 = lean_ctor_get(x_191, 3); +lean_dec(x_282); +x_283 = lean_ctor_get(x_191, 0); +lean_dec(x_283); +x_284 = !lean_is_exclusive(x_271); +if (x_284 == 0) +{ +lean_object* x_285; lean_object* x_286; lean_object* x_287; lean_object* x_288; uint8_t x_289; uint8_t x_290; +x_285 = lean_ctor_get(x_271, 0); +x_286 = lean_ctor_get(x_271, 1); +x_287 = lean_ctor_get(x_271, 2); +x_288 = lean_ctor_get(x_271, 3); +x_289 = 1; +lean_inc(x_193); +lean_ctor_set(x_271, 3, x_193); +lean_ctor_set(x_271, 2, x_35); +lean_ctor_set(x_271, 1, x_34); +lean_ctor_set(x_271, 0, x_33); +x_290 = !lean_is_exclusive(x_193); +if (x_290 == 0) +{ +lean_object* x_291; lean_object* x_292; lean_object* x_293; lean_object* x_294; uint8_t x_295; +x_291 = lean_ctor_get(x_193, 3); +lean_dec(x_291); +x_292 = lean_ctor_get(x_193, 2); +lean_dec(x_292); +x_293 = lean_ctor_get(x_193, 1); +lean_dec(x_293); +x_294 = lean_ctor_get(x_193, 0); +lean_dec(x_294); +lean_ctor_set_uint8(x_271, sizeof(void*)*4, x_289); +lean_ctor_set(x_193, 3, x_288); +lean_ctor_set(x_193, 2, x_287); +lean_ctor_set(x_193, 1, x_286); +lean_ctor_set(x_193, 0, x_285); +lean_ctor_set_uint8(x_193, sizeof(void*)*4, x_289); +x_295 = 0; +lean_ctor_set(x_191, 3, x_193); +lean_ctor_set(x_191, 0, x_271); +lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_295); +return x_191; +} +else +{ +lean_object* x_296; uint8_t x_297; +lean_dec(x_193); +lean_ctor_set_uint8(x_271, sizeof(void*)*4, x_289); +x_296 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_296, 0, x_285); +lean_ctor_set(x_296, 1, x_286); +lean_ctor_set(x_296, 2, x_287); +lean_ctor_set(x_296, 3, x_288); +lean_ctor_set_uint8(x_296, sizeof(void*)*4, x_289); +x_297 = 0; +lean_ctor_set(x_191, 3, x_296); +lean_ctor_set(x_191, 0, x_271); +lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_297); +return x_191; +} +} +else +{ +lean_object* x_298; lean_object* x_299; lean_object* x_300; lean_object* x_301; uint8_t x_302; lean_object* x_303; lean_object* x_304; lean_object* x_305; uint8_t x_306; +x_298 = lean_ctor_get(x_271, 0); +x_299 = lean_ctor_get(x_271, 1); +x_300 = lean_ctor_get(x_271, 2); +x_301 = lean_ctor_get(x_271, 3); +lean_inc(x_301); +lean_inc(x_300); +lean_inc(x_299); +lean_inc(x_298); +lean_dec(x_271); +x_302 = 1; +lean_inc(x_193); +x_303 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_303, 0, x_33); +lean_ctor_set(x_303, 1, x_34); +lean_ctor_set(x_303, 2, x_35); +lean_ctor_set(x_303, 3, x_193); +if (lean_is_exclusive(x_193)) { + lean_ctor_release(x_193, 0); + lean_ctor_release(x_193, 1); + lean_ctor_release(x_193, 2); + lean_ctor_release(x_193, 3); + x_304 = x_193; +} else { + lean_dec_ref(x_193); + x_304 = lean_box(0); +} +lean_ctor_set_uint8(x_303, sizeof(void*)*4, x_302); +if (lean_is_scalar(x_304)) { + x_305 = lean_alloc_ctor(1, 4, 1); +} else { + x_305 = x_304; +} +lean_ctor_set(x_305, 0, x_298); +lean_ctor_set(x_305, 1, x_299); +lean_ctor_set(x_305, 2, x_300); +lean_ctor_set(x_305, 3, x_301); +lean_ctor_set_uint8(x_305, sizeof(void*)*4, x_302); +x_306 = 0; +lean_ctor_set(x_191, 3, x_305); +lean_ctor_set(x_191, 0, x_303); +lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_306); +return x_191; +} +} +else +{ +lean_object* x_307; lean_object* x_308; lean_object* x_309; lean_object* x_310; lean_object* x_311; lean_object* x_312; lean_object* x_313; uint8_t x_314; lean_object* x_315; lean_object* x_316; lean_object* x_317; uint8_t x_318; lean_object* x_319; +x_307 = lean_ctor_get(x_191, 1); +x_308 = lean_ctor_get(x_191, 2); +lean_inc(x_308); +lean_inc(x_307); +lean_dec(x_191); +x_309 = lean_ctor_get(x_271, 0); +lean_inc(x_309); +x_310 = lean_ctor_get(x_271, 1); +lean_inc(x_310); +x_311 = lean_ctor_get(x_271, 2); +lean_inc(x_311); +x_312 = lean_ctor_get(x_271, 3); +lean_inc(x_312); +if (lean_is_exclusive(x_271)) { + lean_ctor_release(x_271, 0); + lean_ctor_release(x_271, 1); + lean_ctor_release(x_271, 2); + lean_ctor_release(x_271, 3); + x_313 = x_271; +} else { + lean_dec_ref(x_271); + x_313 = lean_box(0); +} +x_314 = 1; +lean_inc(x_193); +if (lean_is_scalar(x_313)) { + x_315 = lean_alloc_ctor(1, 4, 1); +} else { + x_315 = x_313; +} +lean_ctor_set(x_315, 0, x_33); +lean_ctor_set(x_315, 1, x_34); +lean_ctor_set(x_315, 2, x_35); +lean_ctor_set(x_315, 3, x_193); +if (lean_is_exclusive(x_193)) { + lean_ctor_release(x_193, 0); + lean_ctor_release(x_193, 1); + lean_ctor_release(x_193, 2); + lean_ctor_release(x_193, 3); + x_316 = x_193; +} else { + lean_dec_ref(x_193); + x_316 = lean_box(0); +} +lean_ctor_set_uint8(x_315, sizeof(void*)*4, x_314); +if (lean_is_scalar(x_316)) { + x_317 = lean_alloc_ctor(1, 4, 1); +} else { + x_317 = x_316; +} +lean_ctor_set(x_317, 0, x_309); +lean_ctor_set(x_317, 1, x_310); +lean_ctor_set(x_317, 2, x_311); +lean_ctor_set(x_317, 3, x_312); +lean_ctor_set_uint8(x_317, sizeof(void*)*4, x_314); +x_318 = 0; +x_319 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_319, 0, x_315); +lean_ctor_set(x_319, 1, x_307); +lean_ctor_set(x_319, 2, x_308); +lean_ctor_set(x_319, 3, x_317); +lean_ctor_set_uint8(x_319, sizeof(void*)*4, x_318); +return x_319; +} +} +else +{ +uint8_t x_320; +x_320 = !lean_is_exclusive(x_191); +if (x_320 == 0) +{ +lean_object* x_321; lean_object* x_322; uint8_t x_323; +x_321 = lean_ctor_get(x_191, 3); +lean_dec(x_321); +x_322 = lean_ctor_get(x_191, 0); +lean_dec(x_322); +x_323 = !lean_is_exclusive(x_193); +if (x_323 == 0) +{ +uint8_t x_324; +lean_ctor_set_uint8(x_193, sizeof(void*)*4, x_280); +x_324 = 1; +lean_ctor_set(x_1, 3, x_191); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_324); +return x_1; +} +else +{ +lean_object* x_325; lean_object* x_326; lean_object* x_327; lean_object* x_328; lean_object* x_329; uint8_t x_330; +x_325 = lean_ctor_get(x_193, 0); +x_326 = lean_ctor_get(x_193, 1); +x_327 = lean_ctor_get(x_193, 2); +x_328 = lean_ctor_get(x_193, 3); +lean_inc(x_328); +lean_inc(x_327); +lean_inc(x_326); +lean_inc(x_325); +lean_dec(x_193); +x_329 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_329, 0, x_325); +lean_ctor_set(x_329, 1, x_326); +lean_ctor_set(x_329, 2, x_327); +lean_ctor_set(x_329, 3, x_328); +lean_ctor_set_uint8(x_329, sizeof(void*)*4, x_280); +lean_ctor_set(x_191, 0, x_329); +x_330 = 1; +lean_ctor_set(x_1, 3, x_191); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_330); +return x_1; +} +} +else +{ +lean_object* x_331; lean_object* x_332; lean_object* x_333; lean_object* x_334; lean_object* x_335; lean_object* x_336; lean_object* x_337; lean_object* x_338; lean_object* x_339; uint8_t x_340; +x_331 = lean_ctor_get(x_191, 1); +x_332 = lean_ctor_get(x_191, 2); +lean_inc(x_332); +lean_inc(x_331); +lean_dec(x_191); +x_333 = lean_ctor_get(x_193, 0); +lean_inc(x_333); +x_334 = lean_ctor_get(x_193, 1); +lean_inc(x_334); +x_335 = lean_ctor_get(x_193, 2); +lean_inc(x_335); +x_336 = lean_ctor_get(x_193, 3); +lean_inc(x_336); +if (lean_is_exclusive(x_193)) { + lean_ctor_release(x_193, 0); + lean_ctor_release(x_193, 1); + lean_ctor_release(x_193, 2); + lean_ctor_release(x_193, 3); + x_337 = x_193; +} else { + lean_dec_ref(x_193); + x_337 = lean_box(0); +} +if (lean_is_scalar(x_337)) { + x_338 = lean_alloc_ctor(1, 4, 1); +} else { + x_338 = x_337; +} +lean_ctor_set(x_338, 0, x_333); +lean_ctor_set(x_338, 1, x_334); +lean_ctor_set(x_338, 2, x_335); +lean_ctor_set(x_338, 3, x_336); +lean_ctor_set_uint8(x_338, sizeof(void*)*4, x_280); +x_339 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_339, 0, x_338); +lean_ctor_set(x_339, 1, x_331); +lean_ctor_set(x_339, 2, x_332); +lean_ctor_set(x_339, 3, x_271); +lean_ctor_set_uint8(x_339, sizeof(void*)*4, x_192); +x_340 = 1; +lean_ctor_set(x_1, 3, x_339); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_340); +return x_1; +} +} +} +} +} +} +else +{ +uint8_t x_341; +x_341 = 1; +lean_ctor_set(x_1, 3, x_191); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_341); +return x_1; +} +} +} +} +else +{ +lean_object* x_342; lean_object* x_343; lean_object* x_344; lean_object* x_345; uint8_t x_346; +x_342 = lean_ctor_get(x_1, 0); +x_343 = lean_ctor_get(x_1, 1); +x_344 = lean_ctor_get(x_1, 2); +x_345 = lean_ctor_get(x_1, 3); +lean_inc(x_345); +lean_inc(x_344); +lean_inc(x_343); +lean_inc(x_342); +lean_dec(x_1); +x_346 = l_Lean_Name_quickCmp(x_2, x_343); +switch (x_346) { +case 0: +{ +lean_object* x_347; uint8_t x_348; +x_347 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__6(x_342, x_2, x_3); +x_348 = lean_ctor_get_uint8(x_347, sizeof(void*)*4); +if (x_348 == 0) +{ +lean_object* x_349; +x_349 = lean_ctor_get(x_347, 0); +lean_inc(x_349); +if (lean_obj_tag(x_349) == 0) +{ +lean_object* x_350; +x_350 = lean_ctor_get(x_347, 3); +lean_inc(x_350); +if (lean_obj_tag(x_350) == 0) +{ +lean_object* x_351; lean_object* x_352; lean_object* x_353; lean_object* x_354; uint8_t x_355; lean_object* x_356; +x_351 = lean_ctor_get(x_347, 1); +lean_inc(x_351); +x_352 = lean_ctor_get(x_347, 2); +lean_inc(x_352); +if (lean_is_exclusive(x_347)) { + lean_ctor_release(x_347, 0); + lean_ctor_release(x_347, 1); + lean_ctor_release(x_347, 2); + lean_ctor_release(x_347, 3); + x_353 = x_347; +} else { + lean_dec_ref(x_347); + x_353 = lean_box(0); +} +if (lean_is_scalar(x_353)) { + x_354 = lean_alloc_ctor(1, 4, 1); +} else { + x_354 = x_353; +} +lean_ctor_set(x_354, 0, x_350); +lean_ctor_set(x_354, 1, x_351); +lean_ctor_set(x_354, 2, x_352); +lean_ctor_set(x_354, 3, x_350); +lean_ctor_set_uint8(x_354, sizeof(void*)*4, x_348); +x_355 = 1; +x_356 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_356, 0, x_354); +lean_ctor_set(x_356, 1, x_343); +lean_ctor_set(x_356, 2, x_344); +lean_ctor_set(x_356, 3, x_345); +lean_ctor_set_uint8(x_356, sizeof(void*)*4, x_355); +return x_356; +} +else +{ +uint8_t x_357; +x_357 = lean_ctor_get_uint8(x_350, sizeof(void*)*4); +if (x_357 == 0) +{ +lean_object* x_358; lean_object* x_359; lean_object* x_360; lean_object* x_361; lean_object* x_362; lean_object* x_363; lean_object* x_364; lean_object* x_365; uint8_t x_366; lean_object* x_367; lean_object* x_368; uint8_t x_369; lean_object* x_370; +x_358 = lean_ctor_get(x_347, 1); +lean_inc(x_358); +x_359 = lean_ctor_get(x_347, 2); +lean_inc(x_359); +if (lean_is_exclusive(x_347)) { + lean_ctor_release(x_347, 0); + lean_ctor_release(x_347, 1); + lean_ctor_release(x_347, 2); + lean_ctor_release(x_347, 3); + x_360 = x_347; +} else { + lean_dec_ref(x_347); + x_360 = lean_box(0); +} +x_361 = lean_ctor_get(x_350, 0); +lean_inc(x_361); +x_362 = lean_ctor_get(x_350, 1); +lean_inc(x_362); +x_363 = lean_ctor_get(x_350, 2); +lean_inc(x_363); +x_364 = lean_ctor_get(x_350, 3); +lean_inc(x_364); +if (lean_is_exclusive(x_350)) { + lean_ctor_release(x_350, 0); + lean_ctor_release(x_350, 1); + lean_ctor_release(x_350, 2); + lean_ctor_release(x_350, 3); + x_365 = x_350; +} else { + lean_dec_ref(x_350); + x_365 = lean_box(0); +} +x_366 = 1; +if (lean_is_scalar(x_365)) { + x_367 = lean_alloc_ctor(1, 4, 1); +} else { + x_367 = x_365; +} +lean_ctor_set(x_367, 0, x_349); +lean_ctor_set(x_367, 1, x_358); +lean_ctor_set(x_367, 2, x_359); +lean_ctor_set(x_367, 3, x_361); +lean_ctor_set_uint8(x_367, sizeof(void*)*4, x_366); +if (lean_is_scalar(x_360)) { + x_368 = lean_alloc_ctor(1, 4, 1); +} else { + x_368 = x_360; +} +lean_ctor_set(x_368, 0, x_364); +lean_ctor_set(x_368, 1, x_343); +lean_ctor_set(x_368, 2, x_344); +lean_ctor_set(x_368, 3, x_345); +lean_ctor_set_uint8(x_368, sizeof(void*)*4, x_366); +x_369 = 0; +x_370 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_370, 0, x_367); +lean_ctor_set(x_370, 1, x_362); +lean_ctor_set(x_370, 2, x_363); +lean_ctor_set(x_370, 3, x_368); +lean_ctor_set_uint8(x_370, sizeof(void*)*4, x_369); +return x_370; +} +else +{ +lean_object* x_371; uint8_t x_372; lean_object* x_373; +if (lean_is_exclusive(x_350)) { + lean_ctor_release(x_350, 0); + lean_ctor_release(x_350, 1); + lean_ctor_release(x_350, 2); + lean_ctor_release(x_350, 3); + x_371 = x_350; +} else { + lean_dec_ref(x_350); + x_371 = lean_box(0); +} +x_372 = 1; +if (lean_is_scalar(x_371)) { + x_373 = lean_alloc_ctor(1, 4, 1); +} else { + x_373 = x_371; +} +lean_ctor_set(x_373, 0, x_347); +lean_ctor_set(x_373, 1, x_343); +lean_ctor_set(x_373, 2, x_344); +lean_ctor_set(x_373, 3, x_345); +lean_ctor_set_uint8(x_373, sizeof(void*)*4, x_372); +return x_373; +} +} +} +else +{ +uint8_t x_374; +x_374 = lean_ctor_get_uint8(x_349, sizeof(void*)*4); +if (x_374 == 0) +{ +lean_object* x_375; lean_object* x_376; lean_object* x_377; lean_object* x_378; lean_object* x_379; lean_object* x_380; lean_object* x_381; lean_object* x_382; lean_object* x_383; uint8_t x_384; lean_object* x_385; lean_object* x_386; uint8_t x_387; lean_object* x_388; +x_375 = lean_ctor_get(x_347, 1); +lean_inc(x_375); +x_376 = lean_ctor_get(x_347, 2); +lean_inc(x_376); +x_377 = lean_ctor_get(x_347, 3); +lean_inc(x_377); +if (lean_is_exclusive(x_347)) { + lean_ctor_release(x_347, 0); + lean_ctor_release(x_347, 1); + lean_ctor_release(x_347, 2); + lean_ctor_release(x_347, 3); + x_378 = x_347; +} else { + lean_dec_ref(x_347); + x_378 = lean_box(0); +} +x_379 = lean_ctor_get(x_349, 0); +lean_inc(x_379); +x_380 = lean_ctor_get(x_349, 1); +lean_inc(x_380); +x_381 = lean_ctor_get(x_349, 2); +lean_inc(x_381); +x_382 = lean_ctor_get(x_349, 3); +lean_inc(x_382); +if (lean_is_exclusive(x_349)) { + lean_ctor_release(x_349, 0); + lean_ctor_release(x_349, 1); + lean_ctor_release(x_349, 2); + lean_ctor_release(x_349, 3); + x_383 = x_349; +} else { + lean_dec_ref(x_349); + x_383 = lean_box(0); +} +x_384 = 1; +if (lean_is_scalar(x_383)) { + x_385 = lean_alloc_ctor(1, 4, 1); +} else { + x_385 = x_383; +} +lean_ctor_set(x_385, 0, x_379); +lean_ctor_set(x_385, 1, x_380); +lean_ctor_set(x_385, 2, x_381); +lean_ctor_set(x_385, 3, x_382); +lean_ctor_set_uint8(x_385, sizeof(void*)*4, x_384); +if (lean_is_scalar(x_378)) { + x_386 = lean_alloc_ctor(1, 4, 1); +} else { + x_386 = x_378; +} +lean_ctor_set(x_386, 0, x_377); +lean_ctor_set(x_386, 1, x_343); +lean_ctor_set(x_386, 2, x_344); +lean_ctor_set(x_386, 3, x_345); +lean_ctor_set_uint8(x_386, sizeof(void*)*4, x_384); +x_387 = 0; +x_388 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_388, 0, x_385); +lean_ctor_set(x_388, 1, x_375); +lean_ctor_set(x_388, 2, x_376); +lean_ctor_set(x_388, 3, x_386); +lean_ctor_set_uint8(x_388, sizeof(void*)*4, x_387); +return x_388; +} +else +{ +lean_object* x_389; +x_389 = lean_ctor_get(x_347, 3); +lean_inc(x_389); +if (lean_obj_tag(x_389) == 0) +{ +lean_object* x_390; uint8_t x_391; lean_object* x_392; +if (lean_is_exclusive(x_349)) { + lean_ctor_release(x_349, 0); + lean_ctor_release(x_349, 1); + lean_ctor_release(x_349, 2); + lean_ctor_release(x_349, 3); + x_390 = x_349; +} else { + lean_dec_ref(x_349); + x_390 = lean_box(0); +} +x_391 = 1; +if (lean_is_scalar(x_390)) { + x_392 = lean_alloc_ctor(1, 4, 1); +} else { + x_392 = x_390; +} +lean_ctor_set(x_392, 0, x_347); +lean_ctor_set(x_392, 1, x_343); +lean_ctor_set(x_392, 2, x_344); +lean_ctor_set(x_392, 3, x_345); +lean_ctor_set_uint8(x_392, sizeof(void*)*4, x_391); +return x_392; +} +else +{ +uint8_t x_393; +x_393 = lean_ctor_get_uint8(x_389, sizeof(void*)*4); +if (x_393 == 0) +{ +lean_object* x_394; lean_object* x_395; lean_object* x_396; lean_object* x_397; lean_object* x_398; lean_object* x_399; lean_object* x_400; lean_object* x_401; uint8_t x_402; lean_object* x_403; lean_object* x_404; lean_object* x_405; uint8_t x_406; lean_object* x_407; +x_394 = lean_ctor_get(x_347, 1); +lean_inc(x_394); +x_395 = lean_ctor_get(x_347, 2); +lean_inc(x_395); +if (lean_is_exclusive(x_347)) { + lean_ctor_release(x_347, 0); + lean_ctor_release(x_347, 1); + lean_ctor_release(x_347, 2); + lean_ctor_release(x_347, 3); + x_396 = x_347; +} else { + lean_dec_ref(x_347); + x_396 = lean_box(0); +} +x_397 = lean_ctor_get(x_389, 0); +lean_inc(x_397); +x_398 = lean_ctor_get(x_389, 1); +lean_inc(x_398); +x_399 = lean_ctor_get(x_389, 2); +lean_inc(x_399); +x_400 = lean_ctor_get(x_389, 3); +lean_inc(x_400); +if (lean_is_exclusive(x_389)) { + lean_ctor_release(x_389, 0); + lean_ctor_release(x_389, 1); + lean_ctor_release(x_389, 2); + lean_ctor_release(x_389, 3); + x_401 = x_389; +} else { + lean_dec_ref(x_389); + x_401 = lean_box(0); +} +x_402 = 1; +lean_inc(x_349); +if (lean_is_scalar(x_401)) { + x_403 = lean_alloc_ctor(1, 4, 1); +} else { + x_403 = x_401; +} +lean_ctor_set(x_403, 0, x_349); +lean_ctor_set(x_403, 1, x_394); +lean_ctor_set(x_403, 2, x_395); +lean_ctor_set(x_403, 3, x_397); +if (lean_is_exclusive(x_349)) { + lean_ctor_release(x_349, 0); + lean_ctor_release(x_349, 1); + lean_ctor_release(x_349, 2); + lean_ctor_release(x_349, 3); + x_404 = x_349; +} else { + lean_dec_ref(x_349); + x_404 = lean_box(0); +} +lean_ctor_set_uint8(x_403, sizeof(void*)*4, x_402); +if (lean_is_scalar(x_404)) { + x_405 = lean_alloc_ctor(1, 4, 1); +} else { + x_405 = x_404; +} +lean_ctor_set(x_405, 0, x_400); +lean_ctor_set(x_405, 1, x_343); +lean_ctor_set(x_405, 2, x_344); +lean_ctor_set(x_405, 3, x_345); +lean_ctor_set_uint8(x_405, sizeof(void*)*4, x_402); +x_406 = 0; +if (lean_is_scalar(x_396)) { + x_407 = lean_alloc_ctor(1, 4, 1); +} else { + x_407 = x_396; +} +lean_ctor_set(x_407, 0, x_403); +lean_ctor_set(x_407, 1, x_398); +lean_ctor_set(x_407, 2, x_399); +lean_ctor_set(x_407, 3, x_405); +lean_ctor_set_uint8(x_407, sizeof(void*)*4, x_406); +return x_407; +} +else +{ +lean_object* x_408; lean_object* x_409; lean_object* x_410; lean_object* x_411; lean_object* x_412; lean_object* x_413; lean_object* x_414; lean_object* x_415; lean_object* x_416; lean_object* x_417; uint8_t x_418; lean_object* x_419; +x_408 = lean_ctor_get(x_347, 1); +lean_inc(x_408); +x_409 = lean_ctor_get(x_347, 2); +lean_inc(x_409); +if (lean_is_exclusive(x_347)) { + lean_ctor_release(x_347, 0); + lean_ctor_release(x_347, 1); + lean_ctor_release(x_347, 2); + lean_ctor_release(x_347, 3); + x_410 = x_347; +} else { + lean_dec_ref(x_347); + x_410 = lean_box(0); +} +x_411 = lean_ctor_get(x_349, 0); +lean_inc(x_411); +x_412 = lean_ctor_get(x_349, 1); +lean_inc(x_412); +x_413 = lean_ctor_get(x_349, 2); +lean_inc(x_413); +x_414 = lean_ctor_get(x_349, 3); +lean_inc(x_414); +if (lean_is_exclusive(x_349)) { + lean_ctor_release(x_349, 0); + lean_ctor_release(x_349, 1); + lean_ctor_release(x_349, 2); + lean_ctor_release(x_349, 3); + x_415 = x_349; +} else { + lean_dec_ref(x_349); + x_415 = lean_box(0); +} +if (lean_is_scalar(x_415)) { + x_416 = lean_alloc_ctor(1, 4, 1); +} else { + x_416 = x_415; +} +lean_ctor_set(x_416, 0, x_411); +lean_ctor_set(x_416, 1, x_412); +lean_ctor_set(x_416, 2, x_413); +lean_ctor_set(x_416, 3, x_414); +lean_ctor_set_uint8(x_416, sizeof(void*)*4, x_393); +if (lean_is_scalar(x_410)) { + x_417 = lean_alloc_ctor(1, 4, 1); +} else { + x_417 = x_410; +} +lean_ctor_set(x_417, 0, x_416); +lean_ctor_set(x_417, 1, x_408); +lean_ctor_set(x_417, 2, x_409); +lean_ctor_set(x_417, 3, x_389); +lean_ctor_set_uint8(x_417, sizeof(void*)*4, x_348); +x_418 = 1; +x_419 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_419, 0, x_417); +lean_ctor_set(x_419, 1, x_343); +lean_ctor_set(x_419, 2, x_344); +lean_ctor_set(x_419, 3, x_345); +lean_ctor_set_uint8(x_419, sizeof(void*)*4, x_418); +return x_419; +} +} +} +} +} +else +{ +uint8_t x_420; lean_object* x_421; +x_420 = 1; +x_421 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_421, 0, x_347); +lean_ctor_set(x_421, 1, x_343); +lean_ctor_set(x_421, 2, x_344); +lean_ctor_set(x_421, 3, x_345); +lean_ctor_set_uint8(x_421, sizeof(void*)*4, x_420); +return x_421; +} +} +case 1: +{ +uint8_t x_422; lean_object* x_423; +lean_dec(x_344); +lean_dec(x_343); +x_422 = 1; +x_423 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_423, 0, x_342); +lean_ctor_set(x_423, 1, x_2); +lean_ctor_set(x_423, 2, x_3); +lean_ctor_set(x_423, 3, x_345); +lean_ctor_set_uint8(x_423, sizeof(void*)*4, x_422); +return x_423; +} +default: +{ +lean_object* x_424; uint8_t x_425; +x_424 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__6(x_345, x_2, x_3); +x_425 = lean_ctor_get_uint8(x_424, sizeof(void*)*4); +if (x_425 == 0) +{ +lean_object* x_426; +x_426 = lean_ctor_get(x_424, 0); +lean_inc(x_426); +if (lean_obj_tag(x_426) == 0) +{ +lean_object* x_427; +x_427 = lean_ctor_get(x_424, 3); +lean_inc(x_427); +if (lean_obj_tag(x_427) == 0) +{ +lean_object* x_428; lean_object* x_429; lean_object* x_430; lean_object* x_431; uint8_t x_432; lean_object* x_433; +x_428 = lean_ctor_get(x_424, 1); +lean_inc(x_428); +x_429 = lean_ctor_get(x_424, 2); +lean_inc(x_429); +if (lean_is_exclusive(x_424)) { + lean_ctor_release(x_424, 0); + lean_ctor_release(x_424, 1); + lean_ctor_release(x_424, 2); + lean_ctor_release(x_424, 3); + x_430 = x_424; +} else { + lean_dec_ref(x_424); + x_430 = lean_box(0); +} +if (lean_is_scalar(x_430)) { + x_431 = lean_alloc_ctor(1, 4, 1); +} else { + x_431 = x_430; +} +lean_ctor_set(x_431, 0, x_427); +lean_ctor_set(x_431, 1, x_428); +lean_ctor_set(x_431, 2, x_429); +lean_ctor_set(x_431, 3, x_427); +lean_ctor_set_uint8(x_431, sizeof(void*)*4, x_425); +x_432 = 1; +x_433 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_433, 0, x_342); +lean_ctor_set(x_433, 1, x_343); +lean_ctor_set(x_433, 2, x_344); +lean_ctor_set(x_433, 3, x_431); +lean_ctor_set_uint8(x_433, sizeof(void*)*4, x_432); +return x_433; +} +else +{ +uint8_t x_434; +x_434 = lean_ctor_get_uint8(x_427, sizeof(void*)*4); +if (x_434 == 0) +{ +lean_object* x_435; lean_object* x_436; lean_object* x_437; lean_object* x_438; lean_object* x_439; lean_object* x_440; lean_object* x_441; lean_object* x_442; uint8_t x_443; lean_object* x_444; lean_object* x_445; uint8_t x_446; lean_object* x_447; +x_435 = lean_ctor_get(x_424, 1); +lean_inc(x_435); +x_436 = lean_ctor_get(x_424, 2); +lean_inc(x_436); +if (lean_is_exclusive(x_424)) { + lean_ctor_release(x_424, 0); + lean_ctor_release(x_424, 1); + lean_ctor_release(x_424, 2); + lean_ctor_release(x_424, 3); + x_437 = x_424; +} else { + lean_dec_ref(x_424); + x_437 = lean_box(0); +} +x_438 = lean_ctor_get(x_427, 0); +lean_inc(x_438); +x_439 = lean_ctor_get(x_427, 1); +lean_inc(x_439); +x_440 = lean_ctor_get(x_427, 2); +lean_inc(x_440); +x_441 = lean_ctor_get(x_427, 3); +lean_inc(x_441); +if (lean_is_exclusive(x_427)) { + lean_ctor_release(x_427, 0); + lean_ctor_release(x_427, 1); + lean_ctor_release(x_427, 2); + lean_ctor_release(x_427, 3); + x_442 = x_427; +} else { + lean_dec_ref(x_427); + x_442 = lean_box(0); +} +x_443 = 1; +if (lean_is_scalar(x_442)) { + x_444 = lean_alloc_ctor(1, 4, 1); +} else { + x_444 = x_442; +} +lean_ctor_set(x_444, 0, x_342); +lean_ctor_set(x_444, 1, x_343); +lean_ctor_set(x_444, 2, x_344); +lean_ctor_set(x_444, 3, x_426); +lean_ctor_set_uint8(x_444, sizeof(void*)*4, x_443); +if (lean_is_scalar(x_437)) { + x_445 = lean_alloc_ctor(1, 4, 1); +} else { + x_445 = x_437; +} +lean_ctor_set(x_445, 0, x_438); +lean_ctor_set(x_445, 1, x_439); +lean_ctor_set(x_445, 2, x_440); +lean_ctor_set(x_445, 3, x_441); +lean_ctor_set_uint8(x_445, sizeof(void*)*4, x_443); +x_446 = 0; +x_447 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_447, 0, x_444); +lean_ctor_set(x_447, 1, x_435); +lean_ctor_set(x_447, 2, x_436); +lean_ctor_set(x_447, 3, x_445); +lean_ctor_set_uint8(x_447, sizeof(void*)*4, x_446); +return x_447; +} +else +{ +lean_object* x_448; uint8_t x_449; lean_object* x_450; +if (lean_is_exclusive(x_427)) { + lean_ctor_release(x_427, 0); + lean_ctor_release(x_427, 1); + lean_ctor_release(x_427, 2); + lean_ctor_release(x_427, 3); + x_448 = x_427; +} else { + lean_dec_ref(x_427); + x_448 = lean_box(0); +} +x_449 = 1; +if (lean_is_scalar(x_448)) { + x_450 = lean_alloc_ctor(1, 4, 1); +} else { + x_450 = x_448; +} +lean_ctor_set(x_450, 0, x_342); +lean_ctor_set(x_450, 1, x_343); +lean_ctor_set(x_450, 2, x_344); +lean_ctor_set(x_450, 3, x_424); +lean_ctor_set_uint8(x_450, sizeof(void*)*4, x_449); +return x_450; +} +} +} +else +{ +uint8_t x_451; +x_451 = lean_ctor_get_uint8(x_426, sizeof(void*)*4); +if (x_451 == 0) +{ +lean_object* x_452; lean_object* x_453; lean_object* x_454; lean_object* x_455; lean_object* x_456; lean_object* x_457; lean_object* x_458; lean_object* x_459; lean_object* x_460; uint8_t x_461; lean_object* x_462; lean_object* x_463; uint8_t x_464; lean_object* x_465; +x_452 = lean_ctor_get(x_424, 1); +lean_inc(x_452); +x_453 = lean_ctor_get(x_424, 2); +lean_inc(x_453); +x_454 = lean_ctor_get(x_424, 3); +lean_inc(x_454); +if (lean_is_exclusive(x_424)) { + lean_ctor_release(x_424, 0); + lean_ctor_release(x_424, 1); + lean_ctor_release(x_424, 2); + lean_ctor_release(x_424, 3); + x_455 = x_424; +} else { + lean_dec_ref(x_424); + x_455 = lean_box(0); +} +x_456 = lean_ctor_get(x_426, 0); +lean_inc(x_456); +x_457 = lean_ctor_get(x_426, 1); +lean_inc(x_457); +x_458 = lean_ctor_get(x_426, 2); +lean_inc(x_458); +x_459 = lean_ctor_get(x_426, 3); +lean_inc(x_459); +if (lean_is_exclusive(x_426)) { + lean_ctor_release(x_426, 0); + lean_ctor_release(x_426, 1); + lean_ctor_release(x_426, 2); + lean_ctor_release(x_426, 3); + x_460 = x_426; +} else { + lean_dec_ref(x_426); + x_460 = lean_box(0); +} +x_461 = 1; +if (lean_is_scalar(x_460)) { + x_462 = lean_alloc_ctor(1, 4, 1); +} else { + x_462 = x_460; +} +lean_ctor_set(x_462, 0, x_342); +lean_ctor_set(x_462, 1, x_343); +lean_ctor_set(x_462, 2, x_344); +lean_ctor_set(x_462, 3, x_456); +lean_ctor_set_uint8(x_462, sizeof(void*)*4, x_461); +if (lean_is_scalar(x_455)) { + x_463 = lean_alloc_ctor(1, 4, 1); +} else { + x_463 = x_455; +} +lean_ctor_set(x_463, 0, x_459); +lean_ctor_set(x_463, 1, x_452); +lean_ctor_set(x_463, 2, x_453); +lean_ctor_set(x_463, 3, x_454); +lean_ctor_set_uint8(x_463, sizeof(void*)*4, x_461); +x_464 = 0; +x_465 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_465, 0, x_462); +lean_ctor_set(x_465, 1, x_457); +lean_ctor_set(x_465, 2, x_458); +lean_ctor_set(x_465, 3, x_463); +lean_ctor_set_uint8(x_465, sizeof(void*)*4, x_464); +return x_465; +} +else +{ +lean_object* x_466; +x_466 = lean_ctor_get(x_424, 3); +lean_inc(x_466); +if (lean_obj_tag(x_466) == 0) +{ +lean_object* x_467; uint8_t x_468; lean_object* x_469; +if (lean_is_exclusive(x_426)) { + lean_ctor_release(x_426, 0); + lean_ctor_release(x_426, 1); + lean_ctor_release(x_426, 2); + lean_ctor_release(x_426, 3); + x_467 = x_426; +} else { + lean_dec_ref(x_426); + x_467 = lean_box(0); +} +x_468 = 1; +if (lean_is_scalar(x_467)) { + x_469 = lean_alloc_ctor(1, 4, 1); +} else { + x_469 = x_467; +} +lean_ctor_set(x_469, 0, x_342); +lean_ctor_set(x_469, 1, x_343); +lean_ctor_set(x_469, 2, x_344); +lean_ctor_set(x_469, 3, x_424); +lean_ctor_set_uint8(x_469, sizeof(void*)*4, x_468); +return x_469; +} +else +{ +uint8_t x_470; +x_470 = lean_ctor_get_uint8(x_466, sizeof(void*)*4); +if (x_470 == 0) +{ +lean_object* x_471; lean_object* x_472; lean_object* x_473; lean_object* x_474; lean_object* x_475; lean_object* x_476; lean_object* x_477; lean_object* x_478; uint8_t x_479; lean_object* x_480; lean_object* x_481; lean_object* x_482; uint8_t x_483; lean_object* x_484; +x_471 = lean_ctor_get(x_424, 1); +lean_inc(x_471); +x_472 = lean_ctor_get(x_424, 2); +lean_inc(x_472); +if (lean_is_exclusive(x_424)) { + lean_ctor_release(x_424, 0); + lean_ctor_release(x_424, 1); + lean_ctor_release(x_424, 2); + lean_ctor_release(x_424, 3); + x_473 = x_424; +} else { + lean_dec_ref(x_424); + x_473 = lean_box(0); +} +x_474 = lean_ctor_get(x_466, 0); +lean_inc(x_474); +x_475 = lean_ctor_get(x_466, 1); +lean_inc(x_475); +x_476 = lean_ctor_get(x_466, 2); +lean_inc(x_476); +x_477 = lean_ctor_get(x_466, 3); +lean_inc(x_477); +if (lean_is_exclusive(x_466)) { + lean_ctor_release(x_466, 0); + lean_ctor_release(x_466, 1); + lean_ctor_release(x_466, 2); + lean_ctor_release(x_466, 3); + x_478 = x_466; +} else { + lean_dec_ref(x_466); + x_478 = lean_box(0); +} +x_479 = 1; +lean_inc(x_426); +if (lean_is_scalar(x_478)) { + x_480 = lean_alloc_ctor(1, 4, 1); +} else { + x_480 = x_478; +} +lean_ctor_set(x_480, 0, x_342); +lean_ctor_set(x_480, 1, x_343); +lean_ctor_set(x_480, 2, x_344); +lean_ctor_set(x_480, 3, x_426); +if (lean_is_exclusive(x_426)) { + lean_ctor_release(x_426, 0); + lean_ctor_release(x_426, 1); + lean_ctor_release(x_426, 2); + lean_ctor_release(x_426, 3); + x_481 = x_426; +} else { + lean_dec_ref(x_426); + x_481 = lean_box(0); +} +lean_ctor_set_uint8(x_480, sizeof(void*)*4, x_479); +if (lean_is_scalar(x_481)) { + x_482 = lean_alloc_ctor(1, 4, 1); +} else { + x_482 = x_481; +} +lean_ctor_set(x_482, 0, x_474); +lean_ctor_set(x_482, 1, x_475); +lean_ctor_set(x_482, 2, x_476); +lean_ctor_set(x_482, 3, x_477); +lean_ctor_set_uint8(x_482, sizeof(void*)*4, x_479); +x_483 = 0; +if (lean_is_scalar(x_473)) { + x_484 = lean_alloc_ctor(1, 4, 1); +} else { + x_484 = x_473; +} +lean_ctor_set(x_484, 0, x_480); +lean_ctor_set(x_484, 1, x_471); +lean_ctor_set(x_484, 2, x_472); +lean_ctor_set(x_484, 3, x_482); +lean_ctor_set_uint8(x_484, sizeof(void*)*4, x_483); +return x_484; +} +else +{ +lean_object* x_485; lean_object* x_486; lean_object* x_487; lean_object* x_488; lean_object* x_489; lean_object* x_490; lean_object* x_491; lean_object* x_492; lean_object* x_493; lean_object* x_494; uint8_t x_495; lean_object* x_496; +x_485 = lean_ctor_get(x_424, 1); +lean_inc(x_485); +x_486 = lean_ctor_get(x_424, 2); +lean_inc(x_486); +if (lean_is_exclusive(x_424)) { + lean_ctor_release(x_424, 0); + lean_ctor_release(x_424, 1); + lean_ctor_release(x_424, 2); + lean_ctor_release(x_424, 3); + x_487 = x_424; +} else { + lean_dec_ref(x_424); + x_487 = lean_box(0); +} +x_488 = lean_ctor_get(x_426, 0); +lean_inc(x_488); +x_489 = lean_ctor_get(x_426, 1); +lean_inc(x_489); +x_490 = lean_ctor_get(x_426, 2); +lean_inc(x_490); +x_491 = lean_ctor_get(x_426, 3); +lean_inc(x_491); +if (lean_is_exclusive(x_426)) { + lean_ctor_release(x_426, 0); + lean_ctor_release(x_426, 1); + lean_ctor_release(x_426, 2); + lean_ctor_release(x_426, 3); + x_492 = x_426; +} else { + lean_dec_ref(x_426); + x_492 = lean_box(0); +} +if (lean_is_scalar(x_492)) { + x_493 = lean_alloc_ctor(1, 4, 1); +} else { + x_493 = x_492; +} +lean_ctor_set(x_493, 0, x_488); +lean_ctor_set(x_493, 1, x_489); +lean_ctor_set(x_493, 2, x_490); +lean_ctor_set(x_493, 3, x_491); +lean_ctor_set_uint8(x_493, sizeof(void*)*4, x_470); +if (lean_is_scalar(x_487)) { + x_494 = lean_alloc_ctor(1, 4, 1); +} else { + x_494 = x_487; +} +lean_ctor_set(x_494, 0, x_493); +lean_ctor_set(x_494, 1, x_485); +lean_ctor_set(x_494, 2, x_486); +lean_ctor_set(x_494, 3, x_466); +lean_ctor_set_uint8(x_494, sizeof(void*)*4, x_425); +x_495 = 1; +x_496 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_496, 0, x_342); +lean_ctor_set(x_496, 1, x_343); +lean_ctor_set(x_496, 2, x_344); +lean_ctor_set(x_496, 3, x_494); +lean_ctor_set_uint8(x_496, sizeof(void*)*4, x_495); +return x_496; +} +} +} +} +} +else +{ +uint8_t x_497; lean_object* x_498; +x_497 = 1; +x_498 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_498, 0, x_342); +lean_ctor_set(x_498, 1, x_343); +lean_ctor_set(x_498, 2, x_344); +lean_ctor_set(x_498, 3, x_424); +lean_ctor_set_uint8(x_498, sizeof(void*)*4, x_497); +return x_498; +} +} +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; +x_4 = l_Lean_RBNode_isRed___rarg(x_1); +if (x_4 == 0) +{ +lean_object* x_5; +x_5 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__6(x_1, x_2, x_3); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +x_6 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__6(x_1, x_2, x_3); +x_7 = l_Lean_RBNode_setBlack___rarg(x_6); +return x_7; +} +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__9(size_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +_start: +{ +lean_object* x_7; uint8_t x_8; +x_7 = lean_array_get_size(x_2); +x_8 = lean_nat_dec_lt(x_5, x_7); +lean_dec(x_7); +if (x_8 == 0) +{ +lean_dec(x_5); +return x_6; +} +else +{ +lean_object* x_9; lean_object* x_10; uint64_t x_11; size_t x_12; size_t x_13; size_t x_14; size_t x_15; size_t x_16; size_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_9 = lean_array_fget(x_2, x_5); +x_10 = lean_array_fget(x_3, x_5); +x_11 = l_Lean_Expr_hash(x_9); +x_12 = lean_uint64_to_usize(x_11); +x_13 = 1; +x_14 = lean_usize_sub(x_1, x_13); +x_15 = 5; +x_16 = lean_usize_mul(x_15, x_14); +x_17 = lean_usize_shift_right(x_12, x_16); +x_18 = lean_unsigned_to_nat(1u); +x_19 = lean_nat_add(x_5, x_18); +lean_dec(x_5); +x_20 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8(x_6, x_17, x_1, x_9, x_10); +x_4 = lean_box(0); +x_5 = x_19; +x_6 = x_20; +goto _start; +} +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__10(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +x_7 = lean_array_get_size(x_5); +x_8 = lean_nat_dec_lt(x_2, x_7); +lean_dec(x_7); +if (x_8 == 0) +{ +uint8_t x_9; +lean_dec(x_2); +x_9 = !lean_is_exclusive(x_1); +if (x_9 == 0) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = lean_ctor_get(x_1, 1); +lean_dec(x_10); +x_11 = lean_ctor_get(x_1, 0); +lean_dec(x_11); +x_12 = lean_array_push(x_5, x_3); +x_13 = lean_array_push(x_6, x_4); +lean_ctor_set(x_1, 1, x_13); +lean_ctor_set(x_1, 0, x_12); +return x_1; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; +lean_dec(x_1); +x_14 = lean_array_push(x_5, x_3); +x_15 = lean_array_push(x_6, x_4); +x_16 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_16, 0, x_14); +lean_ctor_set(x_16, 1, x_15); +return x_16; +} +} +else +{ +lean_object* x_17; uint8_t x_18; +x_17 = lean_array_fget(x_5, x_2); +x_18 = lean_expr_eqv(x_3, x_17); +lean_dec(x_17); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; +lean_dec(x_6); +lean_dec(x_5); +x_19 = lean_unsigned_to_nat(1u); +x_20 = lean_nat_add(x_2, x_19); +lean_dec(x_2); +x_2 = x_20; +goto _start; +} +else +{ +uint8_t x_22; +x_22 = !lean_is_exclusive(x_1); +if (x_22 == 0) +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_23 = lean_ctor_get(x_1, 1); +lean_dec(x_23); +x_24 = lean_ctor_get(x_1, 0); +lean_dec(x_24); +x_25 = lean_array_fset(x_5, x_2, x_3); +x_26 = lean_array_fset(x_6, x_2, x_4); +lean_dec(x_2); +lean_ctor_set(x_1, 1, x_26); +lean_ctor_set(x_1, 0, x_25); +return x_1; +} +else +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; +lean_dec(x_1); +x_27 = lean_array_fset(x_5, x_2, x_3); +x_28 = lean_array_fset(x_6, x_2, x_4); +lean_dec(x_2); +x_29 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_29, 0, x_27); +lean_ctor_set(x_29, 1, x_28); +return x_29; +} +} +} +} +} +static size_t _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__1() { +_start: +{ +size_t x_1; size_t x_2; size_t x_3; +x_1 = 1; +x_2 = 5; +x_3 = lean_usize_shift_left(x_1, x_2); +return x_3; +} +} +static size_t _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__2() { +_start: +{ +size_t x_1; size_t x_2; size_t x_3; +x_1 = 1; +x_2 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__1; +x_3 = lean_usize_sub(x_2, x_1); +return x_3; +} +} +static lean_object* _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_PersistentHashMap_mkEmptyEntries(lean_box(0), lean_box(0)); +return x_1; +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +uint8_t x_6; +x_6 = !lean_is_exclusive(x_1); +if (x_6 == 0) +{ +lean_object* x_7; size_t x_8; size_t x_9; size_t x_10; size_t x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; +x_7 = lean_ctor_get(x_1, 0); +x_8 = 1; +x_9 = 5; +x_10 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__2; +x_11 = lean_usize_land(x_2, x_10); +x_12 = lean_usize_to_nat(x_11); +x_13 = lean_array_get_size(x_7); +x_14 = lean_nat_dec_lt(x_12, x_13); +lean_dec(x_13); +if (x_14 == 0) +{ +lean_dec(x_12); +lean_dec(x_5); +lean_dec(x_4); +return x_1; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_array_fget(x_7, x_12); +x_16 = lean_box(0); +x_17 = lean_array_fset(x_7, x_12, x_16); +switch (lean_obj_tag(x_15)) { +case 0: +{ +uint8_t x_18; +x_18 = !lean_is_exclusive(x_15); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; uint8_t x_21; +x_19 = lean_ctor_get(x_15, 0); +x_20 = lean_ctor_get(x_15, 1); +x_21 = lean_expr_eqv(x_4, x_19); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +lean_free_object(x_15); +x_22 = l_Lean_PersistentHashMap_mkCollisionNode___rarg(x_19, x_20, x_4, x_5); +x_23 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_23, 0, x_22); +x_24 = lean_array_fset(x_17, x_12, x_23); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_24); +return x_1; +} +else +{ +lean_object* x_25; +lean_dec(x_20); +lean_dec(x_19); +lean_ctor_set(x_15, 1, x_5); +lean_ctor_set(x_15, 0, x_4); +x_25 = lean_array_fset(x_17, x_12, x_15); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_25); +return x_1; +} +} +else +{ +lean_object* x_26; lean_object* x_27; uint8_t x_28; +x_26 = lean_ctor_get(x_15, 0); +x_27 = lean_ctor_get(x_15, 1); +lean_inc(x_27); +lean_inc(x_26); +lean_dec(x_15); +x_28 = lean_expr_eqv(x_4, x_26); +if (x_28 == 0) +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_29 = l_Lean_PersistentHashMap_mkCollisionNode___rarg(x_26, x_27, x_4, x_5); +x_30 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_30, 0, x_29); +x_31 = lean_array_fset(x_17, x_12, x_30); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_31); +return x_1; +} +else +{ +lean_object* x_32; lean_object* x_33; +lean_dec(x_27); +lean_dec(x_26); +x_32 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_32, 0, x_4); +lean_ctor_set(x_32, 1, x_5); +x_33 = lean_array_fset(x_17, x_12, x_32); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_33); +return x_1; +} +} +} +case 1: +{ +uint8_t x_34; +x_34 = !lean_is_exclusive(x_15); +if (x_34 == 0) +{ +lean_object* x_35; size_t x_36; size_t x_37; lean_object* x_38; lean_object* x_39; +x_35 = lean_ctor_get(x_15, 0); +x_36 = lean_usize_shift_right(x_2, x_9); +x_37 = lean_usize_add(x_3, x_8); +x_38 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8(x_35, x_36, x_37, x_4, x_5); +lean_ctor_set(x_15, 0, x_38); +x_39 = lean_array_fset(x_17, x_12, x_15); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_39); +return x_1; +} +else +{ +lean_object* x_40; size_t x_41; size_t x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_40 = lean_ctor_get(x_15, 0); +lean_inc(x_40); +lean_dec(x_15); +x_41 = lean_usize_shift_right(x_2, x_9); +x_42 = lean_usize_add(x_3, x_8); +x_43 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8(x_40, x_41, x_42, x_4, x_5); +x_44 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_44, 0, x_43); +x_45 = lean_array_fset(x_17, x_12, x_44); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_45); +return x_1; +} +} +default: +{ +lean_object* x_46; lean_object* x_47; +x_46 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_46, 0, x_4); +lean_ctor_set(x_46, 1, x_5); +x_47 = lean_array_fset(x_17, x_12, x_46); +lean_dec(x_12); +lean_ctor_set(x_1, 0, x_47); +return x_1; +} +} +} +} +else +{ +lean_object* x_48; size_t x_49; size_t x_50; size_t x_51; size_t x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; +x_48 = lean_ctor_get(x_1, 0); +lean_inc(x_48); +lean_dec(x_1); +x_49 = 1; +x_50 = 5; +x_51 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__2; +x_52 = lean_usize_land(x_2, x_51); +x_53 = lean_usize_to_nat(x_52); +x_54 = lean_array_get_size(x_48); +x_55 = lean_nat_dec_lt(x_53, x_54); +lean_dec(x_54); +if (x_55 == 0) +{ +lean_object* x_56; +lean_dec(x_53); +lean_dec(x_5); +lean_dec(x_4); +x_56 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_56, 0, x_48); +return x_56; +} +else +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_57 = lean_array_fget(x_48, x_53); +x_58 = lean_box(0); +x_59 = lean_array_fset(x_48, x_53, x_58); +switch (lean_obj_tag(x_57)) { +case 0: +{ +lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_60 = lean_ctor_get(x_57, 0); +lean_inc(x_60); +x_61 = lean_ctor_get(x_57, 1); +lean_inc(x_61); +if (lean_is_exclusive(x_57)) { + lean_ctor_release(x_57, 0); + lean_ctor_release(x_57, 1); + x_62 = x_57; +} else { + lean_dec_ref(x_57); + x_62 = lean_box(0); +} +x_63 = lean_expr_eqv(x_4, x_60); +if (x_63 == 0) +{ +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +lean_dec(x_62); +x_64 = l_Lean_PersistentHashMap_mkCollisionNode___rarg(x_60, x_61, x_4, x_5); +x_65 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_65, 0, x_64); +x_66 = lean_array_fset(x_59, x_53, x_65); +lean_dec(x_53); +x_67 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_67, 0, x_66); +return x_67; +} +else +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_dec(x_61); +lean_dec(x_60); +if (lean_is_scalar(x_62)) { + x_68 = lean_alloc_ctor(0, 2, 0); +} else { + x_68 = x_62; +} +lean_ctor_set(x_68, 0, x_4); +lean_ctor_set(x_68, 1, x_5); +x_69 = lean_array_fset(x_59, x_53, x_68); +lean_dec(x_53); +x_70 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_70, 0, x_69); +return x_70; +} +} +case 1: +{ +lean_object* x_71; lean_object* x_72; size_t x_73; size_t x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; +x_71 = lean_ctor_get(x_57, 0); +lean_inc(x_71); +if (lean_is_exclusive(x_57)) { + lean_ctor_release(x_57, 0); + x_72 = x_57; +} else { + lean_dec_ref(x_57); + x_72 = lean_box(0); +} +x_73 = lean_usize_shift_right(x_2, x_50); +x_74 = lean_usize_add(x_3, x_49); +x_75 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8(x_71, x_73, x_74, x_4, x_5); +if (lean_is_scalar(x_72)) { + x_76 = lean_alloc_ctor(1, 1, 0); +} else { + x_76 = x_72; +} +lean_ctor_set(x_76, 0, x_75); +x_77 = lean_array_fset(x_59, x_53, x_76); +lean_dec(x_53); +x_78 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_78, 0, x_77); +return x_78; +} +default: +{ +lean_object* x_79; lean_object* x_80; lean_object* x_81; +x_79 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_79, 0, x_4); +lean_ctor_set(x_79, 1, x_5); +x_80 = lean_array_fset(x_59, x_53, x_79); +lean_dec(x_53); +x_81 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_81, 0, x_80); +return x_81; +} +} +} +} +} +else +{ +uint8_t x_82; +x_82 = !lean_is_exclusive(x_1); +if (x_82 == 0) +{ +lean_object* x_83; lean_object* x_84; size_t x_85; uint8_t x_86; +x_83 = lean_unsigned_to_nat(0u); +x_84 = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__10(x_1, x_83, x_4, x_5); +x_85 = 7; +x_86 = lean_usize_dec_le(x_85, x_3); +if (x_86 == 0) +{ +lean_object* x_87; lean_object* x_88; uint8_t x_89; +x_87 = l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(x_84); +x_88 = lean_unsigned_to_nat(4u); +x_89 = lean_nat_dec_lt(x_87, x_88); +lean_dec(x_87); +if (x_89 == 0) +{ +lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; +x_90 = lean_ctor_get(x_84, 0); +lean_inc(x_90); +x_91 = lean_ctor_get(x_84, 1); +lean_inc(x_91); +lean_dec(x_84); +x_92 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__3; +x_93 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__9(x_3, x_90, x_91, lean_box(0), x_83, x_92); +lean_dec(x_91); +lean_dec(x_90); +return x_93; +} +else +{ +return x_84; +} +} +else +{ +return x_84; +} +} +else +{ +lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; size_t x_99; uint8_t x_100; +x_94 = lean_ctor_get(x_1, 0); +x_95 = lean_ctor_get(x_1, 1); +lean_inc(x_95); +lean_inc(x_94); +lean_dec(x_1); +x_96 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_96, 0, x_94); +lean_ctor_set(x_96, 1, x_95); +x_97 = lean_unsigned_to_nat(0u); +x_98 = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__10(x_96, x_97, x_4, x_5); +x_99 = 7; +x_100 = lean_usize_dec_le(x_99, x_3); +if (x_100 == 0) +{ +lean_object* x_101; lean_object* x_102; uint8_t x_103; +x_101 = l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(x_98); +x_102 = lean_unsigned_to_nat(4u); +x_103 = lean_nat_dec_lt(x_101, x_102); +lean_dec(x_101); +if (x_103 == 0) +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; +x_104 = lean_ctor_get(x_98, 0); +lean_inc(x_104); +x_105 = lean_ctor_get(x_98, 1); +lean_inc(x_105); +lean_dec(x_98); +x_106 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__3; +x_107 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__9(x_3, x_104, x_105, lean_box(0), x_97, x_106); +lean_dec(x_105); +lean_dec(x_104); +return x_107; +} +else +{ +return x_98; +} +} +else +{ +return x_98; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__7(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; +x_4 = !lean_is_exclusive(x_1); +if (x_4 == 0) +{ +lean_object* x_5; lean_object* x_6; uint64_t x_7; size_t x_8; size_t x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_5 = lean_ctor_get(x_1, 0); +x_6 = lean_ctor_get(x_1, 1); +x_7 = l_Lean_Expr_hash(x_2); +x_8 = lean_uint64_to_usize(x_7); +x_9 = 1; +x_10 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8(x_5, x_8, x_9, x_2, x_3); +x_11 = lean_unsigned_to_nat(1u); +x_12 = lean_nat_add(x_6, x_11); +lean_dec(x_6); +lean_ctor_set(x_1, 1, x_12); +lean_ctor_set(x_1, 0, x_10); +return x_1; +} +else +{ +lean_object* x_13; lean_object* x_14; uint64_t x_15; size_t x_16; size_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_13 = lean_ctor_get(x_1, 0); +x_14 = lean_ctor_get(x_1, 1); +lean_inc(x_14); +lean_inc(x_13); +lean_dec(x_1); +x_15 = l_Lean_Expr_hash(x_2); +x_16 = lean_uint64_to_usize(x_15); +x_17 = 1; +x_18 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8(x_13, x_16, x_17, x_2, x_3); +x_19 = lean_unsigned_to_nat(1u); +x_20 = lean_nat_add(x_14, x_19); +lean_dec(x_14); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_18); +lean_ctor_set(x_21, 1, x_20); +return x_21; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___rarg(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; +lean_inc(x_2); +x_11 = l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1(x_2, 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; size_t x_15; size_t x_16; lean_object* x_17; lean_object* x_18; +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 = lean_array_get_size(x_3); +x_15 = lean_usize_of_nat(x_14); +lean_dec(x_14); +x_16 = 0; +x_17 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_15, x_16, x_3); +lean_inc(x_1); +x_18 = l_Lean_Compiler_LCNF_getType(x_1, x_6, x_7, x_8, x_9, x_13); +if (lean_obj_tag(x_18) == 0) +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_19 = lean_ctor_get(x_18, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_18, 1); +lean_inc(x_20); +lean_dec(x_18); +lean_inc(x_9); +lean_inc(x_8); +x_21 = l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f(x_19, x_8, x_9, x_20); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_22; +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +if (lean_obj_tag(x_22) == 0) +{ +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; uint8_t x_31; +x_23 = lean_ctor_get(x_21, 1); +lean_inc(x_23); +lean_dec(x_21); +x_24 = lean_box(0); +x_25 = l_Lean_Expr_const___override(x_2, x_24); +x_26 = lean_ctor_get(x_12, 3); +lean_inc(x_26); +lean_dec(x_12); +x_27 = l_Lean_Compiler_LCNF_erasedExpr; +x_28 = lean_mk_array(x_26, x_27); +x_29 = l_Lean_mkAppN(x_25, x_28); +x_30 = l_Lean_mkAppN(x_29, x_17); +x_31 = !lean_is_exclusive(x_5); +if (x_31 == 0) +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_32 = lean_ctor_get(x_5, 0); +x_33 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__5(x_32, x_1, x_30); +lean_ctor_set(x_5, 0, x_33); +x_34 = lean_apply_6(x_4, x_5, x_6, x_7, x_8, x_9, x_23); +return x_34; +} +else +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_35 = lean_ctor_get(x_5, 0); +x_36 = lean_ctor_get(x_5, 1); +lean_inc(x_36); +lean_inc(x_35); +lean_dec(x_5); +x_37 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__5(x_35, x_1, x_30); +x_38 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_38, 1, x_36); +x_39 = lean_apply_6(x_4, x_38, x_6, x_7, x_8, x_9, x_23); +return x_39; +} +} +else +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; +lean_dec(x_12); +x_40 = lean_ctor_get(x_22, 0); +lean_inc(x_40); +lean_dec(x_22); +x_41 = lean_ctor_get(x_21, 1); +lean_inc(x_41); +lean_dec(x_21); +x_42 = lean_ctor_get(x_40, 0); +lean_inc(x_42); +x_43 = lean_ctor_get(x_40, 1); +lean_inc(x_43); +lean_dec(x_40); +x_44 = l_Lean_Expr_const___override(x_2, x_42); +x_45 = l_Lean_mkAppN(x_44, x_43); +x_46 = l_Lean_mkAppN(x_45, x_17); +x_47 = !lean_is_exclusive(x_5); +if (x_47 == 0) +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_48 = lean_ctor_get(x_5, 0); +x_49 = lean_ctor_get(x_5, 1); +lean_inc(x_1); +lean_inc(x_46); +x_50 = l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__7(x_49, x_46, x_1); +x_51 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__5(x_48, x_1, x_46); +lean_ctor_set(x_5, 1, x_50); +lean_ctor_set(x_5, 0, x_51); +x_52 = lean_apply_6(x_4, x_5, x_6, x_7, x_8, x_9, x_41); +return x_52; +} +else +{ +lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_53 = lean_ctor_get(x_5, 0); +x_54 = lean_ctor_get(x_5, 1); +lean_inc(x_54); +lean_inc(x_53); +lean_dec(x_5); +lean_inc(x_1); +lean_inc(x_46); +x_55 = l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__7(x_54, x_46, x_1); +x_56 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__5(x_53, x_1, x_46); +x_57 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_57, 0, x_56); +lean_ctor_set(x_57, 1, x_55); +x_58 = lean_apply_6(x_4, x_57, x_6, x_7, x_8, x_9, x_41); +return x_58; +} +} +} +else +{ +uint8_t x_59; +lean_dec(x_17); +lean_dec(x_12); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +x_59 = !lean_is_exclusive(x_21); +if (x_59 == 0) +{ +return x_21; +} +else +{ +lean_object* x_60; lean_object* x_61; lean_object* x_62; +x_60 = lean_ctor_get(x_21, 0); +x_61 = lean_ctor_get(x_21, 1); +lean_inc(x_61); +lean_inc(x_60); +lean_dec(x_21); +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; +} +} +} +else +{ +uint8_t x_63; +lean_dec(x_17); +lean_dec(x_12); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +x_63 = !lean_is_exclusive(x_18); +if (x_63 == 0) +{ +return x_18; +} +else +{ +lean_object* x_64; lean_object* x_65; lean_object* x_66; +x_64 = lean_ctor_get(x_18, 0); +x_65 = lean_ctor_get(x_18, 1); +lean_inc(x_65); +lean_inc(x_64); +lean_dec(x_18); +x_66 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_66, 0, x_64); +lean_ctor_set(x_66, 1, x_65); +return x_66; +} +} +} +else +{ +uint8_t x_67; +lean_dec(x_9); +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_67 = !lean_is_exclusive(x_11); +if (x_67 == 0) +{ +return x_11; +} +else +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; +x_68 = lean_ctor_get(x_11, 0); +x_69 = lean_ctor_get(x_11, 1); +lean_inc(x_69); +lean_inc(x_68); +lean_dec(x_11); +x_70 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_70, 0, x_68); +lean_ctor_set(x_70, 1, x_69); +return x_70; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtorImp(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___rarg), 10, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__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) { +_start: +{ +lean_object* x_8; +x_8 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3(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); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__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) { +_start: +{ +lean_object* x_8; +x_8 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2(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); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__4___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_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__4(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); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__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_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__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); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__9___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) { +_start: +{ +size_t x_7; lean_object* x_8; +x_7 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_8 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__9(x_7, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_3); +lean_dec(x_2); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +size_t x_6; size_t x_7; lean_object* x_8; +x_6 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_7 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_8 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8(x_1, x_6, x_7, x_4, x_5); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtor___rarg___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_object* x_11) { +_start: +{ +lean_object* x_12; +x_12 = l_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___rarg(x_1, x_2, x_3, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtor___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; lean_object* x_7; +x_6 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_withDiscrCtor___rarg___lambda__1), 11, 3); +lean_closure_set(x_6, 0, x_2); +lean_closure_set(x_6, 1, x_3); +lean_closure_set(x_6, 2, x_4); +x_7 = lean_apply_3(x_1, lean_box(0), x_6, x_5); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtor(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_withDiscrCtor___rarg), 5, 0); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; uint8_t x_7; +x_6 = lean_array_get_size(x_1); +x_7 = lean_nat_dec_lt(x_4, x_6); +lean_dec(x_6); +if (x_7 == 0) +{ +lean_object* x_8; +lean_dec(x_4); +x_8 = lean_box(0); +return x_8; +} +else +{ +lean_object* x_9; uint8_t x_10; +x_9 = lean_array_fget(x_1, x_4); +x_10 = lean_expr_eqv(x_5, x_9); +lean_dec(x_9); +if (x_10 == 0) +{ +lean_object* x_11; lean_object* x_12; +x_11 = lean_unsigned_to_nat(1u); +x_12 = lean_nat_add(x_4, x_11); +lean_dec(x_4); +x_3 = lean_box(0); +x_4 = x_12; +goto _start; +} +else +{ +lean_object* x_14; lean_object* x_15; +x_14 = lean_array_fget(x_2, x_4); +lean_dec(x_4); +x_15 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_15, 0, x_14); +return x_15; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__2(lean_object* x_1, size_t x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; size_t x_5; size_t x_6; size_t x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +lean_dec(x_1); +x_5 = 5; +x_6 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__2; +x_7 = lean_usize_land(x_2, x_6); +x_8 = lean_usize_to_nat(x_7); +x_9 = lean_box(2); +x_10 = lean_array_get(x_9, x_4, x_8); +lean_dec(x_8); +lean_dec(x_4); +switch (lean_obj_tag(x_10)) { +case 0: +{ +lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +x_13 = lean_expr_eqv(x_3, x_11); +lean_dec(x_11); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_12); +x_14 = lean_box(0); +return x_14; +} +else +{ +lean_object* x_15; +x_15 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_15, 0, x_12); +return x_15; +} +} +case 1: +{ +lean_object* x_16; size_t x_17; +x_16 = lean_ctor_get(x_10, 0); +lean_inc(x_16); +lean_dec(x_10); +x_17 = lean_usize_shift_right(x_2, x_5); +x_1 = x_16; +x_2 = x_17; +goto _start; +} +default: +{ +lean_object* x_19; +x_19 = lean_box(0); +return x_19; +} +} +} +else +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_1, 0); +lean_inc(x_20); +x_21 = lean_ctor_get(x_1, 1); +lean_inc(x_21); +lean_dec(x_1); +x_22 = lean_unsigned_to_nat(0u); +x_23 = l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__3(x_20, x_21, lean_box(0), x_22, x_3); +lean_dec(x_21); +lean_dec(x_20); +return x_23; +} +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; uint64_t x_4; size_t x_5; lean_object* x_6; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +lean_dec(x_1); +x_4 = l_Lean_Expr_hash(x_2); +x_5 = lean_uint64_to_usize(x_4); +x_6 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__2(x_3, x_5, x_2); +lean_dec(x_2); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___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) { +_start: +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_9 = l_Lean_Expr_fvar___override(x_1); +x_10 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_10, 0, x_9); +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_10); +lean_ctor_set(x_11, 1, x_8); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f(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; lean_object* x_9; +x_8 = lean_ctor_get(x_2, 1); +lean_inc(x_8); +lean_inc(x_1); +x_9 = l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__1(x_8, x_1); +if (lean_obj_tag(x_9) == 0) +{ +lean_object* x_10; lean_object* x_11; +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_10 = lean_box(0); +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_10); +lean_ctor_set(x_11, 1, x_7); +return x_11; +} +else +{ +lean_object* x_12; lean_object* x_13; +x_12 = lean_ctor_get(x_9, 0); +lean_inc(x_12); +lean_dec(x_9); +lean_inc(x_12); +x_13 = l_Lean_Compiler_LCNF_getType(x_12, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; +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); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_16 = l_Lean_Compiler_LCNF_inferType(x_1, x_3, x_4, x_5, x_6, x_15); +if (lean_obj_tag(x_16) == 0) +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_19 = l_Lean_Compiler_LCNF_compatibleTypes(x_14, x_17, x_3, x_4, x_5, x_6, x_18); +if (lean_obj_tag(x_19) == 0) +{ +lean_object* x_20; uint8_t x_21; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +x_21 = lean_unbox(x_20); +lean_dec(x_20); +if (x_21 == 0) +{ +uint8_t x_22; +lean_dec(x_12); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_22 = !lean_is_exclusive(x_19); +if (x_22 == 0) +{ +lean_object* x_23; lean_object* x_24; +x_23 = lean_ctor_get(x_19, 0); +lean_dec(x_23); +x_24 = lean_box(0); +lean_ctor_set(x_19, 0, x_24); +return x_19; +} +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_19, 1); +lean_inc(x_25); +lean_dec(x_19); +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 +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_19, 1); +lean_inc(x_28); +lean_dec(x_19); +x_29 = lean_box(0); +x_30 = l_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___lambda__1(x_12, x_29, x_2, x_3, x_4, x_5, x_6, x_28); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_30; +} +} +else +{ +uint8_t x_31; +lean_dec(x_12); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_31 = !lean_is_exclusive(x_19); +if (x_31 == 0) +{ +return x_19; +} +else +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_32 = lean_ctor_get(x_19, 0); +x_33 = lean_ctor_get(x_19, 1); +lean_inc(x_33); +lean_inc(x_32); +lean_dec(x_19); +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; +} +} +} +else +{ +uint8_t x_35; +lean_dec(x_14); +lean_dec(x_12); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_35 = !lean_is_exclusive(x_16); +if (x_35 == 0) +{ +return x_16; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_16, 0); +x_37 = lean_ctor_get(x_16, 1); +lean_inc(x_37); +lean_inc(x_36); +lean_dec(x_16); +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; +} +} +} +else +{ +uint8_t x_39; +lean_dec(x_12); +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_39 = !lean_is_exclusive(x_13); +if (x_39 == 0) +{ +return x_13; +} +else +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; +x_40 = lean_ctor_get(x_13, 0); +x_41 = lean_ctor_get(x_13, 1); +lean_inc(x_41); +lean_inc(x_40); +lean_dec(x_13); +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_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +x_6 = l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__3(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +size_t x_4; lean_object* x_5; +x_4 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_5 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___spec__2(x_1, x_4, x_3); +lean_dec(x_3); +return x_5; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___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) { +_start: +{ +lean_object* x_9; +x_9 = l_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); +return x_9; +} +} +lean_object* initialize_Init(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_CompilerM(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_Types(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_InferType(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_Simp_Basic(uint8_t builtin, lean_object*); +static bool _G_initialized = false; +LEAN_EXPORT lean_object* initialize_Lean_Compiler_LCNF_Simp_DiscrM(uint8_t builtin, lean_object* w) { +lean_object * res; +if (_G_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_initialized = true; +res = initialize_Init(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_CompilerM(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_Types(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_InferType(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_Simp_Basic(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Compiler_LCNF_Simp_DiscrM_Context_discrCtorMap___default = _init_l_Lean_Compiler_LCNF_Simp_DiscrM_Context_discrCtorMap___default(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_DiscrM_Context_discrCtorMap___default); +l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__1); +l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__2 = _init_l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__2); +l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__3 = _init_l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default___closed__3); +l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default = _init_l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_DiscrM_Context_ctorDiscrMap___default); +l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___closed__1); +l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__1 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__1(); +lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__1); +l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__2 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__2(); +lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__2); +l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__3 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__3(); +lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__3); +l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__4 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__4(); +lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__3___closed__4); +l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__1 = _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__1(); +lean_mark_persistent(l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__1); +l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__2 = _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__2(); +lean_mark_persistent(l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__2); +l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__3 = _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__3(); +lean_mark_persistent(l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__3); +l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__4 = _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__4(); +lean_mark_persistent(l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__2___closed__4); +l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1___closed__1 = _init_l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1___closed__1(); +lean_mark_persistent(l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1___closed__1); +l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1___closed__2 = _init_l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1___closed__2(); +lean_mark_persistent(l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__1___closed__2); +l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__1 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__1(); +l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__2 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__2(); +l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__3 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__3(); +lean_mark_persistent(l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___spec__8___closed__3); +return lean_io_result_mk_ok(lean_box(0)); +} +#ifdef __cplusplus +} +#endif diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Simp/InlineCandidate.c b/stage0/stdlib/Lean/Compiler/LCNF/Simp/InlineCandidate.c index 5e37ea04ac..4441ec1a39 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Simp/InlineCandidate.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Simp/InlineCandidate.c @@ -13,15 +13,15 @@ #ifdef __cplusplus extern "C" { #endif -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__3(lean_object*, lean_object*, lean_object*, 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* l_Lean_registerTraceClass(lean_object*, uint8_t, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_InlineCandidateInfo_arity(lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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*); static lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1___closed__1; lean_object* l_Lean_Compiler_LCNF_Decl_isCasesOnParam_x3f(lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5(lean_object*, lean_object*, lean_object*, 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* l_Lean_Compiler_LCNF_Simp_findFunDecl_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); lean_object* l_Lean_Name_mkStr3(lean_object*, lean_object*, lean_object*); @@ -30,47 +30,47 @@ lean_object* l_Lean_Expr_appArg_x21(lean_object*); lean_object* l_Lean_Expr_getRevArg_x21(lean_object*, lean_object*); extern lean_object* l_Lean_levelZero; lean_object* lean_nat_add(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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*); -lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___closed__2; static lean_object* l_Lean_Compiler_LCNF_Simp_initFn____x40_Lean_Compiler_LCNF_Simp_InlineCandidate___hyg_1012____closed__1; lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(lean_object*, lean_object*, lean_object*); uint8_t l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(lean_object*, uint8_t, lean_object*); LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_Simp_InlineCandidateInfo_recursive___default; -lean_object* l_Lean_Compiler_LCNF_Simp_shouldInlineLocal(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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_Lean_Compiler_LCNF_Simp_shouldInlineLocal(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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*); lean_object* lean_st_ref_take(lean_object*, lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___closed__1; lean_object* l_Lean_Compiler_LCNF_Decl_getArity(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__2(lean_object*, lean_object*, 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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_InlineCandidateInfo_arity___boxed(lean_object*); lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_Simp_findExpr(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_sort___override(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6___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*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5___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*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6___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*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5___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*, lean_object*); uint8_t l_Lean_Expr_isAppOfArity(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_getDecl_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___closed__3; lean_object* l_Lean_Compiler_LCNF_Decl_instantiateParamsLevelParams(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7___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*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_incInline___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__8___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_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7___boxed(lean_object**); +lean_object* l_Lean_Compiler_LCNF_Simp_incInline___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__8___boxed(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_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_isConstructorApp(lean_object*, lean_object*); lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_initFn____x40_Lean_Compiler_LCNF_Simp_InlineCandidate___hyg_1012____closed__3; lean_object* lean_mk_array(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_initFn____x40_Lean_Compiler_LCNF_Simp_InlineCandidate___hyg_1012_(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__8(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__4___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_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__8(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__4___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*); static lean_object* l_Lean_Compiler_LCNF_Simp_initFn____x40_Lean_Compiler_LCNF_Simp_InlineCandidate___hyg_1012____closed__2; -lean_object* l_Lean_Compiler_LCNF_Simp_isSmall(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__4(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_Compiler_LCNF_Simp_isSmall(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__4(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_Expr_getAppFn(lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); static uint8_t _init_l_Lean_Compiler_LCNF_Simp_InlineCandidateInfo_recursive___default() { @@ -108,909 +108,925 @@ x_2 = l_Lean_Expr_sort___override(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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_object* x_11, lean_object* x_12) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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_object* x_11, lean_object* x_12, lean_object* x_13) { _start: { -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t 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; uint8_t x_32; -x_13 = l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg(x_7, x_8, x_9, x_10, x_11, x_12); -x_14 = lean_ctor_get(x_13, 1); -lean_inc(x_14); -lean_dec(x_13); -x_15 = lean_st_ref_get(x_11, x_14); -x_16 = lean_ctor_get(x_15, 1); -lean_inc(x_16); -lean_dec(x_15); -x_17 = lean_st_ref_take(x_7, x_16); -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -lean_dec(x_17); -x_20 = lean_ctor_get(x_18, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_18, 1); -lean_inc(x_21); -x_22 = lean_ctor_get(x_18, 2); -lean_inc(x_22); -x_23 = lean_ctor_get(x_18, 3); -lean_inc(x_23); -x_24 = lean_ctor_get_uint8(x_18, sizeof(void*)*7); -x_25 = lean_ctor_get(x_18, 4); -lean_inc(x_25); -x_26 = lean_ctor_get(x_18, 5); -lean_inc(x_26); -x_27 = lean_ctor_get(x_18, 6); -lean_inc(x_27); -lean_dec(x_18); -x_28 = lean_unsigned_to_nat(1u); -x_29 = lean_nat_add(x_27, x_28); -lean_dec(x_27); -x_30 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_30, 0, x_20); -lean_ctor_set(x_30, 1, x_21); -lean_ctor_set(x_30, 2, x_22); -lean_ctor_set(x_30, 3, x_23); -lean_ctor_set(x_30, 4, x_25); -lean_ctor_set(x_30, 5, x_26); -lean_ctor_set(x_30, 6, x_29); -lean_ctor_set_uint8(x_30, sizeof(void*)*7, x_24); -x_31 = lean_st_ref_set(x_7, x_30, x_19); -x_32 = !lean_is_exclusive(x_31); -if (x_32 == 0) -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; uint8_t x_40; uint8_t x_41; lean_object* x_42; lean_object* x_43; -x_33 = lean_ctor_get(x_31, 0); -lean_dec(x_33); -x_34 = lean_ctor_get(x_1, 2); -x_35 = lean_ctor_get(x_1, 4); -x_36 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1___closed__1; -lean_inc(x_2); -x_37 = lean_mk_array(x_2, x_36); -x_38 = lean_nat_sub(x_2, x_28); -lean_dec(x_2); -x_39 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_3, x_37, x_38); -x_40 = 1; -x_41 = 0; -lean_inc(x_35); -lean_inc(x_34); -x_42 = lean_alloc_ctor(0, 4, 3); -lean_ctor_set(x_42, 0, x_34); -lean_ctor_set(x_42, 1, x_35); -lean_ctor_set(x_42, 2, x_4); -lean_ctor_set(x_42, 3, x_39); -lean_ctor_set_uint8(x_42, sizeof(void*)*4, x_40); -lean_ctor_set_uint8(x_42, sizeof(void*)*4 + 1, x_41); -lean_ctor_set_uint8(x_42, sizeof(void*)*4 + 2, x_41); -x_43 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_43, 0, x_42); -lean_ctor_set(x_31, 0, x_43); -return x_31; -} -else -{ -lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; uint8_t x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_44 = lean_ctor_get(x_31, 1); -lean_inc(x_44); -lean_dec(x_31); -x_45 = lean_ctor_get(x_1, 2); -x_46 = lean_ctor_get(x_1, 4); -x_47 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1___closed__1; -lean_inc(x_2); -x_48 = lean_mk_array(x_2, x_47); -x_49 = lean_nat_sub(x_2, x_28); -lean_dec(x_2); -x_50 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_3, x_48, x_49); -x_51 = 1; -x_52 = 0; -lean_inc(x_46); -lean_inc(x_45); -x_53 = lean_alloc_ctor(0, 4, 3); -lean_ctor_set(x_53, 0, x_45); -lean_ctor_set(x_53, 1, x_46); -lean_ctor_set(x_53, 2, x_4); -lean_ctor_set(x_53, 3, x_50); -lean_ctor_set_uint8(x_53, sizeof(void*)*4, x_51); -lean_ctor_set_uint8(x_53, sizeof(void*)*4 + 1, x_52); -lean_ctor_set_uint8(x_53, sizeof(void*)*4 + 2, x_52); -x_54 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_54, 0, x_53); -x_55 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_55, 0, x_54); -lean_ctor_set(x_55, 1, x_44); -return x_55; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint8_t x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { -_start: -{ -lean_object* x_14; -lean_dec(x_6); -lean_inc(x_1); -x_14 = l_Lean_Compiler_LCNF_Simp_shouldInlineLocal(x_1, x_7, x_8, x_9, x_10, x_11, x_12, x_13); -if (x_5 == 0) -{ -lean_object* x_15; uint8_t x_16; -x_15 = lean_ctor_get(x_14, 0); +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; uint8_t 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; lean_object* x_32; uint8_t x_33; +x_14 = l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg(x_7, x_8, x_9, x_10, x_11, x_12, x_13); +x_15 = lean_ctor_get(x_14, 1); lean_inc(x_15); -x_16 = lean_unbox(x_15); -lean_dec(x_15); -if (x_16 == 0) -{ -uint8_t x_17; -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_17 = !lean_is_exclusive(x_14); -if (x_17 == 0) -{ -lean_object* x_18; lean_object* x_19; -x_18 = lean_ctor_get(x_14, 0); -lean_dec(x_18); -x_19 = lean_box(0); -lean_ctor_set(x_14, 0, x_19); -return x_14; -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_14, 1); -lean_inc(x_20); lean_dec(x_14); -x_21 = lean_box(0); -x_22 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_20); -return x_22; -} -} -else -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_23 = lean_ctor_get(x_14, 1); -lean_inc(x_23); -lean_dec(x_14); -x_24 = lean_box(0); -x_25 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1(x_1, x_2, x_3, x_4, x_24, x_7, x_8, x_9, x_10, x_11, x_12, x_23); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_1); -return x_25; -} -} -else -{ -lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_26 = lean_ctor_get(x_14, 1); -lean_inc(x_26); -lean_dec(x_14); -x_27 = lean_box(0); -x_28 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1(x_1, x_2, x_3, x_4, x_27, x_7, x_8, x_9, x_10, x_11, x_12, x_26); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_1); -return x_28; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14) { -_start: -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; -lean_inc(x_2); -lean_inc(x_1); -x_15 = l_Lean_Compiler_LCNF_Decl_instantiateParamsLevelParams(x_1, x_2); -lean_inc(x_1); -x_16 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_1, x_2); -x_17 = l_Lean_Compiler_LCNF_Simp_incInline___rarg(x_9, x_10, x_11, x_12, x_13, x_14); -x_18 = !lean_is_exclusive(x_17); -if (x_18 == 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; uint8_t x_25; uint8_t x_26; lean_object* x_27; lean_object* x_28; -x_19 = lean_ctor_get(x_17, 0); -lean_dec(x_19); -x_20 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1___closed__1; -lean_inc(x_3); -x_21 = lean_mk_array(x_3, x_20); -x_22 = lean_unsigned_to_nat(1u); -x_23 = lean_nat_sub(x_3, x_22); -lean_dec(x_3); -x_24 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_4, x_21, x_23); -x_25 = lean_ctor_get_uint8(x_1, sizeof(void*)*5); -lean_dec(x_1); -x_26 = 0; -x_27 = lean_alloc_ctor(0, 4, 3); -lean_ctor_set(x_27, 0, x_15); -lean_ctor_set(x_27, 1, x_16); -lean_ctor_set(x_27, 2, x_5); -lean_ctor_set(x_27, 3, x_24); -lean_ctor_set_uint8(x_27, sizeof(void*)*4, x_26); -lean_ctor_set_uint8(x_27, sizeof(void*)*4 + 1, x_6); -lean_ctor_set_uint8(x_27, sizeof(void*)*4 + 2, x_25); -x_28 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_28, 0, x_27); -lean_ctor_set(x_17, 0, x_28); -return x_17; -} -else -{ -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; uint8_t x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; -x_29 = lean_ctor_get(x_17, 1); -lean_inc(x_29); -lean_dec(x_17); -x_30 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1___closed__1; -lean_inc(x_3); -x_31 = lean_mk_array(x_3, x_30); -x_32 = lean_unsigned_to_nat(1u); -x_33 = lean_nat_sub(x_3, x_32); -lean_dec(x_3); -x_34 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_4, x_31, x_33); -x_35 = lean_ctor_get_uint8(x_1, sizeof(void*)*5); -lean_dec(x_1); -x_36 = 0; -x_37 = lean_alloc_ctor(0, 4, 3); -lean_ctor_set(x_37, 0, x_15); -lean_ctor_set(x_37, 1, x_16); -lean_ctor_set(x_37, 2, x_5); -lean_ctor_set(x_37, 3, x_34); -lean_ctor_set_uint8(x_37, sizeof(void*)*4, x_36); -lean_ctor_set_uint8(x_37, sizeof(void*)*4 + 1, x_6); -lean_ctor_set_uint8(x_37, sizeof(void*)*4 + 2, x_35); -x_38 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_38, 0, x_37); -x_39 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_39, 0, x_38); -lean_ctor_set(x_39, 1, x_29); -return x_39; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__4(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: -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; -x_13 = lean_nat_sub(x_1, x_2); -x_14 = lean_unsigned_to_nat(1u); -x_15 = lean_nat_sub(x_13, x_14); -lean_dec(x_13); -x_16 = l_Lean_Expr_getRevArg_x21(x_3, x_15); -x_17 = 1; -x_18 = l_Lean_Compiler_LCNF_Simp_findExpr(x_16, x_17, x_8, x_9, x_10, x_11, x_12); +x_16 = lean_st_ref_get(x_12, x_15); +x_17 = lean_ctor_get(x_16, 1); +lean_inc(x_17); +lean_dec(x_16); +x_18 = lean_st_ref_take(x_7, x_17); x_19 = lean_ctor_get(x_18, 0); lean_inc(x_19); x_20 = lean_ctor_get(x_18, 1); lean_inc(x_20); lean_dec(x_18); -x_21 = lean_st_ref_get(x_11, x_20); -x_22 = !lean_is_exclusive(x_21); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; uint8_t x_26; -x_23 = lean_ctor_get(x_21, 0); -x_24 = lean_ctor_get(x_21, 1); -x_25 = lean_ctor_get(x_23, 0); -lean_inc(x_25); -lean_dec(x_23); -x_26 = l_Lean_Expr_isConstructorApp(x_25, x_19); -lean_dec(x_19); -if (x_26 == 0) -{ -lean_object* x_27; -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_4); -x_27 = lean_box(0); -lean_ctor_set(x_21, 0, x_27); -return x_21; -} -else -{ -lean_object* x_28; lean_object* x_29; -lean_free_object(x_21); -x_28 = lean_box(0); -x_29 = lean_apply_8(x_4, x_28, x_6, x_7, x_8, x_9, x_10, x_11, x_24); -return x_29; -} -} -else -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; -x_30 = lean_ctor_get(x_21, 0); -x_31 = lean_ctor_get(x_21, 1); -lean_inc(x_31); -lean_inc(x_30); -lean_dec(x_21); -x_32 = lean_ctor_get(x_30, 0); -lean_inc(x_32); -lean_dec(x_30); -x_33 = l_Lean_Expr_isConstructorApp(x_32, x_19); +x_21 = lean_ctor_get(x_19, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_19, 1); +lean_inc(x_22); +x_23 = lean_ctor_get(x_19, 2); +lean_inc(x_23); +x_24 = lean_ctor_get(x_19, 3); +lean_inc(x_24); +x_25 = lean_ctor_get_uint8(x_19, sizeof(void*)*7); +x_26 = lean_ctor_get(x_19, 4); +lean_inc(x_26); +x_27 = lean_ctor_get(x_19, 5); +lean_inc(x_27); +x_28 = lean_ctor_get(x_19, 6); +lean_inc(x_28); lean_dec(x_19); +x_29 = lean_unsigned_to_nat(1u); +x_30 = lean_nat_add(x_28, x_29); +lean_dec(x_28); +x_31 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_31, 0, x_21); +lean_ctor_set(x_31, 1, x_22); +lean_ctor_set(x_31, 2, x_23); +lean_ctor_set(x_31, 3, x_24); +lean_ctor_set(x_31, 4, x_26); +lean_ctor_set(x_31, 5, x_27); +lean_ctor_set(x_31, 6, x_30); +lean_ctor_set_uint8(x_31, sizeof(void*)*7, x_25); +x_32 = lean_st_ref_set(x_7, x_31, x_20); +x_33 = !lean_is_exclusive(x_32); if (x_33 == 0) { -lean_object* x_34; lean_object* x_35; -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; uint8_t x_42; lean_object* x_43; lean_object* x_44; +x_34 = lean_ctor_get(x_32, 0); +lean_dec(x_34); +x_35 = lean_ctor_get(x_1, 2); +x_36 = lean_ctor_get(x_1, 4); +x_37 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1___closed__1; +lean_inc(x_2); +x_38 = lean_mk_array(x_2, x_37); +x_39 = lean_nat_sub(x_2, x_29); +lean_dec(x_2); +x_40 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_3, x_38, x_39); +x_41 = 1; +x_42 = 0; +lean_inc(x_36); +lean_inc(x_35); +x_43 = lean_alloc_ctor(0, 4, 3); +lean_ctor_set(x_43, 0, x_35); +lean_ctor_set(x_43, 1, x_36); +lean_ctor_set(x_43, 2, x_4); +lean_ctor_set(x_43, 3, x_40); +lean_ctor_set_uint8(x_43, sizeof(void*)*4, x_41); +lean_ctor_set_uint8(x_43, sizeof(void*)*4 + 1, x_42); +lean_ctor_set_uint8(x_43, sizeof(void*)*4 + 2, x_42); +x_44 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_44, 0, x_43); +lean_ctor_set(x_32, 0, x_44); +return x_32; +} +else +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_52; uint8_t x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; +x_45 = lean_ctor_get(x_32, 1); +lean_inc(x_45); +lean_dec(x_32); +x_46 = lean_ctor_get(x_1, 2); +x_47 = lean_ctor_get(x_1, 4); +x_48 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1___closed__1; +lean_inc(x_2); +x_49 = lean_mk_array(x_2, x_48); +x_50 = lean_nat_sub(x_2, x_29); +lean_dec(x_2); +x_51 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_3, x_49, x_50); +x_52 = 1; +x_53 = 0; +lean_inc(x_47); +lean_inc(x_46); +x_54 = lean_alloc_ctor(0, 4, 3); +lean_ctor_set(x_54, 0, x_46); +lean_ctor_set(x_54, 1, x_47); +lean_ctor_set(x_54, 2, x_4); +lean_ctor_set(x_54, 3, x_51); +lean_ctor_set_uint8(x_54, sizeof(void*)*4, x_52); +lean_ctor_set_uint8(x_54, sizeof(void*)*4 + 1, x_53); +lean_ctor_set_uint8(x_54, sizeof(void*)*4 + 2, x_53); +x_55 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_55, 0, x_54); +x_56 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_56, 0, x_55); +lean_ctor_set(x_56, 1, x_45); +return x_56; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint8_t x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14) { +_start: +{ +lean_object* x_15; lean_dec(x_6); -lean_dec(x_4); -x_34 = lean_box(0); -x_35 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_35, 0, x_34); -lean_ctor_set(x_35, 1, x_31); -return x_35; -} -else -{ -lean_object* x_36; lean_object* x_37; -x_36 = lean_box(0); -x_37 = lean_apply_8(x_4, x_36, x_6, x_7, x_8, x_9, x_10, x_11, x_31); -return x_37; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14) { -_start: -{ -lean_dec(x_7); -if (x_6 == 0) -{ -lean_object* x_15; lean_object* x_16; -x_15 = lean_box(0); -x_16 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__3(x_1, x_2, x_3, x_4, x_5, x_6, x_15, x_8, x_9, x_10, x_11, x_12, x_13, x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -return x_16; -} -else -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_17 = lean_box(x_6); -lean_inc(x_4); -lean_inc(x_3); lean_inc(x_1); -x_18 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__3___boxed), 14, 6); -lean_closure_set(x_18, 0, x_1); -lean_closure_set(x_18, 1, x_2); -lean_closure_set(x_18, 2, x_3); -lean_closure_set(x_18, 3, x_4); -lean_closure_set(x_18, 4, x_5); -lean_closure_set(x_18, 5, x_17); -x_19 = l_Lean_Compiler_LCNF_Decl_isCasesOnParam_x3f(x_1); -if (lean_obj_tag(x_19) == 0) -{ -lean_object* x_20; lean_object* x_21; -lean_dec(x_18); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_4); -lean_dec(x_3); -x_20 = lean_box(0); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_20); -lean_ctor_set(x_21, 1, x_14); -return x_21; -} -else -{ -lean_object* x_22; uint8_t x_23; -x_22 = lean_ctor_get(x_19, 0); -lean_inc(x_22); -lean_dec(x_19); -x_23 = lean_nat_dec_lt(x_22, x_3); -if (x_23 == 0) -{ -lean_object* x_24; lean_object* x_25; -lean_dec(x_22); -lean_dec(x_18); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_4); -lean_dec(x_3); -x_24 = lean_box(0); -x_25 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_25, 0, x_24); -lean_ctor_set(x_25, 1, x_14); -return x_25; -} -else -{ -lean_object* x_26; lean_object* x_27; -x_26 = lean_box(0); -x_27 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__4(x_3, x_22, x_4, x_18, x_26, x_8, x_9, x_10, x_11, x_12, x_13, x_14); -lean_dec(x_22); -lean_dec(x_3); -return x_27; -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, uint8_t x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { -_start: -{ -lean_dec(x_8); -if (x_7 == 0) +x_15 = l_Lean_Compiler_LCNF_Simp_shouldInlineLocal(x_1, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14); +if (x_5 == 0) { lean_object* x_16; uint8_t x_17; -x_16 = lean_ctor_get(x_9, 1); +x_16 = lean_ctor_get(x_15, 0); lean_inc(x_16); -x_17 = lean_ctor_get_uint8(x_16, 1); +x_17 = lean_unbox(x_16); lean_dec(x_16); if (x_17 == 0) { -lean_object* x_18; uint8_t x_19; -x_18 = l_Lean_Compiler_LCNF_Decl_getArity(x_1); -x_19 = lean_nat_dec_lt(x_3, x_18); -lean_dec(x_18); -if (x_19 == 0) -{ -lean_object* x_20; lean_object* x_21; -x_20 = lean_box(0); -x_21 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5(x_1, x_2, x_3, x_4, x_5, x_6, x_20, x_9, x_10, x_11, x_12, x_13, x_14, x_15); -return x_21; -} -else -{ -lean_object* x_22; lean_object* x_23; -lean_dec(x_14); +uint8_t x_18; lean_dec(x_13); lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); -lean_dec(x_5); +lean_dec(x_8); +lean_dec(x_7); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); +x_18 = !lean_is_exclusive(x_15); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; +x_19 = lean_ctor_get(x_15, 0); +lean_dec(x_19); +x_20 = lean_box(0); +lean_ctor_set(x_15, 0, x_20); +return x_15; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_15, 1); +lean_inc(x_21); +lean_dec(x_15); x_22 = lean_box(0); x_23 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_15); +lean_ctor_set(x_23, 1, x_21); return x_23; } } else { -lean_object* x_24; lean_object* x_25; -x_24 = lean_box(0); -x_25 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5(x_1, x_2, x_3, x_4, x_5, x_6, x_24, x_9, x_10, x_11, x_12, x_13, x_14, x_15); -return x_25; +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_15, 1); +lean_inc(x_24); +lean_dec(x_15); +x_25 = lean_box(0); +x_26 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1(x_1, x_2, x_3, x_4, x_25, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_24); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_1); +return x_26; } } else { -lean_object* x_26; lean_object* x_27; -x_26 = lean_box(0); -x_27 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5(x_1, x_2, x_3, x_4, x_5, x_6, x_26, x_9, x_10, x_11, x_12, x_13, x_14, x_15); -return x_27; +lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_27 = lean_ctor_get(x_15, 1); +lean_inc(x_27); +lean_dec(x_15); +x_28 = lean_box(0); +x_29 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1(x_1, x_2, x_3, x_4, x_28, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_27); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_1); +return x_29; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, uint8_t x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { _start: { -lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; -lean_dec(x_9); -x_17 = lean_ctor_get(x_1, 4); -lean_inc(x_17); -x_18 = l_Lean_Compiler_LCNF_Simp_isSmall(x_17, x_10, x_11, x_12, x_13, x_14, x_15, x_16); -x_19 = lean_ctor_get(x_18, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_18, 1); -lean_inc(x_20); +lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +lean_inc(x_2); +lean_inc(x_1); +x_16 = l_Lean_Compiler_LCNF_Decl_instantiateParamsLevelParams(x_1, x_2); +lean_inc(x_1); +x_17 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_1, x_2); +x_18 = l_Lean_Compiler_LCNF_Simp_incInline___rarg(x_9, x_10, x_11, x_12, x_13, x_14, x_15); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; uint8_t x_26; uint8_t x_27; lean_object* x_28; lean_object* x_29; +x_20 = lean_ctor_get(x_18, 0); +lean_dec(x_20); +x_21 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1___closed__1; +lean_inc(x_3); +x_22 = lean_mk_array(x_3, x_21); +x_23 = lean_unsigned_to_nat(1u); +x_24 = lean_nat_sub(x_3, x_23); +lean_dec(x_3); +x_25 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_4, x_22, x_24); +x_26 = lean_ctor_get_uint8(x_1, sizeof(void*)*5); +lean_dec(x_1); +x_27 = 0; +x_28 = lean_alloc_ctor(0, 4, 3); +lean_ctor_set(x_28, 0, x_16); +lean_ctor_set(x_28, 1, x_17); +lean_ctor_set(x_28, 2, x_5); +lean_ctor_set(x_28, 3, x_25); +lean_ctor_set_uint8(x_28, sizeof(void*)*4, x_27); +lean_ctor_set_uint8(x_28, sizeof(void*)*4 + 1, x_6); +lean_ctor_set_uint8(x_28, sizeof(void*)*4 + 2, x_26); +x_29 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_29, 0, x_28); +lean_ctor_set(x_18, 0, x_29); +return x_18; +} +else +{ +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; uint8_t x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_30 = lean_ctor_get(x_18, 1); +lean_inc(x_30); lean_dec(x_18); -x_21 = lean_st_ref_get(x_15, x_20); -if (x_7 == 0) +x_31 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1___closed__1; +lean_inc(x_3); +x_32 = lean_mk_array(x_3, x_31); +x_33 = lean_unsigned_to_nat(1u); +x_34 = lean_nat_sub(x_3, x_33); +lean_dec(x_3); +x_35 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_4, x_32, x_34); +x_36 = lean_ctor_get_uint8(x_1, sizeof(void*)*5); +lean_dec(x_1); +x_37 = 0; +x_38 = lean_alloc_ctor(0, 4, 3); +lean_ctor_set(x_38, 0, x_16); +lean_ctor_set(x_38, 1, x_17); +lean_ctor_set(x_38, 2, x_5); +lean_ctor_set(x_38, 3, x_35); +lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_37); +lean_ctor_set_uint8(x_38, sizeof(void*)*4 + 1, x_6); +lean_ctor_set_uint8(x_38, sizeof(void*)*4 + 2, x_36); +x_39 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_39, 0, x_38); +x_40 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_40, 0, x_39); +lean_ctor_set(x_40, 1, x_30); +return x_40; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__4(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_object* x_13) { +_start: { -uint8_t x_22; -x_22 = !lean_is_exclusive(x_21); -if (x_22 == 0) +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; +x_14 = lean_nat_sub(x_1, x_2); +x_15 = lean_unsigned_to_nat(1u); +x_16 = lean_nat_sub(x_14, x_15); +lean_dec(x_14); +x_17 = l_Lean_Expr_getRevArg_x21(x_3, x_16); +x_18 = 1; +x_19 = l_Lean_Compiler_LCNF_Simp_findExpr(x_17, x_18, x_9, x_10, x_11, x_12, x_13); +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +x_21 = lean_ctor_get(x_19, 1); +lean_inc(x_21); +lean_dec(x_19); +x_22 = lean_st_ref_get(x_12, x_21); +x_23 = !lean_is_exclusive(x_22); +if (x_23 == 0) { -lean_object* x_23; lean_object* x_24; lean_object* x_25; uint8_t x_26; uint8_t x_27; -x_23 = lean_ctor_get(x_21, 0); -x_24 = lean_ctor_get(x_21, 1); -x_25 = lean_ctor_get(x_23, 0); -lean_inc(x_25); -lean_dec(x_23); -x_26 = 0; -lean_inc(x_8); -lean_inc(x_25); -x_27 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_25, x_26, x_8); +lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; +x_24 = lean_ctor_get(x_22, 0); +x_25 = lean_ctor_get(x_22, 1); +x_26 = lean_ctor_get(x_24, 0); +lean_inc(x_26); +lean_dec(x_24); +x_27 = l_Lean_Expr_isConstructorApp(x_26, x_20); +lean_dec(x_20); if (x_27 == 0) { -if (x_6 == 0) -{ -uint8_t x_28; -x_28 = lean_unbox(x_19); -lean_dec(x_19); -if (x_28 == 0) -{ -lean_object* x_29; -lean_dec(x_25); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); +lean_object* x_28; lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); +lean_dec(x_9); lean_dec(x_8); -lean_dec(x_5); +lean_dec(x_7); +lean_dec(x_6); lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); +x_28 = lean_box(0); +lean_ctor_set(x_22, 0, x_28); +return x_22; +} +else +{ +lean_object* x_29; lean_object* x_30; +lean_free_object(x_22); x_29 = lean_box(0); -lean_ctor_set(x_21, 0, x_29); -return x_21; -} -else -{ -uint8_t x_30; uint8_t x_31; -x_30 = 1; -x_31 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_25, x_30, x_8); -if (x_31 == 0) -{ -lean_object* x_32; lean_object* x_33; -lean_free_object(x_21); -x_32 = lean_box(0); -x_33 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_32, x_10, x_11, x_12, x_13, x_14, x_15, x_24); -return x_33; -} -else -{ -lean_object* x_34; -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_34 = lean_box(0); -lean_ctor_set(x_21, 0, x_34); -return x_21; -} -} -} -else -{ -lean_object* x_35; lean_object* x_36; -lean_dec(x_25); -lean_free_object(x_21); -lean_dec(x_19); -lean_dec(x_8); -x_35 = lean_box(0); -x_36 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_35, x_10, x_11, x_12, x_13, x_14, x_15, x_24); -return x_36; -} -} -else -{ -lean_object* x_37; lean_object* x_38; -lean_dec(x_25); -lean_free_object(x_21); -lean_dec(x_19); -lean_dec(x_8); -x_37 = lean_box(0); -x_38 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_37, x_10, x_11, x_12, x_13, x_14, x_15, x_24); -return x_38; -} -} -else -{ -lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; uint8_t x_43; -x_39 = lean_ctor_get(x_21, 0); -x_40 = lean_ctor_get(x_21, 1); -lean_inc(x_40); -lean_inc(x_39); -lean_dec(x_21); -x_41 = lean_ctor_get(x_39, 0); -lean_inc(x_41); -lean_dec(x_39); -x_42 = 0; -lean_inc(x_8); -lean_inc(x_41); -x_43 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_41, x_42, x_8); -if (x_43 == 0) -{ -if (x_6 == 0) -{ -uint8_t x_44; -x_44 = lean_unbox(x_19); -lean_dec(x_19); -if (x_44 == 0) -{ -lean_object* x_45; lean_object* x_46; -lean_dec(x_41); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_8); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_45 = lean_box(0); -x_46 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_46, 0, x_45); -lean_ctor_set(x_46, 1, x_40); -return x_46; -} -else -{ -uint8_t x_47; uint8_t x_48; -x_47 = 1; -x_48 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_41, x_47, x_8); -if (x_48 == 0) -{ -lean_object* x_49; lean_object* x_50; -x_49 = lean_box(0); -x_50 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_49, x_10, x_11, x_12, x_13, x_14, x_15, x_40); -return x_50; -} -else -{ -lean_object* x_51; lean_object* x_52; -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_51 = lean_box(0); -x_52 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_52, 0, x_51); -lean_ctor_set(x_52, 1, x_40); -return x_52; -} -} -} -else -{ -lean_object* x_53; lean_object* x_54; -lean_dec(x_41); -lean_dec(x_19); -lean_dec(x_8); -x_53 = lean_box(0); -x_54 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_53, x_10, x_11, x_12, x_13, x_14, x_15, x_40); -return x_54; -} -} -else -{ -lean_object* x_55; lean_object* x_56; -lean_dec(x_41); -lean_dec(x_19); -lean_dec(x_8); -x_55 = lean_box(0); -x_56 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_55, x_10, x_11, x_12, x_13, x_14, x_15, x_40); -return x_56; -} -} -} -else -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; -lean_dec(x_19); -lean_dec(x_8); -x_57 = lean_ctor_get(x_21, 1); -lean_inc(x_57); -lean_dec(x_21); -x_58 = lean_box(0); -x_59 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_58, x_10, x_11, x_12, x_13, x_14, x_15, x_57); -return x_59; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__8(lean_object* x_1, uint8_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) { -_start: -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; lean_object* x_15; lean_object* x_16; -lean_dec(x_3); -x_11 = lean_unsigned_to_nat(0u); -x_12 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_11); -x_13 = l_Lean_Expr_getAppFn(x_1); -x_14 = 1; -lean_inc(x_13); -x_15 = l_Lean_Compiler_LCNF_Simp_findExpr(x_13, x_14, x_6, x_7, x_8, x_9, x_10); -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -if (lean_obj_tag(x_16) == 4) -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); -x_18 = lean_ctor_get(x_16, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_16, 1); -lean_inc(x_19); -lean_dec(x_16); -lean_inc(x_18); -x_20 = l_Lean_Compiler_LCNF_getDecl_x3f(x_18, x_6, x_7, x_8, x_9, x_17); -x_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -if (lean_obj_tag(x_21) == 0) -{ -uint8_t x_22; -lean_dec(x_19); -lean_dec(x_18); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_22 = !lean_is_exclusive(x_20); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; -x_23 = lean_ctor_get(x_20, 0); -lean_dec(x_23); -x_24 = lean_box(0); -lean_ctor_set(x_20, 0, x_24); -return x_20; -} -else -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_20, 1); -lean_inc(x_25); -lean_dec(x_20); -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 -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; uint8_t x_31; -x_28 = lean_ctor_get(x_20, 1); -lean_inc(x_28); -lean_dec(x_20); -x_29 = lean_ctor_get(x_21, 0); -lean_inc(x_29); -lean_dec(x_21); -x_30 = lean_st_ref_get(x_9, x_28); -x_31 = !lean_is_exclusive(x_30); -if (x_31 == 0) -{ -lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; uint8_t x_36; -x_32 = lean_ctor_get(x_30, 0); -x_33 = lean_ctor_get(x_30, 1); -x_34 = lean_ctor_get(x_32, 0); -lean_inc(x_34); -lean_dec(x_32); -x_35 = 3; -lean_inc(x_18); -x_36 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_34, x_35, x_18); -if (x_36 == 0) -{ -uint8_t x_37; -x_37 = lean_ctor_get_uint8(x_29, sizeof(void*)*5); -if (x_37 == 0) -{ -lean_object* x_38; lean_object* x_39; -lean_free_object(x_30); -x_38 = lean_box(0); -x_39 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(x_29, x_19, x_12, x_1, x_13, x_36, x_2, x_18, x_38, x_4, x_5, x_6, x_7, x_8, x_9, x_33); -return x_39; -} -else -{ -lean_object* x_40; -lean_dec(x_29); -lean_dec(x_19); -lean_dec(x_18); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_40 = lean_box(0); -lean_ctor_set(x_30, 0, x_40); +x_30 = lean_apply_9(x_4, x_29, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_25); return x_30; } } else { -lean_object* x_41; lean_object* x_42; -lean_free_object(x_30); -x_41 = lean_box(0); -x_42 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(x_29, x_19, x_12, x_1, x_13, x_36, x_2, x_18, x_41, x_4, x_5, x_6, x_7, x_8, x_9, x_33); -return x_42; +lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; +x_31 = lean_ctor_get(x_22, 0); +x_32 = lean_ctor_get(x_22, 1); +lean_inc(x_32); +lean_inc(x_31); +lean_dec(x_22); +x_33 = lean_ctor_get(x_31, 0); +lean_inc(x_33); +lean_dec(x_31); +x_34 = l_Lean_Expr_isConstructorApp(x_33, x_20); +lean_dec(x_20); +if (x_34 == 0) +{ +lean_object* x_35; lean_object* x_36; +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +x_35 = lean_box(0); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_35); +lean_ctor_set(x_36, 1, x_32); +return x_36; +} +else +{ +lean_object* x_37; lean_object* x_38; +x_37 = lean_box(0); +x_38 = lean_apply_9(x_4, x_37, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_32); +return x_38; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +_start: +{ +lean_dec(x_7); +if (x_6 == 0) +{ +lean_object* x_16; lean_object* x_17; +x_16 = lean_box(0); +x_17 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__3(x_1, x_2, x_3, x_4, x_5, x_6, x_16, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +return x_17; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_box(x_6); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_1); +x_19 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__3___boxed), 15, 6); +lean_closure_set(x_19, 0, x_1); +lean_closure_set(x_19, 1, x_2); +lean_closure_set(x_19, 2, x_3); +lean_closure_set(x_19, 3, x_4); +lean_closure_set(x_19, 4, x_5); +lean_closure_set(x_19, 5, x_18); +x_20 = l_Lean_Compiler_LCNF_Decl_isCasesOnParam_x3f(x_1); +if (lean_obj_tag(x_20) == 0) +{ +lean_object* x_21; lean_object* x_22; +lean_dec(x_19); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_4); +lean_dec(x_3); +x_21 = lean_box(0); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_21); +lean_ctor_set(x_22, 1, x_15); +return x_22; +} +else +{ +lean_object* x_23; uint8_t x_24; +x_23 = lean_ctor_get(x_20, 0); +lean_inc(x_23); +lean_dec(x_20); +x_24 = lean_nat_dec_lt(x_23, x_3); +if (x_24 == 0) +{ +lean_object* x_25; lean_object* x_26; +lean_dec(x_23); +lean_dec(x_19); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_4); +lean_dec(x_3); +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_15); +return x_26; +} +else +{ +lean_object* x_27; lean_object* x_28; +x_27 = lean_box(0); +x_28 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__4(x_3, x_23, x_4, x_19, x_27, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); +lean_dec(x_23); +lean_dec(x_3); +return x_28; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, uint8_t x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +_start: +{ +lean_dec(x_8); +if (x_7 == 0) +{ +lean_object* x_17; uint8_t x_18; +x_17 = lean_ctor_get(x_9, 1); +lean_inc(x_17); +x_18 = lean_ctor_get_uint8(x_17, 1); +lean_dec(x_17); +if (x_18 == 0) +{ +lean_object* x_19; uint8_t x_20; +x_19 = l_Lean_Compiler_LCNF_Decl_getArity(x_1); +x_20 = lean_nat_dec_lt(x_3, x_19); +lean_dec(x_19); +if (x_20 == 0) +{ +lean_object* x_21; lean_object* x_22; +x_21 = lean_box(0); +x_22 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5(x_1, x_2, x_3, x_4, x_5, x_6, x_21, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +return x_22; +} +else +{ +lean_object* x_23; lean_object* x_24; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_23 = lean_box(0); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_16); +return x_24; } } else { -lean_object* x_43; lean_object* x_44; lean_object* x_45; uint8_t x_46; uint8_t x_47; -x_43 = lean_ctor_get(x_30, 0); -x_44 = lean_ctor_get(x_30, 1); -lean_inc(x_44); -lean_inc(x_43); -lean_dec(x_30); -x_45 = lean_ctor_get(x_43, 0); -lean_inc(x_45); -lean_dec(x_43); -x_46 = 3; -lean_inc(x_18); -x_47 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_45, x_46, x_18); -if (x_47 == 0) +lean_object* x_25; lean_object* x_26; +x_25 = lean_box(0); +x_26 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5(x_1, x_2, x_3, x_4, x_5, x_6, x_25, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +return x_26; +} +} +else { -uint8_t x_48; -x_48 = lean_ctor_get_uint8(x_29, sizeof(void*)*5); +lean_object* x_27; lean_object* x_28; +x_27 = lean_box(0); +x_28 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5(x_1, x_2, x_3, x_4, x_5, x_6, x_27, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +return x_28; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, uint8_t x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16, lean_object* x_17) { +_start: +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +lean_dec(x_9); +x_18 = lean_ctor_get(x_1, 4); +lean_inc(x_18); +x_19 = l_Lean_Compiler_LCNF_Simp_isSmall(x_18, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17); +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +x_21 = lean_ctor_get(x_19, 1); +lean_inc(x_21); +lean_dec(x_19); +x_22 = lean_st_ref_get(x_16, x_21); +if (x_7 == 0) +{ +uint8_t x_23; +x_23 = !lean_is_exclusive(x_22); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; uint8_t x_28; +x_24 = lean_ctor_get(x_22, 0); +x_25 = lean_ctor_get(x_22, 1); +x_26 = lean_ctor_get(x_24, 0); +lean_inc(x_26); +lean_dec(x_24); +x_27 = 0; +lean_inc(x_8); +lean_inc(x_26); +x_28 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_26, x_27, x_8); +if (x_28 == 0) +{ +if (x_6 == 0) +{ +uint8_t x_29; +x_29 = lean_unbox(x_20); +lean_dec(x_20); +if (x_29 == 0) +{ +lean_object* x_30; +lean_dec(x_26); +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_30 = lean_box(0); +lean_ctor_set(x_22, 0, x_30); +return x_22; +} +else +{ +uint8_t x_31; uint8_t x_32; +x_31 = 1; +x_32 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_26, x_31, x_8); +if (x_32 == 0) +{ +lean_object* x_33; lean_object* x_34; +lean_free_object(x_22); +x_33 = lean_box(0); +x_34 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_33, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_25); +return x_34; +} +else +{ +lean_object* x_35; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_35 = lean_box(0); +lean_ctor_set(x_22, 0, x_35); +return x_22; +} +} +} +else +{ +lean_object* x_36; lean_object* x_37; +lean_dec(x_26); +lean_free_object(x_22); +lean_dec(x_20); +lean_dec(x_8); +x_36 = lean_box(0); +x_37 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_36, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_25); +return x_37; +} +} +else +{ +lean_object* x_38; lean_object* x_39; +lean_dec(x_26); +lean_free_object(x_22); +lean_dec(x_20); +lean_dec(x_8); +x_38 = lean_box(0); +x_39 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_38, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_25); +return x_39; +} +} +else +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; uint8_t x_44; +x_40 = lean_ctor_get(x_22, 0); +x_41 = lean_ctor_get(x_22, 1); +lean_inc(x_41); +lean_inc(x_40); +lean_dec(x_22); +x_42 = lean_ctor_get(x_40, 0); +lean_inc(x_42); +lean_dec(x_40); +x_43 = 0; +lean_inc(x_8); +lean_inc(x_42); +x_44 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_42, x_43, x_8); +if (x_44 == 0) +{ +if (x_6 == 0) +{ +uint8_t x_45; +x_45 = lean_unbox(x_20); +lean_dec(x_20); +if (x_45 == 0) +{ +lean_object* x_46; lean_object* x_47; +lean_dec(x_42); +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_8); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_46 = lean_box(0); +x_47 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_47, 0, x_46); +lean_ctor_set(x_47, 1, x_41); +return x_47; +} +else +{ +uint8_t x_48; uint8_t x_49; +x_48 = 1; +x_49 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_42, x_48, x_8); +if (x_49 == 0) +{ +lean_object* x_50; lean_object* x_51; +x_50 = lean_box(0); +x_51 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_50, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_41); +return x_51; +} +else +{ +lean_object* x_52; lean_object* x_53; +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_52 = lean_box(0); +x_53 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_53, 0, x_52); +lean_ctor_set(x_53, 1, x_41); +return x_53; +} +} +} +else +{ +lean_object* x_54; lean_object* x_55; +lean_dec(x_42); +lean_dec(x_20); +lean_dec(x_8); +x_54 = lean_box(0); +x_55 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_54, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_41); +return x_55; +} +} +else +{ +lean_object* x_56; lean_object* x_57; +lean_dec(x_42); +lean_dec(x_20); +lean_dec(x_8); +x_56 = lean_box(0); +x_57 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_56, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_41); +return x_57; +} +} +} +else +{ +lean_object* x_58; lean_object* x_59; lean_object* x_60; +lean_dec(x_20); +lean_dec(x_8); +x_58 = lean_ctor_get(x_22, 1); +lean_inc(x_58); +lean_dec(x_22); +x_59 = lean_box(0); +x_60 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_59, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_58); +return x_60; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__8(lean_object* x_1, uint8_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) { +_start: +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; lean_object* x_16; lean_object* x_17; +lean_dec(x_3); +x_12 = lean_unsigned_to_nat(0u); +x_13 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_12); +x_14 = l_Lean_Expr_getAppFn(x_1); +x_15 = 1; +lean_inc(x_14); +x_16 = l_Lean_Compiler_LCNF_Simp_findExpr(x_14, x_15, x_7, x_8, x_9, x_10, x_11); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +if (lean_obj_tag(x_17) == 4) +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = lean_ctor_get(x_17, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_17, 1); +lean_inc(x_20); +lean_dec(x_17); +lean_inc(x_19); +x_21 = l_Lean_Compiler_LCNF_getDecl_x3f(x_19, x_7, x_8, x_9, x_10, x_18); +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +if (lean_obj_tag(x_22) == 0) +{ +uint8_t x_23; +lean_dec(x_20); +lean_dec(x_19); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_1); +x_23 = !lean_is_exclusive(x_21); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; +x_24 = lean_ctor_get(x_21, 0); +lean_dec(x_24); +x_25 = lean_box(0); +lean_ctor_set(x_21, 0, x_25); +return x_21; +} +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_21, 1); +lean_inc(x_26); +lean_dec(x_21); +x_27 = lean_box(0); +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_26); +return x_28; +} +} +else +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; +x_29 = lean_ctor_get(x_21, 1); +lean_inc(x_29); +lean_dec(x_21); +x_30 = lean_ctor_get(x_22, 0); +lean_inc(x_30); +lean_dec(x_22); +x_31 = lean_st_ref_get(x_10, x_29); +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; lean_object* x_34; lean_object* x_35; uint8_t x_36; uint8_t x_37; +x_33 = lean_ctor_get(x_31, 0); +x_34 = lean_ctor_get(x_31, 1); +x_35 = lean_ctor_get(x_33, 0); +lean_inc(x_35); +lean_dec(x_33); +x_36 = 3; +lean_inc(x_19); +x_37 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_35, x_36, x_19); +if (x_37 == 0) +{ +uint8_t x_38; +x_38 = lean_ctor_get_uint8(x_30, sizeof(void*)*5); +if (x_38 == 0) +{ +lean_object* x_39; lean_object* x_40; +lean_free_object(x_31); +x_39 = lean_box(0); +x_40 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(x_30, x_20, x_13, x_1, x_14, x_37, x_2, x_19, x_39, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_34); +return x_40; +} +else +{ +lean_object* x_41; +lean_dec(x_30); +lean_dec(x_20); +lean_dec(x_19); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_1); +x_41 = lean_box(0); +lean_ctor_set(x_31, 0, x_41); +return x_31; +} +} +else +{ +lean_object* x_42; lean_object* x_43; +lean_free_object(x_31); +x_42 = lean_box(0); +x_43 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(x_30, x_20, x_13, x_1, x_14, x_37, x_2, x_19, x_42, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_34); +return x_43; +} +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; uint8_t x_48; +x_44 = lean_ctor_get(x_31, 0); +x_45 = lean_ctor_get(x_31, 1); +lean_inc(x_45); +lean_inc(x_44); +lean_dec(x_31); +x_46 = lean_ctor_get(x_44, 0); +lean_inc(x_46); +lean_dec(x_44); +x_47 = 3; +lean_inc(x_19); +x_48 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_46, x_47, x_19); if (x_48 == 0) { -lean_object* x_49; lean_object* x_50; -x_49 = lean_box(0); -x_50 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(x_29, x_19, x_12, x_1, x_13, x_47, x_2, x_18, x_49, x_4, x_5, x_6, x_7, x_8, x_9, x_44); -return x_50; +uint8_t x_49; +x_49 = lean_ctor_get_uint8(x_30, sizeof(void*)*5); +if (x_49 == 0) +{ +lean_object* x_50; lean_object* x_51; +x_50 = lean_box(0); +x_51 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(x_30, x_20, x_13, x_1, x_14, x_48, x_2, x_19, x_50, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_45); +return x_51; } else { -lean_object* x_51; lean_object* x_52; -lean_dec(x_29); +lean_object* x_52; lean_object* x_53; +lean_dec(x_30); +lean_dec(x_20); lean_dec(x_19); -lean_dec(x_18); +lean_dec(x_14); lean_dec(x_13); -lean_dec(x_12); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1018,39 +1034,40 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_1); -x_51 = lean_box(0); -x_52 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_52, 0, x_51); -lean_ctor_set(x_52, 1, x_44); -return x_52; +x_52 = lean_box(0); +x_53 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_53, 0, x_52); +lean_ctor_set(x_53, 1, x_45); +return x_53; } } else { -lean_object* x_53; lean_object* x_54; -x_53 = lean_box(0); -x_54 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(x_29, x_19, x_12, x_1, x_13, x_47, x_2, x_18, x_53, x_4, x_5, x_6, x_7, x_8, x_9, x_44); -return x_54; +lean_object* x_54; lean_object* x_55; +x_54 = lean_box(0); +x_55 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(x_30, x_20, x_13, x_1, x_14, x_48, x_2, x_19, x_54, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_45); +return x_55; } } } } else { -lean_object* x_55; lean_object* x_56; lean_object* x_57; +lean_object* x_56; lean_object* x_57; lean_object* x_58; +lean_dec(x_17); +x_56 = lean_ctor_get(x_16, 1); +lean_inc(x_56); lean_dec(x_16); -x_55 = lean_ctor_get(x_15, 1); -lean_inc(x_55); -lean_dec(x_15); -lean_inc(x_13); -x_56 = l_Lean_Compiler_LCNF_Simp_findFunDecl_x3f(x_13, x_6, x_7, x_8, x_9, x_55); -x_57 = lean_ctor_get(x_56, 0); -lean_inc(x_57); -if (lean_obj_tag(x_57) == 0) +lean_inc(x_14); +x_57 = l_Lean_Compiler_LCNF_Simp_findFunDecl_x3f(x_14, x_7, x_8, x_9, x_10, x_56); +x_58 = lean_ctor_get(x_57, 0); +lean_inc(x_58); +if (lean_obj_tag(x_58) == 0) { -uint8_t x_58; +uint8_t x_59; +lean_dec(x_14); lean_dec(x_13); -lean_dec(x_12); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1058,49 +1075,50 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_1); -x_58 = !lean_is_exclusive(x_56); -if (x_58 == 0) +x_59 = !lean_is_exclusive(x_57); +if (x_59 == 0) { -lean_object* x_59; lean_object* x_60; -x_59 = lean_ctor_get(x_56, 0); -lean_dec(x_59); -x_60 = lean_box(0); -lean_ctor_set(x_56, 0, x_60); -return x_56; +lean_object* x_60; lean_object* x_61; +x_60 = lean_ctor_get(x_57, 0); +lean_dec(x_60); +x_61 = lean_box(0); +lean_ctor_set(x_57, 0, x_61); +return x_57; } else { -lean_object* x_61; lean_object* x_62; lean_object* x_63; -x_61 = lean_ctor_get(x_56, 1); -lean_inc(x_61); -lean_dec(x_56); -x_62 = lean_box(0); -x_63 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_63, 0, x_62); -lean_ctor_set(x_63, 1, x_61); -return x_63; -} -} -else -{ -uint8_t x_64; -x_64 = !lean_is_exclusive(x_56); -if (x_64 == 0) -{ -lean_object* x_65; lean_object* x_66; lean_object* x_67; uint8_t x_68; -x_65 = lean_ctor_get(x_56, 1); -x_66 = lean_ctor_get(x_56, 0); -lean_dec(x_66); -x_67 = lean_ctor_get(x_57, 0); -lean_inc(x_67); +lean_object* x_62; lean_object* x_63; lean_object* x_64; +x_62 = lean_ctor_get(x_57, 1); +lean_inc(x_62); lean_dec(x_57); -x_68 = lean_nat_dec_lt(x_11, x_12); -if (x_68 == 0) +x_63 = lean_box(0); +x_64 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_64, 0, x_63); +lean_ctor_set(x_64, 1, x_62); +return x_64; +} +} +else { -lean_object* x_69; +uint8_t x_65; +x_65 = !lean_is_exclusive(x_57); +if (x_65 == 0) +{ +lean_object* x_66; lean_object* x_67; lean_object* x_68; uint8_t x_69; +x_66 = lean_ctor_get(x_57, 1); +x_67 = lean_ctor_get(x_57, 0); lean_dec(x_67); +x_68 = lean_ctor_get(x_58, 0); +lean_inc(x_68); +lean_dec(x_58); +x_69 = lean_nat_dec_lt(x_12, x_13); +if (x_69 == 0) +{ +lean_object* x_70; +lean_dec(x_68); +lean_dec(x_14); lean_dec(x_13); -lean_dec(x_12); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1108,35 +1126,36 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_1); -x_69 = lean_box(0); -lean_ctor_set(x_56, 0, x_69); -return x_56; -} -else -{ -lean_object* x_70; lean_object* x_71; -lean_free_object(x_56); x_70 = lean_box(0); -x_71 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__2(x_67, x_12, x_1, x_13, x_2, x_70, x_4, x_5, x_6, x_7, x_8, x_9, x_65); -return x_71; +lean_ctor_set(x_57, 0, x_70); +return x_57; +} +else +{ +lean_object* x_71; lean_object* x_72; +lean_free_object(x_57); +x_71 = lean_box(0); +x_72 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__2(x_68, x_13, x_1, x_14, x_2, x_71, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_66); +return x_72; } } else { -lean_object* x_72; lean_object* x_73; uint8_t x_74; -x_72 = lean_ctor_get(x_56, 1); -lean_inc(x_72); -lean_dec(x_56); -x_73 = lean_ctor_get(x_57, 0); +lean_object* x_73; lean_object* x_74; uint8_t x_75; +x_73 = lean_ctor_get(x_57, 1); lean_inc(x_73); lean_dec(x_57); -x_74 = lean_nat_dec_lt(x_11, x_12); -if (x_74 == 0) +x_74 = lean_ctor_get(x_58, 0); +lean_inc(x_74); +lean_dec(x_58); +x_75 = lean_nat_dec_lt(x_12, x_13); +if (x_75 == 0) { -lean_object* x_75; lean_object* x_76; -lean_dec(x_73); +lean_object* x_76; lean_object* x_77; +lean_dec(x_74); +lean_dec(x_14); lean_dec(x_13); -lean_dec(x_12); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1144,18 +1163,18 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_1); -x_75 = lean_box(0); -x_76 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_76, 0, x_75); -lean_ctor_set(x_76, 1, x_72); -return x_76; +x_76 = lean_box(0); +x_77 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_77, 0, x_76); +lean_ctor_set(x_77, 1, x_73); +return x_77; } else { -lean_object* x_77; lean_object* x_78; -x_77 = lean_box(0); -x_78 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__2(x_73, x_12, x_1, x_13, x_2, x_77, x_4, x_5, x_6, x_7, x_8, x_9, x_72); -return x_78; +lean_object* x_78; lean_object* x_79; +x_78 = lean_box(0); +x_79 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__2(x_74, x_13, x_1, x_14, x_2, x_78, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_73); +return x_79; } } } @@ -1166,7 +1185,7 @@ static lean_object* _init_l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___closed _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__8___boxed), 10, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__8___boxed), 11, 0); return x_1; } } @@ -1188,47 +1207,48 @@ x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f(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_Compiler_LCNF_Simp_inlineCandidate_x3f(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_object* x_10; lean_object* x_11; uint8_t x_12; -x_9 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___closed__1; -x_10 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___closed__3; -x_11 = lean_unsigned_to_nat(2u); -x_12 = l_Lean_Expr_isAppOfArity(x_1, x_10, x_11); -if (x_12 == 0) +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___closed__1; +x_11 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___closed__3; +x_12 = lean_unsigned_to_nat(2u); +x_13 = l_Lean_Expr_isAppOfArity(x_1, x_11, x_12); +if (x_13 == 0) { -uint8_t x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; -x_13 = 0; -x_14 = lean_box(0); -x_15 = lean_box(x_13); -x_16 = lean_apply_10(x_9, x_1, x_15, x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_16; +uint8_t x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_14 = 0; +x_15 = lean_box(0); +x_16 = lean_box(x_14); +x_17 = lean_apply_11(x_10, x_1, x_16, x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_17; } else { -lean_object* x_17; uint8_t x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_17 = l_Lean_Expr_appArg_x21(x_1); +lean_object* x_18; uint8_t 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; +x_18 = l_Lean_Expr_appArg_x21(x_1); lean_dec(x_1); -x_18 = 1; -x_19 = l_Lean_Compiler_LCNF_Simp_findExpr(x_17, x_18, x_4, x_5, x_6, x_7, x_8); -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_19, 1); +x_19 = 1; +x_20 = l_Lean_Compiler_LCNF_Simp_findExpr(x_18, x_19, x_5, x_6, x_7, x_8, x_9); +x_21 = lean_ctor_get(x_20, 0); lean_inc(x_21); -lean_dec(x_19); -x_22 = lean_box(0); -x_23 = lean_box(x_18); -x_24 = lean_apply_10(x_9, x_20, x_23, x_22, x_2, x_3, x_4, x_5, x_6, x_7, x_21); -return x_24; +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +x_23 = lean_box(0); +x_24 = lean_box(x_19); +x_25 = lean_apply_11(x_10, x_21, x_24, x_23, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_22); +return x_25; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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_object* x_13) { _start: { -lean_object* x_13; -x_13 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_object* x_14; +x_14 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); @@ -1237,26 +1257,27 @@ lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_1); -return x_13; +return x_14; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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_object* x_13) { -_start: -{ -uint8_t x_14; lean_object* x_15; -x_14 = lean_unbox(x_5); -lean_dec(x_5); -x_15 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__2(x_1, x_2, x_3, x_4, x_14, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); -return x_15; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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, lean_object* x_13, lean_object* x_14) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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_object* x_13, lean_object* x_14) { _start: { uint8_t x_15; lean_object* x_16; -x_15 = lean_unbox(x_6); +x_15 = lean_unbox(x_5); +lean_dec(x_5); +x_16 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__2(x_1, x_2, x_3, x_4, x_15, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14); +return x_16; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___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, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +_start: +{ +uint8_t x_16; lean_object* x_17; +x_16 = lean_unbox(x_6); lean_dec(x_6); -x_16 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__3(x_1, x_2, x_3, x_4, x_5, x_15, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14); +x_17 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__3(x_1, x_2, x_3, x_4, x_5, x_16, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); +lean_dec(x_14); lean_dec(x_13); lean_dec(x_12); lean_dec(x_11); @@ -1264,43 +1285,31 @@ lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); -return x_16; +return x_17; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__4___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_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__4___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_object* x_13) { _start: { -lean_object* x_13; -x_13 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__4(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_object* x_14; +x_14 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__4(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); lean_dec(x_5); lean_dec(x_2); lean_dec(x_1); -return x_13; +return x_14; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5___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_object* x_13, lean_object* x_14) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5___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_object* x_13, lean_object* x_14, lean_object* x_15) { _start: { -uint8_t x_15; lean_object* x_16; -x_15 = lean_unbox(x_6); -lean_dec(x_6); -x_16 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5(x_1, x_2, x_3, x_4, x_5, x_15, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14); -return x_16; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6___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_object* x_13, lean_object* x_14, lean_object* x_15) { -_start: -{ -uint8_t x_16; uint8_t x_17; lean_object* x_18; +uint8_t x_16; lean_object* x_17; x_16 = lean_unbox(x_6); lean_dec(x_6); -x_17 = lean_unbox(x_7); -lean_dec(x_7); -x_18 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_16, x_17, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); -return x_18; +x_17 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__5(x_1, x_2, x_3, x_4, x_5, x_16, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); +return x_17; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7___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_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6___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_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { _start: { uint8_t x_17; uint8_t x_18; lean_object* x_19; @@ -1308,18 +1317,47 @@ x_17 = lean_unbox(x_6); lean_dec(x_6); x_18 = lean_unbox(x_7); lean_dec(x_7); -x_19 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(x_1, x_2, x_3, x_4, x_5, x_17, x_18, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +x_19 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__6(x_1, x_2, x_3, x_4, x_5, x_17, x_18, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); return x_19; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__8___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7___boxed(lean_object** _args) { +lean_object* x_1 = _args[0]; +lean_object* x_2 = _args[1]; +lean_object* x_3 = _args[2]; +lean_object* x_4 = _args[3]; +lean_object* x_5 = _args[4]; +lean_object* x_6 = _args[5]; +lean_object* x_7 = _args[6]; +lean_object* x_8 = _args[7]; +lean_object* x_9 = _args[8]; +lean_object* x_10 = _args[9]; +lean_object* x_11 = _args[10]; +lean_object* x_12 = _args[11]; +lean_object* x_13 = _args[12]; +lean_object* x_14 = _args[13]; +lean_object* x_15 = _args[14]; +lean_object* x_16 = _args[15]; +lean_object* x_17 = _args[16]; _start: { -uint8_t x_11; lean_object* x_12; -x_11 = lean_unbox(x_2); +uint8_t x_18; uint8_t x_19; lean_object* x_20; +x_18 = lean_unbox(x_6); +lean_dec(x_6); +x_19 = lean_unbox(x_7); +lean_dec(x_7); +x_20 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__7(x_1, x_2, x_3, x_4, x_5, x_18, x_19, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17); +return x_20; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__8___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) { +_start: +{ +uint8_t x_12; lean_object* x_13; +x_12 = lean_unbox(x_2); lean_dec(x_2); -x_12 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__8(x_1, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -return x_12; +x_13 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f___lambda__8(x_1, x_12, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +return x_13; } } static lean_object* _init_l_Lean_Compiler_LCNF_Simp_initFn____x40_Lean_Compiler_LCNF_Simp_InlineCandidate___hyg_1012____closed__1() { diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Simp/InlineProj.c b/stage0/stdlib/Lean/Compiler/LCNF/Simp/InlineProj.c index 19d0c063f0..941507ffbd 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Simp/InlineProj.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Simp/InlineProj.c @@ -14,8 +14,8 @@ extern "C" { #endif static lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(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_Compiler_LCNF_Simp_inlineProjInst_x3f_visit(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_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(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_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit(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_mk_empty_array_with_capacity(lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__4; static lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__8; @@ -24,7 +24,7 @@ lean_object* l_Lean_Expr_constructorApp_x3f(lean_object*, lean_object*, uint8_t) static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__3; lean_object* lean_array_push(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___lambda__1___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_Compiler_LCNF_Simp_inlineProjInst_x3f___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* l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(lean_object*, lean_object*); static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__6; static lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___lambda__1___closed__1; @@ -54,7 +54,7 @@ lean_object* l_Lean_Compiler_LCNF_getDecl_x3f(lean_object*, lean_object*, lean_o static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__5; lean_object* l_Lean_Expr_fvar___override(lean_object*); extern lean_object* l_Lean_instInhabitedFVarId; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___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* l_Lean_Compiler_LCNF_eraseCode(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Core_instMonadCoreM; lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); @@ -64,16 +64,17 @@ lean_object* lean_panic_fn(lean_object*, lean_object*); lean_object* lean_mk_array(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_eraseCodeDecls(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_ReaderT_instMonadReaderT___rarg(lean_object*); -LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_getAppFn(lean_object*); static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_OptionT_instMonadOptionT___rarg(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___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_Compiler_LCNF_Simp_inlineProjInst_x3f___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_List_isEmpty___rarg(lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__4; +static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__8; static lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__3; uint8_t lean_nat_dec_lt(lean_object*, lean_object*); static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__1() { @@ -126,28 +127,37 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__5; -x_2 = l_OptionT_instMonadOptionT___rarg(x_1); +x_2 = l_ReaderT_instMonadReaderT___rarg(x_1); return x_2; } } static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__7() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; +lean_object* x_1; lean_object* x_2; x_1 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__6; +x_2 = l_OptionT_instMonadOptionT___rarg(x_1); +return x_2; +} +} +static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__7; x_2 = l_Lean_instInhabitedFVarId; x_3 = l_instInhabited___rarg(x_1, x_2); return x_3; } } -LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__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_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__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; lean_object* x_12; -x_10 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__7; -x_11 = lean_panic_fn(x_10, x_1); -x_12 = lean_apply_8(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_12; +lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_11 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__8; +x_12 = lean_panic_fn(x_11, x_1); +x_13 = lean_apply_9(x_12, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_13; } } static lean_object* _init_l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1() { @@ -246,61 +256,62 @@ x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); return x_6; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit(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_Compiler_LCNF_Simp_inlineProjInst_x3f_visit(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) { _start: { -uint8_t x_11; lean_object* x_12; lean_object* x_13; -x_11 = 1; -x_12 = l_Lean_Compiler_LCNF_Simp_findExpr(x_1, x_11, x_6, x_7, x_8, x_9, x_10); -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -switch (lean_obj_tag(x_13)) { +uint8_t x_12; lean_object* x_13; lean_object* x_14; +x_12 = 1; +x_13 = l_Lean_Compiler_LCNF_Simp_findExpr(x_1, x_12, x_7, x_8, x_9, x_10, x_11); +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +switch (lean_obj_tag(x_14)) { case 0: { -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; -x_14 = lean_ctor_get(x_12, 1); -lean_inc(x_14); -lean_dec(x_12); -x_15 = lean_st_ref_get(x_9, x_14); -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; lean_object* x_22; +x_15 = lean_ctor_get(x_13, 1); +lean_inc(x_15); +lean_dec(x_13); +x_16 = lean_st_ref_get(x_10, x_15); +x_17 = lean_ctor_get(x_16, 0); lean_inc(x_17); -if (lean_is_exclusive(x_15)) { - lean_ctor_release(x_15, 0); - lean_ctor_release(x_15, 1); - x_18 = x_15; +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +if (lean_is_exclusive(x_16)) { + lean_ctor_release(x_16, 0); + lean_ctor_release(x_16, 1); + x_19 = x_16; } else { - lean_dec_ref(x_15); - x_18 = lean_box(0); + lean_dec_ref(x_16); + x_19 = lean_box(0); } -x_19 = lean_ctor_get(x_16, 0); -lean_inc(x_19); -lean_dec(x_16); -x_20 = 0; -lean_inc(x_13); -x_21 = l_Lean_Expr_constructorApp_x3f(x_19, x_13, x_20); -if (lean_obj_tag(x_21) == 0) +x_20 = lean_ctor_get(x_17, 0); +lean_inc(x_20); +lean_dec(x_17); +x_21 = 0; +lean_inc(x_14); +x_22 = l_Lean_Expr_constructorApp_x3f(x_20, x_14, x_21); +if (lean_obj_tag(x_22) == 0) { -lean_object* x_22; -x_22 = l_Lean_Expr_getAppFn(x_13); -if (lean_obj_tag(x_22) == 4) +lean_object* x_23; +x_23 = l_Lean_Expr_getAppFn(x_14); +if (lean_obj_tag(x_23) == 4) { -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; -lean_dec(x_18); -x_23 = lean_ctor_get(x_22, 0); -lean_inc(x_23); -x_24 = lean_ctor_get(x_22, 1); +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +lean_dec(x_19); +x_24 = lean_ctor_get(x_23, 0); lean_inc(x_24); -lean_dec(x_22); -x_25 = l_Lean_Compiler_LCNF_getDecl_x3f(x_23, x_6, x_7, x_8, x_9, x_17); -x_26 = lean_ctor_get(x_25, 0); -lean_inc(x_26); -if (lean_obj_tag(x_26) == 0) +x_25 = lean_ctor_get(x_23, 1); +lean_inc(x_25); +lean_dec(x_23); +x_26 = l_Lean_Compiler_LCNF_getDecl_x3f(x_24, x_7, x_8, x_9, x_10, x_18); +x_27 = lean_ctor_get(x_26, 0); +lean_inc(x_27); +if (lean_obj_tag(x_27) == 0) { -uint8_t x_27; -lean_dec(x_24); -lean_dec(x_13); +uint8_t x_28; +lean_dec(x_25); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -309,54 +320,55 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_27 = !lean_is_exclusive(x_25); -if (x_27 == 0) +x_28 = !lean_is_exclusive(x_26); +if (x_28 == 0) { -lean_object* x_28; lean_object* x_29; -x_28 = lean_ctor_get(x_25, 0); -lean_dec(x_28); -x_29 = lean_box(0); -lean_ctor_set(x_25, 0, x_29); -return x_25; +lean_object* x_29; lean_object* x_30; +x_29 = lean_ctor_get(x_26, 0); +lean_dec(x_29); +x_30 = lean_box(0); +lean_ctor_set(x_26, 0, x_30); +return x_26; } else { -lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_30 = lean_ctor_get(x_25, 1); -lean_inc(x_30); -lean_dec(x_25); -x_31 = lean_box(0); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_31); -lean_ctor_set(x_32, 1, x_30); -return x_32; +lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_31 = lean_ctor_get(x_26, 1); +lean_inc(x_31); +lean_dec(x_26); +x_32 = lean_box(0); +x_33 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_33, 0, x_32); +lean_ctor_set(x_33, 1, x_31); +return x_33; } } else { -uint8_t x_33; -x_33 = !lean_is_exclusive(x_25); -if (x_33 == 0) +uint8_t x_34; +x_34 = !lean_is_exclusive(x_26); +if (x_34 == 0) { -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; uint8_t x_40; -x_34 = lean_ctor_get(x_25, 1); -x_35 = lean_ctor_get(x_25, 0); -lean_dec(x_35); +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; +x_35 = lean_ctor_get(x_26, 1); x_36 = lean_ctor_get(x_26, 0); -lean_inc(x_36); -lean_dec(x_26); -x_37 = l_Lean_Compiler_LCNF_Decl_getArity(x_36); -x_38 = lean_unsigned_to_nat(0u); -x_39 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_38); -x_40 = lean_nat_dec_eq(x_37, x_39); +lean_dec(x_36); +x_37 = lean_ctor_get(x_27, 0); +lean_inc(x_37); +lean_dec(x_27); +x_38 = l_Lean_Compiler_LCNF_Decl_getArity(x_37); +x_39 = lean_unsigned_to_nat(0u); +x_40 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_39); +x_41 = lean_nat_dec_eq(x_38, x_40); +lean_dec(x_38); +if (x_41 == 0) +{ +lean_object* x_42; +lean_dec(x_40); lean_dec(x_37); -if (x_40 == 0) -{ -lean_object* x_41; -lean_dec(x_39); -lean_dec(x_36); -lean_dec(x_24); -lean_dec(x_13); +lean_dec(x_25); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -365,46 +377,47 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_41 = lean_box(0); -lean_ctor_set(x_25, 0, x_41); -return x_25; +x_42 = lean_box(0); +lean_ctor_set(x_26, 0, x_42); +return x_26; } else { -lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; -lean_free_object(x_25); -lean_inc(x_36); -x_42 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_36, x_24); -x_43 = lean_ctor_get(x_36, 3); -lean_inc(x_43); -lean_dec(x_36); -x_44 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_39); -x_45 = lean_mk_array(x_39, x_44); -x_46 = lean_unsigned_to_nat(1u); -x_47 = lean_nat_sub(x_39, x_46); -lean_dec(x_39); -x_48 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_45, x_47); +lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; +lean_free_object(x_26); +lean_inc(x_37); +x_43 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_37, x_25); +x_44 = lean_ctor_get(x_37, 3); +lean_inc(x_44); +lean_dec(x_37); +x_45 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_40); +x_46 = lean_mk_array(x_40, x_45); +x_47 = lean_unsigned_to_nat(1u); +x_48 = lean_nat_sub(x_40, x_47); +lean_dec(x_40); +x_49 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_46, x_48); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_49 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_43, x_42, x_48, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_34); -lean_dec(x_43); -if (lean_obj_tag(x_49) == 0) +x_50 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_44, x_43, x_49, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_35); +lean_dec(x_44); +if (lean_obj_tag(x_50) == 0) { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_49, 0); -lean_inc(x_50); -x_51 = lean_ctor_get(x_49, 1); +lean_object* x_51; lean_object* x_52; lean_object* x_53; +x_51 = lean_ctor_get(x_50, 0); lean_inc(x_51); -lean_dec(x_49); -x_52 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_51); -return x_52; +x_52 = lean_ctor_get(x_50, 1); +lean_inc(x_52); +lean_dec(x_50); +x_53 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_51, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_52); +return x_53; } else { -uint8_t x_53; +uint8_t x_54; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -413,48 +426,49 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_53 = !lean_is_exclusive(x_49); -if (x_53 == 0) +x_54 = !lean_is_exclusive(x_50); +if (x_54 == 0) { -return x_49; +return x_50; } else { -lean_object* x_54; lean_object* x_55; lean_object* x_56; -x_54 = lean_ctor_get(x_49, 0); -x_55 = lean_ctor_get(x_49, 1); +lean_object* x_55; lean_object* x_56; lean_object* x_57; +x_55 = lean_ctor_get(x_50, 0); +x_56 = lean_ctor_get(x_50, 1); +lean_inc(x_56); lean_inc(x_55); -lean_inc(x_54); -lean_dec(x_49); -x_56 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_56, 0, x_54); -lean_ctor_set(x_56, 1, x_55); -return x_56; +lean_dec(x_50); +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; } } } } else { -lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; uint8_t x_62; -x_57 = lean_ctor_get(x_25, 1); -lean_inc(x_57); -lean_dec(x_25); -x_58 = lean_ctor_get(x_26, 0); +lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_58 = lean_ctor_get(x_26, 1); lean_inc(x_58); lean_dec(x_26); -x_59 = l_Lean_Compiler_LCNF_Decl_getArity(x_58); -x_60 = lean_unsigned_to_nat(0u); -x_61 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_60); -x_62 = lean_nat_dec_eq(x_59, x_61); -lean_dec(x_59); -if (x_62 == 0) +x_59 = lean_ctor_get(x_27, 0); +lean_inc(x_59); +lean_dec(x_27); +x_60 = l_Lean_Compiler_LCNF_Decl_getArity(x_59); +x_61 = lean_unsigned_to_nat(0u); +x_62 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_61); +x_63 = lean_nat_dec_eq(x_60, x_62); +lean_dec(x_60); +if (x_63 == 0) { -lean_object* x_63; lean_object* x_64; -lean_dec(x_61); -lean_dec(x_58); -lean_dec(x_24); -lean_dec(x_13); +lean_object* x_64; lean_object* x_65; +lean_dec(x_62); +lean_dec(x_59); +lean_dec(x_25); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -463,47 +477,48 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_63 = lean_box(0); -x_64 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_64, 0, x_63); -lean_ctor_set(x_64, 1, x_57); -return x_64; +x_64 = lean_box(0); +x_65 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_65, 0, x_64); +lean_ctor_set(x_65, 1, x_58); +return x_65; } else { -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; -lean_inc(x_58); -x_65 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_58, x_24); -x_66 = lean_ctor_get(x_58, 3); -lean_inc(x_66); -lean_dec(x_58); -x_67 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_61); -x_68 = lean_mk_array(x_61, x_67); -x_69 = lean_unsigned_to_nat(1u); -x_70 = lean_nat_sub(x_61, x_69); -lean_dec(x_61); -x_71 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_68, x_70); +lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +lean_inc(x_59); +x_66 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_59, x_25); +x_67 = lean_ctor_get(x_59, 3); +lean_inc(x_67); +lean_dec(x_59); +x_68 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_62); +x_69 = lean_mk_array(x_62, x_68); +x_70 = lean_unsigned_to_nat(1u); +x_71 = lean_nat_sub(x_62, x_70); +lean_dec(x_62); +x_72 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_69, x_71); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_72 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_66, x_65, x_71, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_57); -lean_dec(x_66); -if (lean_obj_tag(x_72) == 0) +x_73 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_67, x_66, x_72, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_58); +lean_dec(x_67); +if (lean_obj_tag(x_73) == 0) { -lean_object* x_73; lean_object* x_74; lean_object* x_75; -x_73 = lean_ctor_get(x_72, 0); -lean_inc(x_73); -x_74 = lean_ctor_get(x_72, 1); +lean_object* x_74; lean_object* x_75; lean_object* x_76; +x_74 = lean_ctor_get(x_73, 0); lean_inc(x_74); -lean_dec(x_72); -x_75 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_73, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_74); -return x_75; +x_75 = lean_ctor_get(x_73, 1); +lean_inc(x_75); +lean_dec(x_73); +x_76 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_74, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_75); +return x_76; } else { -lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; +lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -512,26 +527,26 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_76 = lean_ctor_get(x_72, 0); -lean_inc(x_76); -x_77 = lean_ctor_get(x_72, 1); +x_77 = lean_ctor_get(x_73, 0); lean_inc(x_77); -if (lean_is_exclusive(x_72)) { - lean_ctor_release(x_72, 0); - lean_ctor_release(x_72, 1); - x_78 = x_72; +x_78 = lean_ctor_get(x_73, 1); +lean_inc(x_78); +if (lean_is_exclusive(x_73)) { + lean_ctor_release(x_73, 0); + lean_ctor_release(x_73, 1); + x_79 = x_73; } else { - lean_dec_ref(x_72); - x_78 = lean_box(0); + lean_dec_ref(x_73); + x_79 = lean_box(0); } -if (lean_is_scalar(x_78)) { - x_79 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_79)) { + x_80 = lean_alloc_ctor(1, 2, 0); } else { - x_79 = x_78; + x_80 = x_79; } -lean_ctor_set(x_79, 0, x_76); -lean_ctor_set(x_79, 1, x_77); -return x_79; +lean_ctor_set(x_80, 0, x_77); +lean_ctor_set(x_80, 1, x_78); +return x_80; } } } @@ -539,9 +554,10 @@ return x_79; } else { -lean_object* x_80; lean_object* x_81; -lean_dec(x_22); -lean_dec(x_13); +lean_object* x_81; lean_object* x_82; +lean_dec(x_23); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -550,99 +566,100 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_80 = lean_box(0); -if (lean_is_scalar(x_18)) { - x_81 = lean_alloc_ctor(0, 2, 0); +x_81 = lean_box(0); +if (lean_is_scalar(x_19)) { + x_82 = lean_alloc_ctor(0, 2, 0); } else { - x_81 = x_18; + x_82 = x_19; } -lean_ctor_set(x_81, 0, x_80); -lean_ctor_set(x_81, 1, x_17); -return x_81; +lean_ctor_set(x_82, 0, x_81); +lean_ctor_set(x_82, 1, x_18); +return x_82; } } else { -lean_object* x_82; lean_object* x_83; -lean_dec(x_13); -x_82 = lean_ctor_get(x_21, 0); -lean_inc(x_82); -if (lean_is_exclusive(x_21)) { - lean_ctor_release(x_21, 0); - x_83 = x_21; +lean_object* x_83; lean_object* x_84; +lean_dec(x_14); +x_83 = lean_ctor_get(x_22, 0); +lean_inc(x_83); +if (lean_is_exclusive(x_22)) { + lean_ctor_release(x_22, 0); + x_84 = x_22; } else { - lean_dec_ref(x_21); - x_83 = lean_box(0); + lean_dec_ref(x_22); + x_84 = lean_box(0); } if (lean_obj_tag(x_2) == 0) { -lean_object* x_84; lean_object* x_85; +lean_object* x_85; lean_object* x_86; +lean_dec(x_84); lean_dec(x_83); -lean_dec(x_82); -lean_dec(x_18); -x_84 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; -x_85 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_84, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_17); -return x_85; +lean_dec(x_19); +x_85 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; +x_86 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_85, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_18); +return x_86; } else { -lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; uint8_t x_93; uint8_t x_94; lean_object* x_95; -x_86 = lean_ctor_get(x_82, 0); -lean_inc(x_86); -x_87 = lean_ctor_get(x_82, 1); +lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; uint8_t x_94; uint8_t x_95; lean_object* x_96; +x_87 = lean_ctor_get(x_83, 0); lean_inc(x_87); -lean_dec(x_82); -x_88 = lean_ctor_get(x_2, 0); +x_88 = lean_ctor_get(x_83, 1); lean_inc(x_88); -x_89 = lean_ctor_get(x_2, 1); +lean_dec(x_83); +x_89 = lean_ctor_get(x_2, 0); lean_inc(x_89); -lean_dec(x_2); -x_90 = lean_ctor_get(x_86, 3); +x_90 = lean_ctor_get(x_2, 1); lean_inc(x_90); -lean_dec(x_86); -x_91 = lean_nat_add(x_90, x_88); -lean_dec(x_88); -lean_dec(x_90); -x_92 = lean_array_get_size(x_87); -x_93 = lean_nat_dec_lt(x_91, x_92); -lean_dec(x_92); -x_94 = l_List_isEmpty___rarg(x_89); -if (x_93 == 0) -{ -lean_object* x_103; lean_object* x_104; -lean_dec(x_91); +lean_dec(x_2); +x_91 = lean_ctor_get(x_87, 3); +lean_inc(x_91); lean_dec(x_87); -x_103 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; -x_104 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_103); -x_95 = x_104; -goto block_102; -} -else -{ -lean_object* x_105; -x_105 = lean_array_fget(x_87, x_91); +x_92 = lean_nat_add(x_91, x_89); +lean_dec(x_89); lean_dec(x_91); -lean_dec(x_87); -x_95 = x_105; -goto block_102; -} -block_102: -{ +x_93 = lean_array_get_size(x_88); +x_94 = lean_nat_dec_lt(x_92, x_93); +lean_dec(x_93); +x_95 = l_List_isEmpty___rarg(x_90); if (x_94 == 0) { -lean_dec(x_83); -lean_dec(x_18); -x_1 = x_95; -x_2 = x_89; -x_10 = x_17; +lean_object* x_104; lean_object* x_105; +lean_dec(x_92); +lean_dec(x_88); +x_104 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; +x_105 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_104); +x_96 = x_105; +goto block_103; +} +else +{ +lean_object* x_106; +x_106 = lean_array_fget(x_88, x_92); +lean_dec(x_92); +lean_dec(x_88); +x_96 = x_106; +goto block_103; +} +block_103: +{ +if (x_95 == 0) +{ +lean_dec(x_84); +lean_dec(x_19); +x_1 = x_96; +x_2 = x_90; +x_11 = x_18; goto _start; } else { -lean_dec(x_89); -if (lean_obj_tag(x_95) == 1) +lean_dec(x_90); +if (lean_obj_tag(x_96) == 1) { -lean_object* x_97; lean_object* x_98; lean_object* x_99; +lean_object* x_98; lean_object* x_99; lean_object* x_100; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -650,33 +667,33 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_97 = lean_ctor_get(x_95, 0); -lean_inc(x_97); -lean_dec(x_95); -if (lean_is_scalar(x_83)) { - x_98 = lean_alloc_ctor(1, 1, 0); +x_98 = lean_ctor_get(x_96, 0); +lean_inc(x_98); +lean_dec(x_96); +if (lean_is_scalar(x_84)) { + x_99 = lean_alloc_ctor(1, 1, 0); } else { - x_98 = x_83; -} -lean_ctor_set(x_98, 0, x_97); -if (lean_is_scalar(x_18)) { - x_99 = lean_alloc_ctor(0, 2, 0); -} else { - x_99 = x_18; + x_99 = x_84; } lean_ctor_set(x_99, 0, x_98); -lean_ctor_set(x_99, 1, x_17); -return x_99; +if (lean_is_scalar(x_19)) { + x_100 = lean_alloc_ctor(0, 2, 0); +} else { + x_100 = x_19; +} +lean_ctor_set(x_100, 0, x_99); +lean_ctor_set(x_100, 1, x_18); +return x_100; } else { -lean_object* x_100; lean_object* x_101; -lean_dec(x_95); -lean_dec(x_83); -lean_dec(x_18); -x_100 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; -x_101 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_100, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_17); -return x_101; +lean_object* x_101; lean_object* x_102; +lean_dec(x_96); +lean_dec(x_84); +lean_dec(x_19); +x_101 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; +x_102 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_101, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_18); +return x_102; } } } @@ -685,50 +702,51 @@ return x_101; } case 1: { -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; uint8_t x_112; lean_object* x_113; -x_106 = lean_ctor_get(x_12, 1); -lean_inc(x_106); -lean_dec(x_12); -x_107 = lean_st_ref_get(x_9, x_106); -x_108 = lean_ctor_get(x_107, 0); -lean_inc(x_108); -x_109 = lean_ctor_get(x_107, 1); +lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; uint8_t x_113; lean_object* x_114; +x_107 = lean_ctor_get(x_13, 1); +lean_inc(x_107); +lean_dec(x_13); +x_108 = lean_st_ref_get(x_10, x_107); +x_109 = lean_ctor_get(x_108, 0); lean_inc(x_109); -if (lean_is_exclusive(x_107)) { - lean_ctor_release(x_107, 0); - lean_ctor_release(x_107, 1); - x_110 = x_107; +x_110 = lean_ctor_get(x_108, 1); +lean_inc(x_110); +if (lean_is_exclusive(x_108)) { + lean_ctor_release(x_108, 0); + lean_ctor_release(x_108, 1); + x_111 = x_108; } else { - lean_dec_ref(x_107); - x_110 = lean_box(0); + lean_dec_ref(x_108); + x_111 = lean_box(0); } -x_111 = lean_ctor_get(x_108, 0); -lean_inc(x_111); -lean_dec(x_108); -x_112 = 0; -lean_inc(x_13); -x_113 = l_Lean_Expr_constructorApp_x3f(x_111, x_13, x_112); -if (lean_obj_tag(x_113) == 0) +x_112 = lean_ctor_get(x_109, 0); +lean_inc(x_112); +lean_dec(x_109); +x_113 = 0; +lean_inc(x_14); +x_114 = l_Lean_Expr_constructorApp_x3f(x_112, x_14, x_113); +if (lean_obj_tag(x_114) == 0) { -lean_object* x_114; -x_114 = l_Lean_Expr_getAppFn(x_13); -if (lean_obj_tag(x_114) == 4) +lean_object* x_115; +x_115 = l_Lean_Expr_getAppFn(x_14); +if (lean_obj_tag(x_115) == 4) { -lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; -lean_dec(x_110); -x_115 = lean_ctor_get(x_114, 0); -lean_inc(x_115); -x_116 = lean_ctor_get(x_114, 1); +lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; +lean_dec(x_111); +x_116 = lean_ctor_get(x_115, 0); lean_inc(x_116); -lean_dec(x_114); -x_117 = l_Lean_Compiler_LCNF_getDecl_x3f(x_115, x_6, x_7, x_8, x_9, x_109); -x_118 = lean_ctor_get(x_117, 0); -lean_inc(x_118); -if (lean_obj_tag(x_118) == 0) +x_117 = lean_ctor_get(x_115, 1); +lean_inc(x_117); +lean_dec(x_115); +x_118 = l_Lean_Compiler_LCNF_getDecl_x3f(x_116, x_7, x_8, x_9, x_10, x_110); +x_119 = lean_ctor_get(x_118, 0); +lean_inc(x_119); +if (lean_obj_tag(x_119) == 0) { -uint8_t x_119; -lean_dec(x_116); -lean_dec(x_13); +uint8_t x_120; +lean_dec(x_117); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -737,54 +755,55 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_119 = !lean_is_exclusive(x_117); -if (x_119 == 0) +x_120 = !lean_is_exclusive(x_118); +if (x_120 == 0) { -lean_object* x_120; lean_object* x_121; -x_120 = lean_ctor_get(x_117, 0); -lean_dec(x_120); -x_121 = lean_box(0); -lean_ctor_set(x_117, 0, x_121); -return x_117; +lean_object* x_121; lean_object* x_122; +x_121 = lean_ctor_get(x_118, 0); +lean_dec(x_121); +x_122 = lean_box(0); +lean_ctor_set(x_118, 0, x_122); +return x_118; } else { -lean_object* x_122; lean_object* x_123; lean_object* x_124; -x_122 = lean_ctor_get(x_117, 1); -lean_inc(x_122); -lean_dec(x_117); -x_123 = lean_box(0); -x_124 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_124, 0, x_123); -lean_ctor_set(x_124, 1, x_122); -return x_124; +lean_object* x_123; lean_object* x_124; lean_object* x_125; +x_123 = lean_ctor_get(x_118, 1); +lean_inc(x_123); +lean_dec(x_118); +x_124 = lean_box(0); +x_125 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_125, 0, x_124); +lean_ctor_set(x_125, 1, x_123); +return x_125; } } else { -uint8_t x_125; -x_125 = !lean_is_exclusive(x_117); -if (x_125 == 0) +uint8_t x_126; +x_126 = !lean_is_exclusive(x_118); +if (x_126 == 0) { -lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; uint8_t x_132; -x_126 = lean_ctor_get(x_117, 1); -x_127 = lean_ctor_get(x_117, 0); -lean_dec(x_127); +lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; uint8_t x_133; +x_127 = lean_ctor_get(x_118, 1); x_128 = lean_ctor_get(x_118, 0); -lean_inc(x_128); -lean_dec(x_118); -x_129 = l_Lean_Compiler_LCNF_Decl_getArity(x_128); -x_130 = lean_unsigned_to_nat(0u); -x_131 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_130); -x_132 = lean_nat_dec_eq(x_129, x_131); +lean_dec(x_128); +x_129 = lean_ctor_get(x_119, 0); +lean_inc(x_129); +lean_dec(x_119); +x_130 = l_Lean_Compiler_LCNF_Decl_getArity(x_129); +x_131 = lean_unsigned_to_nat(0u); +x_132 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_131); +x_133 = lean_nat_dec_eq(x_130, x_132); +lean_dec(x_130); +if (x_133 == 0) +{ +lean_object* x_134; +lean_dec(x_132); lean_dec(x_129); -if (x_132 == 0) -{ -lean_object* x_133; -lean_dec(x_131); -lean_dec(x_128); -lean_dec(x_116); -lean_dec(x_13); +lean_dec(x_117); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -793,46 +812,47 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_133 = lean_box(0); -lean_ctor_set(x_117, 0, x_133); -return x_117; +x_134 = lean_box(0); +lean_ctor_set(x_118, 0, x_134); +return x_118; } else { -lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; -lean_free_object(x_117); -lean_inc(x_128); -x_134 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_128, x_116); -x_135 = lean_ctor_get(x_128, 3); -lean_inc(x_135); -lean_dec(x_128); -x_136 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_131); -x_137 = lean_mk_array(x_131, x_136); -x_138 = lean_unsigned_to_nat(1u); -x_139 = lean_nat_sub(x_131, x_138); -lean_dec(x_131); -x_140 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_137, x_139); +lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; +lean_free_object(x_118); +lean_inc(x_129); +x_135 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_129, x_117); +x_136 = lean_ctor_get(x_129, 3); +lean_inc(x_136); +lean_dec(x_129); +x_137 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_132); +x_138 = lean_mk_array(x_132, x_137); +x_139 = lean_unsigned_to_nat(1u); +x_140 = lean_nat_sub(x_132, x_139); +lean_dec(x_132); +x_141 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_138, x_140); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_141 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_135, x_134, x_140, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_126); -lean_dec(x_135); -if (lean_obj_tag(x_141) == 0) +x_142 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_136, x_135, x_141, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_127); +lean_dec(x_136); +if (lean_obj_tag(x_142) == 0) { -lean_object* x_142; lean_object* x_143; lean_object* x_144; -x_142 = lean_ctor_get(x_141, 0); -lean_inc(x_142); -x_143 = lean_ctor_get(x_141, 1); +lean_object* x_143; lean_object* x_144; lean_object* x_145; +x_143 = lean_ctor_get(x_142, 0); lean_inc(x_143); -lean_dec(x_141); -x_144 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_142, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_143); -return x_144; +x_144 = lean_ctor_get(x_142, 1); +lean_inc(x_144); +lean_dec(x_142); +x_145 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_143, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_144); +return x_145; } else { -uint8_t x_145; +uint8_t x_146; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -841,48 +861,49 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_145 = !lean_is_exclusive(x_141); -if (x_145 == 0) +x_146 = !lean_is_exclusive(x_142); +if (x_146 == 0) { -return x_141; +return x_142; } else { -lean_object* x_146; lean_object* x_147; lean_object* x_148; -x_146 = lean_ctor_get(x_141, 0); -x_147 = lean_ctor_get(x_141, 1); +lean_object* x_147; lean_object* x_148; lean_object* x_149; +x_147 = lean_ctor_get(x_142, 0); +x_148 = lean_ctor_get(x_142, 1); +lean_inc(x_148); lean_inc(x_147); -lean_inc(x_146); -lean_dec(x_141); -x_148 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_148, 0, x_146); -lean_ctor_set(x_148, 1, x_147); -return x_148; +lean_dec(x_142); +x_149 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_149, 0, x_147); +lean_ctor_set(x_149, 1, x_148); +return x_149; } } } } else { -lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; uint8_t x_154; -x_149 = lean_ctor_get(x_117, 1); -lean_inc(x_149); -lean_dec(x_117); -x_150 = lean_ctor_get(x_118, 0); +lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; uint8_t x_155; +x_150 = lean_ctor_get(x_118, 1); lean_inc(x_150); lean_dec(x_118); -x_151 = l_Lean_Compiler_LCNF_Decl_getArity(x_150); -x_152 = lean_unsigned_to_nat(0u); -x_153 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_152); -x_154 = lean_nat_dec_eq(x_151, x_153); -lean_dec(x_151); -if (x_154 == 0) +x_151 = lean_ctor_get(x_119, 0); +lean_inc(x_151); +lean_dec(x_119); +x_152 = l_Lean_Compiler_LCNF_Decl_getArity(x_151); +x_153 = lean_unsigned_to_nat(0u); +x_154 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_153); +x_155 = lean_nat_dec_eq(x_152, x_154); +lean_dec(x_152); +if (x_155 == 0) { -lean_object* x_155; lean_object* x_156; -lean_dec(x_153); -lean_dec(x_150); -lean_dec(x_116); -lean_dec(x_13); +lean_object* x_156; lean_object* x_157; +lean_dec(x_154); +lean_dec(x_151); +lean_dec(x_117); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -891,47 +912,48 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_155 = lean_box(0); -x_156 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_156, 0, x_155); -lean_ctor_set(x_156, 1, x_149); -return x_156; +x_156 = lean_box(0); +x_157 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_157, 0, x_156); +lean_ctor_set(x_157, 1, x_150); +return x_157; } else { -lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; -lean_inc(x_150); -x_157 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_150, x_116); -x_158 = lean_ctor_get(x_150, 3); -lean_inc(x_158); -lean_dec(x_150); -x_159 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_153); -x_160 = lean_mk_array(x_153, x_159); -x_161 = lean_unsigned_to_nat(1u); -x_162 = lean_nat_sub(x_153, x_161); -lean_dec(x_153); -x_163 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_160, x_162); +lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; +lean_inc(x_151); +x_158 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_151, x_117); +x_159 = lean_ctor_get(x_151, 3); +lean_inc(x_159); +lean_dec(x_151); +x_160 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_154); +x_161 = lean_mk_array(x_154, x_160); +x_162 = lean_unsigned_to_nat(1u); +x_163 = lean_nat_sub(x_154, x_162); +lean_dec(x_154); +x_164 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_161, x_163); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_164 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_158, x_157, x_163, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_149); -lean_dec(x_158); -if (lean_obj_tag(x_164) == 0) +x_165 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_159, x_158, x_164, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_150); +lean_dec(x_159); +if (lean_obj_tag(x_165) == 0) { -lean_object* x_165; lean_object* x_166; lean_object* x_167; -x_165 = lean_ctor_get(x_164, 0); -lean_inc(x_165); -x_166 = lean_ctor_get(x_164, 1); +lean_object* x_166; lean_object* x_167; lean_object* x_168; +x_166 = lean_ctor_get(x_165, 0); lean_inc(x_166); -lean_dec(x_164); -x_167 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_165, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_166); -return x_167; +x_167 = lean_ctor_get(x_165, 1); +lean_inc(x_167); +lean_dec(x_165); +x_168 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_166, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_167); +return x_168; } else { -lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; +lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -940,26 +962,26 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_168 = lean_ctor_get(x_164, 0); -lean_inc(x_168); -x_169 = lean_ctor_get(x_164, 1); +x_169 = lean_ctor_get(x_165, 0); lean_inc(x_169); -if (lean_is_exclusive(x_164)) { - lean_ctor_release(x_164, 0); - lean_ctor_release(x_164, 1); - x_170 = x_164; +x_170 = lean_ctor_get(x_165, 1); +lean_inc(x_170); +if (lean_is_exclusive(x_165)) { + lean_ctor_release(x_165, 0); + lean_ctor_release(x_165, 1); + x_171 = x_165; } else { - lean_dec_ref(x_164); - x_170 = lean_box(0); + lean_dec_ref(x_165); + x_171 = lean_box(0); } -if (lean_is_scalar(x_170)) { - x_171 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_171)) { + x_172 = lean_alloc_ctor(1, 2, 0); } else { - x_171 = x_170; + x_172 = x_171; } -lean_ctor_set(x_171, 0, x_168); -lean_ctor_set(x_171, 1, x_169); -return x_171; +lean_ctor_set(x_172, 0, x_169); +lean_ctor_set(x_172, 1, x_170); +return x_172; } } } @@ -967,9 +989,10 @@ return x_171; } else { -lean_object* x_172; lean_object* x_173; -lean_dec(x_114); -lean_dec(x_13); +lean_object* x_173; lean_object* x_174; +lean_dec(x_115); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -978,99 +1001,100 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_172 = lean_box(0); -if (lean_is_scalar(x_110)) { - x_173 = lean_alloc_ctor(0, 2, 0); +x_173 = lean_box(0); +if (lean_is_scalar(x_111)) { + x_174 = lean_alloc_ctor(0, 2, 0); } else { - x_173 = x_110; + x_174 = x_111; } -lean_ctor_set(x_173, 0, x_172); -lean_ctor_set(x_173, 1, x_109); -return x_173; +lean_ctor_set(x_174, 0, x_173); +lean_ctor_set(x_174, 1, x_110); +return x_174; } } else { -lean_object* x_174; lean_object* x_175; -lean_dec(x_13); -x_174 = lean_ctor_get(x_113, 0); -lean_inc(x_174); -if (lean_is_exclusive(x_113)) { - lean_ctor_release(x_113, 0); - x_175 = x_113; +lean_object* x_175; lean_object* x_176; +lean_dec(x_14); +x_175 = lean_ctor_get(x_114, 0); +lean_inc(x_175); +if (lean_is_exclusive(x_114)) { + lean_ctor_release(x_114, 0); + x_176 = x_114; } else { - lean_dec_ref(x_113); - x_175 = lean_box(0); + lean_dec_ref(x_114); + x_176 = lean_box(0); } if (lean_obj_tag(x_2) == 0) { -lean_object* x_176; lean_object* x_177; +lean_object* x_177; lean_object* x_178; +lean_dec(x_176); lean_dec(x_175); -lean_dec(x_174); -lean_dec(x_110); -x_176 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; -x_177 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_176, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_109); -return x_177; +lean_dec(x_111); +x_177 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; +x_178 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_177, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_110); +return x_178; } else { -lean_object* x_178; lean_object* x_179; lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; uint8_t x_185; uint8_t x_186; lean_object* x_187; -x_178 = lean_ctor_get(x_174, 0); -lean_inc(x_178); -x_179 = lean_ctor_get(x_174, 1); +lean_object* x_179; lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; uint8_t x_186; uint8_t x_187; lean_object* x_188; +x_179 = lean_ctor_get(x_175, 0); lean_inc(x_179); -lean_dec(x_174); -x_180 = lean_ctor_get(x_2, 0); +x_180 = lean_ctor_get(x_175, 1); lean_inc(x_180); -x_181 = lean_ctor_get(x_2, 1); +lean_dec(x_175); +x_181 = lean_ctor_get(x_2, 0); lean_inc(x_181); -lean_dec(x_2); -x_182 = lean_ctor_get(x_178, 3); +x_182 = lean_ctor_get(x_2, 1); lean_inc(x_182); -lean_dec(x_178); -x_183 = lean_nat_add(x_182, x_180); -lean_dec(x_180); -lean_dec(x_182); -x_184 = lean_array_get_size(x_179); -x_185 = lean_nat_dec_lt(x_183, x_184); -lean_dec(x_184); -x_186 = l_List_isEmpty___rarg(x_181); -if (x_185 == 0) -{ -lean_object* x_195; lean_object* x_196; -lean_dec(x_183); +lean_dec(x_2); +x_183 = lean_ctor_get(x_179, 3); +lean_inc(x_183); lean_dec(x_179); -x_195 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; -x_196 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_195); -x_187 = x_196; -goto block_194; -} -else -{ -lean_object* x_197; -x_197 = lean_array_fget(x_179, x_183); +x_184 = lean_nat_add(x_183, x_181); +lean_dec(x_181); lean_dec(x_183); -lean_dec(x_179); -x_187 = x_197; -goto block_194; -} -block_194: -{ +x_185 = lean_array_get_size(x_180); +x_186 = lean_nat_dec_lt(x_184, x_185); +lean_dec(x_185); +x_187 = l_List_isEmpty___rarg(x_182); if (x_186 == 0) { -lean_dec(x_175); -lean_dec(x_110); -x_1 = x_187; -x_2 = x_181; -x_10 = x_109; +lean_object* x_196; lean_object* x_197; +lean_dec(x_184); +lean_dec(x_180); +x_196 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; +x_197 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_196); +x_188 = x_197; +goto block_195; +} +else +{ +lean_object* x_198; +x_198 = lean_array_fget(x_180, x_184); +lean_dec(x_184); +lean_dec(x_180); +x_188 = x_198; +goto block_195; +} +block_195: +{ +if (x_187 == 0) +{ +lean_dec(x_176); +lean_dec(x_111); +x_1 = x_188; +x_2 = x_182; +x_11 = x_110; goto _start; } else { -lean_dec(x_181); -if (lean_obj_tag(x_187) == 1) +lean_dec(x_182); +if (lean_obj_tag(x_188) == 1) { -lean_object* x_189; lean_object* x_190; lean_object* x_191; +lean_object* x_190; lean_object* x_191; lean_object* x_192; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1078,33 +1102,33 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_189 = lean_ctor_get(x_187, 0); -lean_inc(x_189); -lean_dec(x_187); -if (lean_is_scalar(x_175)) { - x_190 = lean_alloc_ctor(1, 1, 0); +x_190 = lean_ctor_get(x_188, 0); +lean_inc(x_190); +lean_dec(x_188); +if (lean_is_scalar(x_176)) { + x_191 = lean_alloc_ctor(1, 1, 0); } else { - x_190 = x_175; -} -lean_ctor_set(x_190, 0, x_189); -if (lean_is_scalar(x_110)) { - x_191 = lean_alloc_ctor(0, 2, 0); -} else { - x_191 = x_110; + x_191 = x_176; } lean_ctor_set(x_191, 0, x_190); -lean_ctor_set(x_191, 1, x_109); -return x_191; +if (lean_is_scalar(x_111)) { + x_192 = lean_alloc_ctor(0, 2, 0); +} else { + x_192 = x_111; +} +lean_ctor_set(x_192, 0, x_191); +lean_ctor_set(x_192, 1, x_110); +return x_192; } else { -lean_object* x_192; lean_object* x_193; -lean_dec(x_187); -lean_dec(x_175); -lean_dec(x_110); -x_192 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; -x_193 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_192, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_109); -return x_193; +lean_object* x_193; lean_object* x_194; +lean_dec(x_188); +lean_dec(x_176); +lean_dec(x_111); +x_193 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; +x_194 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_193, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_110); +return x_194; } } } @@ -1113,50 +1137,51 @@ return x_193; } case 2: { -lean_object* x_198; lean_object* x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; uint8_t x_204; lean_object* x_205; -x_198 = lean_ctor_get(x_12, 1); -lean_inc(x_198); -lean_dec(x_12); -x_199 = lean_st_ref_get(x_9, x_198); -x_200 = lean_ctor_get(x_199, 0); -lean_inc(x_200); -x_201 = lean_ctor_get(x_199, 1); +lean_object* x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; lean_object* x_204; uint8_t x_205; lean_object* x_206; +x_199 = lean_ctor_get(x_13, 1); +lean_inc(x_199); +lean_dec(x_13); +x_200 = lean_st_ref_get(x_10, x_199); +x_201 = lean_ctor_get(x_200, 0); lean_inc(x_201); -if (lean_is_exclusive(x_199)) { - lean_ctor_release(x_199, 0); - lean_ctor_release(x_199, 1); - x_202 = x_199; +x_202 = lean_ctor_get(x_200, 1); +lean_inc(x_202); +if (lean_is_exclusive(x_200)) { + lean_ctor_release(x_200, 0); + lean_ctor_release(x_200, 1); + x_203 = x_200; } else { - lean_dec_ref(x_199); - x_202 = lean_box(0); + lean_dec_ref(x_200); + x_203 = lean_box(0); } -x_203 = lean_ctor_get(x_200, 0); -lean_inc(x_203); -lean_dec(x_200); -x_204 = 0; -lean_inc(x_13); -x_205 = l_Lean_Expr_constructorApp_x3f(x_203, x_13, x_204); -if (lean_obj_tag(x_205) == 0) +x_204 = lean_ctor_get(x_201, 0); +lean_inc(x_204); +lean_dec(x_201); +x_205 = 0; +lean_inc(x_14); +x_206 = l_Lean_Expr_constructorApp_x3f(x_204, x_14, x_205); +if (lean_obj_tag(x_206) == 0) { -lean_object* x_206; -x_206 = l_Lean_Expr_getAppFn(x_13); -if (lean_obj_tag(x_206) == 4) +lean_object* x_207; +x_207 = l_Lean_Expr_getAppFn(x_14); +if (lean_obj_tag(x_207) == 4) { -lean_object* x_207; lean_object* x_208; lean_object* x_209; lean_object* x_210; -lean_dec(x_202); -x_207 = lean_ctor_get(x_206, 0); -lean_inc(x_207); -x_208 = lean_ctor_get(x_206, 1); +lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; +lean_dec(x_203); +x_208 = lean_ctor_get(x_207, 0); lean_inc(x_208); -lean_dec(x_206); -x_209 = l_Lean_Compiler_LCNF_getDecl_x3f(x_207, x_6, x_7, x_8, x_9, x_201); -x_210 = lean_ctor_get(x_209, 0); -lean_inc(x_210); -if (lean_obj_tag(x_210) == 0) +x_209 = lean_ctor_get(x_207, 1); +lean_inc(x_209); +lean_dec(x_207); +x_210 = l_Lean_Compiler_LCNF_getDecl_x3f(x_208, x_7, x_8, x_9, x_10, x_202); +x_211 = lean_ctor_get(x_210, 0); +lean_inc(x_211); +if (lean_obj_tag(x_211) == 0) { -uint8_t x_211; -lean_dec(x_208); -lean_dec(x_13); +uint8_t x_212; +lean_dec(x_209); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1165,54 +1190,55 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_211 = !lean_is_exclusive(x_209); -if (x_211 == 0) +x_212 = !lean_is_exclusive(x_210); +if (x_212 == 0) { -lean_object* x_212; lean_object* x_213; -x_212 = lean_ctor_get(x_209, 0); -lean_dec(x_212); -x_213 = lean_box(0); -lean_ctor_set(x_209, 0, x_213); -return x_209; +lean_object* x_213; lean_object* x_214; +x_213 = lean_ctor_get(x_210, 0); +lean_dec(x_213); +x_214 = lean_box(0); +lean_ctor_set(x_210, 0, x_214); +return x_210; } else { -lean_object* x_214; lean_object* x_215; lean_object* x_216; -x_214 = lean_ctor_get(x_209, 1); -lean_inc(x_214); -lean_dec(x_209); -x_215 = lean_box(0); -x_216 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_216, 0, x_215); -lean_ctor_set(x_216, 1, x_214); -return x_216; +lean_object* x_215; lean_object* x_216; lean_object* x_217; +x_215 = lean_ctor_get(x_210, 1); +lean_inc(x_215); +lean_dec(x_210); +x_216 = lean_box(0); +x_217 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_217, 0, x_216); +lean_ctor_set(x_217, 1, x_215); +return x_217; } } else { -uint8_t x_217; -x_217 = !lean_is_exclusive(x_209); -if (x_217 == 0) +uint8_t x_218; +x_218 = !lean_is_exclusive(x_210); +if (x_218 == 0) { -lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; lean_object* x_222; lean_object* x_223; uint8_t x_224; -x_218 = lean_ctor_get(x_209, 1); -x_219 = lean_ctor_get(x_209, 0); -lean_dec(x_219); +lean_object* x_219; lean_object* x_220; lean_object* x_221; lean_object* x_222; lean_object* x_223; lean_object* x_224; uint8_t x_225; +x_219 = lean_ctor_get(x_210, 1); x_220 = lean_ctor_get(x_210, 0); -lean_inc(x_220); -lean_dec(x_210); -x_221 = l_Lean_Compiler_LCNF_Decl_getArity(x_220); -x_222 = lean_unsigned_to_nat(0u); -x_223 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_222); -x_224 = lean_nat_dec_eq(x_221, x_223); +lean_dec(x_220); +x_221 = lean_ctor_get(x_211, 0); +lean_inc(x_221); +lean_dec(x_211); +x_222 = l_Lean_Compiler_LCNF_Decl_getArity(x_221); +x_223 = lean_unsigned_to_nat(0u); +x_224 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_223); +x_225 = lean_nat_dec_eq(x_222, x_224); +lean_dec(x_222); +if (x_225 == 0) +{ +lean_object* x_226; +lean_dec(x_224); lean_dec(x_221); -if (x_224 == 0) -{ -lean_object* x_225; -lean_dec(x_223); -lean_dec(x_220); -lean_dec(x_208); -lean_dec(x_13); +lean_dec(x_209); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1221,46 +1247,47 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_225 = lean_box(0); -lean_ctor_set(x_209, 0, x_225); -return x_209; +x_226 = lean_box(0); +lean_ctor_set(x_210, 0, x_226); +return x_210; } else { -lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; lean_object* x_231; lean_object* x_232; lean_object* x_233; -lean_free_object(x_209); -lean_inc(x_220); -x_226 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_220, x_208); -x_227 = lean_ctor_get(x_220, 3); -lean_inc(x_227); -lean_dec(x_220); -x_228 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_223); -x_229 = lean_mk_array(x_223, x_228); -x_230 = lean_unsigned_to_nat(1u); -x_231 = lean_nat_sub(x_223, x_230); -lean_dec(x_223); -x_232 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_229, x_231); +lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; lean_object* x_231; lean_object* x_232; lean_object* x_233; lean_object* x_234; +lean_free_object(x_210); +lean_inc(x_221); +x_227 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_221, x_209); +x_228 = lean_ctor_get(x_221, 3); +lean_inc(x_228); +lean_dec(x_221); +x_229 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_224); +x_230 = lean_mk_array(x_224, x_229); +x_231 = lean_unsigned_to_nat(1u); +x_232 = lean_nat_sub(x_224, x_231); +lean_dec(x_224); +x_233 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_230, x_232); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_233 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_227, x_226, x_232, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_218); -lean_dec(x_227); -if (lean_obj_tag(x_233) == 0) +x_234 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_228, x_227, x_233, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_219); +lean_dec(x_228); +if (lean_obj_tag(x_234) == 0) { -lean_object* x_234; lean_object* x_235; lean_object* x_236; -x_234 = lean_ctor_get(x_233, 0); -lean_inc(x_234); -x_235 = lean_ctor_get(x_233, 1); +lean_object* x_235; lean_object* x_236; lean_object* x_237; +x_235 = lean_ctor_get(x_234, 0); lean_inc(x_235); -lean_dec(x_233); -x_236 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_234, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_235); -return x_236; +x_236 = lean_ctor_get(x_234, 1); +lean_inc(x_236); +lean_dec(x_234); +x_237 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_235, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_236); +return x_237; } else { -uint8_t x_237; +uint8_t x_238; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1269,48 +1296,49 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_237 = !lean_is_exclusive(x_233); -if (x_237 == 0) +x_238 = !lean_is_exclusive(x_234); +if (x_238 == 0) { -return x_233; +return x_234; } else { -lean_object* x_238; lean_object* x_239; lean_object* x_240; -x_238 = lean_ctor_get(x_233, 0); -x_239 = lean_ctor_get(x_233, 1); +lean_object* x_239; lean_object* x_240; lean_object* x_241; +x_239 = lean_ctor_get(x_234, 0); +x_240 = lean_ctor_get(x_234, 1); +lean_inc(x_240); lean_inc(x_239); -lean_inc(x_238); -lean_dec(x_233); -x_240 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_240, 0, x_238); -lean_ctor_set(x_240, 1, x_239); -return x_240; +lean_dec(x_234); +x_241 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_241, 0, x_239); +lean_ctor_set(x_241, 1, x_240); +return x_241; } } } } else { -lean_object* x_241; lean_object* x_242; lean_object* x_243; lean_object* x_244; lean_object* x_245; uint8_t x_246; -x_241 = lean_ctor_get(x_209, 1); -lean_inc(x_241); -lean_dec(x_209); -x_242 = lean_ctor_get(x_210, 0); +lean_object* x_242; lean_object* x_243; lean_object* x_244; lean_object* x_245; lean_object* x_246; uint8_t x_247; +x_242 = lean_ctor_get(x_210, 1); lean_inc(x_242); lean_dec(x_210); -x_243 = l_Lean_Compiler_LCNF_Decl_getArity(x_242); -x_244 = lean_unsigned_to_nat(0u); -x_245 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_244); -x_246 = lean_nat_dec_eq(x_243, x_245); -lean_dec(x_243); -if (x_246 == 0) +x_243 = lean_ctor_get(x_211, 0); +lean_inc(x_243); +lean_dec(x_211); +x_244 = l_Lean_Compiler_LCNF_Decl_getArity(x_243); +x_245 = lean_unsigned_to_nat(0u); +x_246 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_245); +x_247 = lean_nat_dec_eq(x_244, x_246); +lean_dec(x_244); +if (x_247 == 0) { -lean_object* x_247; lean_object* x_248; -lean_dec(x_245); -lean_dec(x_242); -lean_dec(x_208); -lean_dec(x_13); +lean_object* x_248; lean_object* x_249; +lean_dec(x_246); +lean_dec(x_243); +lean_dec(x_209); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1319,47 +1347,48 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_247 = lean_box(0); -x_248 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_248, 0, x_247); -lean_ctor_set(x_248, 1, x_241); -return x_248; +x_248 = lean_box(0); +x_249 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_249, 0, x_248); +lean_ctor_set(x_249, 1, x_242); +return x_249; } else { -lean_object* x_249; lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; lean_object* x_255; lean_object* x_256; -lean_inc(x_242); -x_249 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_242, x_208); -x_250 = lean_ctor_get(x_242, 3); -lean_inc(x_250); -lean_dec(x_242); -x_251 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_245); -x_252 = lean_mk_array(x_245, x_251); -x_253 = lean_unsigned_to_nat(1u); -x_254 = lean_nat_sub(x_245, x_253); -lean_dec(x_245); -x_255 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_252, x_254); +lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; lean_object* x_255; lean_object* x_256; lean_object* x_257; +lean_inc(x_243); +x_250 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_243, x_209); +x_251 = lean_ctor_get(x_243, 3); +lean_inc(x_251); +lean_dec(x_243); +x_252 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_246); +x_253 = lean_mk_array(x_246, x_252); +x_254 = lean_unsigned_to_nat(1u); +x_255 = lean_nat_sub(x_246, x_254); +lean_dec(x_246); +x_256 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_253, x_255); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_256 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_250, x_249, x_255, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_241); -lean_dec(x_250); -if (lean_obj_tag(x_256) == 0) +x_257 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_251, x_250, x_256, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_242); +lean_dec(x_251); +if (lean_obj_tag(x_257) == 0) { -lean_object* x_257; lean_object* x_258; lean_object* x_259; -x_257 = lean_ctor_get(x_256, 0); -lean_inc(x_257); -x_258 = lean_ctor_get(x_256, 1); +lean_object* x_258; lean_object* x_259; lean_object* x_260; +x_258 = lean_ctor_get(x_257, 0); lean_inc(x_258); -lean_dec(x_256); -x_259 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_257, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_258); -return x_259; +x_259 = lean_ctor_get(x_257, 1); +lean_inc(x_259); +lean_dec(x_257); +x_260 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_258, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_259); +return x_260; } else { -lean_object* x_260; lean_object* x_261; lean_object* x_262; lean_object* x_263; +lean_object* x_261; lean_object* x_262; lean_object* x_263; lean_object* x_264; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1368,26 +1397,26 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_260 = lean_ctor_get(x_256, 0); -lean_inc(x_260); -x_261 = lean_ctor_get(x_256, 1); +x_261 = lean_ctor_get(x_257, 0); lean_inc(x_261); -if (lean_is_exclusive(x_256)) { - lean_ctor_release(x_256, 0); - lean_ctor_release(x_256, 1); - x_262 = x_256; +x_262 = lean_ctor_get(x_257, 1); +lean_inc(x_262); +if (lean_is_exclusive(x_257)) { + lean_ctor_release(x_257, 0); + lean_ctor_release(x_257, 1); + x_263 = x_257; } else { - lean_dec_ref(x_256); - x_262 = lean_box(0); + lean_dec_ref(x_257); + x_263 = lean_box(0); } -if (lean_is_scalar(x_262)) { - x_263 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_263)) { + x_264 = lean_alloc_ctor(1, 2, 0); } else { - x_263 = x_262; + x_264 = x_263; } -lean_ctor_set(x_263, 0, x_260); -lean_ctor_set(x_263, 1, x_261); -return x_263; +lean_ctor_set(x_264, 0, x_261); +lean_ctor_set(x_264, 1, x_262); +return x_264; } } } @@ -1395,9 +1424,10 @@ return x_263; } else { -lean_object* x_264; lean_object* x_265; -lean_dec(x_206); -lean_dec(x_13); +lean_object* x_265; lean_object* x_266; +lean_dec(x_207); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1406,99 +1436,100 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_264 = lean_box(0); -if (lean_is_scalar(x_202)) { - x_265 = lean_alloc_ctor(0, 2, 0); +x_265 = lean_box(0); +if (lean_is_scalar(x_203)) { + x_266 = lean_alloc_ctor(0, 2, 0); } else { - x_265 = x_202; + x_266 = x_203; } -lean_ctor_set(x_265, 0, x_264); -lean_ctor_set(x_265, 1, x_201); -return x_265; +lean_ctor_set(x_266, 0, x_265); +lean_ctor_set(x_266, 1, x_202); +return x_266; } } else { -lean_object* x_266; lean_object* x_267; -lean_dec(x_13); -x_266 = lean_ctor_get(x_205, 0); -lean_inc(x_266); -if (lean_is_exclusive(x_205)) { - lean_ctor_release(x_205, 0); - x_267 = x_205; +lean_object* x_267; lean_object* x_268; +lean_dec(x_14); +x_267 = lean_ctor_get(x_206, 0); +lean_inc(x_267); +if (lean_is_exclusive(x_206)) { + lean_ctor_release(x_206, 0); + x_268 = x_206; } else { - lean_dec_ref(x_205); - x_267 = lean_box(0); + lean_dec_ref(x_206); + x_268 = lean_box(0); } if (lean_obj_tag(x_2) == 0) { -lean_object* x_268; lean_object* x_269; +lean_object* x_269; lean_object* x_270; +lean_dec(x_268); lean_dec(x_267); -lean_dec(x_266); -lean_dec(x_202); -x_268 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; -x_269 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_268, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_201); -return x_269; +lean_dec(x_203); +x_269 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; +x_270 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_269, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_202); +return x_270; } else { -lean_object* x_270; lean_object* x_271; lean_object* x_272; lean_object* x_273; lean_object* x_274; lean_object* x_275; lean_object* x_276; uint8_t x_277; uint8_t x_278; lean_object* x_279; -x_270 = lean_ctor_get(x_266, 0); -lean_inc(x_270); -x_271 = lean_ctor_get(x_266, 1); +lean_object* x_271; lean_object* x_272; lean_object* x_273; lean_object* x_274; lean_object* x_275; lean_object* x_276; lean_object* x_277; uint8_t x_278; uint8_t x_279; lean_object* x_280; +x_271 = lean_ctor_get(x_267, 0); lean_inc(x_271); -lean_dec(x_266); -x_272 = lean_ctor_get(x_2, 0); +x_272 = lean_ctor_get(x_267, 1); lean_inc(x_272); -x_273 = lean_ctor_get(x_2, 1); +lean_dec(x_267); +x_273 = lean_ctor_get(x_2, 0); lean_inc(x_273); -lean_dec(x_2); -x_274 = lean_ctor_get(x_270, 3); +x_274 = lean_ctor_get(x_2, 1); lean_inc(x_274); -lean_dec(x_270); -x_275 = lean_nat_add(x_274, x_272); -lean_dec(x_272); -lean_dec(x_274); -x_276 = lean_array_get_size(x_271); -x_277 = lean_nat_dec_lt(x_275, x_276); -lean_dec(x_276); -x_278 = l_List_isEmpty___rarg(x_273); -if (x_277 == 0) -{ -lean_object* x_287; lean_object* x_288; -lean_dec(x_275); +lean_dec(x_2); +x_275 = lean_ctor_get(x_271, 3); +lean_inc(x_275); lean_dec(x_271); -x_287 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; -x_288 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_287); -x_279 = x_288; -goto block_286; -} -else -{ -lean_object* x_289; -x_289 = lean_array_fget(x_271, x_275); +x_276 = lean_nat_add(x_275, x_273); +lean_dec(x_273); lean_dec(x_275); -lean_dec(x_271); -x_279 = x_289; -goto block_286; -} -block_286: -{ +x_277 = lean_array_get_size(x_272); +x_278 = lean_nat_dec_lt(x_276, x_277); +lean_dec(x_277); +x_279 = l_List_isEmpty___rarg(x_274); if (x_278 == 0) { -lean_dec(x_267); -lean_dec(x_202); -x_1 = x_279; -x_2 = x_273; -x_10 = x_201; +lean_object* x_288; lean_object* x_289; +lean_dec(x_276); +lean_dec(x_272); +x_288 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; +x_289 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_288); +x_280 = x_289; +goto block_287; +} +else +{ +lean_object* x_290; +x_290 = lean_array_fget(x_272, x_276); +lean_dec(x_276); +lean_dec(x_272); +x_280 = x_290; +goto block_287; +} +block_287: +{ +if (x_279 == 0) +{ +lean_dec(x_268); +lean_dec(x_203); +x_1 = x_280; +x_2 = x_274; +x_11 = x_202; goto _start; } else { -lean_dec(x_273); -if (lean_obj_tag(x_279) == 1) +lean_dec(x_274); +if (lean_obj_tag(x_280) == 1) { -lean_object* x_281; lean_object* x_282; lean_object* x_283; +lean_object* x_282; lean_object* x_283; lean_object* x_284; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1506,33 +1537,33 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_281 = lean_ctor_get(x_279, 0); -lean_inc(x_281); -lean_dec(x_279); -if (lean_is_scalar(x_267)) { - x_282 = lean_alloc_ctor(1, 1, 0); +x_282 = lean_ctor_get(x_280, 0); +lean_inc(x_282); +lean_dec(x_280); +if (lean_is_scalar(x_268)) { + x_283 = lean_alloc_ctor(1, 1, 0); } else { - x_282 = x_267; -} -lean_ctor_set(x_282, 0, x_281); -if (lean_is_scalar(x_202)) { - x_283 = lean_alloc_ctor(0, 2, 0); -} else { - x_283 = x_202; + x_283 = x_268; } lean_ctor_set(x_283, 0, x_282); -lean_ctor_set(x_283, 1, x_201); -return x_283; +if (lean_is_scalar(x_203)) { + x_284 = lean_alloc_ctor(0, 2, 0); +} else { + x_284 = x_203; +} +lean_ctor_set(x_284, 0, x_283); +lean_ctor_set(x_284, 1, x_202); +return x_284; } else { -lean_object* x_284; lean_object* x_285; -lean_dec(x_279); -lean_dec(x_267); -lean_dec(x_202); -x_284 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; -x_285 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_284, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_201); -return x_285; +lean_object* x_285; lean_object* x_286; +lean_dec(x_280); +lean_dec(x_268); +lean_dec(x_203); +x_285 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; +x_286 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_285, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_202); +return x_286; } } } @@ -1541,50 +1572,51 @@ return x_285; } case 3: { -lean_object* x_290; lean_object* x_291; lean_object* x_292; lean_object* x_293; lean_object* x_294; lean_object* x_295; uint8_t x_296; lean_object* x_297; -x_290 = lean_ctor_get(x_12, 1); -lean_inc(x_290); -lean_dec(x_12); -x_291 = lean_st_ref_get(x_9, x_290); -x_292 = lean_ctor_get(x_291, 0); -lean_inc(x_292); -x_293 = lean_ctor_get(x_291, 1); +lean_object* x_291; lean_object* x_292; lean_object* x_293; lean_object* x_294; lean_object* x_295; lean_object* x_296; uint8_t x_297; lean_object* x_298; +x_291 = lean_ctor_get(x_13, 1); +lean_inc(x_291); +lean_dec(x_13); +x_292 = lean_st_ref_get(x_10, x_291); +x_293 = lean_ctor_get(x_292, 0); lean_inc(x_293); -if (lean_is_exclusive(x_291)) { - lean_ctor_release(x_291, 0); - lean_ctor_release(x_291, 1); - x_294 = x_291; +x_294 = lean_ctor_get(x_292, 1); +lean_inc(x_294); +if (lean_is_exclusive(x_292)) { + lean_ctor_release(x_292, 0); + lean_ctor_release(x_292, 1); + x_295 = x_292; } else { - lean_dec_ref(x_291); - x_294 = lean_box(0); + lean_dec_ref(x_292); + x_295 = lean_box(0); } -x_295 = lean_ctor_get(x_292, 0); -lean_inc(x_295); -lean_dec(x_292); -x_296 = 0; -lean_inc(x_13); -x_297 = l_Lean_Expr_constructorApp_x3f(x_295, x_13, x_296); -if (lean_obj_tag(x_297) == 0) +x_296 = lean_ctor_get(x_293, 0); +lean_inc(x_296); +lean_dec(x_293); +x_297 = 0; +lean_inc(x_14); +x_298 = l_Lean_Expr_constructorApp_x3f(x_296, x_14, x_297); +if (lean_obj_tag(x_298) == 0) { -lean_object* x_298; -x_298 = l_Lean_Expr_getAppFn(x_13); -if (lean_obj_tag(x_298) == 4) +lean_object* x_299; +x_299 = l_Lean_Expr_getAppFn(x_14); +if (lean_obj_tag(x_299) == 4) { -lean_object* x_299; lean_object* x_300; lean_object* x_301; lean_object* x_302; -lean_dec(x_294); -x_299 = lean_ctor_get(x_298, 0); -lean_inc(x_299); -x_300 = lean_ctor_get(x_298, 1); +lean_object* x_300; lean_object* x_301; lean_object* x_302; lean_object* x_303; +lean_dec(x_295); +x_300 = lean_ctor_get(x_299, 0); lean_inc(x_300); -lean_dec(x_298); -x_301 = l_Lean_Compiler_LCNF_getDecl_x3f(x_299, x_6, x_7, x_8, x_9, x_293); -x_302 = lean_ctor_get(x_301, 0); -lean_inc(x_302); -if (lean_obj_tag(x_302) == 0) +x_301 = lean_ctor_get(x_299, 1); +lean_inc(x_301); +lean_dec(x_299); +x_302 = l_Lean_Compiler_LCNF_getDecl_x3f(x_300, x_7, x_8, x_9, x_10, x_294); +x_303 = lean_ctor_get(x_302, 0); +lean_inc(x_303); +if (lean_obj_tag(x_303) == 0) { -uint8_t x_303; -lean_dec(x_300); -lean_dec(x_13); +uint8_t x_304; +lean_dec(x_301); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1593,54 +1625,55 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_303 = !lean_is_exclusive(x_301); -if (x_303 == 0) +x_304 = !lean_is_exclusive(x_302); +if (x_304 == 0) { -lean_object* x_304; lean_object* x_305; -x_304 = lean_ctor_get(x_301, 0); -lean_dec(x_304); -x_305 = lean_box(0); -lean_ctor_set(x_301, 0, x_305); -return x_301; +lean_object* x_305; lean_object* x_306; +x_305 = lean_ctor_get(x_302, 0); +lean_dec(x_305); +x_306 = lean_box(0); +lean_ctor_set(x_302, 0, x_306); +return x_302; } else { -lean_object* x_306; lean_object* x_307; lean_object* x_308; -x_306 = lean_ctor_get(x_301, 1); -lean_inc(x_306); -lean_dec(x_301); -x_307 = lean_box(0); -x_308 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_308, 0, x_307); -lean_ctor_set(x_308, 1, x_306); -return x_308; +lean_object* x_307; lean_object* x_308; lean_object* x_309; +x_307 = lean_ctor_get(x_302, 1); +lean_inc(x_307); +lean_dec(x_302); +x_308 = lean_box(0); +x_309 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_309, 0, x_308); +lean_ctor_set(x_309, 1, x_307); +return x_309; } } else { -uint8_t x_309; -x_309 = !lean_is_exclusive(x_301); -if (x_309 == 0) +uint8_t x_310; +x_310 = !lean_is_exclusive(x_302); +if (x_310 == 0) { -lean_object* x_310; lean_object* x_311; lean_object* x_312; lean_object* x_313; lean_object* x_314; lean_object* x_315; uint8_t x_316; -x_310 = lean_ctor_get(x_301, 1); -x_311 = lean_ctor_get(x_301, 0); -lean_dec(x_311); +lean_object* x_311; lean_object* x_312; lean_object* x_313; lean_object* x_314; lean_object* x_315; lean_object* x_316; uint8_t x_317; +x_311 = lean_ctor_get(x_302, 1); x_312 = lean_ctor_get(x_302, 0); -lean_inc(x_312); -lean_dec(x_302); -x_313 = l_Lean_Compiler_LCNF_Decl_getArity(x_312); -x_314 = lean_unsigned_to_nat(0u); -x_315 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_314); -x_316 = lean_nat_dec_eq(x_313, x_315); +lean_dec(x_312); +x_313 = lean_ctor_get(x_303, 0); +lean_inc(x_313); +lean_dec(x_303); +x_314 = l_Lean_Compiler_LCNF_Decl_getArity(x_313); +x_315 = lean_unsigned_to_nat(0u); +x_316 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_315); +x_317 = lean_nat_dec_eq(x_314, x_316); +lean_dec(x_314); +if (x_317 == 0) +{ +lean_object* x_318; +lean_dec(x_316); lean_dec(x_313); -if (x_316 == 0) -{ -lean_object* x_317; -lean_dec(x_315); -lean_dec(x_312); -lean_dec(x_300); -lean_dec(x_13); +lean_dec(x_301); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1649,46 +1682,47 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_317 = lean_box(0); -lean_ctor_set(x_301, 0, x_317); -return x_301; +x_318 = lean_box(0); +lean_ctor_set(x_302, 0, x_318); +return x_302; } else { -lean_object* x_318; lean_object* x_319; lean_object* x_320; lean_object* x_321; lean_object* x_322; lean_object* x_323; lean_object* x_324; lean_object* x_325; -lean_free_object(x_301); -lean_inc(x_312); -x_318 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_312, x_300); -x_319 = lean_ctor_get(x_312, 3); -lean_inc(x_319); -lean_dec(x_312); -x_320 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_315); -x_321 = lean_mk_array(x_315, x_320); -x_322 = lean_unsigned_to_nat(1u); -x_323 = lean_nat_sub(x_315, x_322); -lean_dec(x_315); -x_324 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_321, x_323); +lean_object* x_319; lean_object* x_320; lean_object* x_321; lean_object* x_322; lean_object* x_323; lean_object* x_324; lean_object* x_325; lean_object* x_326; +lean_free_object(x_302); +lean_inc(x_313); +x_319 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_313, x_301); +x_320 = lean_ctor_get(x_313, 3); +lean_inc(x_320); +lean_dec(x_313); +x_321 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_316); +x_322 = lean_mk_array(x_316, x_321); +x_323 = lean_unsigned_to_nat(1u); +x_324 = lean_nat_sub(x_316, x_323); +lean_dec(x_316); +x_325 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_322, x_324); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_325 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_319, x_318, x_324, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_310); -lean_dec(x_319); -if (lean_obj_tag(x_325) == 0) +x_326 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_320, x_319, x_325, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_311); +lean_dec(x_320); +if (lean_obj_tag(x_326) == 0) { -lean_object* x_326; lean_object* x_327; lean_object* x_328; -x_326 = lean_ctor_get(x_325, 0); -lean_inc(x_326); -x_327 = lean_ctor_get(x_325, 1); +lean_object* x_327; lean_object* x_328; lean_object* x_329; +x_327 = lean_ctor_get(x_326, 0); lean_inc(x_327); -lean_dec(x_325); -x_328 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_326, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_327); -return x_328; +x_328 = lean_ctor_get(x_326, 1); +lean_inc(x_328); +lean_dec(x_326); +x_329 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_327, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_328); +return x_329; } else { -uint8_t x_329; +uint8_t x_330; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1697,48 +1731,49 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_329 = !lean_is_exclusive(x_325); -if (x_329 == 0) +x_330 = !lean_is_exclusive(x_326); +if (x_330 == 0) { -return x_325; +return x_326; } else { -lean_object* x_330; lean_object* x_331; lean_object* x_332; -x_330 = lean_ctor_get(x_325, 0); -x_331 = lean_ctor_get(x_325, 1); +lean_object* x_331; lean_object* x_332; lean_object* x_333; +x_331 = lean_ctor_get(x_326, 0); +x_332 = lean_ctor_get(x_326, 1); +lean_inc(x_332); lean_inc(x_331); -lean_inc(x_330); -lean_dec(x_325); -x_332 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_332, 0, x_330); -lean_ctor_set(x_332, 1, x_331); -return x_332; +lean_dec(x_326); +x_333 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_333, 0, x_331); +lean_ctor_set(x_333, 1, x_332); +return x_333; } } } } else { -lean_object* x_333; lean_object* x_334; lean_object* x_335; lean_object* x_336; lean_object* x_337; uint8_t x_338; -x_333 = lean_ctor_get(x_301, 1); -lean_inc(x_333); -lean_dec(x_301); -x_334 = lean_ctor_get(x_302, 0); +lean_object* x_334; lean_object* x_335; lean_object* x_336; lean_object* x_337; lean_object* x_338; uint8_t x_339; +x_334 = lean_ctor_get(x_302, 1); lean_inc(x_334); lean_dec(x_302); -x_335 = l_Lean_Compiler_LCNF_Decl_getArity(x_334); -x_336 = lean_unsigned_to_nat(0u); -x_337 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_336); -x_338 = lean_nat_dec_eq(x_335, x_337); -lean_dec(x_335); -if (x_338 == 0) +x_335 = lean_ctor_get(x_303, 0); +lean_inc(x_335); +lean_dec(x_303); +x_336 = l_Lean_Compiler_LCNF_Decl_getArity(x_335); +x_337 = lean_unsigned_to_nat(0u); +x_338 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_337); +x_339 = lean_nat_dec_eq(x_336, x_338); +lean_dec(x_336); +if (x_339 == 0) { -lean_object* x_339; lean_object* x_340; -lean_dec(x_337); -lean_dec(x_334); -lean_dec(x_300); -lean_dec(x_13); +lean_object* x_340; lean_object* x_341; +lean_dec(x_338); +lean_dec(x_335); +lean_dec(x_301); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1747,47 +1782,48 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_339 = lean_box(0); -x_340 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_340, 0, x_339); -lean_ctor_set(x_340, 1, x_333); -return x_340; +x_340 = lean_box(0); +x_341 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_341, 0, x_340); +lean_ctor_set(x_341, 1, x_334); +return x_341; } else { -lean_object* x_341; lean_object* x_342; lean_object* x_343; lean_object* x_344; lean_object* x_345; lean_object* x_346; lean_object* x_347; lean_object* x_348; -lean_inc(x_334); -x_341 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_334, x_300); -x_342 = lean_ctor_get(x_334, 3); -lean_inc(x_342); -lean_dec(x_334); -x_343 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_337); -x_344 = lean_mk_array(x_337, x_343); -x_345 = lean_unsigned_to_nat(1u); -x_346 = lean_nat_sub(x_337, x_345); -lean_dec(x_337); -x_347 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_344, x_346); +lean_object* x_342; lean_object* x_343; lean_object* x_344; lean_object* x_345; lean_object* x_346; lean_object* x_347; lean_object* x_348; lean_object* x_349; +lean_inc(x_335); +x_342 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_335, x_301); +x_343 = lean_ctor_get(x_335, 3); +lean_inc(x_343); +lean_dec(x_335); +x_344 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_338); +x_345 = lean_mk_array(x_338, x_344); +x_346 = lean_unsigned_to_nat(1u); +x_347 = lean_nat_sub(x_338, x_346); +lean_dec(x_338); +x_348 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_345, x_347); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_348 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_342, x_341, x_347, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_333); -lean_dec(x_342); -if (lean_obj_tag(x_348) == 0) +x_349 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_343, x_342, x_348, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_334); +lean_dec(x_343); +if (lean_obj_tag(x_349) == 0) { -lean_object* x_349; lean_object* x_350; lean_object* x_351; -x_349 = lean_ctor_get(x_348, 0); -lean_inc(x_349); -x_350 = lean_ctor_get(x_348, 1); +lean_object* x_350; lean_object* x_351; lean_object* x_352; +x_350 = lean_ctor_get(x_349, 0); lean_inc(x_350); -lean_dec(x_348); -x_351 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_349, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_350); -return x_351; +x_351 = lean_ctor_get(x_349, 1); +lean_inc(x_351); +lean_dec(x_349); +x_352 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_350, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_351); +return x_352; } else { -lean_object* x_352; lean_object* x_353; lean_object* x_354; lean_object* x_355; +lean_object* x_353; lean_object* x_354; lean_object* x_355; lean_object* x_356; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1796,26 +1832,26 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_352 = lean_ctor_get(x_348, 0); -lean_inc(x_352); -x_353 = lean_ctor_get(x_348, 1); +x_353 = lean_ctor_get(x_349, 0); lean_inc(x_353); -if (lean_is_exclusive(x_348)) { - lean_ctor_release(x_348, 0); - lean_ctor_release(x_348, 1); - x_354 = x_348; +x_354 = lean_ctor_get(x_349, 1); +lean_inc(x_354); +if (lean_is_exclusive(x_349)) { + lean_ctor_release(x_349, 0); + lean_ctor_release(x_349, 1); + x_355 = x_349; } else { - lean_dec_ref(x_348); - x_354 = lean_box(0); + lean_dec_ref(x_349); + x_355 = lean_box(0); } -if (lean_is_scalar(x_354)) { - x_355 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_355)) { + x_356 = lean_alloc_ctor(1, 2, 0); } else { - x_355 = x_354; + x_356 = x_355; } -lean_ctor_set(x_355, 0, x_352); -lean_ctor_set(x_355, 1, x_353); -return x_355; +lean_ctor_set(x_356, 0, x_353); +lean_ctor_set(x_356, 1, x_354); +return x_356; } } } @@ -1823,9 +1859,10 @@ return x_355; } else { -lean_object* x_356; lean_object* x_357; -lean_dec(x_298); -lean_dec(x_13); +lean_object* x_357; lean_object* x_358; +lean_dec(x_299); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1834,99 +1871,100 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_356 = lean_box(0); -if (lean_is_scalar(x_294)) { - x_357 = lean_alloc_ctor(0, 2, 0); +x_357 = lean_box(0); +if (lean_is_scalar(x_295)) { + x_358 = lean_alloc_ctor(0, 2, 0); } else { - x_357 = x_294; + x_358 = x_295; } -lean_ctor_set(x_357, 0, x_356); -lean_ctor_set(x_357, 1, x_293); -return x_357; +lean_ctor_set(x_358, 0, x_357); +lean_ctor_set(x_358, 1, x_294); +return x_358; } } else { -lean_object* x_358; lean_object* x_359; -lean_dec(x_13); -x_358 = lean_ctor_get(x_297, 0); -lean_inc(x_358); -if (lean_is_exclusive(x_297)) { - lean_ctor_release(x_297, 0); - x_359 = x_297; +lean_object* x_359; lean_object* x_360; +lean_dec(x_14); +x_359 = lean_ctor_get(x_298, 0); +lean_inc(x_359); +if (lean_is_exclusive(x_298)) { + lean_ctor_release(x_298, 0); + x_360 = x_298; } else { - lean_dec_ref(x_297); - x_359 = lean_box(0); + lean_dec_ref(x_298); + x_360 = lean_box(0); } if (lean_obj_tag(x_2) == 0) { -lean_object* x_360; lean_object* x_361; +lean_object* x_361; lean_object* x_362; +lean_dec(x_360); lean_dec(x_359); -lean_dec(x_358); -lean_dec(x_294); -x_360 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; -x_361 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_360, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_293); -return x_361; +lean_dec(x_295); +x_361 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; +x_362 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_361, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_294); +return x_362; } else { -lean_object* x_362; lean_object* x_363; lean_object* x_364; lean_object* x_365; lean_object* x_366; lean_object* x_367; lean_object* x_368; uint8_t x_369; uint8_t x_370; lean_object* x_371; -x_362 = lean_ctor_get(x_358, 0); -lean_inc(x_362); -x_363 = lean_ctor_get(x_358, 1); +lean_object* x_363; lean_object* x_364; lean_object* x_365; lean_object* x_366; lean_object* x_367; lean_object* x_368; lean_object* x_369; uint8_t x_370; uint8_t x_371; lean_object* x_372; +x_363 = lean_ctor_get(x_359, 0); lean_inc(x_363); -lean_dec(x_358); -x_364 = lean_ctor_get(x_2, 0); +x_364 = lean_ctor_get(x_359, 1); lean_inc(x_364); -x_365 = lean_ctor_get(x_2, 1); +lean_dec(x_359); +x_365 = lean_ctor_get(x_2, 0); lean_inc(x_365); -lean_dec(x_2); -x_366 = lean_ctor_get(x_362, 3); +x_366 = lean_ctor_get(x_2, 1); lean_inc(x_366); -lean_dec(x_362); -x_367 = lean_nat_add(x_366, x_364); -lean_dec(x_364); -lean_dec(x_366); -x_368 = lean_array_get_size(x_363); -x_369 = lean_nat_dec_lt(x_367, x_368); -lean_dec(x_368); -x_370 = l_List_isEmpty___rarg(x_365); -if (x_369 == 0) -{ -lean_object* x_379; lean_object* x_380; -lean_dec(x_367); +lean_dec(x_2); +x_367 = lean_ctor_get(x_363, 3); +lean_inc(x_367); lean_dec(x_363); -x_379 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; -x_380 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_379); -x_371 = x_380; -goto block_378; -} -else -{ -lean_object* x_381; -x_381 = lean_array_fget(x_363, x_367); +x_368 = lean_nat_add(x_367, x_365); +lean_dec(x_365); lean_dec(x_367); -lean_dec(x_363); -x_371 = x_381; -goto block_378; -} -block_378: -{ +x_369 = lean_array_get_size(x_364); +x_370 = lean_nat_dec_lt(x_368, x_369); +lean_dec(x_369); +x_371 = l_List_isEmpty___rarg(x_366); if (x_370 == 0) { -lean_dec(x_359); -lean_dec(x_294); -x_1 = x_371; -x_2 = x_365; -x_10 = x_293; +lean_object* x_380; lean_object* x_381; +lean_dec(x_368); +lean_dec(x_364); +x_380 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; +x_381 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_380); +x_372 = x_381; +goto block_379; +} +else +{ +lean_object* x_382; +x_382 = lean_array_fget(x_364, x_368); +lean_dec(x_368); +lean_dec(x_364); +x_372 = x_382; +goto block_379; +} +block_379: +{ +if (x_371 == 0) +{ +lean_dec(x_360); +lean_dec(x_295); +x_1 = x_372; +x_2 = x_366; +x_11 = x_294; goto _start; } else { -lean_dec(x_365); -if (lean_obj_tag(x_371) == 1) +lean_dec(x_366); +if (lean_obj_tag(x_372) == 1) { -lean_object* x_373; lean_object* x_374; lean_object* x_375; +lean_object* x_374; lean_object* x_375; lean_object* x_376; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1934,33 +1972,33 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_373 = lean_ctor_get(x_371, 0); -lean_inc(x_373); -lean_dec(x_371); -if (lean_is_scalar(x_359)) { - x_374 = lean_alloc_ctor(1, 1, 0); +x_374 = lean_ctor_get(x_372, 0); +lean_inc(x_374); +lean_dec(x_372); +if (lean_is_scalar(x_360)) { + x_375 = lean_alloc_ctor(1, 1, 0); } else { - x_374 = x_359; -} -lean_ctor_set(x_374, 0, x_373); -if (lean_is_scalar(x_294)) { - x_375 = lean_alloc_ctor(0, 2, 0); -} else { - x_375 = x_294; + x_375 = x_360; } lean_ctor_set(x_375, 0, x_374); -lean_ctor_set(x_375, 1, x_293); -return x_375; +if (lean_is_scalar(x_295)) { + x_376 = lean_alloc_ctor(0, 2, 0); +} else { + x_376 = x_295; +} +lean_ctor_set(x_376, 0, x_375); +lean_ctor_set(x_376, 1, x_294); +return x_376; } else { -lean_object* x_376; lean_object* x_377; -lean_dec(x_371); -lean_dec(x_359); -lean_dec(x_294); -x_376 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; -x_377 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_376, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_293); -return x_377; +lean_object* x_377; lean_object* x_378; +lean_dec(x_372); +lean_dec(x_360); +lean_dec(x_295); +x_377 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; +x_378 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_377, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_294); +return x_378; } } } @@ -1969,50 +2007,51 @@ return x_377; } case 4: { -lean_object* x_382; lean_object* x_383; lean_object* x_384; lean_object* x_385; lean_object* x_386; lean_object* x_387; uint8_t x_388; lean_object* x_389; -x_382 = lean_ctor_get(x_12, 1); -lean_inc(x_382); -lean_dec(x_12); -x_383 = lean_st_ref_get(x_9, x_382); -x_384 = lean_ctor_get(x_383, 0); -lean_inc(x_384); -x_385 = lean_ctor_get(x_383, 1); +lean_object* x_383; lean_object* x_384; lean_object* x_385; lean_object* x_386; lean_object* x_387; lean_object* x_388; uint8_t x_389; lean_object* x_390; +x_383 = lean_ctor_get(x_13, 1); +lean_inc(x_383); +lean_dec(x_13); +x_384 = lean_st_ref_get(x_10, x_383); +x_385 = lean_ctor_get(x_384, 0); lean_inc(x_385); -if (lean_is_exclusive(x_383)) { - lean_ctor_release(x_383, 0); - lean_ctor_release(x_383, 1); - x_386 = x_383; +x_386 = lean_ctor_get(x_384, 1); +lean_inc(x_386); +if (lean_is_exclusive(x_384)) { + lean_ctor_release(x_384, 0); + lean_ctor_release(x_384, 1); + x_387 = x_384; } else { - lean_dec_ref(x_383); - x_386 = lean_box(0); + lean_dec_ref(x_384); + x_387 = lean_box(0); } -x_387 = lean_ctor_get(x_384, 0); -lean_inc(x_387); -lean_dec(x_384); -x_388 = 0; -lean_inc(x_13); -x_389 = l_Lean_Expr_constructorApp_x3f(x_387, x_13, x_388); -if (lean_obj_tag(x_389) == 0) +x_388 = lean_ctor_get(x_385, 0); +lean_inc(x_388); +lean_dec(x_385); +x_389 = 0; +lean_inc(x_14); +x_390 = l_Lean_Expr_constructorApp_x3f(x_388, x_14, x_389); +if (lean_obj_tag(x_390) == 0) { -lean_object* x_390; -x_390 = l_Lean_Expr_getAppFn(x_13); -if (lean_obj_tag(x_390) == 4) +lean_object* x_391; +x_391 = l_Lean_Expr_getAppFn(x_14); +if (lean_obj_tag(x_391) == 4) { -lean_object* x_391; lean_object* x_392; lean_object* x_393; lean_object* x_394; -lean_dec(x_386); -x_391 = lean_ctor_get(x_390, 0); -lean_inc(x_391); -x_392 = lean_ctor_get(x_390, 1); +lean_object* x_392; lean_object* x_393; lean_object* x_394; lean_object* x_395; +lean_dec(x_387); +x_392 = lean_ctor_get(x_391, 0); lean_inc(x_392); -lean_dec(x_390); -x_393 = l_Lean_Compiler_LCNF_getDecl_x3f(x_391, x_6, x_7, x_8, x_9, x_385); -x_394 = lean_ctor_get(x_393, 0); -lean_inc(x_394); -if (lean_obj_tag(x_394) == 0) +x_393 = lean_ctor_get(x_391, 1); +lean_inc(x_393); +lean_dec(x_391); +x_394 = l_Lean_Compiler_LCNF_getDecl_x3f(x_392, x_7, x_8, x_9, x_10, x_386); +x_395 = lean_ctor_get(x_394, 0); +lean_inc(x_395); +if (lean_obj_tag(x_395) == 0) { -uint8_t x_395; -lean_dec(x_392); -lean_dec(x_13); +uint8_t x_396; +lean_dec(x_393); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2021,54 +2060,55 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_395 = !lean_is_exclusive(x_393); -if (x_395 == 0) +x_396 = !lean_is_exclusive(x_394); +if (x_396 == 0) { -lean_object* x_396; lean_object* x_397; -x_396 = lean_ctor_get(x_393, 0); -lean_dec(x_396); -x_397 = lean_box(0); -lean_ctor_set(x_393, 0, x_397); -return x_393; +lean_object* x_397; lean_object* x_398; +x_397 = lean_ctor_get(x_394, 0); +lean_dec(x_397); +x_398 = lean_box(0); +lean_ctor_set(x_394, 0, x_398); +return x_394; } else { -lean_object* x_398; lean_object* x_399; lean_object* x_400; -x_398 = lean_ctor_get(x_393, 1); -lean_inc(x_398); -lean_dec(x_393); -x_399 = lean_box(0); -x_400 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_400, 0, x_399); -lean_ctor_set(x_400, 1, x_398); -return x_400; +lean_object* x_399; lean_object* x_400; lean_object* x_401; +x_399 = lean_ctor_get(x_394, 1); +lean_inc(x_399); +lean_dec(x_394); +x_400 = lean_box(0); +x_401 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_401, 0, x_400); +lean_ctor_set(x_401, 1, x_399); +return x_401; } } else { -uint8_t x_401; -x_401 = !lean_is_exclusive(x_393); -if (x_401 == 0) +uint8_t x_402; +x_402 = !lean_is_exclusive(x_394); +if (x_402 == 0) { -lean_object* x_402; lean_object* x_403; lean_object* x_404; lean_object* x_405; lean_object* x_406; lean_object* x_407; uint8_t x_408; -x_402 = lean_ctor_get(x_393, 1); -x_403 = lean_ctor_get(x_393, 0); -lean_dec(x_403); +lean_object* x_403; lean_object* x_404; lean_object* x_405; lean_object* x_406; lean_object* x_407; lean_object* x_408; uint8_t x_409; +x_403 = lean_ctor_get(x_394, 1); x_404 = lean_ctor_get(x_394, 0); -lean_inc(x_404); -lean_dec(x_394); -x_405 = l_Lean_Compiler_LCNF_Decl_getArity(x_404); -x_406 = lean_unsigned_to_nat(0u); -x_407 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_406); -x_408 = lean_nat_dec_eq(x_405, x_407); +lean_dec(x_404); +x_405 = lean_ctor_get(x_395, 0); +lean_inc(x_405); +lean_dec(x_395); +x_406 = l_Lean_Compiler_LCNF_Decl_getArity(x_405); +x_407 = lean_unsigned_to_nat(0u); +x_408 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_407); +x_409 = lean_nat_dec_eq(x_406, x_408); +lean_dec(x_406); +if (x_409 == 0) +{ +lean_object* x_410; +lean_dec(x_408); lean_dec(x_405); -if (x_408 == 0) -{ -lean_object* x_409; -lean_dec(x_407); -lean_dec(x_404); -lean_dec(x_392); -lean_dec(x_13); +lean_dec(x_393); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2077,46 +2117,47 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_409 = lean_box(0); -lean_ctor_set(x_393, 0, x_409); -return x_393; +x_410 = lean_box(0); +lean_ctor_set(x_394, 0, x_410); +return x_394; } else { -lean_object* x_410; lean_object* x_411; lean_object* x_412; lean_object* x_413; lean_object* x_414; lean_object* x_415; lean_object* x_416; lean_object* x_417; -lean_free_object(x_393); -lean_inc(x_404); -x_410 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_404, x_392); -x_411 = lean_ctor_get(x_404, 3); -lean_inc(x_411); -lean_dec(x_404); -x_412 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_407); -x_413 = lean_mk_array(x_407, x_412); -x_414 = lean_unsigned_to_nat(1u); -x_415 = lean_nat_sub(x_407, x_414); -lean_dec(x_407); -x_416 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_413, x_415); +lean_object* x_411; lean_object* x_412; lean_object* x_413; lean_object* x_414; lean_object* x_415; lean_object* x_416; lean_object* x_417; lean_object* x_418; +lean_free_object(x_394); +lean_inc(x_405); +x_411 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_405, x_393); +x_412 = lean_ctor_get(x_405, 3); +lean_inc(x_412); +lean_dec(x_405); +x_413 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_408); +x_414 = lean_mk_array(x_408, x_413); +x_415 = lean_unsigned_to_nat(1u); +x_416 = lean_nat_sub(x_408, x_415); +lean_dec(x_408); +x_417 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_414, x_416); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_417 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_411, x_410, x_416, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_402); -lean_dec(x_411); -if (lean_obj_tag(x_417) == 0) +x_418 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_412, x_411, x_417, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_403); +lean_dec(x_412); +if (lean_obj_tag(x_418) == 0) { -lean_object* x_418; lean_object* x_419; lean_object* x_420; -x_418 = lean_ctor_get(x_417, 0); -lean_inc(x_418); -x_419 = lean_ctor_get(x_417, 1); +lean_object* x_419; lean_object* x_420; lean_object* x_421; +x_419 = lean_ctor_get(x_418, 0); lean_inc(x_419); -lean_dec(x_417); -x_420 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_418, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_419); -return x_420; +x_420 = lean_ctor_get(x_418, 1); +lean_inc(x_420); +lean_dec(x_418); +x_421 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_419, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_420); +return x_421; } else { -uint8_t x_421; +uint8_t x_422; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2125,48 +2166,49 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_421 = !lean_is_exclusive(x_417); -if (x_421 == 0) +x_422 = !lean_is_exclusive(x_418); +if (x_422 == 0) { -return x_417; +return x_418; } else { -lean_object* x_422; lean_object* x_423; lean_object* x_424; -x_422 = lean_ctor_get(x_417, 0); -x_423 = lean_ctor_get(x_417, 1); +lean_object* x_423; lean_object* x_424; lean_object* x_425; +x_423 = lean_ctor_get(x_418, 0); +x_424 = lean_ctor_get(x_418, 1); +lean_inc(x_424); lean_inc(x_423); -lean_inc(x_422); -lean_dec(x_417); -x_424 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_424, 0, x_422); -lean_ctor_set(x_424, 1, x_423); -return x_424; +lean_dec(x_418); +x_425 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_425, 0, x_423); +lean_ctor_set(x_425, 1, x_424); +return x_425; } } } } else { -lean_object* x_425; lean_object* x_426; lean_object* x_427; lean_object* x_428; lean_object* x_429; uint8_t x_430; -x_425 = lean_ctor_get(x_393, 1); -lean_inc(x_425); -lean_dec(x_393); -x_426 = lean_ctor_get(x_394, 0); +lean_object* x_426; lean_object* x_427; lean_object* x_428; lean_object* x_429; lean_object* x_430; uint8_t x_431; +x_426 = lean_ctor_get(x_394, 1); lean_inc(x_426); lean_dec(x_394); -x_427 = l_Lean_Compiler_LCNF_Decl_getArity(x_426); -x_428 = lean_unsigned_to_nat(0u); -x_429 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_428); -x_430 = lean_nat_dec_eq(x_427, x_429); -lean_dec(x_427); -if (x_430 == 0) +x_427 = lean_ctor_get(x_395, 0); +lean_inc(x_427); +lean_dec(x_395); +x_428 = l_Lean_Compiler_LCNF_Decl_getArity(x_427); +x_429 = lean_unsigned_to_nat(0u); +x_430 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_429); +x_431 = lean_nat_dec_eq(x_428, x_430); +lean_dec(x_428); +if (x_431 == 0) { -lean_object* x_431; lean_object* x_432; -lean_dec(x_429); -lean_dec(x_426); -lean_dec(x_392); -lean_dec(x_13); +lean_object* x_432; lean_object* x_433; +lean_dec(x_430); +lean_dec(x_427); +lean_dec(x_393); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2175,47 +2217,48 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_431 = lean_box(0); -x_432 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_432, 0, x_431); -lean_ctor_set(x_432, 1, x_425); -return x_432; +x_432 = lean_box(0); +x_433 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_433, 0, x_432); +lean_ctor_set(x_433, 1, x_426); +return x_433; } else { -lean_object* x_433; lean_object* x_434; lean_object* x_435; lean_object* x_436; lean_object* x_437; lean_object* x_438; lean_object* x_439; lean_object* x_440; -lean_inc(x_426); -x_433 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_426, x_392); -x_434 = lean_ctor_get(x_426, 3); -lean_inc(x_434); -lean_dec(x_426); -x_435 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_429); -x_436 = lean_mk_array(x_429, x_435); -x_437 = lean_unsigned_to_nat(1u); -x_438 = lean_nat_sub(x_429, x_437); -lean_dec(x_429); -x_439 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_436, x_438); +lean_object* x_434; lean_object* x_435; lean_object* x_436; lean_object* x_437; lean_object* x_438; lean_object* x_439; lean_object* x_440; lean_object* x_441; +lean_inc(x_427); +x_434 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_427, x_393); +x_435 = lean_ctor_get(x_427, 3); +lean_inc(x_435); +lean_dec(x_427); +x_436 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_430); +x_437 = lean_mk_array(x_430, x_436); +x_438 = lean_unsigned_to_nat(1u); +x_439 = lean_nat_sub(x_430, x_438); +lean_dec(x_430); +x_440 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_437, x_439); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_440 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_434, x_433, x_439, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_425); -lean_dec(x_434); -if (lean_obj_tag(x_440) == 0) +x_441 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_435, x_434, x_440, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_426); +lean_dec(x_435); +if (lean_obj_tag(x_441) == 0) { -lean_object* x_441; lean_object* x_442; lean_object* x_443; -x_441 = lean_ctor_get(x_440, 0); -lean_inc(x_441); -x_442 = lean_ctor_get(x_440, 1); +lean_object* x_442; lean_object* x_443; lean_object* x_444; +x_442 = lean_ctor_get(x_441, 0); lean_inc(x_442); -lean_dec(x_440); -x_443 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_441, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_442); -return x_443; +x_443 = lean_ctor_get(x_441, 1); +lean_inc(x_443); +lean_dec(x_441); +x_444 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_442, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_443); +return x_444; } else { -lean_object* x_444; lean_object* x_445; lean_object* x_446; lean_object* x_447; +lean_object* x_445; lean_object* x_446; lean_object* x_447; lean_object* x_448; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2224,26 +2267,26 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_444 = lean_ctor_get(x_440, 0); -lean_inc(x_444); -x_445 = lean_ctor_get(x_440, 1); +x_445 = lean_ctor_get(x_441, 0); lean_inc(x_445); -if (lean_is_exclusive(x_440)) { - lean_ctor_release(x_440, 0); - lean_ctor_release(x_440, 1); - x_446 = x_440; +x_446 = lean_ctor_get(x_441, 1); +lean_inc(x_446); +if (lean_is_exclusive(x_441)) { + lean_ctor_release(x_441, 0); + lean_ctor_release(x_441, 1); + x_447 = x_441; } else { - lean_dec_ref(x_440); - x_446 = lean_box(0); + lean_dec_ref(x_441); + x_447 = lean_box(0); } -if (lean_is_scalar(x_446)) { - x_447 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_447)) { + x_448 = lean_alloc_ctor(1, 2, 0); } else { - x_447 = x_446; + x_448 = x_447; } -lean_ctor_set(x_447, 0, x_444); -lean_ctor_set(x_447, 1, x_445); -return x_447; +lean_ctor_set(x_448, 0, x_445); +lean_ctor_set(x_448, 1, x_446); +return x_448; } } } @@ -2251,9 +2294,10 @@ return x_447; } else { -lean_object* x_448; lean_object* x_449; -lean_dec(x_390); -lean_dec(x_13); +lean_object* x_449; lean_object* x_450; +lean_dec(x_391); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2262,99 +2306,100 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_448 = lean_box(0); -if (lean_is_scalar(x_386)) { - x_449 = lean_alloc_ctor(0, 2, 0); +x_449 = lean_box(0); +if (lean_is_scalar(x_387)) { + x_450 = lean_alloc_ctor(0, 2, 0); } else { - x_449 = x_386; + x_450 = x_387; } -lean_ctor_set(x_449, 0, x_448); -lean_ctor_set(x_449, 1, x_385); -return x_449; +lean_ctor_set(x_450, 0, x_449); +lean_ctor_set(x_450, 1, x_386); +return x_450; } } else { -lean_object* x_450; lean_object* x_451; -lean_dec(x_13); -x_450 = lean_ctor_get(x_389, 0); -lean_inc(x_450); -if (lean_is_exclusive(x_389)) { - lean_ctor_release(x_389, 0); - x_451 = x_389; +lean_object* x_451; lean_object* x_452; +lean_dec(x_14); +x_451 = lean_ctor_get(x_390, 0); +lean_inc(x_451); +if (lean_is_exclusive(x_390)) { + lean_ctor_release(x_390, 0); + x_452 = x_390; } else { - lean_dec_ref(x_389); - x_451 = lean_box(0); + lean_dec_ref(x_390); + x_452 = lean_box(0); } if (lean_obj_tag(x_2) == 0) { -lean_object* x_452; lean_object* x_453; +lean_object* x_453; lean_object* x_454; +lean_dec(x_452); lean_dec(x_451); -lean_dec(x_450); -lean_dec(x_386); -x_452 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; -x_453 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_452, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_385); -return x_453; +lean_dec(x_387); +x_453 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; +x_454 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_453, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_386); +return x_454; } else { -lean_object* x_454; lean_object* x_455; lean_object* x_456; lean_object* x_457; lean_object* x_458; lean_object* x_459; lean_object* x_460; uint8_t x_461; uint8_t x_462; lean_object* x_463; -x_454 = lean_ctor_get(x_450, 0); -lean_inc(x_454); -x_455 = lean_ctor_get(x_450, 1); +lean_object* x_455; lean_object* x_456; lean_object* x_457; lean_object* x_458; lean_object* x_459; lean_object* x_460; lean_object* x_461; uint8_t x_462; uint8_t x_463; lean_object* x_464; +x_455 = lean_ctor_get(x_451, 0); lean_inc(x_455); -lean_dec(x_450); -x_456 = lean_ctor_get(x_2, 0); +x_456 = lean_ctor_get(x_451, 1); lean_inc(x_456); -x_457 = lean_ctor_get(x_2, 1); +lean_dec(x_451); +x_457 = lean_ctor_get(x_2, 0); lean_inc(x_457); -lean_dec(x_2); -x_458 = lean_ctor_get(x_454, 3); +x_458 = lean_ctor_get(x_2, 1); lean_inc(x_458); -lean_dec(x_454); -x_459 = lean_nat_add(x_458, x_456); -lean_dec(x_456); -lean_dec(x_458); -x_460 = lean_array_get_size(x_455); -x_461 = lean_nat_dec_lt(x_459, x_460); -lean_dec(x_460); -x_462 = l_List_isEmpty___rarg(x_457); -if (x_461 == 0) -{ -lean_object* x_471; lean_object* x_472; -lean_dec(x_459); +lean_dec(x_2); +x_459 = lean_ctor_get(x_455, 3); +lean_inc(x_459); lean_dec(x_455); -x_471 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; -x_472 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_471); -x_463 = x_472; -goto block_470; -} -else -{ -lean_object* x_473; -x_473 = lean_array_fget(x_455, x_459); +x_460 = lean_nat_add(x_459, x_457); +lean_dec(x_457); lean_dec(x_459); -lean_dec(x_455); -x_463 = x_473; -goto block_470; -} -block_470: -{ +x_461 = lean_array_get_size(x_456); +x_462 = lean_nat_dec_lt(x_460, x_461); +lean_dec(x_461); +x_463 = l_List_isEmpty___rarg(x_458); if (x_462 == 0) { -lean_dec(x_451); -lean_dec(x_386); -x_1 = x_463; -x_2 = x_457; -x_10 = x_385; +lean_object* x_472; lean_object* x_473; +lean_dec(x_460); +lean_dec(x_456); +x_472 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; +x_473 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_472); +x_464 = x_473; +goto block_471; +} +else +{ +lean_object* x_474; +x_474 = lean_array_fget(x_456, x_460); +lean_dec(x_460); +lean_dec(x_456); +x_464 = x_474; +goto block_471; +} +block_471: +{ +if (x_463 == 0) +{ +lean_dec(x_452); +lean_dec(x_387); +x_1 = x_464; +x_2 = x_458; +x_11 = x_386; goto _start; } else { -lean_dec(x_457); -if (lean_obj_tag(x_463) == 1) +lean_dec(x_458); +if (lean_obj_tag(x_464) == 1) { -lean_object* x_465; lean_object* x_466; lean_object* x_467; +lean_object* x_466; lean_object* x_467; lean_object* x_468; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2362,33 +2407,33 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_465 = lean_ctor_get(x_463, 0); -lean_inc(x_465); -lean_dec(x_463); -if (lean_is_scalar(x_451)) { - x_466 = lean_alloc_ctor(1, 1, 0); +x_466 = lean_ctor_get(x_464, 0); +lean_inc(x_466); +lean_dec(x_464); +if (lean_is_scalar(x_452)) { + x_467 = lean_alloc_ctor(1, 1, 0); } else { - x_466 = x_451; -} -lean_ctor_set(x_466, 0, x_465); -if (lean_is_scalar(x_386)) { - x_467 = lean_alloc_ctor(0, 2, 0); -} else { - x_467 = x_386; + x_467 = x_452; } lean_ctor_set(x_467, 0, x_466); -lean_ctor_set(x_467, 1, x_385); -return x_467; +if (lean_is_scalar(x_387)) { + x_468 = lean_alloc_ctor(0, 2, 0); +} else { + x_468 = x_387; +} +lean_ctor_set(x_468, 0, x_467); +lean_ctor_set(x_468, 1, x_386); +return x_468; } else { -lean_object* x_468; lean_object* x_469; -lean_dec(x_463); -lean_dec(x_451); -lean_dec(x_386); -x_468 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; -x_469 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_468, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_385); -return x_469; +lean_object* x_469; lean_object* x_470; +lean_dec(x_464); +lean_dec(x_452); +lean_dec(x_387); +x_469 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; +x_470 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_469, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_386); +return x_470; } } } @@ -2397,50 +2442,51 @@ return x_469; } case 5: { -lean_object* x_474; lean_object* x_475; lean_object* x_476; lean_object* x_477; lean_object* x_478; lean_object* x_479; uint8_t x_480; lean_object* x_481; -x_474 = lean_ctor_get(x_12, 1); -lean_inc(x_474); -lean_dec(x_12); -x_475 = lean_st_ref_get(x_9, x_474); -x_476 = lean_ctor_get(x_475, 0); -lean_inc(x_476); -x_477 = lean_ctor_get(x_475, 1); +lean_object* x_475; lean_object* x_476; lean_object* x_477; lean_object* x_478; lean_object* x_479; lean_object* x_480; uint8_t x_481; lean_object* x_482; +x_475 = lean_ctor_get(x_13, 1); +lean_inc(x_475); +lean_dec(x_13); +x_476 = lean_st_ref_get(x_10, x_475); +x_477 = lean_ctor_get(x_476, 0); lean_inc(x_477); -if (lean_is_exclusive(x_475)) { - lean_ctor_release(x_475, 0); - lean_ctor_release(x_475, 1); - x_478 = x_475; +x_478 = lean_ctor_get(x_476, 1); +lean_inc(x_478); +if (lean_is_exclusive(x_476)) { + lean_ctor_release(x_476, 0); + lean_ctor_release(x_476, 1); + x_479 = x_476; } else { - lean_dec_ref(x_475); - x_478 = lean_box(0); + lean_dec_ref(x_476); + x_479 = lean_box(0); } -x_479 = lean_ctor_get(x_476, 0); -lean_inc(x_479); -lean_dec(x_476); -x_480 = 0; -lean_inc(x_13); -x_481 = l_Lean_Expr_constructorApp_x3f(x_479, x_13, x_480); -if (lean_obj_tag(x_481) == 0) +x_480 = lean_ctor_get(x_477, 0); +lean_inc(x_480); +lean_dec(x_477); +x_481 = 0; +lean_inc(x_14); +x_482 = l_Lean_Expr_constructorApp_x3f(x_480, x_14, x_481); +if (lean_obj_tag(x_482) == 0) { -lean_object* x_482; -x_482 = l_Lean_Expr_getAppFn(x_13); -if (lean_obj_tag(x_482) == 4) +lean_object* x_483; +x_483 = l_Lean_Expr_getAppFn(x_14); +if (lean_obj_tag(x_483) == 4) { -lean_object* x_483; lean_object* x_484; lean_object* x_485; lean_object* x_486; -lean_dec(x_478); -x_483 = lean_ctor_get(x_482, 0); -lean_inc(x_483); -x_484 = lean_ctor_get(x_482, 1); +lean_object* x_484; lean_object* x_485; lean_object* x_486; lean_object* x_487; +lean_dec(x_479); +x_484 = lean_ctor_get(x_483, 0); lean_inc(x_484); -lean_dec(x_482); -x_485 = l_Lean_Compiler_LCNF_getDecl_x3f(x_483, x_6, x_7, x_8, x_9, x_477); -x_486 = lean_ctor_get(x_485, 0); -lean_inc(x_486); -if (lean_obj_tag(x_486) == 0) +x_485 = lean_ctor_get(x_483, 1); +lean_inc(x_485); +lean_dec(x_483); +x_486 = l_Lean_Compiler_LCNF_getDecl_x3f(x_484, x_7, x_8, x_9, x_10, x_478); +x_487 = lean_ctor_get(x_486, 0); +lean_inc(x_487); +if (lean_obj_tag(x_487) == 0) { -uint8_t x_487; -lean_dec(x_484); -lean_dec(x_13); +uint8_t x_488; +lean_dec(x_485); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2449,54 +2495,55 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_487 = !lean_is_exclusive(x_485); -if (x_487 == 0) +x_488 = !lean_is_exclusive(x_486); +if (x_488 == 0) { -lean_object* x_488; lean_object* x_489; -x_488 = lean_ctor_get(x_485, 0); -lean_dec(x_488); -x_489 = lean_box(0); -lean_ctor_set(x_485, 0, x_489); -return x_485; +lean_object* x_489; lean_object* x_490; +x_489 = lean_ctor_get(x_486, 0); +lean_dec(x_489); +x_490 = lean_box(0); +lean_ctor_set(x_486, 0, x_490); +return x_486; } else { -lean_object* x_490; lean_object* x_491; lean_object* x_492; -x_490 = lean_ctor_get(x_485, 1); -lean_inc(x_490); -lean_dec(x_485); -x_491 = lean_box(0); -x_492 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_492, 0, x_491); -lean_ctor_set(x_492, 1, x_490); -return x_492; +lean_object* x_491; lean_object* x_492; lean_object* x_493; +x_491 = lean_ctor_get(x_486, 1); +lean_inc(x_491); +lean_dec(x_486); +x_492 = lean_box(0); +x_493 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_493, 0, x_492); +lean_ctor_set(x_493, 1, x_491); +return x_493; } } else { -uint8_t x_493; -x_493 = !lean_is_exclusive(x_485); -if (x_493 == 0) +uint8_t x_494; +x_494 = !lean_is_exclusive(x_486); +if (x_494 == 0) { -lean_object* x_494; lean_object* x_495; lean_object* x_496; lean_object* x_497; lean_object* x_498; lean_object* x_499; uint8_t x_500; -x_494 = lean_ctor_get(x_485, 1); -x_495 = lean_ctor_get(x_485, 0); -lean_dec(x_495); +lean_object* x_495; lean_object* x_496; lean_object* x_497; lean_object* x_498; lean_object* x_499; lean_object* x_500; uint8_t x_501; +x_495 = lean_ctor_get(x_486, 1); x_496 = lean_ctor_get(x_486, 0); -lean_inc(x_496); -lean_dec(x_486); -x_497 = l_Lean_Compiler_LCNF_Decl_getArity(x_496); -x_498 = lean_unsigned_to_nat(0u); -x_499 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_498); -x_500 = lean_nat_dec_eq(x_497, x_499); +lean_dec(x_496); +x_497 = lean_ctor_get(x_487, 0); +lean_inc(x_497); +lean_dec(x_487); +x_498 = l_Lean_Compiler_LCNF_Decl_getArity(x_497); +x_499 = lean_unsigned_to_nat(0u); +x_500 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_499); +x_501 = lean_nat_dec_eq(x_498, x_500); +lean_dec(x_498); +if (x_501 == 0) +{ +lean_object* x_502; +lean_dec(x_500); lean_dec(x_497); -if (x_500 == 0) -{ -lean_object* x_501; -lean_dec(x_499); -lean_dec(x_496); -lean_dec(x_484); -lean_dec(x_13); +lean_dec(x_485); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2505,46 +2552,47 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_501 = lean_box(0); -lean_ctor_set(x_485, 0, x_501); -return x_485; +x_502 = lean_box(0); +lean_ctor_set(x_486, 0, x_502); +return x_486; } else { -lean_object* x_502; lean_object* x_503; lean_object* x_504; lean_object* x_505; lean_object* x_506; lean_object* x_507; lean_object* x_508; lean_object* x_509; -lean_free_object(x_485); -lean_inc(x_496); -x_502 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_496, x_484); -x_503 = lean_ctor_get(x_496, 3); -lean_inc(x_503); -lean_dec(x_496); -x_504 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_499); -x_505 = lean_mk_array(x_499, x_504); -x_506 = lean_unsigned_to_nat(1u); -x_507 = lean_nat_sub(x_499, x_506); -lean_dec(x_499); -x_508 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_505, x_507); +lean_object* x_503; lean_object* x_504; lean_object* x_505; lean_object* x_506; lean_object* x_507; lean_object* x_508; lean_object* x_509; lean_object* x_510; +lean_free_object(x_486); +lean_inc(x_497); +x_503 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_497, x_485); +x_504 = lean_ctor_get(x_497, 3); +lean_inc(x_504); +lean_dec(x_497); +x_505 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_500); +x_506 = lean_mk_array(x_500, x_505); +x_507 = lean_unsigned_to_nat(1u); +x_508 = lean_nat_sub(x_500, x_507); +lean_dec(x_500); +x_509 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_506, x_508); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_509 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_503, x_502, x_508, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_494); -lean_dec(x_503); -if (lean_obj_tag(x_509) == 0) +x_510 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_504, x_503, x_509, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_495); +lean_dec(x_504); +if (lean_obj_tag(x_510) == 0) { -lean_object* x_510; lean_object* x_511; lean_object* x_512; -x_510 = lean_ctor_get(x_509, 0); -lean_inc(x_510); -x_511 = lean_ctor_get(x_509, 1); +lean_object* x_511; lean_object* x_512; lean_object* x_513; +x_511 = lean_ctor_get(x_510, 0); lean_inc(x_511); -lean_dec(x_509); -x_512 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_510, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_511); -return x_512; +x_512 = lean_ctor_get(x_510, 1); +lean_inc(x_512); +lean_dec(x_510); +x_513 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_511, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_512); +return x_513; } else { -uint8_t x_513; +uint8_t x_514; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2553,48 +2601,49 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_513 = !lean_is_exclusive(x_509); -if (x_513 == 0) +x_514 = !lean_is_exclusive(x_510); +if (x_514 == 0) { -return x_509; +return x_510; } else { -lean_object* x_514; lean_object* x_515; lean_object* x_516; -x_514 = lean_ctor_get(x_509, 0); -x_515 = lean_ctor_get(x_509, 1); +lean_object* x_515; lean_object* x_516; lean_object* x_517; +x_515 = lean_ctor_get(x_510, 0); +x_516 = lean_ctor_get(x_510, 1); +lean_inc(x_516); lean_inc(x_515); -lean_inc(x_514); -lean_dec(x_509); -x_516 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_516, 0, x_514); -lean_ctor_set(x_516, 1, x_515); -return x_516; +lean_dec(x_510); +x_517 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_517, 0, x_515); +lean_ctor_set(x_517, 1, x_516); +return x_517; } } } } else { -lean_object* x_517; lean_object* x_518; lean_object* x_519; lean_object* x_520; lean_object* x_521; uint8_t x_522; -x_517 = lean_ctor_get(x_485, 1); -lean_inc(x_517); -lean_dec(x_485); -x_518 = lean_ctor_get(x_486, 0); +lean_object* x_518; lean_object* x_519; lean_object* x_520; lean_object* x_521; lean_object* x_522; uint8_t x_523; +x_518 = lean_ctor_get(x_486, 1); lean_inc(x_518); lean_dec(x_486); -x_519 = l_Lean_Compiler_LCNF_Decl_getArity(x_518); -x_520 = lean_unsigned_to_nat(0u); -x_521 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_520); -x_522 = lean_nat_dec_eq(x_519, x_521); -lean_dec(x_519); -if (x_522 == 0) +x_519 = lean_ctor_get(x_487, 0); +lean_inc(x_519); +lean_dec(x_487); +x_520 = l_Lean_Compiler_LCNF_Decl_getArity(x_519); +x_521 = lean_unsigned_to_nat(0u); +x_522 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_521); +x_523 = lean_nat_dec_eq(x_520, x_522); +lean_dec(x_520); +if (x_523 == 0) { -lean_object* x_523; lean_object* x_524; -lean_dec(x_521); -lean_dec(x_518); -lean_dec(x_484); -lean_dec(x_13); +lean_object* x_524; lean_object* x_525; +lean_dec(x_522); +lean_dec(x_519); +lean_dec(x_485); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2603,47 +2652,48 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_523 = lean_box(0); -x_524 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_524, 0, x_523); -lean_ctor_set(x_524, 1, x_517); -return x_524; +x_524 = lean_box(0); +x_525 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_525, 0, x_524); +lean_ctor_set(x_525, 1, x_518); +return x_525; } else { -lean_object* x_525; lean_object* x_526; lean_object* x_527; lean_object* x_528; lean_object* x_529; lean_object* x_530; lean_object* x_531; lean_object* x_532; -lean_inc(x_518); -x_525 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_518, x_484); -x_526 = lean_ctor_get(x_518, 3); -lean_inc(x_526); -lean_dec(x_518); -x_527 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_521); -x_528 = lean_mk_array(x_521, x_527); -x_529 = lean_unsigned_to_nat(1u); -x_530 = lean_nat_sub(x_521, x_529); -lean_dec(x_521); -x_531 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_528, x_530); +lean_object* x_526; lean_object* x_527; lean_object* x_528; lean_object* x_529; lean_object* x_530; lean_object* x_531; lean_object* x_532; lean_object* x_533; +lean_inc(x_519); +x_526 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_519, x_485); +x_527 = lean_ctor_get(x_519, 3); +lean_inc(x_527); +lean_dec(x_519); +x_528 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_522); +x_529 = lean_mk_array(x_522, x_528); +x_530 = lean_unsigned_to_nat(1u); +x_531 = lean_nat_sub(x_522, x_530); +lean_dec(x_522); +x_532 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_529, x_531); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_532 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_526, x_525, x_531, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_517); -lean_dec(x_526); -if (lean_obj_tag(x_532) == 0) +x_533 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_527, x_526, x_532, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_518); +lean_dec(x_527); +if (lean_obj_tag(x_533) == 0) { -lean_object* x_533; lean_object* x_534; lean_object* x_535; -x_533 = lean_ctor_get(x_532, 0); -lean_inc(x_533); -x_534 = lean_ctor_get(x_532, 1); +lean_object* x_534; lean_object* x_535; lean_object* x_536; +x_534 = lean_ctor_get(x_533, 0); lean_inc(x_534); -lean_dec(x_532); -x_535 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_533, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_534); -return x_535; +x_535 = lean_ctor_get(x_533, 1); +lean_inc(x_535); +lean_dec(x_533); +x_536 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_534, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_535); +return x_536; } else { -lean_object* x_536; lean_object* x_537; lean_object* x_538; lean_object* x_539; +lean_object* x_537; lean_object* x_538; lean_object* x_539; lean_object* x_540; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2652,26 +2702,26 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_536 = lean_ctor_get(x_532, 0); -lean_inc(x_536); -x_537 = lean_ctor_get(x_532, 1); +x_537 = lean_ctor_get(x_533, 0); lean_inc(x_537); -if (lean_is_exclusive(x_532)) { - lean_ctor_release(x_532, 0); - lean_ctor_release(x_532, 1); - x_538 = x_532; +x_538 = lean_ctor_get(x_533, 1); +lean_inc(x_538); +if (lean_is_exclusive(x_533)) { + lean_ctor_release(x_533, 0); + lean_ctor_release(x_533, 1); + x_539 = x_533; } else { - lean_dec_ref(x_532); - x_538 = lean_box(0); + lean_dec_ref(x_533); + x_539 = lean_box(0); } -if (lean_is_scalar(x_538)) { - x_539 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_539)) { + x_540 = lean_alloc_ctor(1, 2, 0); } else { - x_539 = x_538; + x_540 = x_539; } -lean_ctor_set(x_539, 0, x_536); -lean_ctor_set(x_539, 1, x_537); -return x_539; +lean_ctor_set(x_540, 0, x_537); +lean_ctor_set(x_540, 1, x_538); +return x_540; } } } @@ -2679,9 +2729,10 @@ return x_539; } else { -lean_object* x_540; lean_object* x_541; -lean_dec(x_482); -lean_dec(x_13); +lean_object* x_541; lean_object* x_542; +lean_dec(x_483); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2690,99 +2741,100 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_540 = lean_box(0); -if (lean_is_scalar(x_478)) { - x_541 = lean_alloc_ctor(0, 2, 0); +x_541 = lean_box(0); +if (lean_is_scalar(x_479)) { + x_542 = lean_alloc_ctor(0, 2, 0); } else { - x_541 = x_478; + x_542 = x_479; } -lean_ctor_set(x_541, 0, x_540); -lean_ctor_set(x_541, 1, x_477); -return x_541; +lean_ctor_set(x_542, 0, x_541); +lean_ctor_set(x_542, 1, x_478); +return x_542; } } else { -lean_object* x_542; lean_object* x_543; -lean_dec(x_13); -x_542 = lean_ctor_get(x_481, 0); -lean_inc(x_542); -if (lean_is_exclusive(x_481)) { - lean_ctor_release(x_481, 0); - x_543 = x_481; +lean_object* x_543; lean_object* x_544; +lean_dec(x_14); +x_543 = lean_ctor_get(x_482, 0); +lean_inc(x_543); +if (lean_is_exclusive(x_482)) { + lean_ctor_release(x_482, 0); + x_544 = x_482; } else { - lean_dec_ref(x_481); - x_543 = lean_box(0); + lean_dec_ref(x_482); + x_544 = lean_box(0); } if (lean_obj_tag(x_2) == 0) { -lean_object* x_544; lean_object* x_545; +lean_object* x_545; lean_object* x_546; +lean_dec(x_544); lean_dec(x_543); -lean_dec(x_542); -lean_dec(x_478); -x_544 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; -x_545 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_544, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_477); -return x_545; +lean_dec(x_479); +x_545 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; +x_546 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_545, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_478); +return x_546; } else { -lean_object* x_546; lean_object* x_547; lean_object* x_548; lean_object* x_549; lean_object* x_550; lean_object* x_551; lean_object* x_552; uint8_t x_553; uint8_t x_554; lean_object* x_555; -x_546 = lean_ctor_get(x_542, 0); -lean_inc(x_546); -x_547 = lean_ctor_get(x_542, 1); +lean_object* x_547; lean_object* x_548; lean_object* x_549; lean_object* x_550; lean_object* x_551; lean_object* x_552; lean_object* x_553; uint8_t x_554; uint8_t x_555; lean_object* x_556; +x_547 = lean_ctor_get(x_543, 0); lean_inc(x_547); -lean_dec(x_542); -x_548 = lean_ctor_get(x_2, 0); +x_548 = lean_ctor_get(x_543, 1); lean_inc(x_548); -x_549 = lean_ctor_get(x_2, 1); +lean_dec(x_543); +x_549 = lean_ctor_get(x_2, 0); lean_inc(x_549); -lean_dec(x_2); -x_550 = lean_ctor_get(x_546, 3); +x_550 = lean_ctor_get(x_2, 1); lean_inc(x_550); -lean_dec(x_546); -x_551 = lean_nat_add(x_550, x_548); -lean_dec(x_548); -lean_dec(x_550); -x_552 = lean_array_get_size(x_547); -x_553 = lean_nat_dec_lt(x_551, x_552); -lean_dec(x_552); -x_554 = l_List_isEmpty___rarg(x_549); -if (x_553 == 0) -{ -lean_object* x_563; lean_object* x_564; -lean_dec(x_551); +lean_dec(x_2); +x_551 = lean_ctor_get(x_547, 3); +lean_inc(x_551); lean_dec(x_547); -x_563 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; -x_564 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_563); -x_555 = x_564; -goto block_562; -} -else -{ -lean_object* x_565; -x_565 = lean_array_fget(x_547, x_551); +x_552 = lean_nat_add(x_551, x_549); +lean_dec(x_549); lean_dec(x_551); -lean_dec(x_547); -x_555 = x_565; -goto block_562; -} -block_562: -{ +x_553 = lean_array_get_size(x_548); +x_554 = lean_nat_dec_lt(x_552, x_553); +lean_dec(x_553); +x_555 = l_List_isEmpty___rarg(x_550); if (x_554 == 0) { -lean_dec(x_543); -lean_dec(x_478); -x_1 = x_555; -x_2 = x_549; -x_10 = x_477; +lean_object* x_564; lean_object* x_565; +lean_dec(x_552); +lean_dec(x_548); +x_564 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; +x_565 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_564); +x_556 = x_565; +goto block_563; +} +else +{ +lean_object* x_566; +x_566 = lean_array_fget(x_548, x_552); +lean_dec(x_552); +lean_dec(x_548); +x_556 = x_566; +goto block_563; +} +block_563: +{ +if (x_555 == 0) +{ +lean_dec(x_544); +lean_dec(x_479); +x_1 = x_556; +x_2 = x_550; +x_11 = x_478; goto _start; } else { -lean_dec(x_549); -if (lean_obj_tag(x_555) == 1) +lean_dec(x_550); +if (lean_obj_tag(x_556) == 1) { -lean_object* x_557; lean_object* x_558; lean_object* x_559; +lean_object* x_558; lean_object* x_559; lean_object* x_560; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2790,33 +2842,33 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_557 = lean_ctor_get(x_555, 0); -lean_inc(x_557); -lean_dec(x_555); -if (lean_is_scalar(x_543)) { - x_558 = lean_alloc_ctor(1, 1, 0); +x_558 = lean_ctor_get(x_556, 0); +lean_inc(x_558); +lean_dec(x_556); +if (lean_is_scalar(x_544)) { + x_559 = lean_alloc_ctor(1, 1, 0); } else { - x_558 = x_543; -} -lean_ctor_set(x_558, 0, x_557); -if (lean_is_scalar(x_478)) { - x_559 = lean_alloc_ctor(0, 2, 0); -} else { - x_559 = x_478; + x_559 = x_544; } lean_ctor_set(x_559, 0, x_558); -lean_ctor_set(x_559, 1, x_477); -return x_559; +if (lean_is_scalar(x_479)) { + x_560 = lean_alloc_ctor(0, 2, 0); +} else { + x_560 = x_479; +} +lean_ctor_set(x_560, 0, x_559); +lean_ctor_set(x_560, 1, x_478); +return x_560; } else { -lean_object* x_560; lean_object* x_561; -lean_dec(x_555); -lean_dec(x_543); -lean_dec(x_478); -x_560 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; -x_561 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_560, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_477); -return x_561; +lean_object* x_561; lean_object* x_562; +lean_dec(x_556); +lean_dec(x_544); +lean_dec(x_479); +x_561 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; +x_562 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_561, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_478); +return x_562; } } } @@ -2825,50 +2877,51 @@ return x_561; } case 6: { -lean_object* x_566; lean_object* x_567; lean_object* x_568; lean_object* x_569; lean_object* x_570; lean_object* x_571; uint8_t x_572; lean_object* x_573; -x_566 = lean_ctor_get(x_12, 1); -lean_inc(x_566); -lean_dec(x_12); -x_567 = lean_st_ref_get(x_9, x_566); -x_568 = lean_ctor_get(x_567, 0); -lean_inc(x_568); -x_569 = lean_ctor_get(x_567, 1); +lean_object* x_567; lean_object* x_568; lean_object* x_569; lean_object* x_570; lean_object* x_571; lean_object* x_572; uint8_t x_573; lean_object* x_574; +x_567 = lean_ctor_get(x_13, 1); +lean_inc(x_567); +lean_dec(x_13); +x_568 = lean_st_ref_get(x_10, x_567); +x_569 = lean_ctor_get(x_568, 0); lean_inc(x_569); -if (lean_is_exclusive(x_567)) { - lean_ctor_release(x_567, 0); - lean_ctor_release(x_567, 1); - x_570 = x_567; +x_570 = lean_ctor_get(x_568, 1); +lean_inc(x_570); +if (lean_is_exclusive(x_568)) { + lean_ctor_release(x_568, 0); + lean_ctor_release(x_568, 1); + x_571 = x_568; } else { - lean_dec_ref(x_567); - x_570 = lean_box(0); + lean_dec_ref(x_568); + x_571 = lean_box(0); } -x_571 = lean_ctor_get(x_568, 0); -lean_inc(x_571); -lean_dec(x_568); -x_572 = 0; -lean_inc(x_13); -x_573 = l_Lean_Expr_constructorApp_x3f(x_571, x_13, x_572); -if (lean_obj_tag(x_573) == 0) +x_572 = lean_ctor_get(x_569, 0); +lean_inc(x_572); +lean_dec(x_569); +x_573 = 0; +lean_inc(x_14); +x_574 = l_Lean_Expr_constructorApp_x3f(x_572, x_14, x_573); +if (lean_obj_tag(x_574) == 0) { -lean_object* x_574; -x_574 = l_Lean_Expr_getAppFn(x_13); -if (lean_obj_tag(x_574) == 4) +lean_object* x_575; +x_575 = l_Lean_Expr_getAppFn(x_14); +if (lean_obj_tag(x_575) == 4) { -lean_object* x_575; lean_object* x_576; lean_object* x_577; lean_object* x_578; -lean_dec(x_570); -x_575 = lean_ctor_get(x_574, 0); -lean_inc(x_575); -x_576 = lean_ctor_get(x_574, 1); +lean_object* x_576; lean_object* x_577; lean_object* x_578; lean_object* x_579; +lean_dec(x_571); +x_576 = lean_ctor_get(x_575, 0); lean_inc(x_576); -lean_dec(x_574); -x_577 = l_Lean_Compiler_LCNF_getDecl_x3f(x_575, x_6, x_7, x_8, x_9, x_569); -x_578 = lean_ctor_get(x_577, 0); -lean_inc(x_578); -if (lean_obj_tag(x_578) == 0) +x_577 = lean_ctor_get(x_575, 1); +lean_inc(x_577); +lean_dec(x_575); +x_578 = l_Lean_Compiler_LCNF_getDecl_x3f(x_576, x_7, x_8, x_9, x_10, x_570); +x_579 = lean_ctor_get(x_578, 0); +lean_inc(x_579); +if (lean_obj_tag(x_579) == 0) { -uint8_t x_579; -lean_dec(x_576); -lean_dec(x_13); +uint8_t x_580; +lean_dec(x_577); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2877,54 +2930,55 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_579 = !lean_is_exclusive(x_577); -if (x_579 == 0) +x_580 = !lean_is_exclusive(x_578); +if (x_580 == 0) { -lean_object* x_580; lean_object* x_581; -x_580 = lean_ctor_get(x_577, 0); -lean_dec(x_580); -x_581 = lean_box(0); -lean_ctor_set(x_577, 0, x_581); -return x_577; +lean_object* x_581; lean_object* x_582; +x_581 = lean_ctor_get(x_578, 0); +lean_dec(x_581); +x_582 = lean_box(0); +lean_ctor_set(x_578, 0, x_582); +return x_578; } else { -lean_object* x_582; lean_object* x_583; lean_object* x_584; -x_582 = lean_ctor_get(x_577, 1); -lean_inc(x_582); -lean_dec(x_577); -x_583 = lean_box(0); -x_584 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_584, 0, x_583); -lean_ctor_set(x_584, 1, x_582); -return x_584; +lean_object* x_583; lean_object* x_584; lean_object* x_585; +x_583 = lean_ctor_get(x_578, 1); +lean_inc(x_583); +lean_dec(x_578); +x_584 = lean_box(0); +x_585 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_585, 0, x_584); +lean_ctor_set(x_585, 1, x_583); +return x_585; } } else { -uint8_t x_585; -x_585 = !lean_is_exclusive(x_577); -if (x_585 == 0) +uint8_t x_586; +x_586 = !lean_is_exclusive(x_578); +if (x_586 == 0) { -lean_object* x_586; lean_object* x_587; lean_object* x_588; lean_object* x_589; lean_object* x_590; lean_object* x_591; uint8_t x_592; -x_586 = lean_ctor_get(x_577, 1); -x_587 = lean_ctor_get(x_577, 0); -lean_dec(x_587); +lean_object* x_587; lean_object* x_588; lean_object* x_589; lean_object* x_590; lean_object* x_591; lean_object* x_592; uint8_t x_593; +x_587 = lean_ctor_get(x_578, 1); x_588 = lean_ctor_get(x_578, 0); -lean_inc(x_588); -lean_dec(x_578); -x_589 = l_Lean_Compiler_LCNF_Decl_getArity(x_588); -x_590 = lean_unsigned_to_nat(0u); -x_591 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_590); -x_592 = lean_nat_dec_eq(x_589, x_591); +lean_dec(x_588); +x_589 = lean_ctor_get(x_579, 0); +lean_inc(x_589); +lean_dec(x_579); +x_590 = l_Lean_Compiler_LCNF_Decl_getArity(x_589); +x_591 = lean_unsigned_to_nat(0u); +x_592 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_591); +x_593 = lean_nat_dec_eq(x_590, x_592); +lean_dec(x_590); +if (x_593 == 0) +{ +lean_object* x_594; +lean_dec(x_592); lean_dec(x_589); -if (x_592 == 0) -{ -lean_object* x_593; -lean_dec(x_591); -lean_dec(x_588); -lean_dec(x_576); -lean_dec(x_13); +lean_dec(x_577); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2933,46 +2987,47 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_593 = lean_box(0); -lean_ctor_set(x_577, 0, x_593); -return x_577; +x_594 = lean_box(0); +lean_ctor_set(x_578, 0, x_594); +return x_578; } else { -lean_object* x_594; lean_object* x_595; lean_object* x_596; lean_object* x_597; lean_object* x_598; lean_object* x_599; lean_object* x_600; lean_object* x_601; -lean_free_object(x_577); -lean_inc(x_588); -x_594 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_588, x_576); -x_595 = lean_ctor_get(x_588, 3); -lean_inc(x_595); -lean_dec(x_588); -x_596 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_591); -x_597 = lean_mk_array(x_591, x_596); -x_598 = lean_unsigned_to_nat(1u); -x_599 = lean_nat_sub(x_591, x_598); -lean_dec(x_591); -x_600 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_597, x_599); +lean_object* x_595; lean_object* x_596; lean_object* x_597; lean_object* x_598; lean_object* x_599; lean_object* x_600; lean_object* x_601; lean_object* x_602; +lean_free_object(x_578); +lean_inc(x_589); +x_595 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_589, x_577); +x_596 = lean_ctor_get(x_589, 3); +lean_inc(x_596); +lean_dec(x_589); +x_597 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_592); +x_598 = lean_mk_array(x_592, x_597); +x_599 = lean_unsigned_to_nat(1u); +x_600 = lean_nat_sub(x_592, x_599); +lean_dec(x_592); +x_601 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_598, x_600); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_601 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_595, x_594, x_600, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_586); -lean_dec(x_595); -if (lean_obj_tag(x_601) == 0) +x_602 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_596, x_595, x_601, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_587); +lean_dec(x_596); +if (lean_obj_tag(x_602) == 0) { -lean_object* x_602; lean_object* x_603; lean_object* x_604; -x_602 = lean_ctor_get(x_601, 0); -lean_inc(x_602); -x_603 = lean_ctor_get(x_601, 1); +lean_object* x_603; lean_object* x_604; lean_object* x_605; +x_603 = lean_ctor_get(x_602, 0); lean_inc(x_603); -lean_dec(x_601); -x_604 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_602, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_603); -return x_604; +x_604 = lean_ctor_get(x_602, 1); +lean_inc(x_604); +lean_dec(x_602); +x_605 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_603, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_604); +return x_605; } else { -uint8_t x_605; +uint8_t x_606; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -2981,48 +3036,49 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_605 = !lean_is_exclusive(x_601); -if (x_605 == 0) +x_606 = !lean_is_exclusive(x_602); +if (x_606 == 0) { -return x_601; +return x_602; } else { -lean_object* x_606; lean_object* x_607; lean_object* x_608; -x_606 = lean_ctor_get(x_601, 0); -x_607 = lean_ctor_get(x_601, 1); +lean_object* x_607; lean_object* x_608; lean_object* x_609; +x_607 = lean_ctor_get(x_602, 0); +x_608 = lean_ctor_get(x_602, 1); +lean_inc(x_608); lean_inc(x_607); -lean_inc(x_606); -lean_dec(x_601); -x_608 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_608, 0, x_606); -lean_ctor_set(x_608, 1, x_607); -return x_608; +lean_dec(x_602); +x_609 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_609, 0, x_607); +lean_ctor_set(x_609, 1, x_608); +return x_609; } } } } else { -lean_object* x_609; lean_object* x_610; lean_object* x_611; lean_object* x_612; lean_object* x_613; uint8_t x_614; -x_609 = lean_ctor_get(x_577, 1); -lean_inc(x_609); -lean_dec(x_577); -x_610 = lean_ctor_get(x_578, 0); +lean_object* x_610; lean_object* x_611; lean_object* x_612; lean_object* x_613; lean_object* x_614; uint8_t x_615; +x_610 = lean_ctor_get(x_578, 1); lean_inc(x_610); lean_dec(x_578); -x_611 = l_Lean_Compiler_LCNF_Decl_getArity(x_610); -x_612 = lean_unsigned_to_nat(0u); -x_613 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_612); -x_614 = lean_nat_dec_eq(x_611, x_613); -lean_dec(x_611); -if (x_614 == 0) +x_611 = lean_ctor_get(x_579, 0); +lean_inc(x_611); +lean_dec(x_579); +x_612 = l_Lean_Compiler_LCNF_Decl_getArity(x_611); +x_613 = lean_unsigned_to_nat(0u); +x_614 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_613); +x_615 = lean_nat_dec_eq(x_612, x_614); +lean_dec(x_612); +if (x_615 == 0) { -lean_object* x_615; lean_object* x_616; -lean_dec(x_613); -lean_dec(x_610); -lean_dec(x_576); -lean_dec(x_13); +lean_object* x_616; lean_object* x_617; +lean_dec(x_614); +lean_dec(x_611); +lean_dec(x_577); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3031,47 +3087,48 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_615 = lean_box(0); -x_616 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_616, 0, x_615); -lean_ctor_set(x_616, 1, x_609); -return x_616; +x_616 = lean_box(0); +x_617 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_617, 0, x_616); +lean_ctor_set(x_617, 1, x_610); +return x_617; } else { -lean_object* x_617; lean_object* x_618; lean_object* x_619; lean_object* x_620; lean_object* x_621; lean_object* x_622; lean_object* x_623; lean_object* x_624; -lean_inc(x_610); -x_617 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_610, x_576); -x_618 = lean_ctor_get(x_610, 3); -lean_inc(x_618); -lean_dec(x_610); -x_619 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_613); -x_620 = lean_mk_array(x_613, x_619); -x_621 = lean_unsigned_to_nat(1u); -x_622 = lean_nat_sub(x_613, x_621); -lean_dec(x_613); -x_623 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_620, x_622); +lean_object* x_618; lean_object* x_619; lean_object* x_620; lean_object* x_621; lean_object* x_622; lean_object* x_623; lean_object* x_624; lean_object* x_625; +lean_inc(x_611); +x_618 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_611, x_577); +x_619 = lean_ctor_get(x_611, 3); +lean_inc(x_619); +lean_dec(x_611); +x_620 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_614); +x_621 = lean_mk_array(x_614, x_620); +x_622 = lean_unsigned_to_nat(1u); +x_623 = lean_nat_sub(x_614, x_622); +lean_dec(x_614); +x_624 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_621, x_623); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_624 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_618, x_617, x_623, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_609); -lean_dec(x_618); -if (lean_obj_tag(x_624) == 0) +x_625 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_619, x_618, x_624, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_610); +lean_dec(x_619); +if (lean_obj_tag(x_625) == 0) { -lean_object* x_625; lean_object* x_626; lean_object* x_627; -x_625 = lean_ctor_get(x_624, 0); -lean_inc(x_625); -x_626 = lean_ctor_get(x_624, 1); +lean_object* x_626; lean_object* x_627; lean_object* x_628; +x_626 = lean_ctor_get(x_625, 0); lean_inc(x_626); -lean_dec(x_624); -x_627 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_625, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_626); -return x_627; +x_627 = lean_ctor_get(x_625, 1); +lean_inc(x_627); +lean_dec(x_625); +x_628 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_626, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_627); +return x_628; } else { -lean_object* x_628; lean_object* x_629; lean_object* x_630; lean_object* x_631; +lean_object* x_629; lean_object* x_630; lean_object* x_631; lean_object* x_632; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3080,26 +3137,26 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_628 = lean_ctor_get(x_624, 0); -lean_inc(x_628); -x_629 = lean_ctor_get(x_624, 1); +x_629 = lean_ctor_get(x_625, 0); lean_inc(x_629); -if (lean_is_exclusive(x_624)) { - lean_ctor_release(x_624, 0); - lean_ctor_release(x_624, 1); - x_630 = x_624; +x_630 = lean_ctor_get(x_625, 1); +lean_inc(x_630); +if (lean_is_exclusive(x_625)) { + lean_ctor_release(x_625, 0); + lean_ctor_release(x_625, 1); + x_631 = x_625; } else { - lean_dec_ref(x_624); - x_630 = lean_box(0); + lean_dec_ref(x_625); + x_631 = lean_box(0); } -if (lean_is_scalar(x_630)) { - x_631 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_631)) { + x_632 = lean_alloc_ctor(1, 2, 0); } else { - x_631 = x_630; + x_632 = x_631; } -lean_ctor_set(x_631, 0, x_628); -lean_ctor_set(x_631, 1, x_629); -return x_631; +lean_ctor_set(x_632, 0, x_629); +lean_ctor_set(x_632, 1, x_630); +return x_632; } } } @@ -3107,9 +3164,10 @@ return x_631; } else { -lean_object* x_632; lean_object* x_633; -lean_dec(x_574); -lean_dec(x_13); +lean_object* x_633; lean_object* x_634; +lean_dec(x_575); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3118,99 +3176,100 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_632 = lean_box(0); -if (lean_is_scalar(x_570)) { - x_633 = lean_alloc_ctor(0, 2, 0); +x_633 = lean_box(0); +if (lean_is_scalar(x_571)) { + x_634 = lean_alloc_ctor(0, 2, 0); } else { - x_633 = x_570; + x_634 = x_571; } -lean_ctor_set(x_633, 0, x_632); -lean_ctor_set(x_633, 1, x_569); -return x_633; +lean_ctor_set(x_634, 0, x_633); +lean_ctor_set(x_634, 1, x_570); +return x_634; } } else { -lean_object* x_634; lean_object* x_635; -lean_dec(x_13); -x_634 = lean_ctor_get(x_573, 0); -lean_inc(x_634); -if (lean_is_exclusive(x_573)) { - lean_ctor_release(x_573, 0); - x_635 = x_573; +lean_object* x_635; lean_object* x_636; +lean_dec(x_14); +x_635 = lean_ctor_get(x_574, 0); +lean_inc(x_635); +if (lean_is_exclusive(x_574)) { + lean_ctor_release(x_574, 0); + x_636 = x_574; } else { - lean_dec_ref(x_573); - x_635 = lean_box(0); + lean_dec_ref(x_574); + x_636 = lean_box(0); } if (lean_obj_tag(x_2) == 0) { -lean_object* x_636; lean_object* x_637; +lean_object* x_637; lean_object* x_638; +lean_dec(x_636); lean_dec(x_635); -lean_dec(x_634); -lean_dec(x_570); -x_636 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; -x_637 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_636, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_569); -return x_637; +lean_dec(x_571); +x_637 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; +x_638 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_637, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_570); +return x_638; } else { -lean_object* x_638; lean_object* x_639; lean_object* x_640; lean_object* x_641; lean_object* x_642; lean_object* x_643; lean_object* x_644; uint8_t x_645; uint8_t x_646; lean_object* x_647; -x_638 = lean_ctor_get(x_634, 0); -lean_inc(x_638); -x_639 = lean_ctor_get(x_634, 1); +lean_object* x_639; lean_object* x_640; lean_object* x_641; lean_object* x_642; lean_object* x_643; lean_object* x_644; lean_object* x_645; uint8_t x_646; uint8_t x_647; lean_object* x_648; +x_639 = lean_ctor_get(x_635, 0); lean_inc(x_639); -lean_dec(x_634); -x_640 = lean_ctor_get(x_2, 0); +x_640 = lean_ctor_get(x_635, 1); lean_inc(x_640); -x_641 = lean_ctor_get(x_2, 1); +lean_dec(x_635); +x_641 = lean_ctor_get(x_2, 0); lean_inc(x_641); -lean_dec(x_2); -x_642 = lean_ctor_get(x_638, 3); +x_642 = lean_ctor_get(x_2, 1); lean_inc(x_642); -lean_dec(x_638); -x_643 = lean_nat_add(x_642, x_640); -lean_dec(x_640); -lean_dec(x_642); -x_644 = lean_array_get_size(x_639); -x_645 = lean_nat_dec_lt(x_643, x_644); -lean_dec(x_644); -x_646 = l_List_isEmpty___rarg(x_641); -if (x_645 == 0) -{ -lean_object* x_655; lean_object* x_656; -lean_dec(x_643); +lean_dec(x_2); +x_643 = lean_ctor_get(x_639, 3); +lean_inc(x_643); lean_dec(x_639); -x_655 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; -x_656 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_655); -x_647 = x_656; -goto block_654; -} -else -{ -lean_object* x_657; -x_657 = lean_array_fget(x_639, x_643); +x_644 = lean_nat_add(x_643, x_641); +lean_dec(x_641); lean_dec(x_643); -lean_dec(x_639); -x_647 = x_657; -goto block_654; -} -block_654: -{ +x_645 = lean_array_get_size(x_640); +x_646 = lean_nat_dec_lt(x_644, x_645); +lean_dec(x_645); +x_647 = l_List_isEmpty___rarg(x_642); if (x_646 == 0) { -lean_dec(x_635); -lean_dec(x_570); -x_1 = x_647; -x_2 = x_641; -x_10 = x_569; +lean_object* x_656; lean_object* x_657; +lean_dec(x_644); +lean_dec(x_640); +x_656 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; +x_657 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_656); +x_648 = x_657; +goto block_655; +} +else +{ +lean_object* x_658; +x_658 = lean_array_fget(x_640, x_644); +lean_dec(x_644); +lean_dec(x_640); +x_648 = x_658; +goto block_655; +} +block_655: +{ +if (x_647 == 0) +{ +lean_dec(x_636); +lean_dec(x_571); +x_1 = x_648; +x_2 = x_642; +x_11 = x_570; goto _start; } else { -lean_dec(x_641); -if (lean_obj_tag(x_647) == 1) +lean_dec(x_642); +if (lean_obj_tag(x_648) == 1) { -lean_object* x_649; lean_object* x_650; lean_object* x_651; +lean_object* x_650; lean_object* x_651; lean_object* x_652; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3218,33 +3277,33 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_649 = lean_ctor_get(x_647, 0); -lean_inc(x_649); -lean_dec(x_647); -if (lean_is_scalar(x_635)) { - x_650 = lean_alloc_ctor(1, 1, 0); +x_650 = lean_ctor_get(x_648, 0); +lean_inc(x_650); +lean_dec(x_648); +if (lean_is_scalar(x_636)) { + x_651 = lean_alloc_ctor(1, 1, 0); } else { - x_650 = x_635; -} -lean_ctor_set(x_650, 0, x_649); -if (lean_is_scalar(x_570)) { - x_651 = lean_alloc_ctor(0, 2, 0); -} else { - x_651 = x_570; + x_651 = x_636; } lean_ctor_set(x_651, 0, x_650); -lean_ctor_set(x_651, 1, x_569); -return x_651; +if (lean_is_scalar(x_571)) { + x_652 = lean_alloc_ctor(0, 2, 0); +} else { + x_652 = x_571; +} +lean_ctor_set(x_652, 0, x_651); +lean_ctor_set(x_652, 1, x_570); +return x_652; } else { -lean_object* x_652; lean_object* x_653; -lean_dec(x_647); -lean_dec(x_635); -lean_dec(x_570); -x_652 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; -x_653 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_652, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_569); -return x_653; +lean_object* x_653; lean_object* x_654; +lean_dec(x_648); +lean_dec(x_636); +lean_dec(x_571); +x_653 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; +x_654 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_653, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_570); +return x_654; } } } @@ -3253,50 +3312,51 @@ return x_653; } case 7: { -lean_object* x_658; lean_object* x_659; lean_object* x_660; lean_object* x_661; lean_object* x_662; lean_object* x_663; uint8_t x_664; lean_object* x_665; -x_658 = lean_ctor_get(x_12, 1); -lean_inc(x_658); -lean_dec(x_12); -x_659 = lean_st_ref_get(x_9, x_658); -x_660 = lean_ctor_get(x_659, 0); -lean_inc(x_660); -x_661 = lean_ctor_get(x_659, 1); +lean_object* x_659; lean_object* x_660; lean_object* x_661; lean_object* x_662; lean_object* x_663; lean_object* x_664; uint8_t x_665; lean_object* x_666; +x_659 = lean_ctor_get(x_13, 1); +lean_inc(x_659); +lean_dec(x_13); +x_660 = lean_st_ref_get(x_10, x_659); +x_661 = lean_ctor_get(x_660, 0); lean_inc(x_661); -if (lean_is_exclusive(x_659)) { - lean_ctor_release(x_659, 0); - lean_ctor_release(x_659, 1); - x_662 = x_659; +x_662 = lean_ctor_get(x_660, 1); +lean_inc(x_662); +if (lean_is_exclusive(x_660)) { + lean_ctor_release(x_660, 0); + lean_ctor_release(x_660, 1); + x_663 = x_660; } else { - lean_dec_ref(x_659); - x_662 = lean_box(0); + lean_dec_ref(x_660); + x_663 = lean_box(0); } -x_663 = lean_ctor_get(x_660, 0); -lean_inc(x_663); -lean_dec(x_660); -x_664 = 0; -lean_inc(x_13); -x_665 = l_Lean_Expr_constructorApp_x3f(x_663, x_13, x_664); -if (lean_obj_tag(x_665) == 0) +x_664 = lean_ctor_get(x_661, 0); +lean_inc(x_664); +lean_dec(x_661); +x_665 = 0; +lean_inc(x_14); +x_666 = l_Lean_Expr_constructorApp_x3f(x_664, x_14, x_665); +if (lean_obj_tag(x_666) == 0) { -lean_object* x_666; -x_666 = l_Lean_Expr_getAppFn(x_13); -if (lean_obj_tag(x_666) == 4) +lean_object* x_667; +x_667 = l_Lean_Expr_getAppFn(x_14); +if (lean_obj_tag(x_667) == 4) { -lean_object* x_667; lean_object* x_668; lean_object* x_669; lean_object* x_670; -lean_dec(x_662); -x_667 = lean_ctor_get(x_666, 0); -lean_inc(x_667); -x_668 = lean_ctor_get(x_666, 1); +lean_object* x_668; lean_object* x_669; lean_object* x_670; lean_object* x_671; +lean_dec(x_663); +x_668 = lean_ctor_get(x_667, 0); lean_inc(x_668); -lean_dec(x_666); -x_669 = l_Lean_Compiler_LCNF_getDecl_x3f(x_667, x_6, x_7, x_8, x_9, x_661); -x_670 = lean_ctor_get(x_669, 0); -lean_inc(x_670); -if (lean_obj_tag(x_670) == 0) +x_669 = lean_ctor_get(x_667, 1); +lean_inc(x_669); +lean_dec(x_667); +x_670 = l_Lean_Compiler_LCNF_getDecl_x3f(x_668, x_7, x_8, x_9, x_10, x_662); +x_671 = lean_ctor_get(x_670, 0); +lean_inc(x_671); +if (lean_obj_tag(x_671) == 0) { -uint8_t x_671; -lean_dec(x_668); -lean_dec(x_13); +uint8_t x_672; +lean_dec(x_669); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3305,54 +3365,55 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_671 = !lean_is_exclusive(x_669); -if (x_671 == 0) +x_672 = !lean_is_exclusive(x_670); +if (x_672 == 0) { -lean_object* x_672; lean_object* x_673; -x_672 = lean_ctor_get(x_669, 0); -lean_dec(x_672); -x_673 = lean_box(0); -lean_ctor_set(x_669, 0, x_673); -return x_669; +lean_object* x_673; lean_object* x_674; +x_673 = lean_ctor_get(x_670, 0); +lean_dec(x_673); +x_674 = lean_box(0); +lean_ctor_set(x_670, 0, x_674); +return x_670; } else { -lean_object* x_674; lean_object* x_675; lean_object* x_676; -x_674 = lean_ctor_get(x_669, 1); -lean_inc(x_674); -lean_dec(x_669); -x_675 = lean_box(0); -x_676 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_676, 0, x_675); -lean_ctor_set(x_676, 1, x_674); -return x_676; +lean_object* x_675; lean_object* x_676; lean_object* x_677; +x_675 = lean_ctor_get(x_670, 1); +lean_inc(x_675); +lean_dec(x_670); +x_676 = lean_box(0); +x_677 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_677, 0, x_676); +lean_ctor_set(x_677, 1, x_675); +return x_677; } } else { -uint8_t x_677; -x_677 = !lean_is_exclusive(x_669); -if (x_677 == 0) +uint8_t x_678; +x_678 = !lean_is_exclusive(x_670); +if (x_678 == 0) { -lean_object* x_678; lean_object* x_679; lean_object* x_680; lean_object* x_681; lean_object* x_682; lean_object* x_683; uint8_t x_684; -x_678 = lean_ctor_get(x_669, 1); -x_679 = lean_ctor_get(x_669, 0); -lean_dec(x_679); +lean_object* x_679; lean_object* x_680; lean_object* x_681; lean_object* x_682; lean_object* x_683; lean_object* x_684; uint8_t x_685; +x_679 = lean_ctor_get(x_670, 1); x_680 = lean_ctor_get(x_670, 0); -lean_inc(x_680); -lean_dec(x_670); -x_681 = l_Lean_Compiler_LCNF_Decl_getArity(x_680); -x_682 = lean_unsigned_to_nat(0u); -x_683 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_682); -x_684 = lean_nat_dec_eq(x_681, x_683); +lean_dec(x_680); +x_681 = lean_ctor_get(x_671, 0); +lean_inc(x_681); +lean_dec(x_671); +x_682 = l_Lean_Compiler_LCNF_Decl_getArity(x_681); +x_683 = lean_unsigned_to_nat(0u); +x_684 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_683); +x_685 = lean_nat_dec_eq(x_682, x_684); +lean_dec(x_682); +if (x_685 == 0) +{ +lean_object* x_686; +lean_dec(x_684); lean_dec(x_681); -if (x_684 == 0) -{ -lean_object* x_685; -lean_dec(x_683); -lean_dec(x_680); -lean_dec(x_668); -lean_dec(x_13); +lean_dec(x_669); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3361,46 +3422,47 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_685 = lean_box(0); -lean_ctor_set(x_669, 0, x_685); -return x_669; +x_686 = lean_box(0); +lean_ctor_set(x_670, 0, x_686); +return x_670; } else { -lean_object* x_686; lean_object* x_687; lean_object* x_688; lean_object* x_689; lean_object* x_690; lean_object* x_691; lean_object* x_692; lean_object* x_693; -lean_free_object(x_669); -lean_inc(x_680); -x_686 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_680, x_668); -x_687 = lean_ctor_get(x_680, 3); -lean_inc(x_687); -lean_dec(x_680); -x_688 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_683); -x_689 = lean_mk_array(x_683, x_688); -x_690 = lean_unsigned_to_nat(1u); -x_691 = lean_nat_sub(x_683, x_690); -lean_dec(x_683); -x_692 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_689, x_691); +lean_object* x_687; lean_object* x_688; lean_object* x_689; lean_object* x_690; lean_object* x_691; lean_object* x_692; lean_object* x_693; lean_object* x_694; +lean_free_object(x_670); +lean_inc(x_681); +x_687 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_681, x_669); +x_688 = lean_ctor_get(x_681, 3); +lean_inc(x_688); +lean_dec(x_681); +x_689 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_684); +x_690 = lean_mk_array(x_684, x_689); +x_691 = lean_unsigned_to_nat(1u); +x_692 = lean_nat_sub(x_684, x_691); +lean_dec(x_684); +x_693 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_690, x_692); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_693 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_687, x_686, x_692, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_678); -lean_dec(x_687); -if (lean_obj_tag(x_693) == 0) +x_694 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_688, x_687, x_693, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_679); +lean_dec(x_688); +if (lean_obj_tag(x_694) == 0) { -lean_object* x_694; lean_object* x_695; lean_object* x_696; -x_694 = lean_ctor_get(x_693, 0); -lean_inc(x_694); -x_695 = lean_ctor_get(x_693, 1); +lean_object* x_695; lean_object* x_696; lean_object* x_697; +x_695 = lean_ctor_get(x_694, 0); lean_inc(x_695); -lean_dec(x_693); -x_696 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_694, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_695); -return x_696; +x_696 = lean_ctor_get(x_694, 1); +lean_inc(x_696); +lean_dec(x_694); +x_697 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_695, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_696); +return x_697; } else { -uint8_t x_697; +uint8_t x_698; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3409,48 +3471,49 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_697 = !lean_is_exclusive(x_693); -if (x_697 == 0) +x_698 = !lean_is_exclusive(x_694); +if (x_698 == 0) { -return x_693; +return x_694; } else { -lean_object* x_698; lean_object* x_699; lean_object* x_700; -x_698 = lean_ctor_get(x_693, 0); -x_699 = lean_ctor_get(x_693, 1); +lean_object* x_699; lean_object* x_700; lean_object* x_701; +x_699 = lean_ctor_get(x_694, 0); +x_700 = lean_ctor_get(x_694, 1); +lean_inc(x_700); lean_inc(x_699); -lean_inc(x_698); -lean_dec(x_693); -x_700 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_700, 0, x_698); -lean_ctor_set(x_700, 1, x_699); -return x_700; +lean_dec(x_694); +x_701 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_701, 0, x_699); +lean_ctor_set(x_701, 1, x_700); +return x_701; } } } } else { -lean_object* x_701; lean_object* x_702; lean_object* x_703; lean_object* x_704; lean_object* x_705; uint8_t x_706; -x_701 = lean_ctor_get(x_669, 1); -lean_inc(x_701); -lean_dec(x_669); -x_702 = lean_ctor_get(x_670, 0); +lean_object* x_702; lean_object* x_703; lean_object* x_704; lean_object* x_705; lean_object* x_706; uint8_t x_707; +x_702 = lean_ctor_get(x_670, 1); lean_inc(x_702); lean_dec(x_670); -x_703 = l_Lean_Compiler_LCNF_Decl_getArity(x_702); -x_704 = lean_unsigned_to_nat(0u); -x_705 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_704); -x_706 = lean_nat_dec_eq(x_703, x_705); -lean_dec(x_703); -if (x_706 == 0) +x_703 = lean_ctor_get(x_671, 0); +lean_inc(x_703); +lean_dec(x_671); +x_704 = l_Lean_Compiler_LCNF_Decl_getArity(x_703); +x_705 = lean_unsigned_to_nat(0u); +x_706 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_705); +x_707 = lean_nat_dec_eq(x_704, x_706); +lean_dec(x_704); +if (x_707 == 0) { -lean_object* x_707; lean_object* x_708; -lean_dec(x_705); -lean_dec(x_702); -lean_dec(x_668); -lean_dec(x_13); +lean_object* x_708; lean_object* x_709; +lean_dec(x_706); +lean_dec(x_703); +lean_dec(x_669); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3459,47 +3522,48 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_707 = lean_box(0); -x_708 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_708, 0, x_707); -lean_ctor_set(x_708, 1, x_701); -return x_708; +x_708 = lean_box(0); +x_709 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_709, 0, x_708); +lean_ctor_set(x_709, 1, x_702); +return x_709; } else { -lean_object* x_709; lean_object* x_710; lean_object* x_711; lean_object* x_712; lean_object* x_713; lean_object* x_714; lean_object* x_715; lean_object* x_716; -lean_inc(x_702); -x_709 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_702, x_668); -x_710 = lean_ctor_get(x_702, 3); -lean_inc(x_710); -lean_dec(x_702); -x_711 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_705); -x_712 = lean_mk_array(x_705, x_711); -x_713 = lean_unsigned_to_nat(1u); -x_714 = lean_nat_sub(x_705, x_713); -lean_dec(x_705); -x_715 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_712, x_714); +lean_object* x_710; lean_object* x_711; lean_object* x_712; lean_object* x_713; lean_object* x_714; lean_object* x_715; lean_object* x_716; lean_object* x_717; +lean_inc(x_703); +x_710 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_703, x_669); +x_711 = lean_ctor_get(x_703, 3); +lean_inc(x_711); +lean_dec(x_703); +x_712 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_706); +x_713 = lean_mk_array(x_706, x_712); +x_714 = lean_unsigned_to_nat(1u); +x_715 = lean_nat_sub(x_706, x_714); +lean_dec(x_706); +x_716 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_713, x_715); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_716 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_710, x_709, x_715, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_701); -lean_dec(x_710); -if (lean_obj_tag(x_716) == 0) +x_717 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_711, x_710, x_716, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_702); +lean_dec(x_711); +if (lean_obj_tag(x_717) == 0) { -lean_object* x_717; lean_object* x_718; lean_object* x_719; -x_717 = lean_ctor_get(x_716, 0); -lean_inc(x_717); -x_718 = lean_ctor_get(x_716, 1); +lean_object* x_718; lean_object* x_719; lean_object* x_720; +x_718 = lean_ctor_get(x_717, 0); lean_inc(x_718); -lean_dec(x_716); -x_719 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_717, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_718); -return x_719; +x_719 = lean_ctor_get(x_717, 1); +lean_inc(x_719); +lean_dec(x_717); +x_720 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_718, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_719); +return x_720; } else { -lean_object* x_720; lean_object* x_721; lean_object* x_722; lean_object* x_723; +lean_object* x_721; lean_object* x_722; lean_object* x_723; lean_object* x_724; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3508,26 +3572,26 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_720 = lean_ctor_get(x_716, 0); -lean_inc(x_720); -x_721 = lean_ctor_get(x_716, 1); +x_721 = lean_ctor_get(x_717, 0); lean_inc(x_721); -if (lean_is_exclusive(x_716)) { - lean_ctor_release(x_716, 0); - lean_ctor_release(x_716, 1); - x_722 = x_716; +x_722 = lean_ctor_get(x_717, 1); +lean_inc(x_722); +if (lean_is_exclusive(x_717)) { + lean_ctor_release(x_717, 0); + lean_ctor_release(x_717, 1); + x_723 = x_717; } else { - lean_dec_ref(x_716); - x_722 = lean_box(0); + lean_dec_ref(x_717); + x_723 = lean_box(0); } -if (lean_is_scalar(x_722)) { - x_723 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_723)) { + x_724 = lean_alloc_ctor(1, 2, 0); } else { - x_723 = x_722; + x_724 = x_723; } -lean_ctor_set(x_723, 0, x_720); -lean_ctor_set(x_723, 1, x_721); -return x_723; +lean_ctor_set(x_724, 0, x_721); +lean_ctor_set(x_724, 1, x_722); +return x_724; } } } @@ -3535,9 +3599,10 @@ return x_723; } else { -lean_object* x_724; lean_object* x_725; -lean_dec(x_666); -lean_dec(x_13); +lean_object* x_725; lean_object* x_726; +lean_dec(x_667); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3546,99 +3611,100 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_724 = lean_box(0); -if (lean_is_scalar(x_662)) { - x_725 = lean_alloc_ctor(0, 2, 0); +x_725 = lean_box(0); +if (lean_is_scalar(x_663)) { + x_726 = lean_alloc_ctor(0, 2, 0); } else { - x_725 = x_662; + x_726 = x_663; } -lean_ctor_set(x_725, 0, x_724); -lean_ctor_set(x_725, 1, x_661); -return x_725; +lean_ctor_set(x_726, 0, x_725); +lean_ctor_set(x_726, 1, x_662); +return x_726; } } else { -lean_object* x_726; lean_object* x_727; -lean_dec(x_13); -x_726 = lean_ctor_get(x_665, 0); -lean_inc(x_726); -if (lean_is_exclusive(x_665)) { - lean_ctor_release(x_665, 0); - x_727 = x_665; +lean_object* x_727; lean_object* x_728; +lean_dec(x_14); +x_727 = lean_ctor_get(x_666, 0); +lean_inc(x_727); +if (lean_is_exclusive(x_666)) { + lean_ctor_release(x_666, 0); + x_728 = x_666; } else { - lean_dec_ref(x_665); - x_727 = lean_box(0); + lean_dec_ref(x_666); + x_728 = lean_box(0); } if (lean_obj_tag(x_2) == 0) { -lean_object* x_728; lean_object* x_729; +lean_object* x_729; lean_object* x_730; +lean_dec(x_728); lean_dec(x_727); -lean_dec(x_726); -lean_dec(x_662); -x_728 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; -x_729 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_728, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_661); -return x_729; +lean_dec(x_663); +x_729 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; +x_730 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_729, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_662); +return x_730; } else { -lean_object* x_730; lean_object* x_731; lean_object* x_732; lean_object* x_733; lean_object* x_734; lean_object* x_735; lean_object* x_736; uint8_t x_737; uint8_t x_738; lean_object* x_739; -x_730 = lean_ctor_get(x_726, 0); -lean_inc(x_730); -x_731 = lean_ctor_get(x_726, 1); +lean_object* x_731; lean_object* x_732; lean_object* x_733; lean_object* x_734; lean_object* x_735; lean_object* x_736; lean_object* x_737; uint8_t x_738; uint8_t x_739; lean_object* x_740; +x_731 = lean_ctor_get(x_727, 0); lean_inc(x_731); -lean_dec(x_726); -x_732 = lean_ctor_get(x_2, 0); +x_732 = lean_ctor_get(x_727, 1); lean_inc(x_732); -x_733 = lean_ctor_get(x_2, 1); +lean_dec(x_727); +x_733 = lean_ctor_get(x_2, 0); lean_inc(x_733); -lean_dec(x_2); -x_734 = lean_ctor_get(x_730, 3); +x_734 = lean_ctor_get(x_2, 1); lean_inc(x_734); -lean_dec(x_730); -x_735 = lean_nat_add(x_734, x_732); -lean_dec(x_732); -lean_dec(x_734); -x_736 = lean_array_get_size(x_731); -x_737 = lean_nat_dec_lt(x_735, x_736); -lean_dec(x_736); -x_738 = l_List_isEmpty___rarg(x_733); -if (x_737 == 0) -{ -lean_object* x_747; lean_object* x_748; -lean_dec(x_735); +lean_dec(x_2); +x_735 = lean_ctor_get(x_731, 3); +lean_inc(x_735); lean_dec(x_731); -x_747 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; -x_748 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_747); -x_739 = x_748; -goto block_746; -} -else -{ -lean_object* x_749; -x_749 = lean_array_fget(x_731, x_735); +x_736 = lean_nat_add(x_735, x_733); +lean_dec(x_733); lean_dec(x_735); -lean_dec(x_731); -x_739 = x_749; -goto block_746; -} -block_746: -{ +x_737 = lean_array_get_size(x_732); +x_738 = lean_nat_dec_lt(x_736, x_737); +lean_dec(x_737); +x_739 = l_List_isEmpty___rarg(x_734); if (x_738 == 0) { -lean_dec(x_727); -lean_dec(x_662); -x_1 = x_739; -x_2 = x_733; -x_10 = x_661; +lean_object* x_748; lean_object* x_749; +lean_dec(x_736); +lean_dec(x_732); +x_748 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; +x_749 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_748); +x_740 = x_749; +goto block_747; +} +else +{ +lean_object* x_750; +x_750 = lean_array_fget(x_732, x_736); +lean_dec(x_736); +lean_dec(x_732); +x_740 = x_750; +goto block_747; +} +block_747: +{ +if (x_739 == 0) +{ +lean_dec(x_728); +lean_dec(x_663); +x_1 = x_740; +x_2 = x_734; +x_11 = x_662; goto _start; } else { -lean_dec(x_733); -if (lean_obj_tag(x_739) == 1) +lean_dec(x_734); +if (lean_obj_tag(x_740) == 1) { -lean_object* x_741; lean_object* x_742; lean_object* x_743; +lean_object* x_742; lean_object* x_743; lean_object* x_744; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3646,33 +3712,33 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_741 = lean_ctor_get(x_739, 0); -lean_inc(x_741); -lean_dec(x_739); -if (lean_is_scalar(x_727)) { - x_742 = lean_alloc_ctor(1, 1, 0); +x_742 = lean_ctor_get(x_740, 0); +lean_inc(x_742); +lean_dec(x_740); +if (lean_is_scalar(x_728)) { + x_743 = lean_alloc_ctor(1, 1, 0); } else { - x_742 = x_727; -} -lean_ctor_set(x_742, 0, x_741); -if (lean_is_scalar(x_662)) { - x_743 = lean_alloc_ctor(0, 2, 0); -} else { - x_743 = x_662; + x_743 = x_728; } lean_ctor_set(x_743, 0, x_742); -lean_ctor_set(x_743, 1, x_661); -return x_743; +if (lean_is_scalar(x_663)) { + x_744 = lean_alloc_ctor(0, 2, 0); +} else { + x_744 = x_663; +} +lean_ctor_set(x_744, 0, x_743); +lean_ctor_set(x_744, 1, x_662); +return x_744; } else { -lean_object* x_744; lean_object* x_745; -lean_dec(x_739); -lean_dec(x_727); -lean_dec(x_662); -x_744 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; -x_745 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_744, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_661); -return x_745; +lean_object* x_745; lean_object* x_746; +lean_dec(x_740); +lean_dec(x_728); +lean_dec(x_663); +x_745 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; +x_746 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_745, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_662); +return x_746; } } } @@ -3681,50 +3747,51 @@ return x_745; } case 8: { -lean_object* x_750; lean_object* x_751; lean_object* x_752; lean_object* x_753; lean_object* x_754; lean_object* x_755; uint8_t x_756; lean_object* x_757; -x_750 = lean_ctor_get(x_12, 1); -lean_inc(x_750); -lean_dec(x_12); -x_751 = lean_st_ref_get(x_9, x_750); -x_752 = lean_ctor_get(x_751, 0); -lean_inc(x_752); -x_753 = lean_ctor_get(x_751, 1); +lean_object* x_751; lean_object* x_752; lean_object* x_753; lean_object* x_754; lean_object* x_755; lean_object* x_756; uint8_t x_757; lean_object* x_758; +x_751 = lean_ctor_get(x_13, 1); +lean_inc(x_751); +lean_dec(x_13); +x_752 = lean_st_ref_get(x_10, x_751); +x_753 = lean_ctor_get(x_752, 0); lean_inc(x_753); -if (lean_is_exclusive(x_751)) { - lean_ctor_release(x_751, 0); - lean_ctor_release(x_751, 1); - x_754 = x_751; +x_754 = lean_ctor_get(x_752, 1); +lean_inc(x_754); +if (lean_is_exclusive(x_752)) { + lean_ctor_release(x_752, 0); + lean_ctor_release(x_752, 1); + x_755 = x_752; } else { - lean_dec_ref(x_751); - x_754 = lean_box(0); + lean_dec_ref(x_752); + x_755 = lean_box(0); } -x_755 = lean_ctor_get(x_752, 0); -lean_inc(x_755); -lean_dec(x_752); -x_756 = 0; -lean_inc(x_13); -x_757 = l_Lean_Expr_constructorApp_x3f(x_755, x_13, x_756); -if (lean_obj_tag(x_757) == 0) +x_756 = lean_ctor_get(x_753, 0); +lean_inc(x_756); +lean_dec(x_753); +x_757 = 0; +lean_inc(x_14); +x_758 = l_Lean_Expr_constructorApp_x3f(x_756, x_14, x_757); +if (lean_obj_tag(x_758) == 0) { -lean_object* x_758; -x_758 = l_Lean_Expr_getAppFn(x_13); -if (lean_obj_tag(x_758) == 4) +lean_object* x_759; +x_759 = l_Lean_Expr_getAppFn(x_14); +if (lean_obj_tag(x_759) == 4) { -lean_object* x_759; lean_object* x_760; lean_object* x_761; lean_object* x_762; -lean_dec(x_754); -x_759 = lean_ctor_get(x_758, 0); -lean_inc(x_759); -x_760 = lean_ctor_get(x_758, 1); +lean_object* x_760; lean_object* x_761; lean_object* x_762; lean_object* x_763; +lean_dec(x_755); +x_760 = lean_ctor_get(x_759, 0); lean_inc(x_760); -lean_dec(x_758); -x_761 = l_Lean_Compiler_LCNF_getDecl_x3f(x_759, x_6, x_7, x_8, x_9, x_753); -x_762 = lean_ctor_get(x_761, 0); -lean_inc(x_762); -if (lean_obj_tag(x_762) == 0) +x_761 = lean_ctor_get(x_759, 1); +lean_inc(x_761); +lean_dec(x_759); +x_762 = l_Lean_Compiler_LCNF_getDecl_x3f(x_760, x_7, x_8, x_9, x_10, x_754); +x_763 = lean_ctor_get(x_762, 0); +lean_inc(x_763); +if (lean_obj_tag(x_763) == 0) { -uint8_t x_763; -lean_dec(x_760); -lean_dec(x_13); +uint8_t x_764; +lean_dec(x_761); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3733,54 +3800,55 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_763 = !lean_is_exclusive(x_761); -if (x_763 == 0) +x_764 = !lean_is_exclusive(x_762); +if (x_764 == 0) { -lean_object* x_764; lean_object* x_765; -x_764 = lean_ctor_get(x_761, 0); -lean_dec(x_764); -x_765 = lean_box(0); -lean_ctor_set(x_761, 0, x_765); -return x_761; +lean_object* x_765; lean_object* x_766; +x_765 = lean_ctor_get(x_762, 0); +lean_dec(x_765); +x_766 = lean_box(0); +lean_ctor_set(x_762, 0, x_766); +return x_762; } else { -lean_object* x_766; lean_object* x_767; lean_object* x_768; -x_766 = lean_ctor_get(x_761, 1); -lean_inc(x_766); -lean_dec(x_761); -x_767 = lean_box(0); -x_768 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_768, 0, x_767); -lean_ctor_set(x_768, 1, x_766); -return x_768; +lean_object* x_767; lean_object* x_768; lean_object* x_769; +x_767 = lean_ctor_get(x_762, 1); +lean_inc(x_767); +lean_dec(x_762); +x_768 = lean_box(0); +x_769 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_769, 0, x_768); +lean_ctor_set(x_769, 1, x_767); +return x_769; } } else { -uint8_t x_769; -x_769 = !lean_is_exclusive(x_761); -if (x_769 == 0) +uint8_t x_770; +x_770 = !lean_is_exclusive(x_762); +if (x_770 == 0) { -lean_object* x_770; lean_object* x_771; lean_object* x_772; lean_object* x_773; lean_object* x_774; lean_object* x_775; uint8_t x_776; -x_770 = lean_ctor_get(x_761, 1); -x_771 = lean_ctor_get(x_761, 0); -lean_dec(x_771); +lean_object* x_771; lean_object* x_772; lean_object* x_773; lean_object* x_774; lean_object* x_775; lean_object* x_776; uint8_t x_777; +x_771 = lean_ctor_get(x_762, 1); x_772 = lean_ctor_get(x_762, 0); -lean_inc(x_772); -lean_dec(x_762); -x_773 = l_Lean_Compiler_LCNF_Decl_getArity(x_772); -x_774 = lean_unsigned_to_nat(0u); -x_775 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_774); -x_776 = lean_nat_dec_eq(x_773, x_775); +lean_dec(x_772); +x_773 = lean_ctor_get(x_763, 0); +lean_inc(x_773); +lean_dec(x_763); +x_774 = l_Lean_Compiler_LCNF_Decl_getArity(x_773); +x_775 = lean_unsigned_to_nat(0u); +x_776 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_775); +x_777 = lean_nat_dec_eq(x_774, x_776); +lean_dec(x_774); +if (x_777 == 0) +{ +lean_object* x_778; +lean_dec(x_776); lean_dec(x_773); -if (x_776 == 0) -{ -lean_object* x_777; -lean_dec(x_775); -lean_dec(x_772); -lean_dec(x_760); -lean_dec(x_13); +lean_dec(x_761); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3789,46 +3857,47 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_777 = lean_box(0); -lean_ctor_set(x_761, 0, x_777); -return x_761; +x_778 = lean_box(0); +lean_ctor_set(x_762, 0, x_778); +return x_762; } else { -lean_object* x_778; lean_object* x_779; lean_object* x_780; lean_object* x_781; lean_object* x_782; lean_object* x_783; lean_object* x_784; lean_object* x_785; -lean_free_object(x_761); -lean_inc(x_772); -x_778 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_772, x_760); -x_779 = lean_ctor_get(x_772, 3); -lean_inc(x_779); -lean_dec(x_772); -x_780 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_775); -x_781 = lean_mk_array(x_775, x_780); -x_782 = lean_unsigned_to_nat(1u); -x_783 = lean_nat_sub(x_775, x_782); -lean_dec(x_775); -x_784 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_781, x_783); +lean_object* x_779; lean_object* x_780; lean_object* x_781; lean_object* x_782; lean_object* x_783; lean_object* x_784; lean_object* x_785; lean_object* x_786; +lean_free_object(x_762); +lean_inc(x_773); +x_779 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_773, x_761); +x_780 = lean_ctor_get(x_773, 3); +lean_inc(x_780); +lean_dec(x_773); +x_781 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_776); +x_782 = lean_mk_array(x_776, x_781); +x_783 = lean_unsigned_to_nat(1u); +x_784 = lean_nat_sub(x_776, x_783); +lean_dec(x_776); +x_785 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_782, x_784); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_785 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_779, x_778, x_784, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_770); -lean_dec(x_779); -if (lean_obj_tag(x_785) == 0) +x_786 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_780, x_779, x_785, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_771); +lean_dec(x_780); +if (lean_obj_tag(x_786) == 0) { -lean_object* x_786; lean_object* x_787; lean_object* x_788; -x_786 = lean_ctor_get(x_785, 0); -lean_inc(x_786); -x_787 = lean_ctor_get(x_785, 1); +lean_object* x_787; lean_object* x_788; lean_object* x_789; +x_787 = lean_ctor_get(x_786, 0); lean_inc(x_787); -lean_dec(x_785); -x_788 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_786, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_787); -return x_788; +x_788 = lean_ctor_get(x_786, 1); +lean_inc(x_788); +lean_dec(x_786); +x_789 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_787, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_788); +return x_789; } else { -uint8_t x_789; +uint8_t x_790; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3837,48 +3906,49 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_789 = !lean_is_exclusive(x_785); -if (x_789 == 0) +x_790 = !lean_is_exclusive(x_786); +if (x_790 == 0) { -return x_785; +return x_786; } else { -lean_object* x_790; lean_object* x_791; lean_object* x_792; -x_790 = lean_ctor_get(x_785, 0); -x_791 = lean_ctor_get(x_785, 1); +lean_object* x_791; lean_object* x_792; lean_object* x_793; +x_791 = lean_ctor_get(x_786, 0); +x_792 = lean_ctor_get(x_786, 1); +lean_inc(x_792); lean_inc(x_791); -lean_inc(x_790); -lean_dec(x_785); -x_792 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_792, 0, x_790); -lean_ctor_set(x_792, 1, x_791); -return x_792; +lean_dec(x_786); +x_793 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_793, 0, x_791); +lean_ctor_set(x_793, 1, x_792); +return x_793; } } } } else { -lean_object* x_793; lean_object* x_794; lean_object* x_795; lean_object* x_796; lean_object* x_797; uint8_t x_798; -x_793 = lean_ctor_get(x_761, 1); -lean_inc(x_793); -lean_dec(x_761); -x_794 = lean_ctor_get(x_762, 0); +lean_object* x_794; lean_object* x_795; lean_object* x_796; lean_object* x_797; lean_object* x_798; uint8_t x_799; +x_794 = lean_ctor_get(x_762, 1); lean_inc(x_794); lean_dec(x_762); -x_795 = l_Lean_Compiler_LCNF_Decl_getArity(x_794); -x_796 = lean_unsigned_to_nat(0u); -x_797 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_796); -x_798 = lean_nat_dec_eq(x_795, x_797); -lean_dec(x_795); -if (x_798 == 0) +x_795 = lean_ctor_get(x_763, 0); +lean_inc(x_795); +lean_dec(x_763); +x_796 = l_Lean_Compiler_LCNF_Decl_getArity(x_795); +x_797 = lean_unsigned_to_nat(0u); +x_798 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_797); +x_799 = lean_nat_dec_eq(x_796, x_798); +lean_dec(x_796); +if (x_799 == 0) { -lean_object* x_799; lean_object* x_800; -lean_dec(x_797); -lean_dec(x_794); -lean_dec(x_760); -lean_dec(x_13); +lean_object* x_800; lean_object* x_801; +lean_dec(x_798); +lean_dec(x_795); +lean_dec(x_761); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3887,47 +3957,48 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_799 = lean_box(0); -x_800 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_800, 0, x_799); -lean_ctor_set(x_800, 1, x_793); -return x_800; +x_800 = lean_box(0); +x_801 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_801, 0, x_800); +lean_ctor_set(x_801, 1, x_794); +return x_801; } else { -lean_object* x_801; lean_object* x_802; lean_object* x_803; lean_object* x_804; lean_object* x_805; lean_object* x_806; lean_object* x_807; lean_object* x_808; -lean_inc(x_794); -x_801 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_794, x_760); -x_802 = lean_ctor_get(x_794, 3); -lean_inc(x_802); -lean_dec(x_794); -x_803 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_797); -x_804 = lean_mk_array(x_797, x_803); -x_805 = lean_unsigned_to_nat(1u); -x_806 = lean_nat_sub(x_797, x_805); -lean_dec(x_797); -x_807 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_804, x_806); +lean_object* x_802; lean_object* x_803; lean_object* x_804; lean_object* x_805; lean_object* x_806; lean_object* x_807; lean_object* x_808; lean_object* x_809; +lean_inc(x_795); +x_802 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_795, x_761); +x_803 = lean_ctor_get(x_795, 3); +lean_inc(x_803); +lean_dec(x_795); +x_804 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_798); +x_805 = lean_mk_array(x_798, x_804); +x_806 = lean_unsigned_to_nat(1u); +x_807 = lean_nat_sub(x_798, x_806); +lean_dec(x_798); +x_808 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_805, x_807); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_808 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_802, x_801, x_807, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_793); -lean_dec(x_802); -if (lean_obj_tag(x_808) == 0) +x_809 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_803, x_802, x_808, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_794); +lean_dec(x_803); +if (lean_obj_tag(x_809) == 0) { -lean_object* x_809; lean_object* x_810; lean_object* x_811; -x_809 = lean_ctor_get(x_808, 0); -lean_inc(x_809); -x_810 = lean_ctor_get(x_808, 1); +lean_object* x_810; lean_object* x_811; lean_object* x_812; +x_810 = lean_ctor_get(x_809, 0); lean_inc(x_810); -lean_dec(x_808); -x_811 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_809, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_810); -return x_811; +x_811 = lean_ctor_get(x_809, 1); +lean_inc(x_811); +lean_dec(x_809); +x_812 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_810, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_811); +return x_812; } else { -lean_object* x_812; lean_object* x_813; lean_object* x_814; lean_object* x_815; +lean_object* x_813; lean_object* x_814; lean_object* x_815; lean_object* x_816; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3936,26 +4007,26 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_812 = lean_ctor_get(x_808, 0); -lean_inc(x_812); -x_813 = lean_ctor_get(x_808, 1); +x_813 = lean_ctor_get(x_809, 0); lean_inc(x_813); -if (lean_is_exclusive(x_808)) { - lean_ctor_release(x_808, 0); - lean_ctor_release(x_808, 1); - x_814 = x_808; +x_814 = lean_ctor_get(x_809, 1); +lean_inc(x_814); +if (lean_is_exclusive(x_809)) { + lean_ctor_release(x_809, 0); + lean_ctor_release(x_809, 1); + x_815 = x_809; } else { - lean_dec_ref(x_808); - x_814 = lean_box(0); + lean_dec_ref(x_809); + x_815 = lean_box(0); } -if (lean_is_scalar(x_814)) { - x_815 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_815)) { + x_816 = lean_alloc_ctor(1, 2, 0); } else { - x_815 = x_814; + x_816 = x_815; } -lean_ctor_set(x_815, 0, x_812); -lean_ctor_set(x_815, 1, x_813); -return x_815; +lean_ctor_set(x_816, 0, x_813); +lean_ctor_set(x_816, 1, x_814); +return x_816; } } } @@ -3963,9 +4034,10 @@ return x_815; } else { -lean_object* x_816; lean_object* x_817; -lean_dec(x_758); -lean_dec(x_13); +lean_object* x_817; lean_object* x_818; +lean_dec(x_759); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3974,99 +4046,100 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_816 = lean_box(0); -if (lean_is_scalar(x_754)) { - x_817 = lean_alloc_ctor(0, 2, 0); +x_817 = lean_box(0); +if (lean_is_scalar(x_755)) { + x_818 = lean_alloc_ctor(0, 2, 0); } else { - x_817 = x_754; + x_818 = x_755; } -lean_ctor_set(x_817, 0, x_816); -lean_ctor_set(x_817, 1, x_753); -return x_817; +lean_ctor_set(x_818, 0, x_817); +lean_ctor_set(x_818, 1, x_754); +return x_818; } } else { -lean_object* x_818; lean_object* x_819; -lean_dec(x_13); -x_818 = lean_ctor_get(x_757, 0); -lean_inc(x_818); -if (lean_is_exclusive(x_757)) { - lean_ctor_release(x_757, 0); - x_819 = x_757; +lean_object* x_819; lean_object* x_820; +lean_dec(x_14); +x_819 = lean_ctor_get(x_758, 0); +lean_inc(x_819); +if (lean_is_exclusive(x_758)) { + lean_ctor_release(x_758, 0); + x_820 = x_758; } else { - lean_dec_ref(x_757); - x_819 = lean_box(0); + lean_dec_ref(x_758); + x_820 = lean_box(0); } if (lean_obj_tag(x_2) == 0) { -lean_object* x_820; lean_object* x_821; +lean_object* x_821; lean_object* x_822; +lean_dec(x_820); lean_dec(x_819); -lean_dec(x_818); -lean_dec(x_754); -x_820 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; -x_821 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_820, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_753); -return x_821; +lean_dec(x_755); +x_821 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; +x_822 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_821, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_754); +return x_822; } else { -lean_object* x_822; lean_object* x_823; lean_object* x_824; lean_object* x_825; lean_object* x_826; lean_object* x_827; lean_object* x_828; uint8_t x_829; uint8_t x_830; lean_object* x_831; -x_822 = lean_ctor_get(x_818, 0); -lean_inc(x_822); -x_823 = lean_ctor_get(x_818, 1); +lean_object* x_823; lean_object* x_824; lean_object* x_825; lean_object* x_826; lean_object* x_827; lean_object* x_828; lean_object* x_829; uint8_t x_830; uint8_t x_831; lean_object* x_832; +x_823 = lean_ctor_get(x_819, 0); lean_inc(x_823); -lean_dec(x_818); -x_824 = lean_ctor_get(x_2, 0); +x_824 = lean_ctor_get(x_819, 1); lean_inc(x_824); -x_825 = lean_ctor_get(x_2, 1); +lean_dec(x_819); +x_825 = lean_ctor_get(x_2, 0); lean_inc(x_825); -lean_dec(x_2); -x_826 = lean_ctor_get(x_822, 3); +x_826 = lean_ctor_get(x_2, 1); lean_inc(x_826); -lean_dec(x_822); -x_827 = lean_nat_add(x_826, x_824); -lean_dec(x_824); -lean_dec(x_826); -x_828 = lean_array_get_size(x_823); -x_829 = lean_nat_dec_lt(x_827, x_828); -lean_dec(x_828); -x_830 = l_List_isEmpty___rarg(x_825); -if (x_829 == 0) -{ -lean_object* x_839; lean_object* x_840; -lean_dec(x_827); +lean_dec(x_2); +x_827 = lean_ctor_get(x_823, 3); +lean_inc(x_827); lean_dec(x_823); -x_839 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; -x_840 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_839); -x_831 = x_840; -goto block_838; -} -else -{ -lean_object* x_841; -x_841 = lean_array_fget(x_823, x_827); +x_828 = lean_nat_add(x_827, x_825); +lean_dec(x_825); lean_dec(x_827); -lean_dec(x_823); -x_831 = x_841; -goto block_838; -} -block_838: -{ +x_829 = lean_array_get_size(x_824); +x_830 = lean_nat_dec_lt(x_828, x_829); +lean_dec(x_829); +x_831 = l_List_isEmpty___rarg(x_826); if (x_830 == 0) { -lean_dec(x_819); -lean_dec(x_754); -x_1 = x_831; -x_2 = x_825; -x_10 = x_753; +lean_object* x_840; lean_object* x_841; +lean_dec(x_828); +lean_dec(x_824); +x_840 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; +x_841 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_840); +x_832 = x_841; +goto block_839; +} +else +{ +lean_object* x_842; +x_842 = lean_array_fget(x_824, x_828); +lean_dec(x_828); +lean_dec(x_824); +x_832 = x_842; +goto block_839; +} +block_839: +{ +if (x_831 == 0) +{ +lean_dec(x_820); +lean_dec(x_755); +x_1 = x_832; +x_2 = x_826; +x_11 = x_754; goto _start; } else { -lean_dec(x_825); -if (lean_obj_tag(x_831) == 1) +lean_dec(x_826); +if (lean_obj_tag(x_832) == 1) { -lean_object* x_833; lean_object* x_834; lean_object* x_835; +lean_object* x_834; lean_object* x_835; lean_object* x_836; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4074,33 +4147,33 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_833 = lean_ctor_get(x_831, 0); -lean_inc(x_833); -lean_dec(x_831); -if (lean_is_scalar(x_819)) { - x_834 = lean_alloc_ctor(1, 1, 0); +x_834 = lean_ctor_get(x_832, 0); +lean_inc(x_834); +lean_dec(x_832); +if (lean_is_scalar(x_820)) { + x_835 = lean_alloc_ctor(1, 1, 0); } else { - x_834 = x_819; -} -lean_ctor_set(x_834, 0, x_833); -if (lean_is_scalar(x_754)) { - x_835 = lean_alloc_ctor(0, 2, 0); -} else { - x_835 = x_754; + x_835 = x_820; } lean_ctor_set(x_835, 0, x_834); -lean_ctor_set(x_835, 1, x_753); -return x_835; +if (lean_is_scalar(x_755)) { + x_836 = lean_alloc_ctor(0, 2, 0); +} else { + x_836 = x_755; +} +lean_ctor_set(x_836, 0, x_835); +lean_ctor_set(x_836, 1, x_754); +return x_836; } else { -lean_object* x_836; lean_object* x_837; -lean_dec(x_831); -lean_dec(x_819); -lean_dec(x_754); -x_836 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; -x_837 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_836, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_753); -return x_837; +lean_object* x_837; lean_object* x_838; +lean_dec(x_832); +lean_dec(x_820); +lean_dec(x_755); +x_837 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; +x_838 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_837, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_754); +return x_838; } } } @@ -4109,50 +4182,51 @@ return x_837; } case 9: { -lean_object* x_842; lean_object* x_843; lean_object* x_844; lean_object* x_845; lean_object* x_846; lean_object* x_847; uint8_t x_848; lean_object* x_849; -x_842 = lean_ctor_get(x_12, 1); -lean_inc(x_842); -lean_dec(x_12); -x_843 = lean_st_ref_get(x_9, x_842); -x_844 = lean_ctor_get(x_843, 0); -lean_inc(x_844); -x_845 = lean_ctor_get(x_843, 1); +lean_object* x_843; lean_object* x_844; lean_object* x_845; lean_object* x_846; lean_object* x_847; lean_object* x_848; uint8_t x_849; lean_object* x_850; +x_843 = lean_ctor_get(x_13, 1); +lean_inc(x_843); +lean_dec(x_13); +x_844 = lean_st_ref_get(x_10, x_843); +x_845 = lean_ctor_get(x_844, 0); lean_inc(x_845); -if (lean_is_exclusive(x_843)) { - lean_ctor_release(x_843, 0); - lean_ctor_release(x_843, 1); - x_846 = x_843; +x_846 = lean_ctor_get(x_844, 1); +lean_inc(x_846); +if (lean_is_exclusive(x_844)) { + lean_ctor_release(x_844, 0); + lean_ctor_release(x_844, 1); + x_847 = x_844; } else { - lean_dec_ref(x_843); - x_846 = lean_box(0); + lean_dec_ref(x_844); + x_847 = lean_box(0); } -x_847 = lean_ctor_get(x_844, 0); -lean_inc(x_847); -lean_dec(x_844); -x_848 = 0; -lean_inc(x_13); -x_849 = l_Lean_Expr_constructorApp_x3f(x_847, x_13, x_848); -if (lean_obj_tag(x_849) == 0) +x_848 = lean_ctor_get(x_845, 0); +lean_inc(x_848); +lean_dec(x_845); +x_849 = 0; +lean_inc(x_14); +x_850 = l_Lean_Expr_constructorApp_x3f(x_848, x_14, x_849); +if (lean_obj_tag(x_850) == 0) { -lean_object* x_850; -x_850 = l_Lean_Expr_getAppFn(x_13); -if (lean_obj_tag(x_850) == 4) +lean_object* x_851; +x_851 = l_Lean_Expr_getAppFn(x_14); +if (lean_obj_tag(x_851) == 4) { -lean_object* x_851; lean_object* x_852; lean_object* x_853; lean_object* x_854; -lean_dec(x_846); -x_851 = lean_ctor_get(x_850, 0); -lean_inc(x_851); -x_852 = lean_ctor_get(x_850, 1); +lean_object* x_852; lean_object* x_853; lean_object* x_854; lean_object* x_855; +lean_dec(x_847); +x_852 = lean_ctor_get(x_851, 0); lean_inc(x_852); -lean_dec(x_850); -x_853 = l_Lean_Compiler_LCNF_getDecl_x3f(x_851, x_6, x_7, x_8, x_9, x_845); -x_854 = lean_ctor_get(x_853, 0); -lean_inc(x_854); -if (lean_obj_tag(x_854) == 0) +x_853 = lean_ctor_get(x_851, 1); +lean_inc(x_853); +lean_dec(x_851); +x_854 = l_Lean_Compiler_LCNF_getDecl_x3f(x_852, x_7, x_8, x_9, x_10, x_846); +x_855 = lean_ctor_get(x_854, 0); +lean_inc(x_855); +if (lean_obj_tag(x_855) == 0) { -uint8_t x_855; -lean_dec(x_852); -lean_dec(x_13); +uint8_t x_856; +lean_dec(x_853); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4161,54 +4235,55 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_855 = !lean_is_exclusive(x_853); -if (x_855 == 0) +x_856 = !lean_is_exclusive(x_854); +if (x_856 == 0) { -lean_object* x_856; lean_object* x_857; -x_856 = lean_ctor_get(x_853, 0); -lean_dec(x_856); -x_857 = lean_box(0); -lean_ctor_set(x_853, 0, x_857); -return x_853; +lean_object* x_857; lean_object* x_858; +x_857 = lean_ctor_get(x_854, 0); +lean_dec(x_857); +x_858 = lean_box(0); +lean_ctor_set(x_854, 0, x_858); +return x_854; } else { -lean_object* x_858; lean_object* x_859; lean_object* x_860; -x_858 = lean_ctor_get(x_853, 1); -lean_inc(x_858); -lean_dec(x_853); -x_859 = lean_box(0); -x_860 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_860, 0, x_859); -lean_ctor_set(x_860, 1, x_858); -return x_860; +lean_object* x_859; lean_object* x_860; lean_object* x_861; +x_859 = lean_ctor_get(x_854, 1); +lean_inc(x_859); +lean_dec(x_854); +x_860 = lean_box(0); +x_861 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_861, 0, x_860); +lean_ctor_set(x_861, 1, x_859); +return x_861; } } else { -uint8_t x_861; -x_861 = !lean_is_exclusive(x_853); -if (x_861 == 0) +uint8_t x_862; +x_862 = !lean_is_exclusive(x_854); +if (x_862 == 0) { -lean_object* x_862; lean_object* x_863; lean_object* x_864; lean_object* x_865; lean_object* x_866; lean_object* x_867; uint8_t x_868; -x_862 = lean_ctor_get(x_853, 1); -x_863 = lean_ctor_get(x_853, 0); -lean_dec(x_863); +lean_object* x_863; lean_object* x_864; lean_object* x_865; lean_object* x_866; lean_object* x_867; lean_object* x_868; uint8_t x_869; +x_863 = lean_ctor_get(x_854, 1); x_864 = lean_ctor_get(x_854, 0); -lean_inc(x_864); -lean_dec(x_854); -x_865 = l_Lean_Compiler_LCNF_Decl_getArity(x_864); -x_866 = lean_unsigned_to_nat(0u); -x_867 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_866); -x_868 = lean_nat_dec_eq(x_865, x_867); +lean_dec(x_864); +x_865 = lean_ctor_get(x_855, 0); +lean_inc(x_865); +lean_dec(x_855); +x_866 = l_Lean_Compiler_LCNF_Decl_getArity(x_865); +x_867 = lean_unsigned_to_nat(0u); +x_868 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_867); +x_869 = lean_nat_dec_eq(x_866, x_868); +lean_dec(x_866); +if (x_869 == 0) +{ +lean_object* x_870; +lean_dec(x_868); lean_dec(x_865); -if (x_868 == 0) -{ -lean_object* x_869; -lean_dec(x_867); -lean_dec(x_864); -lean_dec(x_852); -lean_dec(x_13); +lean_dec(x_853); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4217,46 +4292,47 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_869 = lean_box(0); -lean_ctor_set(x_853, 0, x_869); -return x_853; +x_870 = lean_box(0); +lean_ctor_set(x_854, 0, x_870); +return x_854; } else { -lean_object* x_870; lean_object* x_871; lean_object* x_872; lean_object* x_873; lean_object* x_874; lean_object* x_875; lean_object* x_876; lean_object* x_877; -lean_free_object(x_853); -lean_inc(x_864); -x_870 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_864, x_852); -x_871 = lean_ctor_get(x_864, 3); -lean_inc(x_871); -lean_dec(x_864); -x_872 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_867); -x_873 = lean_mk_array(x_867, x_872); -x_874 = lean_unsigned_to_nat(1u); -x_875 = lean_nat_sub(x_867, x_874); -lean_dec(x_867); -x_876 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_873, x_875); +lean_object* x_871; lean_object* x_872; lean_object* x_873; lean_object* x_874; lean_object* x_875; lean_object* x_876; lean_object* x_877; lean_object* x_878; +lean_free_object(x_854); +lean_inc(x_865); +x_871 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_865, x_853); +x_872 = lean_ctor_get(x_865, 3); +lean_inc(x_872); +lean_dec(x_865); +x_873 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_868); +x_874 = lean_mk_array(x_868, x_873); +x_875 = lean_unsigned_to_nat(1u); +x_876 = lean_nat_sub(x_868, x_875); +lean_dec(x_868); +x_877 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_874, x_876); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_877 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_871, x_870, x_876, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_862); -lean_dec(x_871); -if (lean_obj_tag(x_877) == 0) +x_878 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_872, x_871, x_877, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_863); +lean_dec(x_872); +if (lean_obj_tag(x_878) == 0) { -lean_object* x_878; lean_object* x_879; lean_object* x_880; -x_878 = lean_ctor_get(x_877, 0); -lean_inc(x_878); -x_879 = lean_ctor_get(x_877, 1); +lean_object* x_879; lean_object* x_880; lean_object* x_881; +x_879 = lean_ctor_get(x_878, 0); lean_inc(x_879); -lean_dec(x_877); -x_880 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_878, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_879); -return x_880; +x_880 = lean_ctor_get(x_878, 1); +lean_inc(x_880); +lean_dec(x_878); +x_881 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_879, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_880); +return x_881; } else { -uint8_t x_881; +uint8_t x_882; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4265,48 +4341,49 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_881 = !lean_is_exclusive(x_877); -if (x_881 == 0) +x_882 = !lean_is_exclusive(x_878); +if (x_882 == 0) { -return x_877; +return x_878; } else { -lean_object* x_882; lean_object* x_883; lean_object* x_884; -x_882 = lean_ctor_get(x_877, 0); -x_883 = lean_ctor_get(x_877, 1); +lean_object* x_883; lean_object* x_884; lean_object* x_885; +x_883 = lean_ctor_get(x_878, 0); +x_884 = lean_ctor_get(x_878, 1); +lean_inc(x_884); lean_inc(x_883); -lean_inc(x_882); -lean_dec(x_877); -x_884 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_884, 0, x_882); -lean_ctor_set(x_884, 1, x_883); -return x_884; +lean_dec(x_878); +x_885 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_885, 0, x_883); +lean_ctor_set(x_885, 1, x_884); +return x_885; } } } } else { -lean_object* x_885; lean_object* x_886; lean_object* x_887; lean_object* x_888; lean_object* x_889; uint8_t x_890; -x_885 = lean_ctor_get(x_853, 1); -lean_inc(x_885); -lean_dec(x_853); -x_886 = lean_ctor_get(x_854, 0); +lean_object* x_886; lean_object* x_887; lean_object* x_888; lean_object* x_889; lean_object* x_890; uint8_t x_891; +x_886 = lean_ctor_get(x_854, 1); lean_inc(x_886); lean_dec(x_854); -x_887 = l_Lean_Compiler_LCNF_Decl_getArity(x_886); -x_888 = lean_unsigned_to_nat(0u); -x_889 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_888); -x_890 = lean_nat_dec_eq(x_887, x_889); -lean_dec(x_887); -if (x_890 == 0) +x_887 = lean_ctor_get(x_855, 0); +lean_inc(x_887); +lean_dec(x_855); +x_888 = l_Lean_Compiler_LCNF_Decl_getArity(x_887); +x_889 = lean_unsigned_to_nat(0u); +x_890 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_889); +x_891 = lean_nat_dec_eq(x_888, x_890); +lean_dec(x_888); +if (x_891 == 0) { -lean_object* x_891; lean_object* x_892; -lean_dec(x_889); -lean_dec(x_886); -lean_dec(x_852); -lean_dec(x_13); +lean_object* x_892; lean_object* x_893; +lean_dec(x_890); +lean_dec(x_887); +lean_dec(x_853); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4315,47 +4392,48 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_891 = lean_box(0); -x_892 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_892, 0, x_891); -lean_ctor_set(x_892, 1, x_885); -return x_892; +x_892 = lean_box(0); +x_893 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_893, 0, x_892); +lean_ctor_set(x_893, 1, x_886); +return x_893; } else { -lean_object* x_893; lean_object* x_894; lean_object* x_895; lean_object* x_896; lean_object* x_897; lean_object* x_898; lean_object* x_899; lean_object* x_900; -lean_inc(x_886); -x_893 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_886, x_852); -x_894 = lean_ctor_get(x_886, 3); -lean_inc(x_894); -lean_dec(x_886); -x_895 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_889); -x_896 = lean_mk_array(x_889, x_895); -x_897 = lean_unsigned_to_nat(1u); -x_898 = lean_nat_sub(x_889, x_897); -lean_dec(x_889); -x_899 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_896, x_898); +lean_object* x_894; lean_object* x_895; lean_object* x_896; lean_object* x_897; lean_object* x_898; lean_object* x_899; lean_object* x_900; lean_object* x_901; +lean_inc(x_887); +x_894 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_887, x_853); +x_895 = lean_ctor_get(x_887, 3); +lean_inc(x_895); +lean_dec(x_887); +x_896 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_890); +x_897 = lean_mk_array(x_890, x_896); +x_898 = lean_unsigned_to_nat(1u); +x_899 = lean_nat_sub(x_890, x_898); +lean_dec(x_890); +x_900 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_897, x_899); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_900 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_894, x_893, x_899, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_885); -lean_dec(x_894); -if (lean_obj_tag(x_900) == 0) +x_901 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_895, x_894, x_900, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_886); +lean_dec(x_895); +if (lean_obj_tag(x_901) == 0) { -lean_object* x_901; lean_object* x_902; lean_object* x_903; -x_901 = lean_ctor_get(x_900, 0); -lean_inc(x_901); -x_902 = lean_ctor_get(x_900, 1); +lean_object* x_902; lean_object* x_903; lean_object* x_904; +x_902 = lean_ctor_get(x_901, 0); lean_inc(x_902); -lean_dec(x_900); -x_903 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_901, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_902); -return x_903; +x_903 = lean_ctor_get(x_901, 1); +lean_inc(x_903); +lean_dec(x_901); +x_904 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_902, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_903); +return x_904; } else { -lean_object* x_904; lean_object* x_905; lean_object* x_906; lean_object* x_907; +lean_object* x_905; lean_object* x_906; lean_object* x_907; lean_object* x_908; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4364,26 +4442,26 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_904 = lean_ctor_get(x_900, 0); -lean_inc(x_904); -x_905 = lean_ctor_get(x_900, 1); +x_905 = lean_ctor_get(x_901, 0); lean_inc(x_905); -if (lean_is_exclusive(x_900)) { - lean_ctor_release(x_900, 0); - lean_ctor_release(x_900, 1); - x_906 = x_900; +x_906 = lean_ctor_get(x_901, 1); +lean_inc(x_906); +if (lean_is_exclusive(x_901)) { + lean_ctor_release(x_901, 0); + lean_ctor_release(x_901, 1); + x_907 = x_901; } else { - lean_dec_ref(x_900); - x_906 = lean_box(0); + lean_dec_ref(x_901); + x_907 = lean_box(0); } -if (lean_is_scalar(x_906)) { - x_907 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_907)) { + x_908 = lean_alloc_ctor(1, 2, 0); } else { - x_907 = x_906; + x_908 = x_907; } -lean_ctor_set(x_907, 0, x_904); -lean_ctor_set(x_907, 1, x_905); -return x_907; +lean_ctor_set(x_908, 0, x_905); +lean_ctor_set(x_908, 1, x_906); +return x_908; } } } @@ -4391,9 +4469,10 @@ return x_907; } else { -lean_object* x_908; lean_object* x_909; -lean_dec(x_850); -lean_dec(x_13); +lean_object* x_909; lean_object* x_910; +lean_dec(x_851); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4402,99 +4481,100 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_908 = lean_box(0); -if (lean_is_scalar(x_846)) { - x_909 = lean_alloc_ctor(0, 2, 0); +x_909 = lean_box(0); +if (lean_is_scalar(x_847)) { + x_910 = lean_alloc_ctor(0, 2, 0); } else { - x_909 = x_846; + x_910 = x_847; } -lean_ctor_set(x_909, 0, x_908); -lean_ctor_set(x_909, 1, x_845); -return x_909; +lean_ctor_set(x_910, 0, x_909); +lean_ctor_set(x_910, 1, x_846); +return x_910; } } else { -lean_object* x_910; lean_object* x_911; -lean_dec(x_13); -x_910 = lean_ctor_get(x_849, 0); -lean_inc(x_910); -if (lean_is_exclusive(x_849)) { - lean_ctor_release(x_849, 0); - x_911 = x_849; +lean_object* x_911; lean_object* x_912; +lean_dec(x_14); +x_911 = lean_ctor_get(x_850, 0); +lean_inc(x_911); +if (lean_is_exclusive(x_850)) { + lean_ctor_release(x_850, 0); + x_912 = x_850; } else { - lean_dec_ref(x_849); - x_911 = lean_box(0); + lean_dec_ref(x_850); + x_912 = lean_box(0); } if (lean_obj_tag(x_2) == 0) { -lean_object* x_912; lean_object* x_913; +lean_object* x_913; lean_object* x_914; +lean_dec(x_912); lean_dec(x_911); -lean_dec(x_910); -lean_dec(x_846); -x_912 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; -x_913 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_912, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_845); -return x_913; +lean_dec(x_847); +x_913 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; +x_914 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_913, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_846); +return x_914; } else { -lean_object* x_914; lean_object* x_915; lean_object* x_916; lean_object* x_917; lean_object* x_918; lean_object* x_919; lean_object* x_920; uint8_t x_921; uint8_t x_922; lean_object* x_923; -x_914 = lean_ctor_get(x_910, 0); -lean_inc(x_914); -x_915 = lean_ctor_get(x_910, 1); +lean_object* x_915; lean_object* x_916; lean_object* x_917; lean_object* x_918; lean_object* x_919; lean_object* x_920; lean_object* x_921; uint8_t x_922; uint8_t x_923; lean_object* x_924; +x_915 = lean_ctor_get(x_911, 0); lean_inc(x_915); -lean_dec(x_910); -x_916 = lean_ctor_get(x_2, 0); +x_916 = lean_ctor_get(x_911, 1); lean_inc(x_916); -x_917 = lean_ctor_get(x_2, 1); +lean_dec(x_911); +x_917 = lean_ctor_get(x_2, 0); lean_inc(x_917); -lean_dec(x_2); -x_918 = lean_ctor_get(x_914, 3); +x_918 = lean_ctor_get(x_2, 1); lean_inc(x_918); -lean_dec(x_914); -x_919 = lean_nat_add(x_918, x_916); -lean_dec(x_916); -lean_dec(x_918); -x_920 = lean_array_get_size(x_915); -x_921 = lean_nat_dec_lt(x_919, x_920); -lean_dec(x_920); -x_922 = l_List_isEmpty___rarg(x_917); -if (x_921 == 0) -{ -lean_object* x_931; lean_object* x_932; -lean_dec(x_919); +lean_dec(x_2); +x_919 = lean_ctor_get(x_915, 3); +lean_inc(x_919); lean_dec(x_915); -x_931 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; -x_932 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_931); -x_923 = x_932; -goto block_930; -} -else -{ -lean_object* x_933; -x_933 = lean_array_fget(x_915, x_919); +x_920 = lean_nat_add(x_919, x_917); +lean_dec(x_917); lean_dec(x_919); -lean_dec(x_915); -x_923 = x_933; -goto block_930; -} -block_930: -{ +x_921 = lean_array_get_size(x_916); +x_922 = lean_nat_dec_lt(x_920, x_921); +lean_dec(x_921); +x_923 = l_List_isEmpty___rarg(x_918); if (x_922 == 0) { -lean_dec(x_911); -lean_dec(x_846); -x_1 = x_923; -x_2 = x_917; -x_10 = x_845; +lean_object* x_932; lean_object* x_933; +lean_dec(x_920); +lean_dec(x_916); +x_932 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; +x_933 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_932); +x_924 = x_933; +goto block_931; +} +else +{ +lean_object* x_934; +x_934 = lean_array_fget(x_916, x_920); +lean_dec(x_920); +lean_dec(x_916); +x_924 = x_934; +goto block_931; +} +block_931: +{ +if (x_923 == 0) +{ +lean_dec(x_912); +lean_dec(x_847); +x_1 = x_924; +x_2 = x_918; +x_11 = x_846; goto _start; } else { -lean_dec(x_917); -if (lean_obj_tag(x_923) == 1) +lean_dec(x_918); +if (lean_obj_tag(x_924) == 1) { -lean_object* x_925; lean_object* x_926; lean_object* x_927; +lean_object* x_926; lean_object* x_927; lean_object* x_928; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4502,33 +4582,33 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_925 = lean_ctor_get(x_923, 0); -lean_inc(x_925); -lean_dec(x_923); -if (lean_is_scalar(x_911)) { - x_926 = lean_alloc_ctor(1, 1, 0); +x_926 = lean_ctor_get(x_924, 0); +lean_inc(x_926); +lean_dec(x_924); +if (lean_is_scalar(x_912)) { + x_927 = lean_alloc_ctor(1, 1, 0); } else { - x_926 = x_911; -} -lean_ctor_set(x_926, 0, x_925); -if (lean_is_scalar(x_846)) { - x_927 = lean_alloc_ctor(0, 2, 0); -} else { - x_927 = x_846; + x_927 = x_912; } lean_ctor_set(x_927, 0, x_926); -lean_ctor_set(x_927, 1, x_845); -return x_927; +if (lean_is_scalar(x_847)) { + x_928 = lean_alloc_ctor(0, 2, 0); +} else { + x_928 = x_847; +} +lean_ctor_set(x_928, 0, x_927); +lean_ctor_set(x_928, 1, x_846); +return x_928; } else { -lean_object* x_928; lean_object* x_929; -lean_dec(x_923); -lean_dec(x_911); -lean_dec(x_846); -x_928 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; -x_929 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_928, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_845); -return x_929; +lean_object* x_929; lean_object* x_930; +lean_dec(x_924); +lean_dec(x_912); +lean_dec(x_847); +x_929 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; +x_930 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_929, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_846); +return x_930; } } } @@ -4537,50 +4617,51 @@ return x_929; } case 10: { -lean_object* x_934; lean_object* x_935; lean_object* x_936; lean_object* x_937; lean_object* x_938; lean_object* x_939; uint8_t x_940; lean_object* x_941; -x_934 = lean_ctor_get(x_12, 1); -lean_inc(x_934); -lean_dec(x_12); -x_935 = lean_st_ref_get(x_9, x_934); -x_936 = lean_ctor_get(x_935, 0); -lean_inc(x_936); -x_937 = lean_ctor_get(x_935, 1); +lean_object* x_935; lean_object* x_936; lean_object* x_937; lean_object* x_938; lean_object* x_939; lean_object* x_940; uint8_t x_941; lean_object* x_942; +x_935 = lean_ctor_get(x_13, 1); +lean_inc(x_935); +lean_dec(x_13); +x_936 = lean_st_ref_get(x_10, x_935); +x_937 = lean_ctor_get(x_936, 0); lean_inc(x_937); -if (lean_is_exclusive(x_935)) { - lean_ctor_release(x_935, 0); - lean_ctor_release(x_935, 1); - x_938 = x_935; +x_938 = lean_ctor_get(x_936, 1); +lean_inc(x_938); +if (lean_is_exclusive(x_936)) { + lean_ctor_release(x_936, 0); + lean_ctor_release(x_936, 1); + x_939 = x_936; } else { - lean_dec_ref(x_935); - x_938 = lean_box(0); + lean_dec_ref(x_936); + x_939 = lean_box(0); } -x_939 = lean_ctor_get(x_936, 0); -lean_inc(x_939); -lean_dec(x_936); -x_940 = 0; -lean_inc(x_13); -x_941 = l_Lean_Expr_constructorApp_x3f(x_939, x_13, x_940); -if (lean_obj_tag(x_941) == 0) +x_940 = lean_ctor_get(x_937, 0); +lean_inc(x_940); +lean_dec(x_937); +x_941 = 0; +lean_inc(x_14); +x_942 = l_Lean_Expr_constructorApp_x3f(x_940, x_14, x_941); +if (lean_obj_tag(x_942) == 0) { -lean_object* x_942; -x_942 = l_Lean_Expr_getAppFn(x_13); -if (lean_obj_tag(x_942) == 4) +lean_object* x_943; +x_943 = l_Lean_Expr_getAppFn(x_14); +if (lean_obj_tag(x_943) == 4) { -lean_object* x_943; lean_object* x_944; lean_object* x_945; lean_object* x_946; -lean_dec(x_938); -x_943 = lean_ctor_get(x_942, 0); -lean_inc(x_943); -x_944 = lean_ctor_get(x_942, 1); +lean_object* x_944; lean_object* x_945; lean_object* x_946; lean_object* x_947; +lean_dec(x_939); +x_944 = lean_ctor_get(x_943, 0); lean_inc(x_944); -lean_dec(x_942); -x_945 = l_Lean_Compiler_LCNF_getDecl_x3f(x_943, x_6, x_7, x_8, x_9, x_937); -x_946 = lean_ctor_get(x_945, 0); -lean_inc(x_946); -if (lean_obj_tag(x_946) == 0) +x_945 = lean_ctor_get(x_943, 1); +lean_inc(x_945); +lean_dec(x_943); +x_946 = l_Lean_Compiler_LCNF_getDecl_x3f(x_944, x_7, x_8, x_9, x_10, x_938); +x_947 = lean_ctor_get(x_946, 0); +lean_inc(x_947); +if (lean_obj_tag(x_947) == 0) { -uint8_t x_947; -lean_dec(x_944); -lean_dec(x_13); +uint8_t x_948; +lean_dec(x_945); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4589,54 +4670,55 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_947 = !lean_is_exclusive(x_945); -if (x_947 == 0) +x_948 = !lean_is_exclusive(x_946); +if (x_948 == 0) { -lean_object* x_948; lean_object* x_949; -x_948 = lean_ctor_get(x_945, 0); -lean_dec(x_948); -x_949 = lean_box(0); -lean_ctor_set(x_945, 0, x_949); -return x_945; +lean_object* x_949; lean_object* x_950; +x_949 = lean_ctor_get(x_946, 0); +lean_dec(x_949); +x_950 = lean_box(0); +lean_ctor_set(x_946, 0, x_950); +return x_946; } else { -lean_object* x_950; lean_object* x_951; lean_object* x_952; -x_950 = lean_ctor_get(x_945, 1); -lean_inc(x_950); -lean_dec(x_945); -x_951 = lean_box(0); -x_952 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_952, 0, x_951); -lean_ctor_set(x_952, 1, x_950); -return x_952; +lean_object* x_951; lean_object* x_952; lean_object* x_953; +x_951 = lean_ctor_get(x_946, 1); +lean_inc(x_951); +lean_dec(x_946); +x_952 = lean_box(0); +x_953 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_953, 0, x_952); +lean_ctor_set(x_953, 1, x_951); +return x_953; } } else { -uint8_t x_953; -x_953 = !lean_is_exclusive(x_945); -if (x_953 == 0) +uint8_t x_954; +x_954 = !lean_is_exclusive(x_946); +if (x_954 == 0) { -lean_object* x_954; lean_object* x_955; lean_object* x_956; lean_object* x_957; lean_object* x_958; lean_object* x_959; uint8_t x_960; -x_954 = lean_ctor_get(x_945, 1); -x_955 = lean_ctor_get(x_945, 0); -lean_dec(x_955); +lean_object* x_955; lean_object* x_956; lean_object* x_957; lean_object* x_958; lean_object* x_959; lean_object* x_960; uint8_t x_961; +x_955 = lean_ctor_get(x_946, 1); x_956 = lean_ctor_get(x_946, 0); -lean_inc(x_956); -lean_dec(x_946); -x_957 = l_Lean_Compiler_LCNF_Decl_getArity(x_956); -x_958 = lean_unsigned_to_nat(0u); -x_959 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_958); -x_960 = lean_nat_dec_eq(x_957, x_959); +lean_dec(x_956); +x_957 = lean_ctor_get(x_947, 0); +lean_inc(x_957); +lean_dec(x_947); +x_958 = l_Lean_Compiler_LCNF_Decl_getArity(x_957); +x_959 = lean_unsigned_to_nat(0u); +x_960 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_959); +x_961 = lean_nat_dec_eq(x_958, x_960); +lean_dec(x_958); +if (x_961 == 0) +{ +lean_object* x_962; +lean_dec(x_960); lean_dec(x_957); -if (x_960 == 0) -{ -lean_object* x_961; -lean_dec(x_959); -lean_dec(x_956); -lean_dec(x_944); -lean_dec(x_13); +lean_dec(x_945); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4645,46 +4727,47 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_961 = lean_box(0); -lean_ctor_set(x_945, 0, x_961); -return x_945; +x_962 = lean_box(0); +lean_ctor_set(x_946, 0, x_962); +return x_946; } else { -lean_object* x_962; lean_object* x_963; lean_object* x_964; lean_object* x_965; lean_object* x_966; lean_object* x_967; lean_object* x_968; lean_object* x_969; -lean_free_object(x_945); -lean_inc(x_956); -x_962 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_956, x_944); -x_963 = lean_ctor_get(x_956, 3); -lean_inc(x_963); -lean_dec(x_956); -x_964 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_959); -x_965 = lean_mk_array(x_959, x_964); -x_966 = lean_unsigned_to_nat(1u); -x_967 = lean_nat_sub(x_959, x_966); -lean_dec(x_959); -x_968 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_965, x_967); +lean_object* x_963; lean_object* x_964; lean_object* x_965; lean_object* x_966; lean_object* x_967; lean_object* x_968; lean_object* x_969; lean_object* x_970; +lean_free_object(x_946); +lean_inc(x_957); +x_963 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_957, x_945); +x_964 = lean_ctor_get(x_957, 3); +lean_inc(x_964); +lean_dec(x_957); +x_965 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_960); +x_966 = lean_mk_array(x_960, x_965); +x_967 = lean_unsigned_to_nat(1u); +x_968 = lean_nat_sub(x_960, x_967); +lean_dec(x_960); +x_969 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_966, x_968); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_969 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_963, x_962, x_968, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_954); -lean_dec(x_963); -if (lean_obj_tag(x_969) == 0) +x_970 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_964, x_963, x_969, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_955); +lean_dec(x_964); +if (lean_obj_tag(x_970) == 0) { -lean_object* x_970; lean_object* x_971; lean_object* x_972; -x_970 = lean_ctor_get(x_969, 0); -lean_inc(x_970); -x_971 = lean_ctor_get(x_969, 1); +lean_object* x_971; lean_object* x_972; lean_object* x_973; +x_971 = lean_ctor_get(x_970, 0); lean_inc(x_971); -lean_dec(x_969); -x_972 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_970, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_971); -return x_972; +x_972 = lean_ctor_get(x_970, 1); +lean_inc(x_972); +lean_dec(x_970); +x_973 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_971, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_972); +return x_973; } else { -uint8_t x_973; +uint8_t x_974; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4693,48 +4776,49 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_973 = !lean_is_exclusive(x_969); -if (x_973 == 0) +x_974 = !lean_is_exclusive(x_970); +if (x_974 == 0) { -return x_969; +return x_970; } else { -lean_object* x_974; lean_object* x_975; lean_object* x_976; -x_974 = lean_ctor_get(x_969, 0); -x_975 = lean_ctor_get(x_969, 1); +lean_object* x_975; lean_object* x_976; lean_object* x_977; +x_975 = lean_ctor_get(x_970, 0); +x_976 = lean_ctor_get(x_970, 1); +lean_inc(x_976); lean_inc(x_975); -lean_inc(x_974); -lean_dec(x_969); -x_976 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_976, 0, x_974); -lean_ctor_set(x_976, 1, x_975); -return x_976; +lean_dec(x_970); +x_977 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_977, 0, x_975); +lean_ctor_set(x_977, 1, x_976); +return x_977; } } } } else { -lean_object* x_977; lean_object* x_978; lean_object* x_979; lean_object* x_980; lean_object* x_981; uint8_t x_982; -x_977 = lean_ctor_get(x_945, 1); -lean_inc(x_977); -lean_dec(x_945); -x_978 = lean_ctor_get(x_946, 0); +lean_object* x_978; lean_object* x_979; lean_object* x_980; lean_object* x_981; lean_object* x_982; uint8_t x_983; +x_978 = lean_ctor_get(x_946, 1); lean_inc(x_978); lean_dec(x_946); -x_979 = l_Lean_Compiler_LCNF_Decl_getArity(x_978); -x_980 = lean_unsigned_to_nat(0u); -x_981 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_13, x_980); -x_982 = lean_nat_dec_eq(x_979, x_981); -lean_dec(x_979); -if (x_982 == 0) +x_979 = lean_ctor_get(x_947, 0); +lean_inc(x_979); +lean_dec(x_947); +x_980 = l_Lean_Compiler_LCNF_Decl_getArity(x_979); +x_981 = lean_unsigned_to_nat(0u); +x_982 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_14, x_981); +x_983 = lean_nat_dec_eq(x_980, x_982); +lean_dec(x_980); +if (x_983 == 0) { -lean_object* x_983; lean_object* x_984; -lean_dec(x_981); -lean_dec(x_978); -lean_dec(x_944); -lean_dec(x_13); +lean_object* x_984; lean_object* x_985; +lean_dec(x_982); +lean_dec(x_979); +lean_dec(x_945); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4743,47 +4827,48 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_983 = lean_box(0); -x_984 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_984, 0, x_983); -lean_ctor_set(x_984, 1, x_977); -return x_984; +x_984 = lean_box(0); +x_985 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_985, 0, x_984); +lean_ctor_set(x_985, 1, x_978); +return x_985; } else { -lean_object* x_985; lean_object* x_986; lean_object* x_987; lean_object* x_988; lean_object* x_989; lean_object* x_990; lean_object* x_991; lean_object* x_992; -lean_inc(x_978); -x_985 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_978, x_944); -x_986 = lean_ctor_get(x_978, 3); -lean_inc(x_986); -lean_dec(x_978); -x_987 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; -lean_inc(x_981); -x_988 = lean_mk_array(x_981, x_987); -x_989 = lean_unsigned_to_nat(1u); -x_990 = lean_nat_sub(x_981, x_989); -lean_dec(x_981); -x_991 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_13, x_988, x_990); +lean_object* x_986; lean_object* x_987; lean_object* x_988; lean_object* x_989; lean_object* x_990; lean_object* x_991; lean_object* x_992; lean_object* x_993; +lean_inc(x_979); +x_986 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_979, x_945); +x_987 = lean_ctor_get(x_979, 3); +lean_inc(x_987); +lean_dec(x_979); +x_988 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1; +lean_inc(x_982); +x_989 = lean_mk_array(x_982, x_988); +x_990 = lean_unsigned_to_nat(1u); +x_991 = lean_nat_sub(x_982, x_990); +lean_dec(x_982); +x_992 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_14, x_989, x_991); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -lean_inc(x_6); -x_992 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_986, x_985, x_991, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_977); -lean_dec(x_986); -if (lean_obj_tag(x_992) == 0) +x_993 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_987, x_986, x_992, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_978); +lean_dec(x_987); +if (lean_obj_tag(x_993) == 0) { -lean_object* x_993; lean_object* x_994; lean_object* x_995; -x_993 = lean_ctor_get(x_992, 0); -lean_inc(x_993); -x_994 = lean_ctor_get(x_992, 1); +lean_object* x_994; lean_object* x_995; lean_object* x_996; +x_994 = lean_ctor_get(x_993, 0); lean_inc(x_994); -lean_dec(x_992); -x_995 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_993, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_994); -return x_995; +x_995 = lean_ctor_get(x_993, 1); +lean_inc(x_995); +lean_dec(x_993); +x_996 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(x_994, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_995); +return x_996; } else { -lean_object* x_996; lean_object* x_997; lean_object* x_998; lean_object* x_999; +lean_object* x_997; lean_object* x_998; lean_object* x_999; lean_object* x_1000; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4792,26 +4877,26 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_996 = lean_ctor_get(x_992, 0); -lean_inc(x_996); -x_997 = lean_ctor_get(x_992, 1); +x_997 = lean_ctor_get(x_993, 0); lean_inc(x_997); -if (lean_is_exclusive(x_992)) { - lean_ctor_release(x_992, 0); - lean_ctor_release(x_992, 1); - x_998 = x_992; +x_998 = lean_ctor_get(x_993, 1); +lean_inc(x_998); +if (lean_is_exclusive(x_993)) { + lean_ctor_release(x_993, 0); + lean_ctor_release(x_993, 1); + x_999 = x_993; } else { - lean_dec_ref(x_992); - x_998 = lean_box(0); + lean_dec_ref(x_993); + x_999 = lean_box(0); } -if (lean_is_scalar(x_998)) { - x_999 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_999)) { + x_1000 = lean_alloc_ctor(1, 2, 0); } else { - x_999 = x_998; + x_1000 = x_999; } -lean_ctor_set(x_999, 0, x_996); -lean_ctor_set(x_999, 1, x_997); -return x_999; +lean_ctor_set(x_1000, 0, x_997); +lean_ctor_set(x_1000, 1, x_998); +return x_1000; } } } @@ -4819,9 +4904,10 @@ return x_999; } else { -lean_object* x_1000; lean_object* x_1001; -lean_dec(x_942); -lean_dec(x_13); +lean_object* x_1001; lean_object* x_1002; +lean_dec(x_943); +lean_dec(x_14); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4830,99 +4916,100 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_1000 = lean_box(0); -if (lean_is_scalar(x_938)) { - x_1001 = lean_alloc_ctor(0, 2, 0); +x_1001 = lean_box(0); +if (lean_is_scalar(x_939)) { + x_1002 = lean_alloc_ctor(0, 2, 0); } else { - x_1001 = x_938; + x_1002 = x_939; } -lean_ctor_set(x_1001, 0, x_1000); -lean_ctor_set(x_1001, 1, x_937); -return x_1001; +lean_ctor_set(x_1002, 0, x_1001); +lean_ctor_set(x_1002, 1, x_938); +return x_1002; } } else { -lean_object* x_1002; lean_object* x_1003; -lean_dec(x_13); -x_1002 = lean_ctor_get(x_941, 0); -lean_inc(x_1002); -if (lean_is_exclusive(x_941)) { - lean_ctor_release(x_941, 0); - x_1003 = x_941; +lean_object* x_1003; lean_object* x_1004; +lean_dec(x_14); +x_1003 = lean_ctor_get(x_942, 0); +lean_inc(x_1003); +if (lean_is_exclusive(x_942)) { + lean_ctor_release(x_942, 0); + x_1004 = x_942; } else { - lean_dec_ref(x_941); - x_1003 = lean_box(0); + lean_dec_ref(x_942); + x_1004 = lean_box(0); } if (lean_obj_tag(x_2) == 0) { -lean_object* x_1004; lean_object* x_1005; +lean_object* x_1005; lean_object* x_1006; +lean_dec(x_1004); lean_dec(x_1003); -lean_dec(x_1002); -lean_dec(x_938); -x_1004 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; -x_1005 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_1004, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_937); -return x_1005; +lean_dec(x_939); +x_1005 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__5; +x_1006 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_1005, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_938); +return x_1006; } else { -lean_object* x_1006; lean_object* x_1007; lean_object* x_1008; lean_object* x_1009; lean_object* x_1010; lean_object* x_1011; lean_object* x_1012; uint8_t x_1013; uint8_t x_1014; lean_object* x_1015; -x_1006 = lean_ctor_get(x_1002, 0); -lean_inc(x_1006); -x_1007 = lean_ctor_get(x_1002, 1); +lean_object* x_1007; lean_object* x_1008; lean_object* x_1009; lean_object* x_1010; lean_object* x_1011; lean_object* x_1012; lean_object* x_1013; uint8_t x_1014; uint8_t x_1015; lean_object* x_1016; +x_1007 = lean_ctor_get(x_1003, 0); lean_inc(x_1007); -lean_dec(x_1002); -x_1008 = lean_ctor_get(x_2, 0); +x_1008 = lean_ctor_get(x_1003, 1); lean_inc(x_1008); -x_1009 = lean_ctor_get(x_2, 1); +lean_dec(x_1003); +x_1009 = lean_ctor_get(x_2, 0); lean_inc(x_1009); -lean_dec(x_2); -x_1010 = lean_ctor_get(x_1006, 3); +x_1010 = lean_ctor_get(x_2, 1); lean_inc(x_1010); -lean_dec(x_1006); -x_1011 = lean_nat_add(x_1010, x_1008); -lean_dec(x_1008); -lean_dec(x_1010); -x_1012 = lean_array_get_size(x_1007); -x_1013 = lean_nat_dec_lt(x_1011, x_1012); -lean_dec(x_1012); -x_1014 = l_List_isEmpty___rarg(x_1009); -if (x_1013 == 0) -{ -lean_object* x_1023; lean_object* x_1024; -lean_dec(x_1011); +lean_dec(x_2); +x_1011 = lean_ctor_get(x_1007, 3); +lean_inc(x_1011); lean_dec(x_1007); -x_1023 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; -x_1024 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_1023); -x_1015 = x_1024; -goto block_1022; -} -else -{ -lean_object* x_1025; -x_1025 = lean_array_fget(x_1007, x_1011); +x_1012 = lean_nat_add(x_1011, x_1009); +lean_dec(x_1009); lean_dec(x_1011); -lean_dec(x_1007); -x_1015 = x_1025; -goto block_1022; -} -block_1022: -{ +x_1013 = lean_array_get_size(x_1008); +x_1014 = lean_nat_dec_lt(x_1012, x_1013); +lean_dec(x_1013); +x_1015 = l_List_isEmpty___rarg(x_1010); if (x_1014 == 0) { -lean_dec(x_1003); -lean_dec(x_938); -x_1 = x_1015; -x_2 = x_1009; -x_10 = x_937; +lean_object* x_1024; lean_object* x_1025; +lean_dec(x_1012); +lean_dec(x_1008); +x_1024 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__10; +x_1025 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_1024); +x_1016 = x_1025; +goto block_1023; +} +else +{ +lean_object* x_1026; +x_1026 = lean_array_fget(x_1008, x_1012); +lean_dec(x_1012); +lean_dec(x_1008); +x_1016 = x_1026; +goto block_1023; +} +block_1023: +{ +if (x_1015 == 0) +{ +lean_dec(x_1004); +lean_dec(x_939); +x_1 = x_1016; +x_2 = x_1010; +x_11 = x_938; goto _start; } else { -lean_dec(x_1009); -if (lean_obj_tag(x_1015) == 1) +lean_dec(x_1010); +if (lean_obj_tag(x_1016) == 1) { -lean_object* x_1017; lean_object* x_1018; lean_object* x_1019; +lean_object* x_1018; lean_object* x_1019; lean_object* x_1020; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -4930,33 +5017,33 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_1017 = lean_ctor_get(x_1015, 0); -lean_inc(x_1017); -lean_dec(x_1015); -if (lean_is_scalar(x_1003)) { - x_1018 = lean_alloc_ctor(1, 1, 0); +x_1018 = lean_ctor_get(x_1016, 0); +lean_inc(x_1018); +lean_dec(x_1016); +if (lean_is_scalar(x_1004)) { + x_1019 = lean_alloc_ctor(1, 1, 0); } else { - x_1018 = x_1003; -} -lean_ctor_set(x_1018, 0, x_1017); -if (lean_is_scalar(x_938)) { - x_1019 = lean_alloc_ctor(0, 2, 0); -} else { - x_1019 = x_938; + x_1019 = x_1004; } lean_ctor_set(x_1019, 0, x_1018); -lean_ctor_set(x_1019, 1, x_937); -return x_1019; +if (lean_is_scalar(x_939)) { + x_1020 = lean_alloc_ctor(0, 2, 0); +} else { + x_1020 = x_939; +} +lean_ctor_set(x_1020, 0, x_1019); +lean_ctor_set(x_1020, 1, x_938); +return x_1020; } else { -lean_object* x_1020; lean_object* x_1021; -lean_dec(x_1015); -lean_dec(x_1003); -lean_dec(x_938); -x_1020 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; -x_1021 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_1020, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_937); -return x_1021; +lean_object* x_1021; lean_object* x_1022; +lean_dec(x_1016); +lean_dec(x_1004); +lean_dec(x_939); +x_1021 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__6; +x_1022 = l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1(x_1021, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_938); +return x_1022; } } } @@ -4965,131 +5052,132 @@ return x_1021; } default: { -lean_object* x_1026; lean_object* x_1027; lean_object* x_1028; lean_object* x_1029; -x_1026 = lean_ctor_get(x_12, 1); -lean_inc(x_1026); -lean_dec(x_12); +lean_object* x_1027; lean_object* x_1028; lean_object* x_1029; lean_object* x_1030; x_1027 = lean_ctor_get(x_13, 1); lean_inc(x_1027); -x_1028 = lean_ctor_get(x_13, 2); -lean_inc(x_1028); lean_dec(x_13); -x_1029 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_1029, 0, x_1027); -lean_ctor_set(x_1029, 1, x_2); -x_1 = x_1028; -x_2 = x_1029; -x_10 = x_1026; +x_1028 = lean_ctor_get(x_14, 1); +lean_inc(x_1028); +x_1029 = lean_ctor_get(x_14, 2); +lean_inc(x_1029); +lean_dec(x_14); +x_1030 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_1030, 0, x_1028); +lean_ctor_set(x_1030, 1, x_2); +x_1 = x_1029; +x_2 = x_1030; +x_11 = x_1027; goto _start; } } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(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_Compiler_LCNF_Simp_inlineProjInst_x3f_visitCode(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) { _start: { switch (lean_obj_tag(x_1)) { case 0: { -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_11 = lean_ctor_get(x_1, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_1, 1); +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_12 = lean_ctor_get(x_1, 0); lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 1); +lean_inc(x_13); lean_dec(x_1); -x_13 = lean_st_ref_get(x_9, x_10); -x_14 = lean_ctor_get(x_13, 1); -lean_inc(x_14); -lean_dec(x_13); -x_15 = lean_st_ref_take(x_3, x_14); -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); +x_14 = lean_st_ref_get(x_10, x_11); +x_15 = lean_ctor_get(x_14, 1); +lean_inc(x_15); +lean_dec(x_14); +x_16 = lean_st_ref_take(x_3, x_15); +x_17 = lean_ctor_get(x_16, 0); lean_inc(x_17); -lean_dec(x_15); -x_18 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_18, 0, x_11); -x_19 = lean_array_push(x_16, x_18); -x_20 = lean_st_ref_set(x_3, x_19, x_17); -x_21 = lean_ctor_get(x_20, 1); -lean_inc(x_21); -lean_dec(x_20); -x_1 = x_12; -x_10 = x_21; +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_19, 0, x_12); +x_20 = lean_array_push(x_17, x_19); +x_21 = lean_st_ref_set(x_3, x_20, x_18); +x_22 = lean_ctor_get(x_21, 1); +lean_inc(x_22); +lean_dec(x_21); +x_1 = x_13; +x_11 = x_22; goto _start; } case 1: { -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; lean_object* x_32; lean_object* x_33; -x_23 = lean_ctor_get(x_1, 0); -lean_inc(x_23); -x_24 = lean_ctor_get(x_1, 1); +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; lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_24 = lean_ctor_get(x_1, 0); lean_inc(x_24); +x_25 = lean_ctor_get(x_1, 1); +lean_inc(x_25); lean_dec(x_1); -x_25 = lean_st_ref_get(x_9, x_10); -x_26 = lean_ctor_get(x_25, 1); -lean_inc(x_26); -lean_dec(x_25); -x_27 = lean_st_ref_take(x_3, x_26); -x_28 = lean_ctor_get(x_27, 0); -lean_inc(x_28); -x_29 = lean_ctor_get(x_27, 1); +x_26 = lean_st_ref_get(x_10, x_11); +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +x_28 = lean_st_ref_take(x_3, x_27); +x_29 = lean_ctor_get(x_28, 0); lean_inc(x_29); -lean_dec(x_27); -x_30 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_30, 0, x_23); -x_31 = lean_array_push(x_28, x_30); -x_32 = lean_st_ref_set(x_3, x_31, x_29); -x_33 = lean_ctor_get(x_32, 1); -lean_inc(x_33); -lean_dec(x_32); -x_1 = x_24; -x_10 = x_33; +x_30 = lean_ctor_get(x_28, 1); +lean_inc(x_30); +lean_dec(x_28); +x_31 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_31, 0, x_24); +x_32 = lean_array_push(x_29, x_31); +x_33 = lean_st_ref_set(x_3, x_32, x_30); +x_34 = lean_ctor_get(x_33, 1); +lean_inc(x_34); +lean_dec(x_33); +x_1 = x_25; +x_11 = x_34; goto _start; } case 5: { -lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_35 = lean_ctor_get(x_1, 0); -lean_inc(x_35); +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_1, 0); +lean_inc(x_36); lean_dec(x_1); -x_36 = l_Lean_Expr_fvar___override(x_35); -x_37 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit(x_36, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -return x_37; +x_37 = l_Lean_Expr_fvar___override(x_36); +x_38 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit(x_37, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +return x_38; } default: { -lean_object* x_38; uint8_t x_39; +lean_object* x_39; uint8_t x_40; +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_38 = l_Lean_Compiler_LCNF_eraseCode(x_1, x_6, x_7, x_8, x_9, x_10); +x_39 = l_Lean_Compiler_LCNF_eraseCode(x_1, x_7, x_8, x_9, x_10, x_11); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); -lean_dec(x_6); -x_39 = !lean_is_exclusive(x_38); -if (x_39 == 0) +x_40 = !lean_is_exclusive(x_39); +if (x_40 == 0) { -lean_object* x_40; lean_object* x_41; -x_40 = lean_ctor_get(x_38, 0); -lean_dec(x_40); -x_41 = lean_box(0); -lean_ctor_set(x_38, 0, x_41); -return x_38; +lean_object* x_41; lean_object* x_42; +x_41 = lean_ctor_get(x_39, 0); +lean_dec(x_41); +x_42 = lean_box(0); +lean_ctor_set(x_39, 0, x_42); +return x_39; } else { -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_38, 1); -lean_inc(x_42); -lean_dec(x_38); -x_43 = lean_box(0); -x_44 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_44, 0, x_43); -lean_ctor_set(x_44, 1, x_42); -return x_44; +lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_43 = lean_ctor_get(x_39, 1); +lean_inc(x_43); +lean_dec(x_39); +x_44 = lean_box(0); +x_45 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_45, 0, x_44); +lean_ctor_set(x_45, 1, x_43); +return x_45; } } } @@ -5104,190 +5192,298 @@ x_2 = lean_mk_empty_array_with_capacity(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___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_Compiler_LCNF_Simp_inlineProjInst_x3f___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_object* x_11) { _start: { -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_11 = lean_box(0); -x_12 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_12, 0, x_1); -lean_ctor_set(x_12, 1, x_11); -x_13 = lean_st_ref_get(x_9, x_10); -x_14 = lean_ctor_get(x_13, 1); -lean_inc(x_14); -lean_dec(x_13); -x_15 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___lambda__1___closed__1; -x_16 = lean_st_mk_ref(x_15, x_14); -x_17 = lean_ctor_get(x_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_16, 1); +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_12 = lean_box(0); +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_1); +lean_ctor_set(x_13, 1, x_12); +x_14 = lean_st_ref_get(x_10, x_11); +x_15 = lean_ctor_get(x_14, 1); +lean_inc(x_15); +lean_dec(x_14); +x_16 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___lambda__1___closed__1; +x_17 = lean_st_mk_ref(x_16, x_15); +x_18 = lean_ctor_get(x_17, 0); lean_inc(x_18); -lean_dec(x_16); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_17); -x_19 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit(x_2, x_12, x_17, x_4, x_5, x_6, x_7, x_8, x_9, x_18); -if (lean_obj_tag(x_19) == 0) -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_19, 1); -lean_inc(x_21); -lean_dec(x_19); -x_22 = lean_st_ref_get(x_9, x_21); -x_23 = lean_ctor_get(x_22, 1); -lean_inc(x_23); -lean_dec(x_22); -x_24 = lean_st_ref_get(x_17, x_23); +x_19 = lean_ctor_get(x_17, 1); +lean_inc(x_19); lean_dec(x_17); -if (lean_obj_tag(x_20) == 0) -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; -x_25 = lean_ctor_get(x_24, 0); -lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -x_27 = l_Lean_Compiler_LCNF_eraseCodeDecls(x_25, x_6, x_7, x_8, x_9, x_26); -lean_dec(x_25); -x_28 = !lean_is_exclusive(x_27); -if (x_28 == 0) -{ -lean_object* x_29; lean_object* x_30; -x_29 = lean_ctor_get(x_27, 0); -lean_dec(x_29); -x_30 = lean_box(0); -lean_ctor_set(x_27, 0, x_30); -return x_27; -} -else -{ -lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_31 = lean_ctor_get(x_27, 1); -lean_inc(x_31); -lean_dec(x_27); -x_32 = lean_box(0); -x_33 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_31); -return x_33; -} -} -else -{ -uint8_t x_34; -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -x_34 = !lean_is_exclusive(x_24); -if (x_34 == 0) -{ -uint8_t x_35; -x_35 = !lean_is_exclusive(x_20); -if (x_35 == 0) -{ -lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_36 = lean_ctor_get(x_24, 0); -x_37 = lean_ctor_get(x_20, 0); -x_38 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_38, 0, x_36); -lean_ctor_set(x_38, 1, x_37); -lean_ctor_set(x_20, 0, x_38); -lean_ctor_set(x_24, 0, x_20); -return x_24; -} -else -{ -lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_39 = lean_ctor_get(x_24, 0); -x_40 = lean_ctor_get(x_20, 0); -lean_inc(x_40); -lean_dec(x_20); -x_41 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_41, 0, x_39); -lean_ctor_set(x_41, 1, x_40); -x_42 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_42, 0, x_41); -lean_ctor_set(x_24, 0, x_42); -return x_24; -} -} -else -{ -lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; -x_43 = lean_ctor_get(x_24, 0); -x_44 = lean_ctor_get(x_24, 1); -lean_inc(x_44); -lean_inc(x_43); -lean_dec(x_24); -x_45 = lean_ctor_get(x_20, 0); -lean_inc(x_45); -if (lean_is_exclusive(x_20)) { - lean_ctor_release(x_20, 0); - x_46 = x_20; -} else { - lean_dec_ref(x_20); - x_46 = lean_box(0); -} -x_47 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_47, 0, x_43); -lean_ctor_set(x_47, 1, x_45); -if (lean_is_scalar(x_46)) { - x_48 = lean_alloc_ctor(1, 1, 0); -} else { - x_48 = x_46; -} -lean_ctor_set(x_48, 0, x_47); -x_49 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_49, 0, x_48); -lean_ctor_set(x_49, 1, x_44); -return x_49; -} -} -} -else -{ -uint8_t x_50; -lean_dec(x_17); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -x_50 = !lean_is_exclusive(x_19); -if (x_50 == 0) -{ -return x_19; -} -else -{ -lean_object* x_51; lean_object* x_52; lean_object* x_53; -x_51 = lean_ctor_get(x_19, 0); -x_52 = lean_ctor_get(x_19, 1); -lean_inc(x_52); -lean_inc(x_51); -lean_dec(x_19); -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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___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, lean_object* x_11) { -_start: -{ -lean_object* x_12; -lean_dec(x_4); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); -x_12 = l_Lean_Compiler_LCNF_inferType(x_1, x_7, x_8, x_9, x_10, x_11); +lean_inc(x_18); +x_20 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit(x_2, x_13, x_18, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_19); +if (lean_obj_tag(x_20) == 0) +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_21 = lean_ctor_get(x_20, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +x_23 = lean_st_ref_get(x_10, x_22); +x_24 = lean_ctor_get(x_23, 1); +lean_inc(x_24); +lean_dec(x_23); +x_25 = lean_st_ref_get(x_18, x_24); +lean_dec(x_18); +if (lean_obj_tag(x_21) == 0) +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_25, 1); +lean_inc(x_27); +lean_dec(x_25); +x_28 = l_Lean_Compiler_LCNF_eraseCodeDecls(x_26, x_7, x_8, x_9, x_10, x_27); +lean_dec(x_26); +x_29 = !lean_is_exclusive(x_28); +if (x_29 == 0) +{ +lean_object* x_30; lean_object* x_31; +x_30 = lean_ctor_get(x_28, 0); +lean_dec(x_30); +x_31 = lean_box(0); +lean_ctor_set(x_28, 0, x_31); +return x_28; +} +else +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_32 = lean_ctor_get(x_28, 1); +lean_inc(x_32); +lean_dec(x_28); +x_33 = lean_box(0); +x_34 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_34, 0, x_33); +lean_ctor_set(x_34, 1, x_32); +return x_34; +} +} +else +{ +uint8_t x_35; +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +x_35 = !lean_is_exclusive(x_25); +if (x_35 == 0) +{ +uint8_t x_36; +x_36 = !lean_is_exclusive(x_21); +if (x_36 == 0) +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_25, 0); +x_38 = lean_ctor_get(x_21, 0); +x_39 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +lean_ctor_set(x_21, 0, x_39); +lean_ctor_set(x_25, 0, x_21); +return x_25; +} +else +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_40 = lean_ctor_get(x_25, 0); +x_41 = lean_ctor_get(x_21, 0); +lean_inc(x_41); +lean_dec(x_21); +x_42 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_42, 0, x_40); +lean_ctor_set(x_42, 1, x_41); +x_43 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_43, 0, x_42); +lean_ctor_set(x_25, 0, x_43); +return x_25; +} +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; +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_dec(x_25); +x_46 = lean_ctor_get(x_21, 0); +lean_inc(x_46); +if (lean_is_exclusive(x_21)) { + lean_ctor_release(x_21, 0); + x_47 = x_21; +} else { + lean_dec_ref(x_21); + x_47 = lean_box(0); +} +x_48 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_48, 0, x_44); +lean_ctor_set(x_48, 1, x_46); +if (lean_is_scalar(x_47)) { + x_49 = lean_alloc_ctor(1, 1, 0); +} else { + x_49 = x_47; +} +lean_ctor_set(x_49, 0, x_48); +x_50 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_50, 0, x_49); +lean_ctor_set(x_50, 1, x_45); +return x_50; +} +} +} +else +{ +uint8_t x_51; +lean_dec(x_18); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +x_51 = !lean_is_exclusive(x_20); +if (x_51 == 0) +{ +return x_20; +} +else +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_52 = lean_ctor_get(x_20, 0); +x_53 = lean_ctor_get(x_20, 1); +lean_inc(x_53); +lean_inc(x_52); +lean_dec(x_20); +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; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___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, lean_object* x_11, lean_object* x_12) { +_start: +{ +lean_object* x_13; +lean_dec(x_4); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +x_13 = l_Lean_Compiler_LCNF_inferType(x_1, 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; +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_Lean_Compiler_LCNF_isClass_x3f(x_14, x_10, x_11, x_15); +lean_dec(x_14); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +if (lean_obj_tag(x_17) == 0) +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = lean_box(0); +x_20 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___lambda__1(x_2, x_3, x_19, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_18); +return x_20; +} +else +{ +uint8_t x_21; +lean_dec(x_17); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_21 = !lean_is_exclusive(x_16); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; +x_22 = lean_ctor_get(x_16, 0); +lean_dec(x_22); +x_23 = lean_box(0); +lean_ctor_set(x_16, 0, x_23); +return x_16; +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_16, 1); +lean_inc(x_24); +lean_dec(x_16); +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; +} +} +} +else +{ +uint8_t x_27; +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_27 = !lean_is_exclusive(x_13); +if (x_27 == 0) +{ +return x_13; +} +else +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_13, 0); +x_29 = lean_ctor_get(x_13, 1); +lean_inc(x_29); +lean_inc(x_28); +lean_dec(x_13); +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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f(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: +{ +if (lean_obj_tag(x_1) == 11) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +x_11 = lean_ctor_get(x_1, 2); +lean_inc(x_11); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_11); +x_12 = l_Lean_Compiler_LCNF_inferType(x_11, x_5, x_6, x_7, x_8, x_9); if (lean_obj_tag(x_12) == 0) { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; @@ -5296,67 +5492,71 @@ lean_inc(x_13); x_14 = lean_ctor_get(x_12, 1); lean_inc(x_14); lean_dec(x_12); -x_15 = l_Lean_Compiler_LCNF_isClass_x3f(x_13, x_9, x_10, x_14); +x_15 = l_Lean_Compiler_LCNF_isClass_x3f(x_13, x_7, x_8, x_14); lean_dec(x_13); x_16 = lean_ctor_get(x_15, 0); lean_inc(x_16); if (lean_obj_tag(x_16) == 0) { -lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); -x_18 = lean_box(0); -x_19 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___lambda__1(x_2, x_3, x_18, x_5, x_6, x_7, x_8, x_9, x_10, x_17); -return x_19; -} -else -{ -uint8_t x_20; -lean_dec(x_16); +uint8_t x_17; +lean_dec(x_11); lean_dec(x_10); -lean_dec(x_9); 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); -x_20 = !lean_is_exclusive(x_15); -if (x_20 == 0) +lean_dec(x_1); +x_17 = !lean_is_exclusive(x_15); +if (x_17 == 0) { -lean_object* x_21; lean_object* x_22; -x_21 = lean_ctor_get(x_15, 0); -lean_dec(x_21); -x_22 = lean_box(0); -lean_ctor_set(x_15, 0, x_22); +lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_15, 0); +lean_dec(x_18); +x_19 = lean_box(0); +lean_ctor_set(x_15, 0, x_19); return x_15; } else { +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_15, 1); +lean_inc(x_20); +lean_dec(x_15); +x_21 = lean_box(0); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_21); +lean_ctor_set(x_22, 1, x_20); +return x_22; +} +} +else +{ lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_dec(x_16); x_23 = lean_ctor_get(x_15, 1); lean_inc(x_23); lean_dec(x_15); x_24 = lean_box(0); -x_25 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_25, 0, x_24); -lean_ctor_set(x_25, 1, x_23); +x_25 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___lambda__2(x_1, x_10, x_11, x_24, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_23); return x_25; } } -} else { uint8_t x_26; +lean_dec(x_11); lean_dec(x_10); -lean_dec(x_9); 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_26 = !lean_is_exclusive(x_12); if (x_26 == 0) { @@ -5377,139 +5577,32 @@ return x_29; } } } +else +{ +lean_object* x_30; lean_object* x_31; +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_30 = lean_box(0); +x_31 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_31, 0, x_30); +lean_ctor_set(x_31, 1, x_9); +return x_31; } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f(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_Compiler_LCNF_Simp_inlineProjInst_x3f___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) { _start: { -if (lean_obj_tag(x_1) == 11) -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_1, 1); -lean_inc(x_9); -x_10 = lean_ctor_get(x_1, 2); -lean_inc(x_10); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_10); -x_11 = l_Lean_Compiler_LCNF_inferType(x_10, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_11) == 0) -{ -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_Compiler_LCNF_isClass_x3f(x_12, x_6, x_7, x_13); -lean_dec(x_12); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -if (lean_obj_tag(x_15) == 0) -{ -uint8_t x_16; -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); +lean_object* x_12; +x_12 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_16 = !lean_is_exclusive(x_14); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; -x_17 = lean_ctor_get(x_14, 0); -lean_dec(x_17); -x_18 = lean_box(0); -lean_ctor_set(x_14, 0, x_18); -return x_14; -} -else -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_14, 1); -lean_inc(x_19); -lean_dec(x_14); -x_20 = lean_box(0); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_20); -lean_ctor_set(x_21, 1, x_19); -return x_21; -} -} -else -{ -lean_object* x_22; lean_object* x_23; lean_object* x_24; -lean_dec(x_15); -x_22 = lean_ctor_get(x_14, 1); -lean_inc(x_22); -lean_dec(x_14); -x_23 = lean_box(0); -x_24 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___lambda__2(x_1, x_9, x_10, x_23, x_2, x_3, x_4, x_5, x_6, x_7, x_22); -return x_24; -} -} -else -{ -uint8_t x_25; -lean_dec(x_10); -lean_dec(x_9); -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_25 = !lean_is_exclusive(x_11); -if (x_25 == 0) -{ -return x_11; -} -else -{ -lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_26 = lean_ctor_get(x_11, 0); -x_27 = lean_ctor_get(x_11, 1); -lean_inc(x_27); -lean_inc(x_26); -lean_dec(x_11); -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; -} -} -} -else -{ -lean_object* x_29; lean_object* x_30; -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_29 = lean_box(0); -x_30 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_30, 0, x_29); -lean_ctor_set(x_30, 1, x_8); -return x_30; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___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) { -_start: -{ -lean_object* x_11; -x_11 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -lean_dec(x_3); -return x_11; +return x_12; } } lean_object* initialize_Init(uint8_t builtin, lean_object*); @@ -5539,6 +5632,8 @@ l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__6); l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__7 = _init_l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__7(); lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__7); +l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__8 = _init_l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__8(); +lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___spec__1___closed__8); l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__1); l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__2 = _init_l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f_visit___closed__2(); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Simp/JpCases.c b/stage0/stdlib/Lean/Compiler/LCNF/Simp/JpCases.c index 73a47500ee..ff3719a946 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Simp/JpCases.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Simp/JpCases.c @@ -1,6 +1,6 @@ // Lean compiler output // Module: Lean.Compiler.LCNF.Simp.JpCases -// Imports: Init Lean.Compiler.LCNF.DependsOn Lean.Compiler.LCNF.InferType Lean.Compiler.LCNF.Simp.Basic +// Imports: Init Lean.Compiler.LCNF.DependsOn Lean.Compiler.LCNF.InferType Lean.Compiler.LCNF.Internalize Lean.Compiler.LCNF.Simp.Basic Lean.Compiler.LCNF.Simp.DiscrM #include #if defined(__clang__) #pragma clang diagnostic ignored "-Wunused-parameter" @@ -14,436 +14,403 @@ extern "C" { #endif lean_object* l_List_reverse___rarg(lean_object*); -static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__3; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___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_panic___at_Lean_Compiler_LCNF_Simp_isJpCases___spec__1(lean_object*); -static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__5; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___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*); static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__4; size_t lean_usize_add(size_t, size_t); lean_object* l_Lean_registerTraceClass(lean_object*, uint8_t, lean_object*); lean_object* l_Lean_stringToMessageData(lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___boxed(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_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___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_RBNode_insert___at___private_Lean_Meta_FunInfo_0__Lean_Meta_getFunInfoAux___spec__1(lean_object*, lean_object*, lean_object*); lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1(lean_object*); LEAN_EXPORT uint8_t l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__1(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___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*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___lambda__1___closed__2; 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_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp_JpCases___hyg_3157_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp_JpCases___hyg_3418_(lean_object*); lean_object* l_Array_append___rarg(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__3; +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpArgsAtJp___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_uset(lean_object*, size_t, lean_object*); static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___closed__2; +LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__6___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__2; -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___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_st_ref_get(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__4___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_name_eq(lean_object*, lean_object*); lean_object* l_Lean_Expr_constructorApp_x3f(lean_object*, lean_object*, uint8_t); lean_object* l_Lean_Compiler_LCNF_instInhabitedCasesCore(lean_object*); -LEAN_EXPORT lean_object* l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate___spec__1___boxed(lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__3(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_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_toSubarray___rarg(lean_object*, lean_object*, lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__2; lean_object* lean_array_get_size(lean_object*); -static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__4; -lean_object* lean_string_append(lean_object*, lean_object*); lean_object* l_Lean_Name_mkStr3(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_MessageData_ofList(lean_object*); LEAN_EXPORT lean_object* l_List_mapTRAux___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__5(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_revFold___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__4___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__5(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__6___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__7(lean_object*, lean_object*, size_t, size_t); lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__1(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__6; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_usize_dec_lt(size_t, size_t); static lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___closed__3; +LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_Simp_isJpCases_x3f_go___lambda__1(lean_object*, lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_revFold___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__2___boxed(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___closed__1; +uint8_t l_Lean_Compiler_LCNF_CodeDecl_dependsOn(lean_object*, lean_object*); +LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__4(lean_object*, lean_object*, lean_object*, size_t, size_t); +static lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__2; LEAN_EXPORT lean_object* l_Lean_RBNode_revFold___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__2(lean_object*, lean_object*); static lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__7___closed__4; LEAN_EXPORT lean_object* l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__2(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__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*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__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*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go(lean_object*, lean_object*); -static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___closed__1; -LEAN_EXPORT uint8_t l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate___spec__1(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases___closed__3; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases_x3f_go___boxed(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_inheritedTraceOptions; lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_attachCodeDecls(lean_object*, lean_object*); lean_object* l_Lean_mkHashMapImp___rarg(lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__1; -static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__4; -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___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*, lean_object*); +uint8_t lean_nat_dec_eq(lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_findCtor(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_depOn(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt___closed__1; extern lean_object* l_Lean_Compiler_LCNF_instInhabitedParam; lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCodeDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_take(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__2___boxed(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___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1___closed__2; -static lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1___closed__1; +LEAN_EXPORT lean_object* l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__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* lean_nat_sub(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__7___closed__2; -static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__2; -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__4___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_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__4___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_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__1(lean_object*, lean_object*); lean_object* l_Lean_RBNode_setBlack___rarg(lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt___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_Compiler_LCNF_Simp_collectJpCasesInfo_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_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___boxed(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_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___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_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt___boxed(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_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___lambda__1(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_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___closed__2; -static lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___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_Compiler_LCNF_Simp_instInhabitedJpCasesInfo; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___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*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___lambda__1___closed__1; lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); -lean_object* l_instInhabited___rarg(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_panic___at_Lean_Expr_getRevArg_x21___spec__1(lean_object*); uint8_t l_Lean_Name_quickCmp(lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases(lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate(lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_findExpr(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__3; lean_object* lean_st_mk_ref(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeCode(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__2; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_JpCasesInfo_ctorNames___default; +LEAN_EXPORT lean_object* l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__1(lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpNewArgs(lean_object*, lean_object*, lean_object*, uint8_t); static lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___closed__1; LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__1___boxed(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__6; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Simp_instInhabitedJpCasesInfo___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__3___boxed(lean_object*, lean_object*); lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___closed__4; size_t lean_usize_of_nat(lean_object*); +LEAN_EXPORT uint8_t l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate___spec__1(lean_object*); extern lean_object* l_Lean_NameSet_empty; -static lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate___boxed(lean_object*); -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1(lean_object*, lean_object*, lean_object*, uint8_t, uint8_t, 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___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__3(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_mkAuxLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentArray_push___rarg(lean_object*, lean_object*); -static lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___closed__2; -static lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases___closed__2; lean_object* l_Lean_Expr_fvar___override(lean_object*); size_t lean_ptr_addr(lean_object*); -static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__5; static lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__7___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__2; LEAN_EXPORT lean_object* l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_CasesCore_getCtorNames(lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__1; static lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__6___closed__1; -static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__6; +static lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__1; +LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2(lean_object*, lean_object*); uint8_t lean_nat_dec_le(lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_AltCore_getCode(lean_object*); +LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__2___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_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_eraseCode(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_instInhabitedReaderT___rarg___boxed(lean_object*, lean_object*); -extern lean_object* l_Lean_Core_instMonadCoreM; +LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__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*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpArgsAtJp(lean_object*, lean_object*, lean_object*, uint8_t); uint8_t l___private_Lean_Util_Trace_0__Lean_checkTraceOption(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases_go___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases_x3f_go___lambda__1___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_RBNode_isRed___rarg(lean_object*); -static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__3; lean_object* l_Lean_Compiler_LCNF_Internalize_internalizeParam(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_LCtx_toLocalContext(lean_object*); lean_object* l_Lean_Compiler_LCNF_getConfig(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__4(lean_object*, size_t, size_t, 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_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__4___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__5(lean_object*, lean_object*, size_t, size_t); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__4(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_ofSubarray___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___closed__2; lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__4; uint8_t l_Lean_Expr_isFVar(lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); +LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__6(lean_object*, lean_object*, lean_object*, size_t, size_t); LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__7(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__7___closed__3; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f(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_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__2(lean_object*, lean_object*, 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_EXPORT lean_object* l_Lean_RBMap_toList___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__1(lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_panic_fn(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__4(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___boxed(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__4; LEAN_EXPORT lean_object* l_Lean_RBNode_revFold___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__4(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_mkAuxFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(size_t, size_t, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases_x3f_go(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__2___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_indentD(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__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_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_ReaderT_instMonadReaderT___rarg(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___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*); +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_NameSet_contains(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__3; static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__3; +LEAN_EXPORT lean_object* l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate___spec__1___boxed(lean_object*); +lean_object* l_Array_findIdx_x3f_loop___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__3(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__5; -LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_Simp_isJpCases_go(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_RBNode_insert___at_Lean_NameMap_insert___spec__1___rarg(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__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_EXPORT uint8_t l_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate(lean_object*); +static lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___closed__1; static lean_object* l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__2(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_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__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*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__4; -static lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases___closed__4; -static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__5; -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__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_RBTree_toList___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__3(lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__7; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__3; LEAN_EXPORT lean_object* l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___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*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate___boxed(lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); -LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_Simp_isJpCases_go(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpNewArgs___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_Simp_isJpCases_x3f_go___lambda__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; uint8_t x_5; +x_3 = lean_ctor_get(x_1, 2); +x_4 = lean_ctor_get(x_2, 0); +x_5 = lean_name_eq(x_3, x_4); +return x_5; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases_x3f_go(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { uint8_t x_5; -x_5 = lean_nat_dec_le(x_4, x_2); +x_5 = lean_nat_dec_lt(x_2, x_4); if (x_5 == 0) { -uint8_t x_6; -lean_dec(x_4); -x_6 = 0; -return x_6; -} -else -{ switch (lean_obj_tag(x_3)) { case 0: { -lean_object* x_7; lean_object* x_8; lean_object* x_9; -x_7 = lean_ctor_get(x_3, 1); -x_8 = lean_unsigned_to_nat(1u); -x_9 = lean_nat_add(x_4, x_8); +lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_6 = lean_ctor_get(x_3, 1); +lean_inc(x_6); +lean_dec(x_3); +x_7 = lean_unsigned_to_nat(1u); +x_8 = lean_nat_add(x_4, x_7); lean_dec(x_4); -x_3 = x_7; -x_4 = x_9; +x_3 = x_6; +x_4 = x_8; goto _start; } case 4: { -lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_dec(x_4); -x_11 = lean_ctor_get(x_3, 0); -x_12 = lean_ctor_get(x_11, 2); -x_13 = lean_ctor_get(x_1, 0); -x_14 = lean_name_eq(x_12, x_13); -return x_14; +x_10 = lean_ctor_get(x_3, 0); +lean_inc(x_10); +lean_dec(x_3); +x_11 = lean_ctor_get(x_1, 2); +x_12 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_isJpCases_x3f_go___lambda__1___boxed), 2, 1); +lean_closure_set(x_12, 0, x_10); +x_13 = lean_array_get_size(x_11); +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Array_findIdx_x3f_loop___rarg(x_11, x_12, x_13, x_14, lean_box(0)); +return x_15; } default: { -uint8_t x_15; +lean_object* x_16; lean_dec(x_4); -x_15 = 0; -return x_15; +lean_dec(x_3); +x_16 = lean_box(0); +return x_16; } } } +else +{ +lean_object* x_17; +lean_dec(x_4); +lean_dec(x_3); +x_17 = lean_box(0); +return x_17; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases_go___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases_x3f_go___lambda__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { -uint8_t x_5; lean_object* x_6; -x_5 = l_Lean_Compiler_LCNF_Simp_isJpCases_go(x_1, x_2, x_3, x_4); -lean_dec(x_3); +uint8_t x_3; lean_object* x_4; +x_3 = l_Lean_Compiler_LCNF_Simp_isJpCases_x3f_go___lambda__1(x_1, x_2); lean_dec(x_2); lean_dec(x_1); -x_6 = lean_box(x_5); -return x_6; +x_4 = lean_box(x_3); +return x_4; } } -LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_isJpCases___spec__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases_x3f_go___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { -lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_Compiler_LCNF_instInhabitedParam; -x_3 = lean_panic_fn(x_2, x_1); -return x_3; +lean_object* x_5; +x_5 = l_Lean_Compiler_LCNF_Simp_isJpCases_x3f_go(x_1, x_2, x_3, x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_5; } } -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_isJpCases___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("Init.Util", 9); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_isJpCases___closed__2() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("getElem!", 8); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_isJpCases___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("index out of bounds", 19); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_isJpCases___closed__4() { -_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_Compiler_LCNF_Simp_isJpCases___closed__1; -x_2 = l_Lean_Compiler_LCNF_Simp_isJpCases___closed__2; -x_3 = lean_unsigned_to_nat(77u); -x_4 = lean_unsigned_to_nat(36u); -x_5 = l_Lean_Compiler_LCNF_Simp_isJpCases___closed__3; -x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); -return x_6; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases(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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases_x3f(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10; x_7 = lean_ctor_get(x_1, 2); +lean_inc(x_7); x_8 = lean_array_get_size(x_7); -x_9 = lean_unsigned_to_nat(1u); +lean_dec(x_7); +x_9 = lean_unsigned_to_nat(0u); x_10 = lean_nat_dec_eq(x_8, x_9); +lean_dec(x_8); if (x_10 == 0) { -uint8_t x_11; lean_object* x_12; lean_object* x_13; -lean_dec(x_8); -x_11 = 0; -x_12 = lean_box(x_11); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_12); -lean_ctor_set(x_13, 1, x_6); -return x_13; +lean_object* x_11; uint8_t x_12; +x_11 = l_Lean_Compiler_LCNF_getConfig(x_2, x_3, x_4, x_5, x_6); +x_12 = !lean_is_exclusive(x_11); +if (x_12 == 0) +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_13 = lean_ctor_get(x_11, 0); +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +lean_dec(x_13); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +x_16 = l_Lean_Compiler_LCNF_Simp_isJpCases_x3f_go(x_1, x_14, x_15, x_9); +lean_dec(x_14); +lean_dec(x_1); +lean_ctor_set(x_11, 0, x_16); +return x_11; } else { -lean_object* x_14; uint8_t x_15; lean_object* x_16; -x_14 = lean_unsigned_to_nat(0u); -x_15 = lean_nat_dec_lt(x_14, x_8); -lean_dec(x_8); -x_16 = l_Lean_Compiler_LCNF_getConfig(x_2, x_3, x_4, x_5, x_6); -if (x_15 == 0) -{ -uint8_t x_17; -x_17 = !lean_is_exclusive(x_16); -if (x_17 == 0) -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; lean_object* x_24; -x_18 = lean_ctor_get(x_16, 0); -x_19 = l_Lean_Compiler_LCNF_Simp_isJpCases___closed__4; -x_20 = l_panic___at_Lean_Compiler_LCNF_Simp_isJpCases___spec__1(x_19); -x_21 = lean_ctor_get(x_18, 0); -lean_inc(x_21); -lean_dec(x_18); -x_22 = lean_ctor_get(x_1, 4); -x_23 = l_Lean_Compiler_LCNF_Simp_isJpCases_go(x_20, x_21, x_22, x_14); -lean_dec(x_21); -lean_dec(x_20); -x_24 = lean_box(x_23); -lean_ctor_set(x_16, 0, x_24); -return x_16; -} -else -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; uint8_t x_31; lean_object* x_32; lean_object* x_33; -x_25 = lean_ctor_get(x_16, 0); -x_26 = lean_ctor_get(x_16, 1); -lean_inc(x_26); -lean_inc(x_25); -lean_dec(x_16); -x_27 = l_Lean_Compiler_LCNF_Simp_isJpCases___closed__4; -x_28 = l_panic___at_Lean_Compiler_LCNF_Simp_isJpCases___spec__1(x_27); -x_29 = lean_ctor_get(x_25, 0); -lean_inc(x_29); -lean_dec(x_25); -x_30 = lean_ctor_get(x_1, 4); -x_31 = l_Lean_Compiler_LCNF_Simp_isJpCases_go(x_28, x_29, x_30, x_14); -lean_dec(x_29); -lean_dec(x_28); -x_32 = lean_box(x_31); -x_33 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_26); -return x_33; +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_17 = lean_ctor_get(x_11, 0); +x_18 = lean_ctor_get(x_11, 1); +lean_inc(x_18); +lean_inc(x_17); +lean_dec(x_11); +x_19 = lean_ctor_get(x_17, 0); +lean_inc(x_19); +lean_dec(x_17); +x_20 = lean_ctor_get(x_1, 4); +lean_inc(x_20); +x_21 = l_Lean_Compiler_LCNF_Simp_isJpCases_x3f_go(x_1, x_19, x_20, x_9); +lean_dec(x_19); +lean_dec(x_1); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_21); +lean_ctor_set(x_22, 1, x_18); +return x_22; } } else { -uint8_t x_34; -x_34 = !lean_is_exclusive(x_16); -if (x_34 == 0) -{ -lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; uint8_t x_39; lean_object* x_40; -x_35 = lean_ctor_get(x_16, 0); -x_36 = lean_array_fget(x_7, x_14); -x_37 = lean_ctor_get(x_35, 0); -lean_inc(x_37); -lean_dec(x_35); -x_38 = lean_ctor_get(x_1, 4); -x_39 = l_Lean_Compiler_LCNF_Simp_isJpCases_go(x_36, x_37, x_38, x_14); -lean_dec(x_37); -lean_dec(x_36); -x_40 = lean_box(x_39); -lean_ctor_set(x_16, 0, x_40); -return x_16; -} -else -{ -lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; uint8_t x_46; lean_object* x_47; lean_object* x_48; -x_41 = lean_ctor_get(x_16, 0); -x_42 = lean_ctor_get(x_16, 1); -lean_inc(x_42); -lean_inc(x_41); -lean_dec(x_16); -x_43 = lean_array_fget(x_7, x_14); -x_44 = lean_ctor_get(x_41, 0); -lean_inc(x_44); -lean_dec(x_41); -x_45 = lean_ctor_get(x_1, 4); -x_46 = l_Lean_Compiler_LCNF_Simp_isJpCases_go(x_43, x_44, x_45, x_14); -lean_dec(x_44); -lean_dec(x_43); -x_47 = lean_box(x_46); -x_48 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_48, 0, x_47); -lean_ctor_set(x_48, 1, x_42); -return x_48; +lean_object* x_23; lean_object* x_24; +lean_dec(x_1); +x_23 = lean_box(0); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_6); +return x_24; } } } -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isJpCases_x3f___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) { _start: { lean_object* x_7; -x_7 = l_Lean_Compiler_LCNF_Simp_isJpCases(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Lean_Compiler_LCNF_Simp_isJpCases_x3f(x_1, x_2, x_3, x_4, x_5, x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -lean_dec(x_1); return x_7; } } -LEAN_EXPORT uint8_t l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate___spec__1(lean_object* x_1) { +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_JpCasesInfo_ctorNames___default() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_NameSet_empty; +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_instInhabitedJpCasesInfo___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_unsigned_to_nat(0u); +x_2 = l_Lean_NameSet_empty; +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_instInhabitedJpCasesInfo() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Compiler_LCNF_Simp_instInhabitedJpCasesInfo___closed__1; +return x_1; +} +} +LEAN_EXPORT uint8_t l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate___spec__1(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -454,58 +421,59 @@ return x_2; } else { -lean_object* x_3; +lean_object* x_3; lean_object* x_4; x_3 = lean_ctor_get(x_1, 2); -if (lean_obj_tag(x_3) == 0) +x_4 = lean_ctor_get(x_3, 1); +if (lean_obj_tag(x_4) == 0) { -lean_object* x_4; lean_object* x_5; uint8_t x_6; -x_4 = lean_ctor_get(x_1, 0); -x_5 = lean_ctor_get(x_1, 3); -x_6 = l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate___spec__1(x_4); -if (x_6 == 0) +lean_object* x_5; lean_object* x_6; uint8_t x_7; +x_5 = lean_ctor_get(x_1, 0); +x_6 = lean_ctor_get(x_1, 3); +x_7 = l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate___spec__1(x_5); +if (x_7 == 0) { -x_1 = x_5; +x_1 = x_6; goto _start; } else { -uint8_t x_8; -x_8 = 1; -return x_8; -} -} -else -{ uint8_t x_9; x_9 = 1; return x_9; } } +else +{ +uint8_t x_10; +x_10 = 1; +return x_10; } } -LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate(lean_object* x_1) { +} +} +LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate(lean_object* x_1) { _start: { uint8_t x_2; -x_2 = l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate___spec__1(x_1); +x_2 = l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate___spec__1(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate___spec__1___boxed(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate___spec__1___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate___spec__1(x_1); +x_2 = l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate___spec__1(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate___boxed(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate(x_1); +x_2 = l_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; @@ -2949,893 +2917,1365 @@ goto _start; } } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__4(lean_object* x_1, size_t x_2, size_t 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_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__4(lean_object* x_1, lean_object* x_2, size_t x_3, size_t 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: { -uint8_t x_11; -x_11 = lean_usize_dec_eq(x_2, x_3); -if (x_11 == 0) +uint8_t x_13; +x_13 = lean_usize_dec_eq(x_3, x_4); +if (x_13 == 0) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; size_t x_17; size_t x_18; -lean_dec(x_4); -x_12 = lean_array_uget(x_1, x_2); -x_13 = l_Lean_Compiler_LCNF_AltCore_getCode(x_12); -lean_dec(x_12); +lean_object* x_14; +lean_dec(x_5); +x_14 = lean_array_uget(x_2, x_3); +if (lean_obj_tag(x_14) == 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_inc(x_16); +x_17 = lean_ctor_get(x_14, 2); +lean_inc(x_17); +lean_dec(x_14); +x_18 = lean_ctor_get(x_1, 2); +lean_inc(x_18); +lean_inc(x_6); +x_19 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go), 8, 2); +lean_closure_set(x_19, 0, x_17); +lean_closure_set(x_19, 1, x_6); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +x_20 = l_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___rarg(x_18, x_15, x_16, x_19, x_7, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_20) == 0) +{ +lean_object* x_21; lean_object* x_22; size_t x_23; size_t x_24; +x_21 = lean_ctor_get(x_20, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +x_23 = 1; +x_24 = lean_usize_add(x_3, x_23); +x_3 = x_24; +x_5 = x_21; +x_12 = x_22; +goto _start; +} +else +{ +uint8_t x_26; +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_1); +x_26 = !lean_is_exclusive(x_20); +if (x_26 == 0) +{ +return x_20; +} +else +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_27 = lean_ctor_get(x_20, 0); +x_28 = lean_ctor_get(x_20, 1); +lean_inc(x_28); +lean_inc(x_27); +lean_dec(x_20); +x_29 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_29, 0, x_27); +lean_ctor_set(x_29, 1, x_28); +return x_29; +} +} +} +else +{ +lean_object* x_30; lean_object* x_31; +x_30 = lean_ctor_get(x_14, 0); +lean_inc(x_30); +lean_dec(x_14); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_31 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go(x_30, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_31) == 0) +{ +lean_object* x_32; lean_object* x_33; size_t x_34; size_t x_35; +x_32 = lean_ctor_get(x_31, 0); +lean_inc(x_32); +x_33 = lean_ctor_get(x_31, 1); +lean_inc(x_33); +lean_dec(x_31); +x_34 = 1; +x_35 = lean_usize_add(x_3, x_34); +x_3 = x_35; +x_5 = x_32; +x_12 = x_33; +goto _start; +} +else +{ +uint8_t x_37; +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_1); +x_37 = !lean_is_exclusive(x_31); +if (x_37 == 0) +{ +return x_31; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_38 = lean_ctor_get(x_31, 0); +x_39 = lean_ctor_get(x_31, 1); +lean_inc(x_39); +lean_inc(x_38); +lean_dec(x_31); +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 +{ +lean_object* x_41; +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_1); +x_41 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_41, 0, x_5); +lean_ctor_set(x_41, 1, x_12); +return x_41; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_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_11; lean_object* x_12; +lean_dec(x_3); +x_11 = lean_ctor_get(x_1, 4); +lean_inc(x_11); +lean_dec(x_1); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_14 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go(x_13, x_5, x_6, x_7, x_8, x_9, x_10); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -x_17 = 1; -x_18 = lean_usize_add(x_2, x_17); -x_2 = x_18; -x_4 = x_15; -x_10 = x_16; -goto _start; +lean_inc(x_4); +x_12 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go(x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_12) == 0) +{ +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_12, 1); +lean_inc(x_13); +lean_dec(x_12); +x_14 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go(x_2, x_4, x_5, x_6, x_7, x_8, x_9, x_13); +return x_14; } else { -lean_object* x_20; +uint8_t x_15; lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_4); -lean_ctor_set(x_20, 1, x_10); -return x_20; +lean_dec(x_4); +lean_dec(x_2); +x_15 = !lean_is_exclusive(x_12); +if (x_15 == 0) +{ +return x_12; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_16 = lean_ctor_get(x_12, 0); +x_17 = lean_ctor_get(x_12, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_12); +x_18 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_18, 0, x_16); +lean_ctor_set(x_18, 1, x_17); +return x_18; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_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) { +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__1() { _start: { -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; -lean_dec(x_3); -x_10 = lean_ctor_get(x_1, 4); -lean_inc(x_10); -lean_dec(x_1); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_11 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go(x_10, x_4, x_5, x_6, x_7, x_8, x_9); -x_12 = lean_ctor_get(x_11, 1); -lean_inc(x_12); -lean_dec(x_11); -x_13 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go(x_2, x_4, x_5, x_6, x_7, x_8, x_12); -return x_13; +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("Init.Util", 9); +return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_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) { +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("getElem!", 8); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("index out of bounds", 19); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__4() { +_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_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__1; +x_2 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__2; +x_3 = lean_unsigned_to_nat(77u); +x_4 = lean_unsigned_to_nat(36u); +x_5 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__3; +x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_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) { _start: { switch (lean_obj_tag(x_1)) { case 0: { -lean_object* x_8; -x_8 = lean_ctor_get(x_1, 1); -lean_inc(x_8); +lean_object* x_9; +x_9 = lean_ctor_get(x_1, 1); +lean_inc(x_9); lean_dec(x_1); -x_1 = x_8; +x_1 = x_9; goto _start; } case 1: { -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_10 = lean_ctor_get(x_1, 0); -lean_inc(x_10); -x_11 = lean_ctor_get(x_1, 1); +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_11 = lean_ctor_get(x_1, 0); lean_inc(x_11); -lean_dec(x_1); -x_12 = lean_ctor_get(x_10, 4); +x_12 = lean_ctor_get(x_1, 1); lean_inc(x_12); -lean_dec(x_10); +lean_dec(x_1); +x_13 = lean_ctor_get(x_11, 4); +lean_inc(x_13); +lean_dec(x_11); +lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_13 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go(x_12, x_2, x_3, x_4, x_5, x_6, x_7); -x_14 = lean_ctor_get(x_13, 1); -lean_inc(x_14); -lean_dec(x_13); -x_1 = x_11; -x_7 = x_14; +x_14 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go(x_13, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_14) == 0) +{ +lean_object* x_15; +x_15 = lean_ctor_get(x_14, 1); +lean_inc(x_15); +lean_dec(x_14); +x_1 = x_12; +x_8 = x_15; goto _start; } -case 2: -{ -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; -x_16 = lean_ctor_get(x_1, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_1, 1); -lean_inc(x_17); -lean_dec(x_1); -x_18 = l_Lean_Compiler_LCNF_Simp_isJpCases(x_16, x_3, x_4, x_5, x_6, x_7); -x_19 = lean_ctor_get(x_18, 0); -lean_inc(x_19); -x_20 = lean_unbox(x_19); -lean_dec(x_19); -if (x_20 == 0) -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_18, 1); -lean_inc(x_21); -lean_dec(x_18); -x_22 = lean_box(0); -x_23 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___lambda__1(x_16, x_17, x_22, x_2, x_3, x_4, x_5, x_6, x_21); -return x_23; -} else { -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; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; -x_24 = lean_ctor_get(x_18, 1); +uint8_t x_17; +lean_dec(x_12); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_17 = !lean_is_exclusive(x_14); +if (x_17 == 0) +{ +return x_14; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_14, 0); +x_19 = lean_ctor_get(x_14, 1); +lean_inc(x_19); +lean_inc(x_18); +lean_dec(x_14); +x_20 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_20, 0, x_18); +lean_ctor_set(x_20, 1, x_19); +return x_20; +} +} +} +case 2: +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_21 = lean_ctor_get(x_1, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_1, 1); +lean_inc(x_22); +lean_dec(x_1); +lean_inc(x_21); +x_23 = l_Lean_Compiler_LCNF_Simp_isJpCases_x3f(x_21, x_4, x_5, x_6, x_7, x_8); +x_24 = lean_ctor_get(x_23, 0); lean_inc(x_24); -lean_dec(x_18); -x_25 = lean_st_ref_get(x_6, x_24); -x_26 = lean_ctor_get(x_25, 1); -lean_inc(x_26); -lean_dec(x_25); -x_27 = lean_st_ref_take(x_2, x_26); -x_28 = lean_ctor_get(x_27, 0); +if (lean_obj_tag(x_24) == 0) +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_23, 1); +lean_inc(x_25); +lean_dec(x_23); +x_26 = lean_box(0); +x_27 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___lambda__1(x_21, x_22, x_26, x_2, x_3, x_4, x_5, x_6, x_7, x_25); +return x_27; +} +else +{ +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; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; +x_28 = lean_ctor_get(x_23, 1); lean_inc(x_28); -x_29 = lean_ctor_get(x_27, 1); +lean_dec(x_23); +x_29 = lean_ctor_get(x_24, 0); lean_inc(x_29); -lean_dec(x_27); -x_30 = lean_ctor_get(x_16, 0); -lean_inc(x_30); -x_31 = l_Lean_NameSet_empty; -x_32 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_28, x_30, x_31); -x_33 = lean_st_ref_set(x_2, x_32, x_29); -x_34 = lean_ctor_get(x_33, 1); +lean_dec(x_24); +x_30 = lean_st_ref_get(x_7, x_28); +x_31 = lean_ctor_get(x_30, 1); +lean_inc(x_31); +lean_dec(x_30); +x_32 = lean_st_ref_take(x_2, x_31); +x_33 = lean_ctor_get(x_32, 0); +lean_inc(x_33); +x_34 = lean_ctor_get(x_32, 1); lean_inc(x_34); -lean_dec(x_33); -x_35 = lean_box(0); -x_36 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___lambda__1(x_16, x_17, x_35, x_2, x_3, x_4, x_5, x_6, x_34); -return x_36; +lean_dec(x_32); +x_35 = lean_ctor_get(x_21, 0); +lean_inc(x_35); +x_36 = l_Lean_NameSet_empty; +x_37 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_37, 0, x_29); +lean_ctor_set(x_37, 1, x_36); +x_38 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_33, x_35, x_37); +x_39 = lean_st_ref_set(x_2, x_38, x_34); +x_40 = lean_ctor_get(x_39, 1); +lean_inc(x_40); +lean_dec(x_39); +x_41 = lean_box(0); +x_42 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___lambda__1(x_21, x_22, x_41, x_2, x_3, x_4, x_5, x_6, x_7, x_40); +return x_42; } } case 3: { -lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; -x_37 = lean_ctor_get(x_1, 0); -lean_inc(x_37); -x_38 = lean_ctor_get(x_1, 1); -lean_inc(x_38); +lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; uint8_t x_48; +x_43 = lean_ctor_get(x_1, 0); +lean_inc(x_43); +x_44 = lean_ctor_get(x_1, 1); +lean_inc(x_44); lean_dec(x_1); -x_39 = lean_array_get_size(x_38); -x_40 = lean_unsigned_to_nat(1u); -x_41 = lean_nat_dec_eq(x_39, x_40); -if (x_41 == 0) +x_45 = lean_st_ref_get(x_7, x_8); +x_46 = lean_ctor_get(x_45, 1); +lean_inc(x_46); +lean_dec(x_45); +x_47 = lean_st_ref_get(x_2, x_46); +x_48 = !lean_is_exclusive(x_47); +if (x_48 == 0) { -lean_object* x_42; lean_object* x_43; -lean_dec(x_39); -lean_dec(x_38); -lean_dec(x_37); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_42 = lean_box(0); -x_43 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_43, 0, x_42); -lean_ctor_set(x_43, 1, x_7); -return x_43; -} -else +lean_object* x_49; lean_object* x_50; lean_object* x_51; +x_49 = lean_ctor_get(x_47, 0); +x_50 = lean_ctor_get(x_47, 1); +x_51 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__3(x_49, x_43); +lean_dec(x_49); +if (lean_obj_tag(x_51) == 0) { -lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; -x_44 = lean_st_ref_get(x_6, x_7); -x_45 = lean_ctor_get(x_44, 1); -lean_inc(x_45); +lean_object* x_52; lean_dec(x_44); -x_46 = lean_st_ref_get(x_2, x_45); -x_47 = !lean_is_exclusive(x_46); -if (x_47 == 0) -{ -lean_object* x_48; lean_object* x_49; lean_object* x_50; -x_48 = lean_ctor_get(x_46, 0); -x_49 = lean_ctor_get(x_46, 1); -x_50 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__3(x_48, x_37); -lean_dec(x_48); -if (lean_obj_tag(x_50) == 0) -{ -lean_object* x_51; -lean_dec(x_39); -lean_dec(x_38); -lean_dec(x_37); +lean_dec(x_43); +lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_51 = lean_box(0); -lean_ctor_set(x_46, 0, x_51); -return x_46; +x_52 = lean_box(0); +lean_ctor_set(x_47, 0, x_52); +return x_47; } else { -lean_object* x_52; lean_object* x_53; uint8_t x_54; -lean_free_object(x_46); -x_52 = lean_ctor_get(x_50, 0); -lean_inc(x_52); -lean_dec(x_50); -x_53 = lean_unsigned_to_nat(0u); -x_54 = lean_nat_dec_lt(x_53, x_39); -lean_dec(x_39); +lean_object* x_53; uint8_t x_54; +lean_free_object(x_47); +x_53 = lean_ctor_get(x_51, 0); +lean_inc(x_53); +lean_dec(x_51); +x_54 = !lean_is_exclusive(x_53); if (x_54 == 0) { -lean_object* x_55; lean_object* x_56; uint8_t x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; uint8_t x_62; -lean_dec(x_38); -x_55 = l_Lean_Compiler_LCNF_Simp_isJpCases___closed__4; -x_56 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_55); -x_57 = 1; -x_58 = l_Lean_Compiler_LCNF_Simp_findExpr(x_56, x_57, x_3, x_4, x_5, x_6, x_49); +lean_object* x_55; lean_object* x_56; lean_object* x_57; uint8_t x_58; +x_55 = lean_ctor_get(x_53, 0); +x_56 = lean_ctor_get(x_53, 1); +x_57 = lean_array_get_size(x_44); +x_58 = lean_nat_dec_lt(x_55, x_57); +lean_dec(x_57); +if (x_58 == 0) +{ +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; +lean_dec(x_44); +x_59 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__4; +x_60 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_59); +x_61 = l_Lean_Compiler_LCNF_Simp_findCtor(x_60, x_3, x_4, x_5, x_6, x_7, x_50); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_59 = lean_ctor_get(x_58, 0); -lean_inc(x_59); -x_60 = lean_ctor_get(x_58, 1); -lean_inc(x_60); -lean_dec(x_58); -x_61 = lean_st_ref_get(x_6, x_60); -x_62 = !lean_is_exclusive(x_61); -if (x_62 == 0) +x_62 = lean_ctor_get(x_61, 0); +lean_inc(x_62); +x_63 = lean_ctor_get(x_61, 1); +lean_inc(x_63); +lean_dec(x_61); +x_64 = lean_st_ref_get(x_7, x_63); +x_65 = !lean_is_exclusive(x_64); +if (x_65 == 0) { -lean_object* x_63; lean_object* x_64; lean_object* x_65; uint8_t x_66; lean_object* x_67; -x_63 = lean_ctor_get(x_61, 0); -x_64 = lean_ctor_get(x_61, 1); -x_65 = lean_ctor_get(x_63, 0); -lean_inc(x_65); -lean_dec(x_63); -x_66 = 0; -x_67 = l_Lean_Expr_constructorApp_x3f(x_65, x_59, x_66); -if (lean_obj_tag(x_67) == 0) +lean_object* x_66; lean_object* x_67; lean_object* x_68; uint8_t x_69; lean_object* x_70; +x_66 = lean_ctor_get(x_64, 0); +x_67 = lean_ctor_get(x_64, 1); +x_68 = lean_ctor_get(x_66, 0); +lean_inc(x_68); +lean_dec(x_66); +x_69 = 0; +x_70 = l_Lean_Expr_constructorApp_x3f(x_68, x_62, x_69); +if (lean_obj_tag(x_70) == 0) { -lean_object* x_68; -lean_dec(x_52); -lean_dec(x_37); -lean_dec(x_6); +lean_object* x_71; +lean_free_object(x_53); +lean_dec(x_56); +lean_dec(x_55); +lean_dec(x_43); +lean_dec(x_7); lean_dec(x_2); -x_68 = lean_box(0); -lean_ctor_set(x_61, 0, x_68); -return x_61; +x_71 = lean_box(0); +lean_ctor_set(x_64, 0, x_71); +return x_64; } else { -lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; uint8_t x_82; -lean_free_object(x_61); -x_69 = lean_ctor_get(x_67, 0); -lean_inc(x_69); -lean_dec(x_67); -x_70 = lean_ctor_get(x_69, 0); -lean_inc(x_70); -lean_dec(x_69); -x_71 = lean_st_ref_get(x_6, x_64); -lean_dec(x_6); -x_72 = lean_ctor_get(x_71, 1); +lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; uint8_t x_85; +lean_free_object(x_64); +x_72 = lean_ctor_get(x_70, 0); lean_inc(x_72); -lean_dec(x_71); -x_73 = lean_st_ref_take(x_2, x_72); -x_74 = lean_ctor_get(x_73, 0); -lean_inc(x_74); -x_75 = lean_ctor_get(x_73, 1); -lean_inc(x_75); -lean_dec(x_73); -x_76 = lean_ctor_get(x_70, 0); -lean_inc(x_76); lean_dec(x_70); +x_73 = lean_ctor_get(x_72, 0); +lean_inc(x_73); +lean_dec(x_72); +x_74 = lean_st_ref_get(x_7, x_67); +lean_dec(x_7); +x_75 = lean_ctor_get(x_74, 1); +lean_inc(x_75); +lean_dec(x_74); +x_76 = lean_st_ref_take(x_2, x_75); x_77 = lean_ctor_get(x_76, 0); lean_inc(x_77); +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); lean_dec(x_76); -x_78 = lean_box(0); -x_79 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_52, x_77, x_78); -x_80 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_74, x_37, x_79); -x_81 = lean_st_ref_set(x_2, x_80, x_75); +x_79 = lean_ctor_get(x_73, 0); +lean_inc(x_79); +lean_dec(x_73); +x_80 = lean_ctor_get(x_79, 0); +lean_inc(x_80); +lean_dec(x_79); +x_81 = lean_box(0); +x_82 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_56, x_80, x_81); +lean_ctor_set(x_53, 1, x_82); +x_83 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_77, x_43, x_53); +x_84 = lean_st_ref_set(x_2, x_83, x_78); lean_dec(x_2); -x_82 = !lean_is_exclusive(x_81); -if (x_82 == 0) +x_85 = !lean_is_exclusive(x_84); +if (x_85 == 0) { -lean_object* x_83; -x_83 = lean_ctor_get(x_81, 0); -lean_dec(x_83); -lean_ctor_set(x_81, 0, x_78); -return x_81; -} -else -{ -lean_object* x_84; lean_object* x_85; -x_84 = lean_ctor_get(x_81, 1); -lean_inc(x_84); -lean_dec(x_81); -x_85 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_85, 0, x_78); -lean_ctor_set(x_85, 1, x_84); -return x_85; -} -} -} -else -{ -lean_object* x_86; lean_object* x_87; lean_object* x_88; uint8_t x_89; lean_object* x_90; -x_86 = lean_ctor_get(x_61, 0); -x_87 = lean_ctor_get(x_61, 1); -lean_inc(x_87); -lean_inc(x_86); -lean_dec(x_61); -x_88 = lean_ctor_get(x_86, 0); -lean_inc(x_88); +lean_object* x_86; +x_86 = lean_ctor_get(x_84, 0); lean_dec(x_86); -x_89 = 0; -x_90 = l_Lean_Expr_constructorApp_x3f(x_88, x_59, x_89); -if (lean_obj_tag(x_90) == 0) -{ -lean_object* x_91; lean_object* x_92; -lean_dec(x_52); -lean_dec(x_37); -lean_dec(x_6); -lean_dec(x_2); -x_91 = lean_box(0); -x_92 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_92, 0, x_91); -lean_ctor_set(x_92, 1, x_87); -return x_92; +lean_ctor_set(x_84, 0, x_81); +return x_84; } else { -lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; -x_93 = lean_ctor_get(x_90, 0); -lean_inc(x_93); -lean_dec(x_90); -x_94 = lean_ctor_get(x_93, 0); -lean_inc(x_94); -lean_dec(x_93); -x_95 = lean_st_ref_get(x_6, x_87); -lean_dec(x_6); -x_96 = lean_ctor_get(x_95, 1); +lean_object* x_87; lean_object* x_88; +x_87 = lean_ctor_get(x_84, 1); +lean_inc(x_87); +lean_dec(x_84); +x_88 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_88, 0, x_81); +lean_ctor_set(x_88, 1, x_87); +return x_88; +} +} +} +else +{ +lean_object* x_89; lean_object* x_90; lean_object* x_91; uint8_t x_92; lean_object* x_93; +x_89 = lean_ctor_get(x_64, 0); +x_90 = lean_ctor_get(x_64, 1); +lean_inc(x_90); +lean_inc(x_89); +lean_dec(x_64); +x_91 = lean_ctor_get(x_89, 0); +lean_inc(x_91); +lean_dec(x_89); +x_92 = 0; +x_93 = l_Lean_Expr_constructorApp_x3f(x_91, x_62, x_92); +if (lean_obj_tag(x_93) == 0) +{ +lean_object* x_94; lean_object* x_95; +lean_free_object(x_53); +lean_dec(x_56); +lean_dec(x_55); +lean_dec(x_43); +lean_dec(x_7); +lean_dec(x_2); +x_94 = lean_box(0); +x_95 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_95, 0, x_94); +lean_ctor_set(x_95, 1, x_90); +return x_95; +} +else +{ +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_96 = lean_ctor_get(x_93, 0); lean_inc(x_96); -lean_dec(x_95); -x_97 = lean_st_ref_take(x_2, x_96); -x_98 = lean_ctor_get(x_97, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_97, 1); +lean_dec(x_93); +x_97 = lean_ctor_get(x_96, 0); +lean_inc(x_97); +lean_dec(x_96); +x_98 = lean_st_ref_get(x_7, x_90); +lean_dec(x_7); +x_99 = lean_ctor_get(x_98, 1); lean_inc(x_99); -lean_dec(x_97); -x_100 = lean_ctor_get(x_94, 0); -lean_inc(x_100); -lean_dec(x_94); +lean_dec(x_98); +x_100 = lean_st_ref_take(x_2, x_99); x_101 = lean_ctor_get(x_100, 0); lean_inc(x_101); +x_102 = lean_ctor_get(x_100, 1); +lean_inc(x_102); lean_dec(x_100); -x_102 = lean_box(0); -x_103 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_52, x_101, x_102); -x_104 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_98, x_37, x_103); -x_105 = lean_st_ref_set(x_2, x_104, x_99); +x_103 = lean_ctor_get(x_97, 0); +lean_inc(x_103); +lean_dec(x_97); +x_104 = lean_ctor_get(x_103, 0); +lean_inc(x_104); +lean_dec(x_103); +x_105 = lean_box(0); +x_106 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_56, x_104, x_105); +lean_ctor_set(x_53, 1, x_106); +x_107 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_101, x_43, x_53); +x_108 = lean_st_ref_set(x_2, x_107, x_102); lean_dec(x_2); -x_106 = lean_ctor_get(x_105, 1); -lean_inc(x_106); -if (lean_is_exclusive(x_105)) { - lean_ctor_release(x_105, 0); - lean_ctor_release(x_105, 1); - x_107 = x_105; +x_109 = lean_ctor_get(x_108, 1); +lean_inc(x_109); +if (lean_is_exclusive(x_108)) { + lean_ctor_release(x_108, 0); + lean_ctor_release(x_108, 1); + x_110 = x_108; } else { - lean_dec_ref(x_105); - x_107 = lean_box(0); + lean_dec_ref(x_108); + x_110 = lean_box(0); } -if (lean_is_scalar(x_107)) { - x_108 = lean_alloc_ctor(0, 2, 0); +if (lean_is_scalar(x_110)) { + x_111 = lean_alloc_ctor(0, 2, 0); } else { - x_108 = x_107; + x_111 = x_110; } -lean_ctor_set(x_108, 0, x_102); -lean_ctor_set(x_108, 1, x_106); -return x_108; +lean_ctor_set(x_111, 0, x_105); +lean_ctor_set(x_111, 1, x_109); +return x_111; } } } else { -lean_object* x_109; uint8_t x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; uint8_t x_115; -x_109 = lean_array_fget(x_38, x_53); -lean_dec(x_38); -x_110 = 1; -x_111 = l_Lean_Compiler_LCNF_Simp_findExpr(x_109, x_110, x_3, x_4, x_5, x_6, x_49); +lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; uint8_t x_117; +x_112 = lean_array_fget(x_44, x_55); +lean_dec(x_44); +x_113 = l_Lean_Compiler_LCNF_Simp_findCtor(x_112, x_3, x_4, x_5, x_6, x_7, x_50); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_112 = lean_ctor_get(x_111, 0); -lean_inc(x_112); -x_113 = lean_ctor_get(x_111, 1); -lean_inc(x_113); -lean_dec(x_111); -x_114 = lean_st_ref_get(x_6, x_113); -x_115 = !lean_is_exclusive(x_114); -if (x_115 == 0) +x_114 = lean_ctor_get(x_113, 0); +lean_inc(x_114); +x_115 = lean_ctor_get(x_113, 1); +lean_inc(x_115); +lean_dec(x_113); +x_116 = lean_st_ref_get(x_7, x_115); +x_117 = !lean_is_exclusive(x_116); +if (x_117 == 0) { -lean_object* x_116; lean_object* x_117; lean_object* x_118; uint8_t x_119; lean_object* x_120; -x_116 = lean_ctor_get(x_114, 0); -x_117 = lean_ctor_get(x_114, 1); +lean_object* x_118; lean_object* x_119; lean_object* x_120; uint8_t x_121; lean_object* x_122; x_118 = lean_ctor_get(x_116, 0); -lean_inc(x_118); -lean_dec(x_116); -x_119 = 0; -x_120 = l_Lean_Expr_constructorApp_x3f(x_118, x_112, x_119); -if (lean_obj_tag(x_120) == 0) +x_119 = lean_ctor_get(x_116, 1); +x_120 = lean_ctor_get(x_118, 0); +lean_inc(x_120); +lean_dec(x_118); +x_121 = 0; +x_122 = l_Lean_Expr_constructorApp_x3f(x_120, x_114, x_121); +if (lean_obj_tag(x_122) == 0) { -lean_object* x_121; -lean_dec(x_52); -lean_dec(x_37); -lean_dec(x_6); +lean_object* x_123; +lean_free_object(x_53); +lean_dec(x_56); +lean_dec(x_55); +lean_dec(x_43); +lean_dec(x_7); lean_dec(x_2); -x_121 = lean_box(0); -lean_ctor_set(x_114, 0, x_121); -return x_114; +x_123 = lean_box(0); +lean_ctor_set(x_116, 0, x_123); +return x_116; } else { -lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; uint8_t x_135; -lean_free_object(x_114); -x_122 = lean_ctor_get(x_120, 0); -lean_inc(x_122); -lean_dec(x_120); -x_123 = lean_ctor_get(x_122, 0); -lean_inc(x_123); +lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; uint8_t x_137; +lean_free_object(x_116); +x_124 = lean_ctor_get(x_122, 0); +lean_inc(x_124); lean_dec(x_122); -x_124 = lean_st_ref_get(x_6, x_117); -lean_dec(x_6); -x_125 = lean_ctor_get(x_124, 1); +x_125 = lean_ctor_get(x_124, 0); lean_inc(x_125); lean_dec(x_124); -x_126 = lean_st_ref_take(x_2, x_125); -x_127 = lean_ctor_get(x_126, 0); +x_126 = lean_st_ref_get(x_7, x_119); +lean_dec(x_7); +x_127 = lean_ctor_get(x_126, 1); lean_inc(x_127); -x_128 = lean_ctor_get(x_126, 1); -lean_inc(x_128); lean_dec(x_126); -x_129 = lean_ctor_get(x_123, 0); +x_128 = lean_st_ref_take(x_2, x_127); +x_129 = lean_ctor_get(x_128, 0); lean_inc(x_129); -lean_dec(x_123); -x_130 = lean_ctor_get(x_129, 0); +x_130 = lean_ctor_get(x_128, 1); lean_inc(x_130); -lean_dec(x_129); -x_131 = lean_box(0); -x_132 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_52, x_130, x_131); -x_133 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_127, x_37, x_132); -x_134 = lean_st_ref_set(x_2, x_133, x_128); +lean_dec(x_128); +x_131 = lean_ctor_get(x_125, 0); +lean_inc(x_131); +lean_dec(x_125); +x_132 = lean_ctor_get(x_131, 0); +lean_inc(x_132); +lean_dec(x_131); +x_133 = lean_box(0); +x_134 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_56, x_132, x_133); +lean_ctor_set(x_53, 1, x_134); +x_135 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_129, x_43, x_53); +x_136 = lean_st_ref_set(x_2, x_135, x_130); lean_dec(x_2); -x_135 = !lean_is_exclusive(x_134); -if (x_135 == 0) +x_137 = !lean_is_exclusive(x_136); +if (x_137 == 0) { -lean_object* x_136; -x_136 = lean_ctor_get(x_134, 0); -lean_dec(x_136); -lean_ctor_set(x_134, 0, x_131); -return x_134; +lean_object* x_138; +x_138 = lean_ctor_get(x_136, 0); +lean_dec(x_138); +lean_ctor_set(x_136, 0, x_133); +return x_136; } else { -lean_object* x_137; lean_object* x_138; -x_137 = lean_ctor_get(x_134, 1); -lean_inc(x_137); -lean_dec(x_134); -x_138 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_138, 0, x_131); -lean_ctor_set(x_138, 1, x_137); -return x_138; -} -} -} -else -{ -lean_object* x_139; lean_object* x_140; lean_object* x_141; uint8_t x_142; lean_object* x_143; -x_139 = lean_ctor_get(x_114, 0); -x_140 = lean_ctor_get(x_114, 1); -lean_inc(x_140); +lean_object* x_139; lean_object* x_140; +x_139 = lean_ctor_get(x_136, 1); lean_inc(x_139); -lean_dec(x_114); -x_141 = lean_ctor_get(x_139, 0); -lean_inc(x_141); -lean_dec(x_139); -x_142 = 0; -x_143 = l_Lean_Expr_constructorApp_x3f(x_141, x_112, x_142); -if (lean_obj_tag(x_143) == 0) -{ -lean_object* x_144; lean_object* x_145; -lean_dec(x_52); -lean_dec(x_37); -lean_dec(x_6); -lean_dec(x_2); -x_144 = lean_box(0); -x_145 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_145, 0, x_144); -lean_ctor_set(x_145, 1, x_140); -return x_145; +lean_dec(x_136); +x_140 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_140, 0, x_133); +lean_ctor_set(x_140, 1, x_139); +return x_140; +} +} } else { -lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; -x_146 = lean_ctor_get(x_143, 0); -lean_inc(x_146); -lean_dec(x_143); -x_147 = lean_ctor_get(x_146, 0); -lean_inc(x_147); -lean_dec(x_146); -x_148 = lean_st_ref_get(x_6, x_140); -lean_dec(x_6); -x_149 = lean_ctor_get(x_148, 1); +lean_object* x_141; lean_object* x_142; lean_object* x_143; uint8_t x_144; lean_object* x_145; +x_141 = lean_ctor_get(x_116, 0); +x_142 = lean_ctor_get(x_116, 1); +lean_inc(x_142); +lean_inc(x_141); +lean_dec(x_116); +x_143 = lean_ctor_get(x_141, 0); +lean_inc(x_143); +lean_dec(x_141); +x_144 = 0; +x_145 = l_Lean_Expr_constructorApp_x3f(x_143, x_114, x_144); +if (lean_obj_tag(x_145) == 0) +{ +lean_object* x_146; lean_object* x_147; +lean_free_object(x_53); +lean_dec(x_56); +lean_dec(x_55); +lean_dec(x_43); +lean_dec(x_7); +lean_dec(x_2); +x_146 = lean_box(0); +x_147 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_147, 0, x_146); +lean_ctor_set(x_147, 1, x_142); +return x_147; +} +else +{ +lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; +x_148 = lean_ctor_get(x_145, 0); +lean_inc(x_148); +lean_dec(x_145); +x_149 = lean_ctor_get(x_148, 0); lean_inc(x_149); lean_dec(x_148); -x_150 = lean_st_ref_take(x_2, x_149); -x_151 = lean_ctor_get(x_150, 0); +x_150 = lean_st_ref_get(x_7, x_142); +lean_dec(x_7); +x_151 = lean_ctor_get(x_150, 1); lean_inc(x_151); -x_152 = lean_ctor_get(x_150, 1); -lean_inc(x_152); lean_dec(x_150); -x_153 = lean_ctor_get(x_147, 0); +x_152 = lean_st_ref_take(x_2, x_151); +x_153 = lean_ctor_get(x_152, 0); lean_inc(x_153); -lean_dec(x_147); -x_154 = lean_ctor_get(x_153, 0); +x_154 = lean_ctor_get(x_152, 1); lean_inc(x_154); -lean_dec(x_153); -x_155 = lean_box(0); -x_156 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_52, x_154, x_155); -x_157 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_151, x_37, x_156); -x_158 = lean_st_ref_set(x_2, x_157, x_152); +lean_dec(x_152); +x_155 = lean_ctor_get(x_149, 0); +lean_inc(x_155); +lean_dec(x_149); +x_156 = lean_ctor_get(x_155, 0); +lean_inc(x_156); +lean_dec(x_155); +x_157 = lean_box(0); +x_158 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_56, x_156, x_157); +lean_ctor_set(x_53, 1, x_158); +x_159 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_153, x_43, x_53); +x_160 = lean_st_ref_set(x_2, x_159, x_154); lean_dec(x_2); -x_159 = lean_ctor_get(x_158, 1); -lean_inc(x_159); -if (lean_is_exclusive(x_158)) { - lean_ctor_release(x_158, 0); - lean_ctor_release(x_158, 1); - x_160 = x_158; +x_161 = lean_ctor_get(x_160, 1); +lean_inc(x_161); +if (lean_is_exclusive(x_160)) { + lean_ctor_release(x_160, 0); + lean_ctor_release(x_160, 1); + x_162 = x_160; } else { - lean_dec_ref(x_158); - x_160 = lean_box(0); + lean_dec_ref(x_160); + x_162 = lean_box(0); } -if (lean_is_scalar(x_160)) { - x_161 = lean_alloc_ctor(0, 2, 0); +if (lean_is_scalar(x_162)) { + x_163 = lean_alloc_ctor(0, 2, 0); } else { - x_161 = x_160; -} -lean_ctor_set(x_161, 0, x_155); -lean_ctor_set(x_161, 1, x_159); -return x_161; + x_163 = x_162; } +lean_ctor_set(x_163, 0, x_157); +lean_ctor_set(x_163, 1, x_161); +return x_163; } } } } else { -lean_object* x_162; lean_object* x_163; lean_object* x_164; -x_162 = lean_ctor_get(x_46, 0); -x_163 = lean_ctor_get(x_46, 1); -lean_inc(x_163); -lean_inc(x_162); -lean_dec(x_46); -x_164 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__3(x_162, x_37); -lean_dec(x_162); -if (lean_obj_tag(x_164) == 0) +lean_object* x_164; lean_object* x_165; lean_object* x_166; uint8_t x_167; +x_164 = lean_ctor_get(x_53, 0); +x_165 = lean_ctor_get(x_53, 1); +lean_inc(x_165); +lean_inc(x_164); +lean_dec(x_53); +x_166 = lean_array_get_size(x_44); +x_167 = lean_nat_dec_lt(x_164, x_166); +lean_dec(x_166); +if (x_167 == 0) { -lean_object* x_165; lean_object* x_166; -lean_dec(x_39); -lean_dec(x_38); -lean_dec(x_37); +lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; uint8_t x_178; lean_object* x_179; +lean_dec(x_44); +x_168 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__4; +x_169 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_168); +x_170 = l_Lean_Compiler_LCNF_Simp_findCtor(x_169, x_3, x_4, x_5, x_6, x_7, x_50); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -lean_dec(x_2); -x_165 = lean_box(0); -x_166 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_166, 0, x_165); -lean_ctor_set(x_166, 1, x_163); -return x_166; -} -else -{ -lean_object* x_167; lean_object* x_168; uint8_t x_169; -x_167 = lean_ctor_get(x_164, 0); -lean_inc(x_167); -lean_dec(x_164); -x_168 = lean_unsigned_to_nat(0u); -x_169 = lean_nat_dec_lt(x_168, x_39); -lean_dec(x_39); -if (x_169 == 0) -{ -lean_object* x_170; lean_object* x_171; uint8_t x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; lean_object* x_178; lean_object* x_179; lean_object* x_180; uint8_t x_181; lean_object* x_182; -lean_dec(x_38); -x_170 = l_Lean_Compiler_LCNF_Simp_isJpCases___closed__4; -x_171 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_170); -x_172 = 1; -x_173 = l_Lean_Compiler_LCNF_Simp_findExpr(x_171, x_172, x_3, x_4, x_5, x_6, x_163); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); +x_171 = lean_ctor_get(x_170, 0); +lean_inc(x_171); +x_172 = lean_ctor_get(x_170, 1); +lean_inc(x_172); +lean_dec(x_170); +x_173 = lean_st_ref_get(x_7, x_172); x_174 = lean_ctor_get(x_173, 0); lean_inc(x_174); x_175 = lean_ctor_get(x_173, 1); lean_inc(x_175); -lean_dec(x_173); -x_176 = lean_st_ref_get(x_6, x_175); -x_177 = lean_ctor_get(x_176, 0); +if (lean_is_exclusive(x_173)) { + lean_ctor_release(x_173, 0); + lean_ctor_release(x_173, 1); + x_176 = x_173; +} else { + lean_dec_ref(x_173); + x_176 = lean_box(0); +} +x_177 = lean_ctor_get(x_174, 0); lean_inc(x_177); -x_178 = lean_ctor_get(x_176, 1); -lean_inc(x_178); -if (lean_is_exclusive(x_176)) { - lean_ctor_release(x_176, 0); - lean_ctor_release(x_176, 1); - x_179 = x_176; -} else { - lean_dec_ref(x_176); - x_179 = lean_box(0); -} -x_180 = lean_ctor_get(x_177, 0); -lean_inc(x_180); -lean_dec(x_177); -x_181 = 0; -x_182 = l_Lean_Expr_constructorApp_x3f(x_180, x_174, x_181); -if (lean_obj_tag(x_182) == 0) +lean_dec(x_174); +x_178 = 0; +x_179 = l_Lean_Expr_constructorApp_x3f(x_177, x_171, x_178); +if (lean_obj_tag(x_179) == 0) { -lean_object* x_183; lean_object* x_184; -lean_dec(x_167); -lean_dec(x_37); -lean_dec(x_6); +lean_object* x_180; lean_object* x_181; +lean_dec(x_165); +lean_dec(x_164); +lean_dec(x_43); +lean_dec(x_7); lean_dec(x_2); -x_183 = lean_box(0); -if (lean_is_scalar(x_179)) { - x_184 = lean_alloc_ctor(0, 2, 0); +x_180 = lean_box(0); +if (lean_is_scalar(x_176)) { + x_181 = lean_alloc_ctor(0, 2, 0); } else { - x_184 = x_179; + x_181 = x_176; } -lean_ctor_set(x_184, 0, x_183); -lean_ctor_set(x_184, 1, x_178); -return x_184; +lean_ctor_set(x_181, 0, x_180); +lean_ctor_set(x_181, 1, x_175); +return x_181; } else { -lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; lean_object* x_191; lean_object* x_192; lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; lean_object* x_198; lean_object* x_199; lean_object* x_200; +lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; lean_object* x_191; lean_object* x_192; lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; lean_object* x_198; +lean_dec(x_176); +x_182 = lean_ctor_get(x_179, 0); +lean_inc(x_182); lean_dec(x_179); -x_185 = lean_ctor_get(x_182, 0); -lean_inc(x_185); +x_183 = lean_ctor_get(x_182, 0); +lean_inc(x_183); lean_dec(x_182); -x_186 = lean_ctor_get(x_185, 0); -lean_inc(x_186); -lean_dec(x_185); -x_187 = lean_st_ref_get(x_6, x_178); -lean_dec(x_6); -x_188 = lean_ctor_get(x_187, 1); +x_184 = lean_st_ref_get(x_7, x_175); +lean_dec(x_7); +x_185 = lean_ctor_get(x_184, 1); +lean_inc(x_185); +lean_dec(x_184); +x_186 = lean_st_ref_take(x_2, x_185); +x_187 = lean_ctor_get(x_186, 0); +lean_inc(x_187); +x_188 = lean_ctor_get(x_186, 1); lean_inc(x_188); -lean_dec(x_187); -x_189 = lean_st_ref_take(x_2, x_188); +lean_dec(x_186); +x_189 = lean_ctor_get(x_183, 0); +lean_inc(x_189); +lean_dec(x_183); x_190 = lean_ctor_get(x_189, 0); lean_inc(x_190); -x_191 = lean_ctor_get(x_189, 1); -lean_inc(x_191); lean_dec(x_189); -x_192 = lean_ctor_get(x_186, 0); -lean_inc(x_192); -lean_dec(x_186); -x_193 = lean_ctor_get(x_192, 0); -lean_inc(x_193); -lean_dec(x_192); -x_194 = lean_box(0); -x_195 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_167, x_193, x_194); -x_196 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_190, x_37, x_195); -x_197 = lean_st_ref_set(x_2, x_196, x_191); +x_191 = lean_box(0); +x_192 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_165, x_190, x_191); +x_193 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_193, 0, x_164); +lean_ctor_set(x_193, 1, x_192); +x_194 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_187, x_43, x_193); +x_195 = lean_st_ref_set(x_2, x_194, x_188); lean_dec(x_2); -x_198 = lean_ctor_get(x_197, 1); -lean_inc(x_198); -if (lean_is_exclusive(x_197)) { - lean_ctor_release(x_197, 0); - lean_ctor_release(x_197, 1); - x_199 = x_197; +x_196 = lean_ctor_get(x_195, 1); +lean_inc(x_196); +if (lean_is_exclusive(x_195)) { + lean_ctor_release(x_195, 0); + lean_ctor_release(x_195, 1); + x_197 = x_195; } else { - lean_dec_ref(x_197); - x_199 = lean_box(0); + lean_dec_ref(x_195); + x_197 = lean_box(0); } -if (lean_is_scalar(x_199)) { - x_200 = lean_alloc_ctor(0, 2, 0); +if (lean_is_scalar(x_197)) { + x_198 = lean_alloc_ctor(0, 2, 0); } else { - x_200 = x_199; + x_198 = x_197; } -lean_ctor_set(x_200, 0, x_194); -lean_ctor_set(x_200, 1, x_198); -return x_200; +lean_ctor_set(x_198, 0, x_191); +lean_ctor_set(x_198, 1, x_196); +return x_198; } } else { -lean_object* x_201; uint8_t x_202; lean_object* x_203; lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_object* x_207; lean_object* x_208; lean_object* x_209; lean_object* x_210; uint8_t x_211; lean_object* x_212; -x_201 = lean_array_fget(x_38, x_168); -lean_dec(x_38); -x_202 = 1; -x_203 = l_Lean_Compiler_LCNF_Simp_findExpr(x_201, x_202, x_3, x_4, x_5, x_6, x_163); +lean_object* x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_object* x_207; uint8_t x_208; lean_object* x_209; +x_199 = lean_array_fget(x_44, x_164); +lean_dec(x_44); +x_200 = l_Lean_Compiler_LCNF_Simp_findCtor(x_199, x_3, x_4, x_5, x_6, x_7, x_50); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); +x_201 = lean_ctor_get(x_200, 0); +lean_inc(x_201); +x_202 = lean_ctor_get(x_200, 1); +lean_inc(x_202); +lean_dec(x_200); +x_203 = lean_st_ref_get(x_7, x_202); x_204 = lean_ctor_get(x_203, 0); lean_inc(x_204); x_205 = lean_ctor_get(x_203, 1); lean_inc(x_205); -lean_dec(x_203); -x_206 = lean_st_ref_get(x_6, x_205); -x_207 = lean_ctor_get(x_206, 0); +if (lean_is_exclusive(x_203)) { + lean_ctor_release(x_203, 0); + lean_ctor_release(x_203, 1); + x_206 = x_203; +} else { + lean_dec_ref(x_203); + x_206 = lean_box(0); +} +x_207 = lean_ctor_get(x_204, 0); lean_inc(x_207); -x_208 = lean_ctor_get(x_206, 1); -lean_inc(x_208); -if (lean_is_exclusive(x_206)) { - lean_ctor_release(x_206, 0); - lean_ctor_release(x_206, 1); - x_209 = x_206; -} else { - lean_dec_ref(x_206); - x_209 = lean_box(0); -} -x_210 = lean_ctor_get(x_207, 0); -lean_inc(x_210); -lean_dec(x_207); -x_211 = 0; -x_212 = l_Lean_Expr_constructorApp_x3f(x_210, x_204, x_211); -if (lean_obj_tag(x_212) == 0) +lean_dec(x_204); +x_208 = 0; +x_209 = l_Lean_Expr_constructorApp_x3f(x_207, x_201, x_208); +if (lean_obj_tag(x_209) == 0) { -lean_object* x_213; lean_object* x_214; -lean_dec(x_167); -lean_dec(x_37); -lean_dec(x_6); +lean_object* x_210; lean_object* x_211; +lean_dec(x_165); +lean_dec(x_164); +lean_dec(x_43); +lean_dec(x_7); lean_dec(x_2); -x_213 = lean_box(0); -if (lean_is_scalar(x_209)) { - x_214 = lean_alloc_ctor(0, 2, 0); +x_210 = lean_box(0); +if (lean_is_scalar(x_206)) { + x_211 = lean_alloc_ctor(0, 2, 0); } else { - x_214 = x_209; + x_211 = x_206; } -lean_ctor_set(x_214, 0, x_213); -lean_ctor_set(x_214, 1, x_208); -return x_214; +lean_ctor_set(x_211, 0, x_210); +lean_ctor_set(x_211, 1, x_205); +return x_211; } else { -lean_object* x_215; lean_object* x_216; lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; +lean_object* x_212; lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; lean_object* x_228; +lean_dec(x_206); +x_212 = lean_ctor_get(x_209, 0); +lean_inc(x_212); lean_dec(x_209); -x_215 = lean_ctor_get(x_212, 0); -lean_inc(x_215); +x_213 = lean_ctor_get(x_212, 0); +lean_inc(x_213); lean_dec(x_212); -x_216 = lean_ctor_get(x_215, 0); -lean_inc(x_216); -lean_dec(x_215); -x_217 = lean_st_ref_get(x_6, x_208); -lean_dec(x_6); -x_218 = lean_ctor_get(x_217, 1); +x_214 = lean_st_ref_get(x_7, x_205); +lean_dec(x_7); +x_215 = lean_ctor_get(x_214, 1); +lean_inc(x_215); +lean_dec(x_214); +x_216 = lean_st_ref_take(x_2, x_215); +x_217 = lean_ctor_get(x_216, 0); +lean_inc(x_217); +x_218 = lean_ctor_get(x_216, 1); lean_inc(x_218); -lean_dec(x_217); -x_219 = lean_st_ref_take(x_2, x_218); +lean_dec(x_216); +x_219 = lean_ctor_get(x_213, 0); +lean_inc(x_219); +lean_dec(x_213); x_220 = lean_ctor_get(x_219, 0); lean_inc(x_220); -x_221 = lean_ctor_get(x_219, 1); -lean_inc(x_221); lean_dec(x_219); -x_222 = lean_ctor_get(x_216, 0); -lean_inc(x_222); -lean_dec(x_216); -x_223 = lean_ctor_get(x_222, 0); -lean_inc(x_223); -lean_dec(x_222); -x_224 = lean_box(0); -x_225 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_167, x_223, x_224); -x_226 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_220, x_37, x_225); -x_227 = lean_st_ref_set(x_2, x_226, x_221); +x_221 = lean_box(0); +x_222 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_165, x_220, x_221); +x_223 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_223, 0, x_164); +lean_ctor_set(x_223, 1, x_222); +x_224 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_217, x_43, x_223); +x_225 = lean_st_ref_set(x_2, x_224, x_218); lean_dec(x_2); -x_228 = lean_ctor_get(x_227, 1); -lean_inc(x_228); -if (lean_is_exclusive(x_227)) { - lean_ctor_release(x_227, 0); - lean_ctor_release(x_227, 1); - x_229 = x_227; +x_226 = lean_ctor_get(x_225, 1); +lean_inc(x_226); +if (lean_is_exclusive(x_225)) { + lean_ctor_release(x_225, 0); + lean_ctor_release(x_225, 1); + x_227 = x_225; } else { - lean_dec_ref(x_227); - x_229 = lean_box(0); + lean_dec_ref(x_225); + x_227 = lean_box(0); } -if (lean_is_scalar(x_229)) { - x_230 = lean_alloc_ctor(0, 2, 0); +if (lean_is_scalar(x_227)) { + x_228 = lean_alloc_ctor(0, 2, 0); } else { - x_230 = x_229; + x_228 = x_227; } -lean_ctor_set(x_230, 0, x_224); -lean_ctor_set(x_230, 1, x_228); -return x_230; +lean_ctor_set(x_228, 0, x_221); +lean_ctor_set(x_228, 1, x_226); +return x_228; } } } } } +else +{ +lean_object* x_229; lean_object* x_230; lean_object* x_231; +x_229 = lean_ctor_get(x_47, 0); +x_230 = lean_ctor_get(x_47, 1); +lean_inc(x_230); +lean_inc(x_229); +lean_dec(x_47); +x_231 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__3(x_229, x_43); +lean_dec(x_229); +if (lean_obj_tag(x_231) == 0) +{ +lean_object* x_232; lean_object* x_233; +lean_dec(x_44); +lean_dec(x_43); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_232 = lean_box(0); +x_233 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_233, 0, x_232); +lean_ctor_set(x_233, 1, x_230); +return x_233; +} +else +{ +lean_object* x_234; lean_object* x_235; lean_object* x_236; lean_object* x_237; lean_object* x_238; uint8_t x_239; +x_234 = lean_ctor_get(x_231, 0); +lean_inc(x_234); +lean_dec(x_231); +x_235 = lean_ctor_get(x_234, 0); +lean_inc(x_235); +x_236 = lean_ctor_get(x_234, 1); +lean_inc(x_236); +if (lean_is_exclusive(x_234)) { + lean_ctor_release(x_234, 0); + lean_ctor_release(x_234, 1); + x_237 = x_234; +} else { + lean_dec_ref(x_234); + x_237 = lean_box(0); +} +x_238 = lean_array_get_size(x_44); +x_239 = lean_nat_dec_lt(x_235, x_238); +lean_dec(x_238); +if (x_239 == 0) +{ +lean_object* x_240; lean_object* x_241; lean_object* x_242; lean_object* x_243; lean_object* x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; lean_object* x_249; uint8_t x_250; lean_object* x_251; +lean_dec(x_44); +x_240 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__4; +x_241 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_240); +x_242 = l_Lean_Compiler_LCNF_Simp_findCtor(x_241, x_3, x_4, x_5, x_6, x_7, x_230); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_243 = lean_ctor_get(x_242, 0); +lean_inc(x_243); +x_244 = lean_ctor_get(x_242, 1); +lean_inc(x_244); +lean_dec(x_242); +x_245 = lean_st_ref_get(x_7, x_244); +x_246 = lean_ctor_get(x_245, 0); +lean_inc(x_246); +x_247 = lean_ctor_get(x_245, 1); +lean_inc(x_247); +if (lean_is_exclusive(x_245)) { + lean_ctor_release(x_245, 0); + lean_ctor_release(x_245, 1); + x_248 = x_245; +} else { + lean_dec_ref(x_245); + x_248 = lean_box(0); +} +x_249 = lean_ctor_get(x_246, 0); +lean_inc(x_249); +lean_dec(x_246); +x_250 = 0; +x_251 = l_Lean_Expr_constructorApp_x3f(x_249, x_243, x_250); +if (lean_obj_tag(x_251) == 0) +{ +lean_object* x_252; lean_object* x_253; +lean_dec(x_237); +lean_dec(x_236); +lean_dec(x_235); +lean_dec(x_43); +lean_dec(x_7); +lean_dec(x_2); +x_252 = lean_box(0); +if (lean_is_scalar(x_248)) { + x_253 = lean_alloc_ctor(0, 2, 0); +} else { + x_253 = x_248; +} +lean_ctor_set(x_253, 0, x_252); +lean_ctor_set(x_253, 1, x_247); +return x_253; +} +else +{ +lean_object* x_254; lean_object* x_255; lean_object* x_256; lean_object* x_257; lean_object* x_258; lean_object* x_259; lean_object* x_260; lean_object* x_261; lean_object* x_262; lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; lean_object* x_267; lean_object* x_268; lean_object* x_269; lean_object* x_270; +lean_dec(x_248); +x_254 = lean_ctor_get(x_251, 0); +lean_inc(x_254); +lean_dec(x_251); +x_255 = lean_ctor_get(x_254, 0); +lean_inc(x_255); +lean_dec(x_254); +x_256 = lean_st_ref_get(x_7, x_247); +lean_dec(x_7); +x_257 = lean_ctor_get(x_256, 1); +lean_inc(x_257); +lean_dec(x_256); +x_258 = lean_st_ref_take(x_2, x_257); +x_259 = lean_ctor_get(x_258, 0); +lean_inc(x_259); +x_260 = lean_ctor_get(x_258, 1); +lean_inc(x_260); +lean_dec(x_258); +x_261 = lean_ctor_get(x_255, 0); +lean_inc(x_261); +lean_dec(x_255); +x_262 = lean_ctor_get(x_261, 0); +lean_inc(x_262); +lean_dec(x_261); +x_263 = lean_box(0); +x_264 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_236, x_262, x_263); +if (lean_is_scalar(x_237)) { + x_265 = lean_alloc_ctor(0, 2, 0); +} else { + x_265 = x_237; +} +lean_ctor_set(x_265, 0, x_235); +lean_ctor_set(x_265, 1, x_264); +x_266 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_259, x_43, x_265); +x_267 = lean_st_ref_set(x_2, x_266, x_260); +lean_dec(x_2); +x_268 = lean_ctor_get(x_267, 1); +lean_inc(x_268); +if (lean_is_exclusive(x_267)) { + lean_ctor_release(x_267, 0); + lean_ctor_release(x_267, 1); + x_269 = x_267; +} else { + lean_dec_ref(x_267); + x_269 = lean_box(0); +} +if (lean_is_scalar(x_269)) { + x_270 = lean_alloc_ctor(0, 2, 0); +} else { + x_270 = x_269; +} +lean_ctor_set(x_270, 0, x_263); +lean_ctor_set(x_270, 1, x_268); +return x_270; +} +} +else +{ +lean_object* x_271; lean_object* x_272; lean_object* x_273; lean_object* x_274; lean_object* x_275; lean_object* x_276; lean_object* x_277; lean_object* x_278; lean_object* x_279; uint8_t x_280; lean_object* x_281; +x_271 = lean_array_fget(x_44, x_235); +lean_dec(x_44); +x_272 = l_Lean_Compiler_LCNF_Simp_findCtor(x_271, x_3, x_4, x_5, x_6, x_7, x_230); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_273 = lean_ctor_get(x_272, 0); +lean_inc(x_273); +x_274 = lean_ctor_get(x_272, 1); +lean_inc(x_274); +lean_dec(x_272); +x_275 = lean_st_ref_get(x_7, x_274); +x_276 = lean_ctor_get(x_275, 0); +lean_inc(x_276); +x_277 = lean_ctor_get(x_275, 1); +lean_inc(x_277); +if (lean_is_exclusive(x_275)) { + lean_ctor_release(x_275, 0); + lean_ctor_release(x_275, 1); + x_278 = x_275; +} else { + lean_dec_ref(x_275); + x_278 = lean_box(0); +} +x_279 = lean_ctor_get(x_276, 0); +lean_inc(x_279); +lean_dec(x_276); +x_280 = 0; +x_281 = l_Lean_Expr_constructorApp_x3f(x_279, x_273, x_280); +if (lean_obj_tag(x_281) == 0) +{ +lean_object* x_282; lean_object* x_283; +lean_dec(x_237); +lean_dec(x_236); +lean_dec(x_235); +lean_dec(x_43); +lean_dec(x_7); +lean_dec(x_2); +x_282 = lean_box(0); +if (lean_is_scalar(x_278)) { + x_283 = lean_alloc_ctor(0, 2, 0); +} else { + x_283 = x_278; +} +lean_ctor_set(x_283, 0, x_282); +lean_ctor_set(x_283, 1, x_277); +return x_283; +} +else +{ +lean_object* x_284; lean_object* x_285; lean_object* x_286; lean_object* x_287; lean_object* x_288; lean_object* x_289; lean_object* x_290; lean_object* x_291; lean_object* x_292; lean_object* x_293; lean_object* x_294; lean_object* x_295; lean_object* x_296; lean_object* x_297; lean_object* x_298; lean_object* x_299; lean_object* x_300; +lean_dec(x_278); +x_284 = lean_ctor_get(x_281, 0); +lean_inc(x_284); +lean_dec(x_281); +x_285 = lean_ctor_get(x_284, 0); +lean_inc(x_285); +lean_dec(x_284); +x_286 = lean_st_ref_get(x_7, x_277); +lean_dec(x_7); +x_287 = lean_ctor_get(x_286, 1); +lean_inc(x_287); +lean_dec(x_286); +x_288 = lean_st_ref_take(x_2, x_287); +x_289 = lean_ctor_get(x_288, 0); +lean_inc(x_289); +x_290 = lean_ctor_get(x_288, 1); +lean_inc(x_290); +lean_dec(x_288); +x_291 = lean_ctor_get(x_285, 0); +lean_inc(x_291); +lean_dec(x_285); +x_292 = lean_ctor_get(x_291, 0); +lean_inc(x_292); +lean_dec(x_291); +x_293 = lean_box(0); +x_294 = l_Lean_RBNode_insert___at_Lean_NameSet_insert___spec__1(x_236, x_292, x_293); +if (lean_is_scalar(x_237)) { + x_295 = lean_alloc_ctor(0, 2, 0); +} else { + x_295 = x_237; +} +lean_ctor_set(x_295, 0, x_235); +lean_ctor_set(x_295, 1, x_294); +x_296 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__1(x_289, x_43, x_295); +x_297 = lean_st_ref_set(x_2, x_296, x_290); +lean_dec(x_2); +x_298 = lean_ctor_get(x_297, 1); +lean_inc(x_298); +if (lean_is_exclusive(x_297)) { + lean_ctor_release(x_297, 0); + lean_ctor_release(x_297, 1); + x_299 = x_297; +} else { + lean_dec_ref(x_297); + x_299 = lean_box(0); +} +if (lean_is_scalar(x_299)) { + x_300 = lean_alloc_ctor(0, 2, 0); +} else { + x_300 = x_299; +} +lean_ctor_set(x_300, 0, x_293); +lean_ctor_set(x_300, 1, x_298); +return x_300; +} +} +} +} } case 4: { -lean_object* x_231; lean_object* x_232; lean_object* x_233; lean_object* x_234; uint8_t x_235; -x_231 = lean_ctor_get(x_1, 0); -lean_inc(x_231); +lean_object* x_301; lean_object* x_302; lean_object* x_303; lean_object* x_304; uint8_t x_305; +x_301 = lean_ctor_get(x_1, 0); +lean_inc(x_301); lean_dec(x_1); -x_232 = lean_ctor_get(x_231, 3); -lean_inc(x_232); -lean_dec(x_231); -x_233 = lean_array_get_size(x_232); -x_234 = lean_unsigned_to_nat(0u); -x_235 = lean_nat_dec_lt(x_234, x_233); -if (x_235 == 0) +x_302 = lean_ctor_get(x_301, 3); +lean_inc(x_302); +x_303 = lean_array_get_size(x_302); +x_304 = lean_unsigned_to_nat(0u); +x_305 = lean_nat_dec_lt(x_304, x_303); +if (x_305 == 0) { -lean_object* x_236; lean_object* x_237; -lean_dec(x_233); -lean_dec(x_232); +lean_object* x_306; lean_object* x_307; +lean_dec(x_303); +lean_dec(x_302); +lean_dec(x_301); +lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_236 = lean_box(0); -x_237 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_237, 0, x_236); -lean_ctor_set(x_237, 1, x_7); -return x_237; +x_306 = lean_box(0); +x_307 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_307, 0, x_306); +lean_ctor_set(x_307, 1, x_8); +return x_307; } else { -uint8_t x_238; -x_238 = lean_nat_dec_le(x_233, x_233); -if (x_238 == 0) +uint8_t x_308; +x_308 = lean_nat_dec_le(x_303, x_303); +if (x_308 == 0) { -lean_object* x_239; lean_object* x_240; -lean_dec(x_233); -lean_dec(x_232); +lean_object* x_309; lean_object* x_310; +lean_dec(x_303); +lean_dec(x_302); +lean_dec(x_301); +lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_239 = lean_box(0); -x_240 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_240, 0, x_239); -lean_ctor_set(x_240, 1, x_7); -return x_240; +x_309 = lean_box(0); +x_310 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_310, 0, x_309); +lean_ctor_set(x_310, 1, x_8); +return x_310; } else { -size_t x_241; size_t x_242; lean_object* x_243; lean_object* x_244; -x_241 = 0; -x_242 = lean_usize_of_nat(x_233); -lean_dec(x_233); -x_243 = lean_box(0); -x_244 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__4(x_232, x_241, x_242, x_243, x_2, x_3, x_4, x_5, x_6, x_7); -lean_dec(x_232); -return x_244; +size_t x_311; size_t x_312; lean_object* x_313; lean_object* x_314; +x_311 = 0; +x_312 = lean_usize_of_nat(x_303); +lean_dec(x_303); +x_313 = lean_box(0); +x_314 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__4(x_301, x_302, x_311, x_312, x_313, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_dec(x_302); +return x_314; } } } default: { -lean_object* x_245; lean_object* x_246; +lean_object* x_315; lean_object* x_316; +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_245 = lean_box(0); -x_246 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_246, 0, x_245); -lean_ctor_set(x_246, 1, x_7); -return x_246; +x_315 = lean_box(0); +x_316 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_316, 0, x_315); +lean_ctor_set(x_316, 1, x_8); +return x_316; } } } @@ -3850,23 +4290,65 @@ lean_dec(x_1); return x_3; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__4___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_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__4___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_11; size_t x_12; lean_object* x_13; -x_11 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_12 = lean_unbox_usize(x_3); +size_t x_13; size_t x_14; lean_object* x_15; +x_13 = lean_unbox_usize(x_3); lean_dec(x_3); -x_13 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__4(x_1, x_11, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -lean_dec(x_1); -return x_13; +x_14 = lean_unbox_usize(x_4); +lean_dec(x_4); +x_15 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__4(x_1, x_2, x_13, x_14, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_2); +return x_15; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_box(0), lean_box(0)); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__1; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__3; +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; } } LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; x_7 = lean_box(0); x_8 = lean_st_ref_get(x_5, x_6); x_9 = lean_ctor_get(x_8, 1); @@ -3878,36 +4360,65 @@ lean_inc(x_11); x_12 = lean_ctor_get(x_10, 1); lean_inc(x_12); lean_dec(x_10); +x_13 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__4; lean_inc(x_5); lean_inc(x_11); -x_13 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go(x_1, x_11, x_2, x_3, x_4, x_5, x_12); -x_14 = lean_ctor_get(x_13, 1); -lean_inc(x_14); -lean_dec(x_13); -x_15 = lean_st_ref_get(x_5, x_14); -lean_dec(x_5); -x_16 = lean_ctor_get(x_15, 1); -lean_inc(x_16); -lean_dec(x_15); -x_17 = lean_st_ref_get(x_11, x_16); -lean_dec(x_11); -x_18 = !lean_is_exclusive(x_17); -if (x_18 == 0) +x_14 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go(x_1, x_11, x_13, x_2, x_3, x_4, x_5, x_12); +if (lean_obj_tag(x_14) == 0) { -return x_17; +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_15 = lean_ctor_get(x_14, 1); +lean_inc(x_15); +lean_dec(x_14); +x_16 = lean_st_ref_get(x_5, x_15); +lean_dec(x_5); +x_17 = lean_ctor_get(x_16, 1); +lean_inc(x_17); +lean_dec(x_16); +x_18 = lean_st_ref_get(x_11, x_17); +lean_dec(x_11); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) +{ +return x_18; } else { -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_17, 0); -x_20 = lean_ctor_get(x_17, 1); +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_18, 0); +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); lean_inc(x_20); -lean_inc(x_19); -lean_dec(x_17); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_19); -lean_ctor_set(x_21, 1, x_20); -return x_21; +lean_dec(x_18); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_21); +return x_22; +} +} +else +{ +uint8_t x_23; +lean_dec(x_11); +lean_dec(x_5); +x_23 = !lean_is_exclusive(x_14); +if (x_23 == 0) +{ +return x_14; +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_14, 0); +x_25 = lean_ctor_get(x_14, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_14); +x_26 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_26, 0, x_24); +lean_ctor_set(x_26, 1, x_25); +return x_26; +} } } } @@ -3979,7 +4490,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___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___closed__1; x_2 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___closed__2; -x_3 = lean_unsigned_to_nat(79u); +x_3 = lean_unsigned_to_nat(97u); x_4 = lean_unsigned_to_nat(11u); x_5 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -4037,7 +4548,237 @@ x_3 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_ext return x_3; } } -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__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_EXPORT lean_object* l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; +x_2 = l_Lean_Compiler_LCNF_instInhabitedParam; +x_3 = lean_panic_fn(x_2, x_1); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___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, lean_object* x_8, lean_object* x_9) { +_start: +{ +lean_object* x_10; size_t x_11; size_t x_12; lean_object* x_13; uint8_t x_14; +x_10 = lean_array_get_size(x_1); +x_11 = lean_usize_of_nat(x_10); +lean_dec(x_10); +x_12 = 0; +x_13 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_11, x_12, x_1, x_4, x_5, x_6, x_7, x_8, x_9); +x_14 = !lean_is_exclusive(x_13); +if (x_14 == 0) +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_ctor_get(x_13, 0); +x_16 = l_Array_append___rarg(x_2, x_15); +x_17 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_17, 0, x_16); +lean_ctor_set(x_13, 0, x_17); +return x_13; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_18 = lean_ctor_get(x_13, 0); +x_19 = lean_ctor_get(x_13, 1); +lean_inc(x_19); +lean_inc(x_18); +lean_dec(x_13); +x_20 = l_Array_append___rarg(x_2, x_18); +x_21 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_21, 0, 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; +} +} +} +LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint8_t x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +_start: +{ +uint8_t x_17; +x_17 = lean_nat_dec_le(x_8, x_7); +if (x_17 == 0) +{ +lean_object* x_18; uint8_t x_19; +x_18 = lean_unsigned_to_nat(0u); +x_19 = lean_nat_dec_eq(x_6, x_18); +if (x_19 == 0) +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_28; uint8_t x_29; +x_20 = lean_unsigned_to_nat(1u); +x_21 = lean_nat_sub(x_6, x_20); +lean_dec(x_6); +x_28 = lean_nat_dec_lt(x_7, x_4); +x_29 = lean_nat_dec_eq(x_2, x_7); +if (x_28 == 0) +{ +lean_object* x_30; lean_object* x_31; +x_30 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__4; +x_31 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__1(x_30); +if (x_29 == 0) +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_32 = l_Lean_Compiler_LCNF_Internalize_internalizeParam(x_31, x_11, x_12, x_13, x_14, x_15, x_16); +x_33 = lean_ctor_get(x_32, 0); +lean_inc(x_33); +x_34 = lean_ctor_get(x_32, 1); +lean_inc(x_34); +lean_dec(x_32); +x_35 = lean_array_push(x_10, x_33); +x_36 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_36, 0, x_35); +x_22 = x_36; +x_23 = x_34; +goto block_27; +} +else +{ +if (x_5 == 0) +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; +lean_dec(x_31); +x_37 = lean_box(0); +lean_inc(x_3); +x_38 = l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__2___lambda__1(x_3, x_10, x_37, x_11, x_12, x_13, x_14, x_15, x_16); +x_39 = lean_ctor_get(x_38, 0); +lean_inc(x_39); +x_40 = lean_ctor_get(x_38, 1); +lean_inc(x_40); +lean_dec(x_38); +x_22 = x_39; +x_23 = x_40; +goto block_27; +} +else +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_41 = l_Lean_Compiler_LCNF_Internalize_internalizeParam(x_31, x_11, x_12, x_13, x_14, x_15, x_16); +x_42 = lean_ctor_get(x_41, 0); +lean_inc(x_42); +x_43 = lean_ctor_get(x_41, 1); +lean_inc(x_43); +lean_dec(x_41); +x_44 = lean_array_push(x_10, x_42); +x_45 = lean_box(0); +lean_inc(x_3); +x_46 = l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__2___lambda__1(x_3, x_44, x_45, x_11, x_12, x_13, x_14, x_15, x_43); +x_47 = lean_ctor_get(x_46, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_46, 1); +lean_inc(x_48); +lean_dec(x_46); +x_22 = x_47; +x_23 = x_48; +goto block_27; +} +} +} +else +{ +lean_object* x_49; +x_49 = lean_array_fget(x_1, x_7); +if (x_29 == 0) +{ +lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_50 = l_Lean_Compiler_LCNF_Internalize_internalizeParam(x_49, x_11, x_12, x_13, x_14, x_15, x_16); +x_51 = lean_ctor_get(x_50, 0); +lean_inc(x_51); +x_52 = lean_ctor_get(x_50, 1); +lean_inc(x_52); +lean_dec(x_50); +x_53 = lean_array_push(x_10, x_51); +x_54 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_54, 0, x_53); +x_22 = x_54; +x_23 = x_52; +goto block_27; +} +else +{ +if (x_5 == 0) +{ +lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +lean_dec(x_49); +x_55 = lean_box(0); +lean_inc(x_3); +x_56 = l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__2___lambda__1(x_3, x_10, x_55, x_11, x_12, x_13, x_14, x_15, x_16); +x_57 = lean_ctor_get(x_56, 0); +lean_inc(x_57); +x_58 = lean_ctor_get(x_56, 1); +lean_inc(x_58); +lean_dec(x_56); +x_22 = x_57; +x_23 = x_58; +goto block_27; +} +else +{ +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; +x_59 = l_Lean_Compiler_LCNF_Internalize_internalizeParam(x_49, x_11, x_12, x_13, x_14, x_15, x_16); +x_60 = lean_ctor_get(x_59, 0); +lean_inc(x_60); +x_61 = lean_ctor_get(x_59, 1); +lean_inc(x_61); +lean_dec(x_59); +x_62 = lean_array_push(x_10, x_60); +x_63 = lean_box(0); +lean_inc(x_3); +x_64 = l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__2___lambda__1(x_3, x_62, x_63, x_11, x_12, x_13, x_14, x_15, x_61); +x_65 = lean_ctor_get(x_64, 0); +lean_inc(x_65); +x_66 = lean_ctor_get(x_64, 1); +lean_inc(x_66); +lean_dec(x_64); +x_22 = x_65; +x_23 = x_66; +goto block_27; +} +} +} +block_27: +{ +lean_object* x_24; lean_object* x_25; +x_24 = lean_ctor_get(x_22, 0); +lean_inc(x_24); +lean_dec(x_22); +x_25 = lean_nat_add(x_7, x_9); +lean_dec(x_7); +x_6 = x_21; +x_7 = x_25; +x_10 = x_24; +x_16 = x_23; +goto _start; +} +} +else +{ +lean_object* x_67; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +x_67 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_67, 0, x_10); +lean_ctor_set(x_67, 1, x_16); +return x_67; +} +} +else +{ +lean_object* x_68; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +x_68 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_68, 0, x_10); +lean_ctor_set(x_68, 1, x_16); +return x_68; +} +} +} +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__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) { _start: { uint8_t x_10; @@ -4045,6 +4786,10 @@ x_10 = lean_usize_dec_lt(x_2, x_1); if (x_10 == 0) { lean_object* x_11; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); x_11 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_11, 0, x_3); lean_ctor_set(x_11, 1, x_9); @@ -4052,11 +4797,18 @@ return x_11; } 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; size_t x_18; size_t x_19; lean_object* x_20; +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; x_12 = lean_array_uget(x_3, x_2); x_13 = lean_unsigned_to_nat(0u); x_14 = lean_array_uset(x_3, x_2, x_13); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); x_15 = l_Lean_Compiler_LCNF_Internalize_internalizeCodeDecl(x_12, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_15) == 0) +{ +lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; lean_object* x_20; x_16 = lean_ctor_get(x_15, 0); lean_inc(x_16); x_17 = lean_ctor_get(x_15, 1); @@ -4070,9 +4822,181 @@ x_3 = x_20; x_9 = x_17; goto _start; } +else +{ +uint8_t x_22; +lean_dec(x_14); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +x_22 = !lean_is_exclusive(x_15); +if (x_22 == 0) +{ +return x_15; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_15, 0); +x_24 = lean_ctor_get(x_15, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_15); +x_25 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_25, 0, x_23); +lean_ctor_set(x_25, 1, x_24); +return x_25; } } -static lean_object* _init_l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1___closed__1() { +} +} +} +LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, size_t x_4, size_t x_5) { +_start: +{ +uint8_t x_6; +x_6 = lean_usize_dec_eq(x_4, x_5); +if (x_6 == 0) +{ +lean_object* x_7; uint8_t x_8; +x_7 = lean_array_uget(x_3, x_4); +lean_inc(x_2); +x_8 = l_Lean_Compiler_LCNF_CodeDecl_dependsOn(x_7, x_2); +if (x_8 == 0) +{ +size_t x_9; size_t x_10; +x_9 = 1; +x_10 = lean_usize_add(x_4, x_9); +x_4 = x_10; +goto _start; +} +else +{ +uint8_t x_12; +lean_dec(x_2); +x_12 = 1; +return x_12; +} +} +else +{ +uint8_t x_13; +lean_dec(x_2); +x_13 = 0; +return x_13; +} +} +} +LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__4___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__5(lean_object* x_1, lean_object* x_2, size_t x_3, size_t x_4) { +_start: +{ +uint8_t x_5; +x_5 = lean_usize_dec_eq(x_3, x_4); +if (x_5 == 0) +{ +lean_object* x_6; uint8_t x_7; +x_6 = lean_array_uget(x_2, x_3); +lean_inc(x_1); +x_7 = l_Lean_Compiler_LCNF_CodeDecl_dependsOn(x_6, x_1); +if (x_7 == 0) +{ +size_t x_8; size_t x_9; +x_8 = 1; +x_9 = lean_usize_add(x_3, x_8); +x_3 = x_9; +goto _start; +} +else +{ +uint8_t x_11; +lean_dec(x_1); +x_11 = 1; +return x_11; +} +} +else +{ +uint8_t x_12; +lean_dec(x_1); +x_12 = 0; +return x_12; +} +} +} +LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3, size_t x_4, size_t x_5) { +_start: +{ +uint8_t x_6; +x_6 = lean_usize_dec_eq(x_4, x_5); +if (x_6 == 0) +{ +lean_object* x_7; uint8_t x_8; +x_7 = lean_array_uget(x_3, x_4); +lean_inc(x_2); +x_8 = l_Lean_Compiler_LCNF_CodeDecl_dependsOn(x_7, x_2); +if (x_8 == 0) +{ +size_t x_9; size_t x_10; +x_9 = 1; +x_10 = lean_usize_add(x_4, x_9); +x_4 = x_10; +goto _start; +} +else +{ +uint8_t x_12; +lean_dec(x_2); +x_12 = 1; +return x_12; +} +} +else +{ +uint8_t x_13; +lean_dec(x_2); +x_13 = 0; +return x_13; +} +} +} +LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__6___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__7(lean_object* x_1, lean_object* x_2, size_t x_3, size_t x_4) { +_start: +{ +uint8_t x_5; +x_5 = lean_usize_dec_eq(x_3, x_4); +if (x_5 == 0) +{ +lean_object* x_6; uint8_t x_7; +x_6 = lean_array_uget(x_2, x_3); +lean_inc(x_1); +x_7 = l_Lean_Compiler_LCNF_CodeDecl_dependsOn(x_6, x_1); +if (x_7 == 0) +{ +size_t x_8; size_t x_9; +x_8 = 1; +x_9 = lean_usize_add(x_3, x_8); +x_3 = x_9; +goto _start; +} +else +{ +uint8_t x_11; +lean_dec(x_1); +x_11 = 1; +return x_11; +} +} +else +{ +uint8_t x_12; +lean_dec(x_1); +x_12 = 0; +return x_12; +} +} +} +static lean_object* _init_l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___closed__1() { _start: { lean_object* x_1; @@ -4080,145 +5004,345 @@ x_1 = lean_mk_string_from_bytes("_jp", 3); return x_1; } } -static lean_object* _init_l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1___closed__2() { +static lean_object* _init_l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1___closed__1; +x_2 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___closed__1; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, uint8_t x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t 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_14; size_t x_15; size_t x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; size_t 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_14 = lean_array_get_size(x_1); -x_15 = lean_usize_of_nat(x_14); +lean_object* x_13; lean_object* x_14; uint8_t x_15; uint8_t x_16; +x_13 = lean_box(0); +x_14 = lean_array_get_size(x_2); +x_15 = lean_nat_dec_lt(x_3, x_14); +if (x_15 == 0) +{ +lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; uint8_t x_60; +x_55 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__4; +x_56 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__1(x_55); +x_57 = lean_ctor_get(x_56, 0); +lean_inc(x_57); +lean_dec(x_56); +x_58 = lean_box(0); +x_59 = l_Lean_RBNode_insert___at___private_Lean_Meta_FunInfo_0__Lean_Meta_getFunInfoAux___spec__1(x_13, x_57, x_58); +lean_inc(x_59); +lean_inc(x_5); +x_60 = l___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_depOn(x_5, x_59); +if (x_60 == 0) +{ +lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_61 = lean_array_get_size(x_1); +x_62 = lean_unsigned_to_nat(0u); +x_63 = lean_nat_dec_lt(x_62, x_61); +if (x_63 == 0) +{ +uint8_t x_64; +lean_dec(x_61); +lean_dec(x_59); +x_64 = 0; +x_16 = x_64; +goto block_54; +} +else +{ +uint8_t x_65; +x_65 = lean_nat_dec_le(x_61, x_61); +if (x_65 == 0) +{ +uint8_t x_66; +lean_dec(x_61); +lean_dec(x_59); +x_66 = 0; +x_16 = x_66; +goto block_54; +} +else +{ +size_t x_67; size_t x_68; uint8_t x_69; +x_67 = 0; +x_68 = lean_usize_of_nat(x_61); +lean_dec(x_61); +x_69 = l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__4___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__5(x_59, x_1, x_67, x_68); +x_16 = x_69; +goto block_54; +} +} +} +else +{ +uint8_t x_70; +lean_dec(x_59); +x_70 = 1; +x_16 = x_70; +goto block_54; +} +} +else +{ +lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; uint8_t x_75; +x_71 = lean_array_fget(x_2, x_3); +x_72 = lean_ctor_get(x_71, 0); +lean_inc(x_72); +lean_dec(x_71); +x_73 = lean_box(0); +x_74 = l_Lean_RBNode_insert___at___private_Lean_Meta_FunInfo_0__Lean_Meta_getFunInfoAux___spec__1(x_13, x_72, x_73); +lean_inc(x_74); +lean_inc(x_5); +x_75 = l___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_depOn(x_5, x_74); +if (x_75 == 0) +{ +lean_object* x_76; lean_object* x_77; uint8_t x_78; +x_76 = lean_array_get_size(x_1); +x_77 = lean_unsigned_to_nat(0u); +x_78 = lean_nat_dec_lt(x_77, x_76); +if (x_78 == 0) +{ +uint8_t x_79; +lean_dec(x_76); +lean_dec(x_74); +x_79 = 0; +x_16 = x_79; +goto block_54; +} +else +{ +uint8_t x_80; +x_80 = lean_nat_dec_le(x_76, x_76); +if (x_80 == 0) +{ +uint8_t x_81; +lean_dec(x_76); +lean_dec(x_74); +x_81 = 0; +x_16 = x_81; +goto block_54; +} +else +{ +size_t x_82; size_t x_83; uint8_t x_84; +x_82 = 0; +x_83 = lean_usize_of_nat(x_76); +lean_dec(x_76); +x_84 = l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__6___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__7(x_74, x_1, x_82, x_83); +x_16 = x_84; +goto block_54; +} +} +} +else +{ +uint8_t x_85; +lean_dec(x_74); +x_85 = 1; +x_16 = x_85; +goto block_54; +} +} +block_54: +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; size_t x_24; size_t x_25; lean_object* x_26; +x_17 = lean_unsigned_to_nat(0u); +x_18 = lean_unsigned_to_nat(1u); +x_19 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +lean_inc(x_14); +x_20 = l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__2(x_2, x_3, x_4, x_14, x_16, x_14, x_17, x_14, x_18, x_19, x_7, x_8, x_9, x_10, x_11, x_12); lean_dec(x_14); -x_16 = 0; -x_17 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(x_15, x_16, x_1, x_8, x_9, x_10, x_11, x_12, x_13); -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -lean_dec(x_17); -x_20 = l_Array_append___rarg(x_6, x_18); -x_21 = lean_array_get_size(x_2); -x_22 = lean_usize_of_nat(x_21); -lean_dec(x_21); -x_23 = l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__1(x_22, x_16, x_2, x_8, x_9, x_10, x_11, x_12, x_19); -x_24 = lean_ctor_get(x_23, 0); -lean_inc(x_24); -x_25 = lean_ctor_get(x_23, 1); -lean_inc(x_25); +x_21 = lean_ctor_get(x_20, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +x_23 = lean_array_get_size(x_1); +x_24 = lean_usize_of_nat(x_23); lean_dec(x_23); -x_26 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_3, x_8, x_9, x_10, x_11, x_12, x_25); +x_25 = 0; +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +x_26 = l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__3(x_24, x_25, x_1, x_7, x_8, x_9, x_10, x_11, x_22); +if (lean_obj_tag(x_26) == 0) +{ +lean_object* x_27; lean_object* x_28; lean_object* x_29; x_27 = lean_ctor_get(x_26, 0); lean_inc(x_27); x_28 = lean_ctor_get(x_26, 1); lean_inc(x_28); lean_dec(x_26); -x_29 = l_Lean_Compiler_LCNF_attachCodeDecls(x_24, x_27); -lean_dec(x_24); -x_30 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1___closed__2; -x_31 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_20, x_29, x_30, x_9, x_10, x_11, x_12, x_28); -if (lean_obj_tag(x_31) == 0) +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +x_29 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_5, x_7, x_8, x_9, x_10, x_11, x_28); +if (lean_obj_tag(x_29) == 0) { -uint8_t x_32; -x_32 = !lean_is_exclusive(x_31); -if (x_32 == 0) +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_29, 1); +lean_inc(x_31); +lean_dec(x_29); +x_32 = l_Lean_Compiler_LCNF_attachCodeDecls(x_27, x_30); +lean_dec(x_27); +x_33 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___closed__2; +x_34 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_21, x_32, x_33, x_8, x_9, x_10, x_11, x_31); +if (lean_obj_tag(x_34) == 0) { -lean_object* x_33; lean_object* x_34; -x_33 = lean_ctor_get(x_31, 0); -x_34 = lean_alloc_ctor(0, 1, 2); -lean_ctor_set(x_34, 0, x_33); -lean_ctor_set_uint8(x_34, sizeof(void*)*1, x_4); -lean_ctor_set_uint8(x_34, sizeof(void*)*1 + 1, x_5); -lean_ctor_set(x_31, 0, x_34); -return x_31; -} -else +uint8_t x_35; +x_35 = !lean_is_exclusive(x_34); +if (x_35 == 0) { -lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_35 = lean_ctor_get(x_31, 0); -x_36 = lean_ctor_get(x_31, 1); -lean_inc(x_36); -lean_inc(x_35); -lean_dec(x_31); +lean_object* x_36; lean_object* x_37; +x_36 = lean_ctor_get(x_34, 0); x_37 = lean_alloc_ctor(0, 1, 2); -lean_ctor_set(x_37, 0, x_35); -lean_ctor_set_uint8(x_37, sizeof(void*)*1, x_4); -lean_ctor_set_uint8(x_37, sizeof(void*)*1 + 1, x_5); -x_38 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_36); -return x_38; +lean_ctor_set(x_37, 0, x_36); +lean_ctor_set_uint8(x_37, sizeof(void*)*1, x_6); +lean_ctor_set_uint8(x_37, sizeof(void*)*1 + 1, x_16); +lean_ctor_set(x_34, 0, x_37); +return x_34; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_38 = lean_ctor_get(x_34, 0); +x_39 = lean_ctor_get(x_34, 1); +lean_inc(x_39); +lean_inc(x_38); +lean_dec(x_34); +x_40 = lean_alloc_ctor(0, 1, 2); +lean_ctor_set(x_40, 0, x_38); +lean_ctor_set_uint8(x_40, sizeof(void*)*1, x_6); +lean_ctor_set_uint8(x_40, sizeof(void*)*1 + 1, x_16); +x_41 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set(x_41, 1, x_39); +return x_41; } } else { -uint8_t x_39; -x_39 = !lean_is_exclusive(x_31); -if (x_39 == 0) +uint8_t x_42; +x_42 = !lean_is_exclusive(x_34); +if (x_42 == 0) { -return x_31; +return x_34; } else { -lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_40 = lean_ctor_get(x_31, 0); -x_41 = lean_ctor_get(x_31, 1); -lean_inc(x_41); -lean_inc(x_40); -lean_dec(x_31); -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_object* x_43; lean_object* x_44; lean_object* x_45; +x_43 = lean_ctor_get(x_34, 0); +x_44 = lean_ctor_get(x_34, 1); +lean_inc(x_44); +lean_inc(x_43); +lean_dec(x_34); +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; +} +} +} +else +{ +uint8_t x_46; +lean_dec(x_27); +lean_dec(x_21); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +x_46 = !lean_is_exclusive(x_29); +if (x_46 == 0) +{ +return x_29; +} +else +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; +x_47 = lean_ctor_get(x_29, 0); +x_48 = lean_ctor_get(x_29, 1); +lean_inc(x_48); +lean_inc(x_47); +lean_dec(x_29); +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; +} +} +} +else +{ +uint8_t x_50; +lean_dec(x_21); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_5); +x_50 = !lean_is_exclusive(x_26); +if (x_50 == 0) +{ +return x_26; +} +else +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; +x_51 = lean_ctor_get(x_26, 0); +x_52 = lean_ctor_get(x_26, 1); +lean_inc(x_52); +lean_inc(x_51); +lean_dec(x_26); +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_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint8_t 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_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__2___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) { _start: { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; -x_12 = lean_box(0); -x_13 = lean_ctor_get(x_2, 0); -lean_inc(x_13); -x_14 = lean_box(0); -x_15 = l_Lean_RBNode_insert___at___private_Lean_Meta_FunInfo_0__Lean_Meta_getFunInfoAux___spec__1(x_12, x_13, x_14); -lean_inc(x_4); -x_16 = l___private_Lean_Compiler_LCNF_DependsOn_0__Lean_Compiler_LCNF_depOn(x_4, x_15); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; -lean_dec(x_2); -x_17 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; -x_18 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1(x_3, x_1, x_4, x_5, x_16, x_17, x_14, x_6, x_7, x_8, x_9, x_10, x_11); +lean_object* x_10; +x_10 = l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__2___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_8); +lean_dec(x_7); lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__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_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +_start: +{ +uint8_t x_17; lean_object* x_18; +x_17 = lean_unbox(x_5); +lean_dec(x_5); +x_18 = l_Std_Range_forIn_loop___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__2(x_1, x_2, x_3, x_4, x_17, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); return x_18; } -else -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_19 = l_Lean_Compiler_LCNF_Internalize_internalizeParam(x_2, x_6, x_7, x_8, x_9, x_10, x_11); -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_19, 1); -lean_inc(x_21); -lean_dec(x_19); -x_22 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; -x_23 = lean_array_push(x_22, x_20); -x_24 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1(x_3, x_1, x_4, x_5, x_16, x_23, x_14, x_6, x_7, x_8, x_9, x_10, x_21); -lean_dec(x_6); -return x_24; } -} -} -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__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_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__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) { _start: { size_t x_10; size_t x_11; lean_object* x_12; @@ -4226,37 +5350,80 @@ x_10 = lean_unbox_usize(x_1); lean_dec(x_1); x_11 = lean_unbox_usize(x_2); lean_dec(x_2); -x_12 = l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__1(x_10, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); +x_12 = l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__3(x_10, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9); lean_dec(x_4); return x_12; } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___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_object* x_13) { +LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { -uint8_t x_14; uint8_t x_15; lean_object* x_16; -x_14 = lean_unbox(x_4); +size_t x_6; size_t x_7; uint8_t x_8; lean_object* x_9; +x_6 = lean_unbox_usize(x_4); lean_dec(x_4); -x_15 = lean_unbox(x_5); +x_7 = lean_unbox_usize(x_5); lean_dec(x_5); -x_16 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1(x_1, x_2, x_3, x_14, x_15, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); -lean_dec(x_8); -lean_dec(x_7); -return x_16; +x_8 = l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__4(x_1, x_2, x_3, x_6, x_7); +lean_dec(x_3); +lean_dec(x_1); +x_9 = lean_box(x_8); +return x_9; } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___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_EXPORT lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__4___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { -uint8_t x_12; lean_object* x_13; -x_12 = lean_unbox(x_5); +size_t x_5; size_t x_6; uint8_t x_7; lean_object* x_8; +x_5 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_6 = lean_unbox_usize(x_4); +lean_dec(x_4); +x_7 = l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__4___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__5(x_1, x_2, x_5, x_6); +lean_dec(x_2); +x_8 = lean_box(x_7); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +size_t x_6; size_t x_7; uint8_t x_8; lean_object* x_9; +x_6 = lean_unbox_usize(x_4); +lean_dec(x_4); +x_7 = lean_unbox_usize(x_5); lean_dec(x_5); -x_13 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go(x_1, x_2, x_3, x_4, x_12, x_6, x_7, x_8, x_9, x_10, x_11); -return x_13; +x_8 = l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__6(x_1, x_2, x_3, x_6, x_7); +lean_dec(x_3); +lean_dec(x_1); +x_9 = lean_box(x_8); +return x_9; +} +} +LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__6___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__7___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +size_t x_5; size_t x_6; uint8_t x_7; lean_object* x_8; +x_5 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_6 = lean_unbox_usize(x_4); +lean_dec(x_4); +x_7 = l_Array_anyMUnsafe_any___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__6___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__7(x_1, x_2, x_5, x_6); +lean_dec(x_2); +x_8 = lean_box(x_7); +return x_8; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___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: +{ +uint8_t x_13; lean_object* x_14; +x_13 = lean_unbox(x_6); +lean_dec(x_6); +x_14 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go(x_1, x_2, x_3, x_4, x_5, x_13, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_7); +lean_dec(x_3); +lean_dec(x_2); +return x_14; } } static lean_object* _init_l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt___closed__1() { @@ -4268,96 +5435,175 @@ x_2 = l_Lean_mkHashMapImp___rarg(x_1); return x_2; } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint8_t 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___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, uint8_t x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { _start: { -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_11 = lean_st_ref_get(x_9, x_10); -x_12 = lean_ctor_get(x_11, 1); -lean_inc(x_12); -lean_dec(x_11); -x_13 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt___closed__1; -x_14 = lean_st_mk_ref(x_13, x_12); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); +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 = lean_st_ref_get(x_10, x_11); +x_13 = lean_ctor_get(x_12, 1); +lean_inc(x_13); +lean_dec(x_12); +x_14 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt___closed__1; +x_15 = lean_st_mk_ref(x_14, x_13); +x_16 = lean_ctor_get(x_15, 0); lean_inc(x_16); -lean_dec(x_14); -lean_inc(x_9); -lean_inc(x_15); -x_17 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go(x_1, x_2, x_3, x_4, x_5, x_15, x_6, x_7, x_8, x_9, x_16); -if (lean_obj_tag(x_17) == 0) +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +lean_inc(x_10); +x_18 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go(x_1, x_2, x_3, x_4, x_5, x_6, x_16, x_7, x_8, x_9, x_10, x_17); +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; uint8_t x_23; -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; uint8_t x_24; +x_19 = lean_ctor_get(x_18, 0); lean_inc(x_19); -lean_dec(x_17); -x_20 = lean_st_ref_get(x_9, x_19); -lean_dec(x_9); -x_21 = lean_ctor_get(x_20, 1); -lean_inc(x_21); -lean_dec(x_20); -x_22 = lean_st_ref_get(x_15, x_21); -lean_dec(x_15); -x_23 = !lean_is_exclusive(x_22); -if (x_23 == 0) +x_20 = lean_ctor_get(x_18, 1); +lean_inc(x_20); +lean_dec(x_18); +x_21 = lean_st_ref_get(x_10, x_20); +lean_dec(x_10); +x_22 = lean_ctor_get(x_21, 1); +lean_inc(x_22); +lean_dec(x_21); +x_23 = lean_st_ref_get(x_16, x_22); +lean_dec(x_16); +x_24 = !lean_is_exclusive(x_23); +if (x_24 == 0) { -lean_object* x_24; -x_24 = lean_ctor_get(x_22, 0); -lean_dec(x_24); -lean_ctor_set(x_22, 0, x_18); -return x_22; +lean_object* x_25; +x_25 = lean_ctor_get(x_23, 0); +lean_dec(x_25); +lean_ctor_set(x_23, 0, x_19); +return x_23; } else { -lean_object* x_25; lean_object* x_26; -x_25 = lean_ctor_get(x_22, 1); -lean_inc(x_25); -lean_dec(x_22); -x_26 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_26, 0, x_18); -lean_ctor_set(x_26, 1, x_25); -return x_26; +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_23, 1); +lean_inc(x_26); +lean_dec(x_23); +x_27 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_27, 0, x_19); +lean_ctor_set(x_27, 1, x_26); +return x_27; } } else { -uint8_t x_27; -lean_dec(x_15); -lean_dec(x_9); -x_27 = !lean_is_exclusive(x_17); -if (x_27 == 0) +uint8_t x_28; +lean_dec(x_16); +lean_dec(x_10); +x_28 = !lean_is_exclusive(x_18); +if (x_28 == 0) { -return x_17; +return x_18; } else { -lean_object* x_28; lean_object* x_29; lean_object* x_30; -x_28 = lean_ctor_get(x_17, 0); -x_29 = lean_ctor_get(x_17, 1); +lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_29 = lean_ctor_get(x_18, 0); +x_30 = lean_ctor_get(x_18, 1); +lean_inc(x_30); lean_inc(x_29); -lean_inc(x_28); -lean_dec(x_17); -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_18); +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; } } } } -LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt___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_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt___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) { _start: { -uint8_t x_11; lean_object* x_12; -x_11 = lean_unbox(x_5); +uint8_t x_12; lean_object* x_13; +x_12 = lean_unbox(x_6); +lean_dec(x_6); +x_13 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt(x_1, x_2, x_3, x_4, x_5, x_12, x_7, x_8, x_9, x_10, x_11); +lean_dec(x_3); +lean_dec(x_2); +return x_13; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpNewArgs(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4) { +_start: +{ +if (x_4 == 0) +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_5 = lean_unsigned_to_nat(0u); +lean_inc(x_2); +lean_inc(x_1); +x_6 = l_Array_toSubarray___rarg(x_1, x_5, x_2); +x_7 = l_Array_ofSubarray___rarg(x_6); +x_8 = l_Array_append___rarg(x_7, x_3); +x_9 = lean_unsigned_to_nat(1u); +x_10 = lean_nat_add(x_2, x_9); +lean_dec(x_2); +x_11 = lean_array_get_size(x_1); +x_12 = l_Array_toSubarray___rarg(x_1, x_10, x_11); +x_13 = l_Array_ofSubarray___rarg(x_12); +x_14 = l_Array_append___rarg(x_8, x_13); +return x_14; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_15 = lean_unsigned_to_nat(1u); +x_16 = lean_nat_add(x_2, x_15); +lean_dec(x_2); +x_17 = lean_unsigned_to_nat(0u); +lean_inc(x_16); +lean_inc(x_1); +x_18 = l_Array_toSubarray___rarg(x_1, x_17, x_16); +x_19 = l_Array_ofSubarray___rarg(x_18); +x_20 = l_Array_append___rarg(x_19, x_3); +x_21 = lean_array_get_size(x_1); +x_22 = l_Array_toSubarray___rarg(x_1, x_16, x_21); +x_23 = l_Array_ofSubarray___rarg(x_22); +x_24 = l_Array_append___rarg(x_20, x_23); +return x_24; +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpNewArgs___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; lean_object* x_6; +x_5 = lean_unbox(x_4); +lean_dec(x_4); +x_6 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpNewArgs(x_1, x_2, x_3, x_5); +return x_6; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpArgsAtJp(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4) { +_start: +{ +lean_object* x_5; size_t x_6; size_t x_7; lean_object* x_8; lean_object* x_9; size_t x_10; lean_object* x_11; lean_object* x_12; +x_5 = lean_array_get_size(x_1); +x_6 = lean_usize_of_nat(x_5); lean_dec(x_5); -x_12 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt(x_1, x_2, x_3, x_4, x_11, x_6, x_7, x_8, x_9, x_10); +x_7 = 0; +x_8 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_6, x_7, x_1); +x_9 = lean_array_get_size(x_3); +x_10 = lean_usize_of_nat(x_9); +lean_dec(x_9); +x_11 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_10, x_7, x_3); +x_12 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpNewArgs(x_8, x_2, x_11, x_4); return x_12; } } +LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpArgsAtJp___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; lean_object* x_6; +x_5 = lean_unbox(x_4); +lean_dec(x_4); +x_6 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpArgsAtJp(x_1, x_2, x_3, x_5); +return x_6; +} +} LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__1(lean_object* x_1, lean_object* x_2) { _start: { @@ -4398,64 +5644,7 @@ goto _start; } } } -static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Core_instMonadCoreM; -x_2 = l_ReaderT_instMonadReaderT___rarg(x_1); -return x_2; -} -} -static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__1; -x_2 = l_ReaderT_instMonadReaderT___rarg(x_1); -return x_2; -} -} -static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__2; -x_2 = l_ReaderT_instMonadReaderT___rarg(x_1); -return x_2; -} -} -static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__3; -x_3 = l_instInhabited___rarg(x_2, x_1); -return x_3; -} -} -static lean_object* _init_l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__4; -x_2 = lean_alloc_closure((void*)(l_instInhabitedReaderT___rarg___boxed), 2, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__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) { -_start: -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__5; -x_10 = lean_panic_fn(x_9, x_1); -x_11 = lean_apply_7(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_11; -} -} -LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(lean_object* x_1, lean_object* x_2) { +LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) @@ -4495,7 +5684,7 @@ goto _start; } } } -static lean_object* _init_l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___closed__1() { +static lean_object* _init_l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___closed__1() { _start: { lean_object* x_1; @@ -4503,276 +5692,237 @@ x_1 = lean_mk_string_from_bytes("_x", 2); return x_1; } } -static lean_object* _init_l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___closed__2() { +static lean_object* _init_l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___closed__1; +x_2 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___closed__1; x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4(lean_object* x_1, size_t x_2, size_t 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_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(lean_object* x_1, size_t x_2, size_t 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: { -uint8_t x_12; -x_12 = lean_usize_dec_lt(x_3, x_2); -if (x_12 == 0) +uint8_t x_13; +x_13 = lean_usize_dec_lt(x_3, x_2); +if (x_13 == 0) { -lean_object* x_13; +lean_object* x_14; +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_4); -lean_ctor_set(x_13, 1, x_11); -return x_13; +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_4); +lean_ctor_set(x_14, 1, x_12); +return x_14; } else { -lean_object* x_14; lean_object* x_15; uint8_t x_16; -x_14 = lean_ctor_get(x_1, 0); -x_15 = lean_array_uget(x_14, x_3); -x_16 = !lean_is_exclusive(x_4); -if (x_16 == 0) +lean_object* x_15; lean_object* x_16; uint8_t x_17; +x_15 = lean_ctor_get(x_1, 0); +x_16 = lean_array_uget(x_15, x_3); +x_17 = !lean_is_exclusive(x_4); +if (x_17 == 0) { -lean_object* x_17; lean_object* x_18; uint8_t x_19; -x_17 = lean_ctor_get(x_4, 0); -x_18 = lean_ctor_get(x_4, 1); -x_19 = l_Lean_Expr_isFVar(x_15); -if (x_19 == 0) +lean_object* x_18; lean_object* x_19; uint8_t x_20; +x_18 = lean_ctor_get(x_4, 0); +x_19 = lean_ctor_get(x_4, 1); +x_20 = l_Lean_Expr_isFVar(x_16); +if (x_20 == 0) { -lean_object* x_20; lean_object* x_21; -x_20 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___closed__2; +lean_object* x_21; lean_object* x_22; +x_21 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___closed__2; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -x_21 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_15, x_20, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_21) == 0) +x_22 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_16, x_21, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_22) == 0) { -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; size_t x_29; size_t x_30; -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; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; size_t x_30; size_t x_31; +x_23 = lean_ctor_get(x_22, 0); lean_inc(x_23); -lean_dec(x_21); -lean_inc(x_22); -x_24 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_24, 0, x_22); -x_25 = lean_array_push(x_17, x_24); -x_26 = lean_ctor_get(x_22, 0); -lean_inc(x_26); +x_24 = lean_ctor_get(x_22, 1); +lean_inc(x_24); lean_dec(x_22); -x_27 = l_Lean_Expr_fvar___override(x_26); -x_28 = lean_array_push(x_18, x_27); -lean_ctor_set(x_4, 1, x_28); -lean_ctor_set(x_4, 0, x_25); -x_29 = 1; -x_30 = lean_usize_add(x_3, x_29); -x_3 = x_30; -x_11 = x_23; +lean_inc(x_23); +x_25 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_25, 0, x_23); +x_26 = lean_array_push(x_18, x_25); +x_27 = lean_ctor_get(x_23, 0); +lean_inc(x_27); +lean_dec(x_23); +x_28 = l_Lean_Expr_fvar___override(x_27); +x_29 = lean_array_push(x_19, x_28); +lean_ctor_set(x_4, 1, x_29); +lean_ctor_set(x_4, 0, x_26); +x_30 = 1; +x_31 = lean_usize_add(x_3, x_30); +x_3 = x_31; +x_12 = x_24; goto _start; } else { -uint8_t x_32; +uint8_t x_33; lean_free_object(x_4); +lean_dec(x_19); lean_dec(x_18); -lean_dec(x_17); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_32 = !lean_is_exclusive(x_21); -if (x_32 == 0) +x_33 = !lean_is_exclusive(x_22); +if (x_33 == 0) { -return x_21; +return x_22; } else { -lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_33 = lean_ctor_get(x_21, 0); -x_34 = lean_ctor_get(x_21, 1); +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_22, 0); +x_35 = lean_ctor_get(x_22, 1); +lean_inc(x_35); lean_inc(x_34); -lean_inc(x_33); -lean_dec(x_21); -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_22); +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 { -lean_object* x_36; size_t x_37; size_t x_38; -x_36 = lean_array_push(x_18, x_15); -lean_ctor_set(x_4, 1, x_36); -x_37 = 1; -x_38 = lean_usize_add(x_3, x_37); -x_3 = x_38; +lean_object* x_37; size_t x_38; size_t x_39; +x_37 = lean_array_push(x_19, x_16); +lean_ctor_set(x_4, 1, x_37); +x_38 = 1; +x_39 = lean_usize_add(x_3, x_38); +x_3 = x_39; goto _start; } } else { -lean_object* x_40; lean_object* x_41; uint8_t x_42; -x_40 = lean_ctor_get(x_4, 0); -x_41 = lean_ctor_get(x_4, 1); +lean_object* x_41; lean_object* x_42; uint8_t x_43; +x_41 = lean_ctor_get(x_4, 0); +x_42 = lean_ctor_get(x_4, 1); +lean_inc(x_42); lean_inc(x_41); -lean_inc(x_40); lean_dec(x_4); -x_42 = l_Lean_Expr_isFVar(x_15); -if (x_42 == 0) +x_43 = l_Lean_Expr_isFVar(x_16); +if (x_43 == 0) { -lean_object* x_43; lean_object* x_44; -x_43 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___closed__2; +lean_object* x_44; lean_object* x_45; +x_44 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___closed__2; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -x_44 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_15, x_43, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_44) == 0) +x_45 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_16, x_44, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_45) == 0) { -lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; size_t x_53; size_t x_54; -x_45 = lean_ctor_get(x_44, 0); -lean_inc(x_45); -x_46 = lean_ctor_get(x_44, 1); +lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; size_t x_54; size_t x_55; +x_46 = lean_ctor_get(x_45, 0); lean_inc(x_46); -lean_dec(x_44); -lean_inc(x_45); -x_47 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_47, 0, x_45); -x_48 = lean_array_push(x_40, x_47); -x_49 = lean_ctor_get(x_45, 0); -lean_inc(x_49); +x_47 = lean_ctor_get(x_45, 1); +lean_inc(x_47); lean_dec(x_45); -x_50 = l_Lean_Expr_fvar___override(x_49); -x_51 = lean_array_push(x_41, x_50); -x_52 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_52, 0, x_48); -lean_ctor_set(x_52, 1, x_51); -x_53 = 1; -x_54 = lean_usize_add(x_3, x_53); -x_3 = x_54; -x_4 = x_52; -x_11 = x_46; +lean_inc(x_46); +x_48 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_48, 0, x_46); +x_49 = lean_array_push(x_41, x_48); +x_50 = lean_ctor_get(x_46, 0); +lean_inc(x_50); +lean_dec(x_46); +x_51 = l_Lean_Expr_fvar___override(x_50); +x_52 = lean_array_push(x_42, x_51); +x_53 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_53, 0, x_49); +lean_ctor_set(x_53, 1, x_52); +x_54 = 1; +x_55 = lean_usize_add(x_3, x_54); +x_3 = x_55; +x_4 = x_53; +x_12 = x_47; goto _start; } else { -lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; +lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; +lean_dec(x_42); lean_dec(x_41); -lean_dec(x_40); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_56 = lean_ctor_get(x_44, 0); -lean_inc(x_56); -x_57 = lean_ctor_get(x_44, 1); +x_57 = lean_ctor_get(x_45, 0); lean_inc(x_57); -if (lean_is_exclusive(x_44)) { - lean_ctor_release(x_44, 0); - lean_ctor_release(x_44, 1); - x_58 = x_44; +x_58 = lean_ctor_get(x_45, 1); +lean_inc(x_58); +if (lean_is_exclusive(x_45)) { + lean_ctor_release(x_45, 0); + lean_ctor_release(x_45, 1); + x_59 = x_45; } else { - lean_dec_ref(x_44); - x_58 = lean_box(0); + lean_dec_ref(x_45); + x_59 = lean_box(0); } -if (lean_is_scalar(x_58)) { - x_59 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_59)) { + x_60 = lean_alloc_ctor(1, 2, 0); } else { - x_59 = x_58; + x_60 = x_59; } -lean_ctor_set(x_59, 0, x_56); -lean_ctor_set(x_59, 1, x_57); -return x_59; +lean_ctor_set(x_60, 0, x_57); +lean_ctor_set(x_60, 1, x_58); +return x_60; } } else { -lean_object* x_60; lean_object* x_61; size_t x_62; size_t x_63; -x_60 = lean_array_push(x_41, x_15); -x_61 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_61, 0, x_40); -lean_ctor_set(x_61, 1, x_60); -x_62 = 1; -x_63 = lean_usize_add(x_3, x_62); -x_3 = x_63; -x_4 = x_61; +lean_object* x_61; lean_object* x_62; size_t x_63; size_t x_64; +x_61 = lean_array_push(x_42, x_16); +x_62 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_62, 0, x_41); +lean_ctor_set(x_62, 1, x_61); +x_63 = 1; +x_64 = lean_usize_add(x_3, x_63); +x_3 = x_64; +x_4 = x_62; goto _start; } } } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___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_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___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_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14) { _start: { -lean_object* x_10; lean_object* x_11; lean_object* x_12; -x_10 = l_Lean_Compiler_LCNF_attachCodeDecls(x_1, x_2); -x_11 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_11, 0, x_10); -x_12 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_12, 0, x_11); -lean_ctor_set(x_12, 1, x_9); -return x_12; +uint8_t x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_15 = lean_ctor_get_uint8(x_1, sizeof(void*)*1 + 1); +x_16 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpNewArgs(x_2, x_3, x_5, x_15); +x_17 = lean_ctor_get(x_1, 0); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_16); +x_20 = l_Lean_Compiler_LCNF_attachCodeDecls(x_4, x_19); +x_21 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_21, 0, 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_14); +return x_22; } } static lean_object* _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__1() { _start: { -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("assertion violation: ", 21); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__2() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("args.size == 1\n ", 19); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__1; -x_2 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__2; -x_3 = lean_string_append(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__4() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("Lean.Compiler.LCNF.Simp.simpJpCases?.visitJmp?", 46); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__5() { -_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___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___closed__1; -x_2 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__4; -x_3 = lean_unsigned_to_nat(227u); -x_4 = lean_unsigned_to_nat(4u); -x_5 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__3; -x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); -return x_6; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__6() { -_start: -{ lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; x_2 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; @@ -4782,27 +5932,27 @@ lean_ctor_set(x_3, 1, x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f(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_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f(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; lean_object* x_12; uint8_t x_13; -x_10 = lean_st_ref_get(x_8, x_9); -x_11 = lean_ctor_get(x_10, 1); -lean_inc(x_11); -lean_dec(x_10); -x_12 = lean_st_ref_get(x_4, x_11); -x_13 = !lean_is_exclusive(x_12); -if (x_13 == 0) +lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; +x_11 = lean_st_ref_get(x_9, x_10); +x_12 = lean_ctor_get(x_11, 1); +lean_inc(x_12); +lean_dec(x_11); +x_13 = lean_st_ref_get(x_4, x_12); +x_14 = !lean_is_exclusive(x_13); +if (x_14 == 0) { -lean_object* x_14; lean_object* x_15; lean_object* x_16; -x_14 = lean_ctor_get(x_12, 0); -x_15 = lean_ctor_get(x_12, 1); -x_16 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__1(x_14, x_1); -lean_dec(x_1); -lean_dec(x_14); -if (lean_obj_tag(x_16) == 0) +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_ctor_get(x_13, 0); +x_16 = lean_ctor_get(x_13, 1); +x_17 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__1(x_15, x_1); +lean_dec(x_15); +if (lean_obj_tag(x_17) == 0) { -lean_object* x_17; +lean_object* x_18; +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -4810,63 +5960,77 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_17 = lean_box(0); -lean_ctor_set(x_12, 0, x_17); -return x_12; +lean_dec(x_1); +x_18 = lean_box(0); +lean_ctor_set(x_13, 0, x_18); +return x_13; } else { -lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; -lean_free_object(x_12); -x_18 = lean_ctor_get(x_16, 0); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_array_get_size(x_2); -x_20 = lean_unsigned_to_nat(1u); -x_21 = lean_nat_dec_eq(x_19, x_20); -if (x_21 == 0) +lean_object* x_19; lean_object* x_20; +x_19 = lean_ctor_get(x_17, 0); +lean_inc(x_19); +lean_dec(x_17); +x_20 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__3(x_3, x_1); +lean_dec(x_1); +if (lean_obj_tag(x_20) == 0) { -lean_object* x_22; lean_object* x_23; +lean_object* x_21; lean_dec(x_19); -lean_dec(x_18); +lean_dec(x_9); +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); -x_22 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__5; -x_23 = l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2(x_22, x_3, x_4, x_5, x_6, x_7, x_8, x_15); -return x_23; +x_21 = lean_box(0); +lean_ctor_set(x_13, 0, x_21); +return x_13; } else { -lean_object* x_24; uint8_t x_25; -x_24 = lean_unsigned_to_nat(0u); -x_25 = lean_nat_dec_lt(x_24, x_19); -lean_dec(x_19); +lean_object* x_22; lean_object* x_23; lean_object* x_24; uint8_t x_25; +lean_free_object(x_13); +x_22 = lean_ctor_get(x_20, 0); +lean_inc(x_22); +lean_dec(x_20); +x_23 = lean_ctor_get(x_22, 0); +lean_inc(x_23); +lean_dec(x_22); +x_24 = lean_array_get_size(x_2); +x_25 = lean_nat_dec_lt(x_23, x_24); +lean_dec(x_24); if (x_25 == 0) { -lean_object* x_26; lean_object* x_27; uint8_t x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; -x_26 = l_Lean_Compiler_LCNF_Simp_isJpCases___closed__4; +lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; +x_26 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__4; x_27 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_26); -x_28 = 1; -x_29 = l_Lean_Compiler_LCNF_Simp_findExpr(x_27, x_28, x_5, x_6, x_7, x_8, x_15); -x_30 = lean_ctor_get(x_29, 0); +x_28 = l_Lean_Compiler_LCNF_Simp_findCtor(x_27, x_5, x_6, x_7, x_8, x_9, x_16); +x_29 = lean_ctor_get(x_28, 0); +lean_inc(x_29); +x_30 = lean_ctor_get(x_28, 1); lean_inc(x_30); -x_31 = lean_ctor_get(x_29, 1); -lean_inc(x_31); -lean_dec(x_29); -x_32 = lean_st_ref_get(x_8, x_31); -x_33 = !lean_is_exclusive(x_32); -if (x_33 == 0) +lean_dec(x_28); +x_31 = lean_st_ref_get(x_9, x_30); +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) { -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_34 = lean_ctor_get(x_32, 0); -x_35 = lean_ctor_get(x_32, 1); -x_36 = lean_ctor_get(x_34, 0); -lean_inc(x_36); -lean_dec(x_34); -x_37 = l_Lean_Expr_constructorApp_x3f(x_36, x_30, x_28); +lean_object* x_33; lean_object* x_34; lean_object* x_35; uint8_t x_36; lean_object* x_37; +x_33 = lean_ctor_get(x_31, 0); +x_34 = lean_ctor_get(x_31, 1); +x_35 = lean_ctor_get(x_33, 0); +lean_inc(x_35); +lean_dec(x_33); +x_36 = 1; +x_37 = l_Lean_Expr_constructorApp_x3f(x_35, x_29, x_36); if (lean_obj_tag(x_37) == 0) { lean_object* x_38; -lean_dec(x_18); +lean_dec(x_23); +lean_dec(x_19); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -4875,8 +6039,8 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); x_38 = lean_box(0); -lean_ctor_set(x_32, 0, x_38); -return x_32; +lean_ctor_set(x_31, 0, x_38); +return x_31; } else { @@ -4894,14 +6058,16 @@ lean_inc(x_42); x_43 = lean_ctor_get(x_42, 0); lean_inc(x_43); lean_dec(x_42); -x_44 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_18, x_43); +x_44 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2(x_19, x_43); lean_dec(x_43); -lean_dec(x_18); +lean_dec(x_19); if (lean_obj_tag(x_44) == 0) { lean_object* x_45; lean_dec(x_41); lean_dec(x_40); +lean_dec(x_23); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -4910,295 +6076,334 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); x_45 = lean_box(0); -lean_ctor_set(x_32, 0, x_45); -return x_32; +lean_ctor_set(x_31, 0, x_45); +return x_31; } else { -uint8_t x_46; -x_46 = !lean_is_exclusive(x_44); -if (x_46 == 0) +lean_object* x_46; uint8_t x_47; +lean_free_object(x_31); +x_46 = lean_ctor_get(x_44, 0); +lean_inc(x_46); +lean_dec(x_44); +x_47 = lean_ctor_get_uint8(x_46, sizeof(void*)*1); +if (x_47 == 0) { -lean_object* x_47; uint8_t x_48; -x_47 = lean_ctor_get(x_44, 0); -x_48 = lean_ctor_get_uint8(x_47, sizeof(void*)*1); -if (x_48 == 0) -{ -lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; size_t x_53; lean_object* x_54; size_t x_55; lean_object* x_56; lean_object* x_57; -lean_free_object(x_44); -lean_free_object(x_32); -x_49 = lean_ctor_get(x_40, 3); -lean_inc(x_49); +lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; size_t x_52; lean_object* x_53; size_t x_54; lean_object* x_55; lean_object* x_56; +x_48 = lean_ctor_get(x_40, 3); +lean_inc(x_48); lean_dec(x_40); -x_50 = lean_array_get_size(x_41); -x_51 = l_Array_toSubarray___rarg(x_41, x_49, x_50); -x_52 = lean_ctor_get(x_51, 2); -lean_inc(x_52); -x_53 = lean_usize_of_nat(x_52); -lean_dec(x_52); -x_54 = lean_ctor_get(x_51, 1); -lean_inc(x_54); -x_55 = lean_usize_of_nat(x_54); -lean_dec(x_54); -x_56 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__6; +x_49 = lean_array_get_size(x_41); +x_50 = l_Array_toSubarray___rarg(x_41, x_48, x_49); +x_51 = lean_ctor_get(x_50, 2); +lean_inc(x_51); +x_52 = lean_usize_of_nat(x_51); +lean_dec(x_51); +x_53 = lean_ctor_get(x_50, 1); +lean_inc(x_53); +x_54 = lean_usize_of_nat(x_53); +lean_dec(x_53); +x_55 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__1; +lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); -lean_inc(x_5); -x_57 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4(x_51, x_53, x_55, x_56, x_3, x_4, x_5, x_6, x_7, x_8, x_35); -lean_dec(x_51); -if (lean_obj_tag(x_57) == 0) +x_56 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_50, x_52, x_54, x_55, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_34); +lean_dec(x_50); +if (lean_obj_tag(x_56) == 0) { -lean_object* x_58; uint8_t x_59; -x_58 = lean_ctor_get(x_57, 0); +lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +x_57 = lean_ctor_get(x_56, 0); +lean_inc(x_57); +x_58 = lean_ctor_get(x_56, 1); lean_inc(x_58); -x_59 = lean_ctor_get_uint8(x_47, sizeof(void*)*1 + 1); -if (x_59 == 0) -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; -lean_dec(x_2); -x_60 = lean_ctor_get(x_47, 0); +lean_dec(x_56); +x_59 = lean_ctor_get(x_57, 0); +lean_inc(x_59); +x_60 = lean_ctor_get(x_57, 1); lean_inc(x_60); -lean_dec(x_47); -x_61 = lean_ctor_get(x_57, 1); -lean_inc(x_61); lean_dec(x_57); -x_62 = lean_ctor_get(x_58, 0); -lean_inc(x_62); -x_63 = lean_ctor_get(x_58, 1); -lean_inc(x_63); -lean_dec(x_58); -x_64 = lean_ctor_get(x_60, 0); -lean_inc(x_64); -lean_dec(x_60); -x_65 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_65, 0, x_64); -lean_ctor_set(x_65, 1, x_63); -x_66 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_62, x_65, x_3, x_4, x_5, x_6, x_7, x_8, x_61); +x_61 = lean_box(0); +x_62 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_46, x_2, x_23, x_59, x_60, x_61, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_58); +lean_dec(x_9); 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_62); +lean_dec(x_59); +lean_dec(x_46); +return x_62; +} +else +{ +uint8_t x_63; +lean_dec(x_46); +lean_dec(x_23); +lean_dec(x_9); +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); +x_63 = !lean_is_exclusive(x_56); +if (x_63 == 0) +{ +return x_56; +} +else +{ +lean_object* x_64; lean_object* x_65; lean_object* x_66; +x_64 = lean_ctor_get(x_56, 0); +x_65 = lean_ctor_get(x_56, 1); +lean_inc(x_65); +lean_inc(x_64); +lean_dec(x_56); +x_66 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_66, 0, x_64); +lean_ctor_set(x_66, 1, x_65); return x_66; } -else -{ -lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; -x_67 = lean_ctor_get(x_47, 0); -lean_inc(x_67); -lean_dec(x_47); -x_68 = lean_ctor_get(x_57, 1); -lean_inc(x_68); -lean_dec(x_57); -x_69 = lean_ctor_get(x_58, 0); -lean_inc(x_69); -x_70 = lean_ctor_get(x_58, 1); -lean_inc(x_70); -lean_dec(x_58); -x_71 = lean_ctor_get(x_67, 0); -lean_inc(x_71); -lean_dec(x_67); -x_72 = l_Array_append___rarg(x_2, x_70); -x_73 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_73, 0, x_71); -lean_ctor_set(x_73, 1, x_72); -x_74 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_69, x_73, x_3, x_4, x_5, x_6, x_7, x_8, x_68); -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_69); -return x_74; } } else { -uint8_t x_75; -lean_dec(x_47); -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); -x_75 = !lean_is_exclusive(x_57); -if (x_75 == 0) -{ -return x_57; -} -else -{ -lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_76 = lean_ctor_get(x_57, 0); -x_77 = lean_ctor_get(x_57, 1); -lean_inc(x_77); -lean_inc(x_76); -lean_dec(x_57); -x_78 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_78, 0, x_76); -lean_ctor_set(x_78, 1, x_77); -return x_78; -} -} -} -else -{ -uint8_t x_79; +lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_dec(x_41); lean_dec(x_40); +x_67 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_68 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_69 = lean_box(0); +x_70 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_46, x_2, x_23, x_67, x_68, x_69, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_34); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_79 = lean_ctor_get_uint8(x_47, sizeof(void*)*1 + 1); -if (x_79 == 0) +lean_dec(x_46); +return x_70; +} +} +} +} +else { -lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; +lean_object* x_71; lean_object* x_72; lean_object* x_73; uint8_t x_74; lean_object* x_75; +x_71 = lean_ctor_get(x_31, 0); +x_72 = lean_ctor_get(x_31, 1); +lean_inc(x_72); +lean_inc(x_71); +lean_dec(x_31); +x_73 = lean_ctor_get(x_71, 0); +lean_inc(x_73); +lean_dec(x_71); +x_74 = 1; +x_75 = l_Lean_Expr_constructorApp_x3f(x_73, x_29, x_74); +if (lean_obj_tag(x_75) == 0) +{ +lean_object* x_76; lean_object* x_77; +lean_dec(x_23); +lean_dec(x_19); +lean_dec(x_9); +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); -x_80 = lean_ctor_get(x_47, 0); +x_76 = lean_box(0); +x_77 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_77, 0, x_76); +lean_ctor_set(x_77, 1, x_72); +return x_77; +} +else +{ +lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; +x_78 = lean_ctor_get(x_75, 0); +lean_inc(x_78); +lean_dec(x_75); +x_79 = lean_ctor_get(x_78, 0); +lean_inc(x_79); +x_80 = lean_ctor_get(x_78, 1); lean_inc(x_80); -lean_dec(x_47); -x_81 = lean_ctor_get(x_80, 0); +lean_dec(x_78); +x_81 = lean_ctor_get(x_79, 0); lean_inc(x_81); +x_82 = lean_ctor_get(x_81, 0); +lean_inc(x_82); +lean_dec(x_81); +x_83 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2(x_19, x_82); +lean_dec(x_82); +lean_dec(x_19); +if (lean_obj_tag(x_83) == 0) +{ +lean_object* x_84; lean_object* x_85; lean_dec(x_80); -x_82 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; -x_83 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_83, 0, x_81); -lean_ctor_set(x_83, 1, x_82); -lean_ctor_set(x_44, 0, x_83); -lean_ctor_set(x_32, 0, x_44); -return x_32; +lean_dec(x_79); +lean_dec(x_23); +lean_dec(x_9); +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); +x_84 = lean_box(0); +x_85 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_85, 0, x_84); +lean_ctor_set(x_85, 1, x_72); +return x_85; } else { -lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_84 = lean_ctor_get(x_47, 0); -lean_inc(x_84); -lean_dec(x_47); -x_85 = lean_ctor_get(x_84, 0); -lean_inc(x_85); -lean_dec(x_84); -x_86 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_86, 0, x_85); -lean_ctor_set(x_86, 1, x_2); -lean_ctor_set(x_44, 0, x_86); -lean_ctor_set(x_32, 0, x_44); -return x_32; -} -} -} -else +lean_object* x_86; uint8_t x_87; +x_86 = lean_ctor_get(x_83, 0); +lean_inc(x_86); +lean_dec(x_83); +x_87 = lean_ctor_get_uint8(x_86, sizeof(void*)*1); +if (x_87 == 0) { -lean_object* x_87; uint8_t x_88; -x_87 = lean_ctor_get(x_44, 0); -lean_inc(x_87); -lean_dec(x_44); -x_88 = lean_ctor_get_uint8(x_87, sizeof(void*)*1); -if (x_88 == 0) -{ -lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; size_t x_93; lean_object* x_94; size_t x_95; lean_object* x_96; lean_object* x_97; -lean_free_object(x_32); -x_89 = lean_ctor_get(x_40, 3); -lean_inc(x_89); -lean_dec(x_40); -x_90 = lean_array_get_size(x_41); -x_91 = l_Array_toSubarray___rarg(x_41, x_89, x_90); -x_92 = lean_ctor_get(x_91, 2); -lean_inc(x_92); -x_93 = lean_usize_of_nat(x_92); -lean_dec(x_92); -x_94 = lean_ctor_get(x_91, 1); -lean_inc(x_94); -x_95 = lean_usize_of_nat(x_94); -lean_dec(x_94); -x_96 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__6; +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; size_t x_92; lean_object* x_93; size_t x_94; lean_object* x_95; lean_object* x_96; +x_88 = lean_ctor_get(x_79, 3); +lean_inc(x_88); +lean_dec(x_79); +x_89 = lean_array_get_size(x_80); +x_90 = l_Array_toSubarray___rarg(x_80, x_88, x_89); +x_91 = lean_ctor_get(x_90, 2); +lean_inc(x_91); +x_92 = lean_usize_of_nat(x_91); +lean_dec(x_91); +x_93 = lean_ctor_get(x_90, 1); +lean_inc(x_93); +x_94 = lean_usize_of_nat(x_93); +lean_dec(x_93); +x_95 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__1; +lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); -lean_inc(x_5); -x_97 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4(x_91, x_93, x_95, x_96, x_3, x_4, x_5, x_6, x_7, x_8, x_35); -lean_dec(x_91); -if (lean_obj_tag(x_97) == 0) +x_96 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_90, x_92, x_94, x_95, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_72); +lean_dec(x_90); +if (lean_obj_tag(x_96) == 0) { -lean_object* x_98; uint8_t x_99; -x_98 = lean_ctor_get(x_97, 0); +lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; +x_97 = lean_ctor_get(x_96, 0); +lean_inc(x_97); +x_98 = lean_ctor_get(x_96, 1); lean_inc(x_98); -x_99 = lean_ctor_get_uint8(x_87, sizeof(void*)*1 + 1); -if (x_99 == 0) -{ -lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; -lean_dec(x_2); -x_100 = lean_ctor_get(x_87, 0); +lean_dec(x_96); +x_99 = lean_ctor_get(x_97, 0); +lean_inc(x_99); +x_100 = lean_ctor_get(x_97, 1); lean_inc(x_100); -lean_dec(x_87); -x_101 = lean_ctor_get(x_97, 1); -lean_inc(x_101); lean_dec(x_97); -x_102 = lean_ctor_get(x_98, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_98, 1); -lean_inc(x_103); -lean_dec(x_98); -x_104 = lean_ctor_get(x_100, 0); -lean_inc(x_104); -lean_dec(x_100); -x_105 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_105, 0, x_104); -lean_ctor_set(x_105, 1, x_103); -x_106 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_102, x_105, x_3, x_4, x_5, x_6, x_7, x_8, x_101); +x_101 = lean_box(0); +x_102 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_86, x_2, x_23, x_99, x_100, x_101, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_98); +lean_dec(x_9); 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_102); +lean_dec(x_99); +lean_dec(x_86); +return x_102; +} +else +{ +lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; +lean_dec(x_86); +lean_dec(x_23); +lean_dec(x_9); +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); +x_103 = lean_ctor_get(x_96, 0); +lean_inc(x_103); +x_104 = lean_ctor_get(x_96, 1); +lean_inc(x_104); +if (lean_is_exclusive(x_96)) { + lean_ctor_release(x_96, 0); + lean_ctor_release(x_96, 1); + x_105 = x_96; +} else { + lean_dec_ref(x_96); + x_105 = lean_box(0); +} +if (lean_is_scalar(x_105)) { + x_106 = lean_alloc_ctor(1, 2, 0); +} else { + x_106 = x_105; +} +lean_ctor_set(x_106, 0, x_103); +lean_ctor_set(x_106, 1, x_104); return x_106; } +} else { -lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; -x_107 = lean_ctor_get(x_87, 0); -lean_inc(x_107); -lean_dec(x_87); -x_108 = lean_ctor_get(x_97, 1); -lean_inc(x_108); -lean_dec(x_97); -x_109 = lean_ctor_get(x_98, 0); -lean_inc(x_109); -x_110 = lean_ctor_get(x_98, 1); -lean_inc(x_110); -lean_dec(x_98); -x_111 = lean_ctor_get(x_107, 0); -lean_inc(x_111); -lean_dec(x_107); -x_112 = l_Array_append___rarg(x_2, x_110); -x_113 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_113, 0, x_111); -lean_ctor_set(x_113, 1, x_112); -x_114 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_109, x_113, x_3, x_4, x_5, x_6, x_7, x_8, x_108); +lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; +lean_dec(x_80); +lean_dec(x_79); +x_107 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_108 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_109 = lean_box(0); +x_110 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_86, x_2, x_23, x_107, x_108, x_109, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_72); +lean_dec(x_9); 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_109); -return x_114; +lean_dec(x_86); +return x_110; +} +} +} } } else { -lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; -lean_dec(x_87); +lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; uint8_t x_116; +x_111 = lean_array_fget(x_2, x_23); +x_112 = l_Lean_Compiler_LCNF_Simp_findCtor(x_111, x_5, x_6, x_7, x_8, x_9, x_16); +x_113 = lean_ctor_get(x_112, 0); +lean_inc(x_113); +x_114 = lean_ctor_get(x_112, 1); +lean_inc(x_114); +lean_dec(x_112); +x_115 = lean_st_ref_get(x_9, x_114); +x_116 = !lean_is_exclusive(x_115); +if (x_116 == 0) +{ +lean_object* x_117; lean_object* x_118; lean_object* x_119; uint8_t x_120; lean_object* x_121; +x_117 = lean_ctor_get(x_115, 0); +x_118 = lean_ctor_get(x_115, 1); +x_119 = lean_ctor_get(x_117, 0); +lean_inc(x_119); +lean_dec(x_117); +x_120 = 1; +x_121 = l_Lean_Expr_constructorApp_x3f(x_119, x_113, x_120); +if (lean_obj_tag(x_121) == 0) +{ +lean_object* x_122; +lean_dec(x_23); +lean_dec(x_19); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -5206,97 +6411,36 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_115 = lean_ctor_get(x_97, 0); -lean_inc(x_115); -x_116 = lean_ctor_get(x_97, 1); -lean_inc(x_116); -if (lean_is_exclusive(x_97)) { - lean_ctor_release(x_97, 0); - lean_ctor_release(x_97, 1); - x_117 = x_97; -} else { - lean_dec_ref(x_97); - x_117 = lean_box(0); -} -if (lean_is_scalar(x_117)) { - x_118 = lean_alloc_ctor(1, 2, 0); -} else { - x_118 = x_117; -} -lean_ctor_set(x_118, 0, x_115); -lean_ctor_set(x_118, 1, x_116); -return x_118; -} +x_122 = lean_box(0); +lean_ctor_set(x_115, 0, x_122); +return x_115; } else { -uint8_t x_119; -lean_dec(x_41); -lean_dec(x_40); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_119 = lean_ctor_get_uint8(x_87, sizeof(void*)*1 + 1); -if (x_119 == 0) -{ -lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; -lean_dec(x_2); -x_120 = lean_ctor_get(x_87, 0); -lean_inc(x_120); -lean_dec(x_87); -x_121 = lean_ctor_get(x_120, 0); -lean_inc(x_121); -lean_dec(x_120); -x_122 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; -x_123 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_123, 0, x_121); -lean_ctor_set(x_123, 1, x_122); -x_124 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_124, 0, x_123); -lean_ctor_set(x_32, 0, x_124); -return x_32; -} -else -{ -lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; -x_125 = lean_ctor_get(x_87, 0); +lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; +x_123 = lean_ctor_get(x_121, 0); +lean_inc(x_123); +lean_dec(x_121); +x_124 = lean_ctor_get(x_123, 0); +lean_inc(x_124); +x_125 = lean_ctor_get(x_123, 1); lean_inc(x_125); -lean_dec(x_87); -x_126 = lean_ctor_get(x_125, 0); +lean_dec(x_123); +x_126 = lean_ctor_get(x_124, 0); lean_inc(x_126); +x_127 = lean_ctor_get(x_126, 0); +lean_inc(x_127); +lean_dec(x_126); +x_128 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2(x_19, x_127); +lean_dec(x_127); +lean_dec(x_19); +if (lean_obj_tag(x_128) == 0) +{ +lean_object* x_129; lean_dec(x_125); -x_127 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_127, 0, x_126); -lean_ctor_set(x_127, 1, x_2); -x_128 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_128, 0, x_127); -lean_ctor_set(x_32, 0, x_128); -return x_32; -} -} -} -} -} -} -else -{ -lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; -x_129 = lean_ctor_get(x_32, 0); -x_130 = lean_ctor_get(x_32, 1); -lean_inc(x_130); -lean_inc(x_129); -lean_dec(x_32); -x_131 = lean_ctor_get(x_129, 0); -lean_inc(x_131); -lean_dec(x_129); -x_132 = l_Lean_Expr_constructorApp_x3f(x_131, x_30, x_28); -if (lean_obj_tag(x_132) == 0) -{ -lean_object* x_133; lean_object* x_134; -lean_dec(x_18); +lean_dec(x_124); +lean_dec(x_23); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -5304,36 +6448,73 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_133 = lean_box(0); -x_134 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_134, 0, x_133); -lean_ctor_set(x_134, 1, x_130); -return x_134; +x_129 = lean_box(0); +lean_ctor_set(x_115, 0, x_129); +return x_115; } else { -lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; -x_135 = lean_ctor_get(x_132, 0); +lean_object* x_130; uint8_t x_131; +lean_free_object(x_115); +x_130 = lean_ctor_get(x_128, 0); +lean_inc(x_130); +lean_dec(x_128); +x_131 = lean_ctor_get_uint8(x_130, sizeof(void*)*1); +if (x_131 == 0) +{ +lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; size_t x_136; lean_object* x_137; size_t x_138; lean_object* x_139; lean_object* x_140; +x_132 = lean_ctor_get(x_124, 3); +lean_inc(x_132); +lean_dec(x_124); +x_133 = lean_array_get_size(x_125); +x_134 = l_Array_toSubarray___rarg(x_125, x_132, x_133); +x_135 = lean_ctor_get(x_134, 2); lean_inc(x_135); -lean_dec(x_132); -x_136 = lean_ctor_get(x_135, 0); -lean_inc(x_136); -x_137 = lean_ctor_get(x_135, 1); -lean_inc(x_137); +x_136 = lean_usize_of_nat(x_135); lean_dec(x_135); -x_138 = lean_ctor_get(x_136, 0); -lean_inc(x_138); -x_139 = lean_ctor_get(x_138, 0); -lean_inc(x_139); -lean_dec(x_138); -x_140 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_18, x_139); -lean_dec(x_139); -lean_dec(x_18); +x_137 = lean_ctor_get(x_134, 1); +lean_inc(x_137); +x_138 = lean_usize_of_nat(x_137); +lean_dec(x_137); +x_139 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__1; +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_140 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_134, x_136, x_138, x_139, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_118); +lean_dec(x_134); if (lean_obj_tag(x_140) == 0) { -lean_object* x_141; lean_object* x_142; -lean_dec(x_137); -lean_dec(x_136); +lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; +x_141 = lean_ctor_get(x_140, 0); +lean_inc(x_141); +x_142 = lean_ctor_get(x_140, 1); +lean_inc(x_142); +lean_dec(x_140); +x_143 = lean_ctor_get(x_141, 0); +lean_inc(x_143); +x_144 = lean_ctor_get(x_141, 1); +lean_inc(x_144); +lean_dec(x_141); +x_145 = lean_box(0); +x_146 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_130, x_2, x_23, x_143, x_144, x_145, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_142); +lean_dec(x_9); +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_143); +lean_dec(x_130); +return x_146; +} +else +{ +uint8_t x_147; +lean_dec(x_130); +lean_dec(x_23); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -5341,210 +6522,230 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_141 = lean_box(0); -x_142 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_142, 0, x_141); -lean_ctor_set(x_142, 1, x_130); -return x_142; +x_147 = !lean_is_exclusive(x_140); +if (x_147 == 0) +{ +return x_140; } else { -lean_object* x_143; lean_object* x_144; uint8_t x_145; -x_143 = lean_ctor_get(x_140, 0); -lean_inc(x_143); -if (lean_is_exclusive(x_140)) { - lean_ctor_release(x_140, 0); - x_144 = x_140; -} else { - lean_dec_ref(x_140); - x_144 = lean_box(0); -} -x_145 = lean_ctor_get_uint8(x_143, sizeof(void*)*1); -if (x_145 == 0) -{ -lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; size_t x_150; lean_object* x_151; size_t x_152; lean_object* x_153; lean_object* x_154; -lean_dec(x_144); -x_146 = lean_ctor_get(x_136, 3); -lean_inc(x_146); -lean_dec(x_136); -x_147 = lean_array_get_size(x_137); -x_148 = l_Array_toSubarray___rarg(x_137, x_146, x_147); -x_149 = lean_ctor_get(x_148, 2); +lean_object* x_148; lean_object* x_149; lean_object* x_150; +x_148 = lean_ctor_get(x_140, 0); +x_149 = lean_ctor_get(x_140, 1); lean_inc(x_149); -x_150 = lean_usize_of_nat(x_149); -lean_dec(x_149); -x_151 = lean_ctor_get(x_148, 1); -lean_inc(x_151); -x_152 = lean_usize_of_nat(x_151); -lean_dec(x_151); -x_153 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__6; +lean_inc(x_148); +lean_dec(x_140); +x_150 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_150, 0, x_148); +lean_ctor_set(x_150, 1, x_149); +return x_150; +} +} +} +else +{ +lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; +lean_dec(x_125); +lean_dec(x_124); +x_151 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_152 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_153 = lean_box(0); +x_154 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_130, x_2, x_23, x_151, x_152, x_153, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_118); +lean_dec(x_9); +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_130); +return x_154; +} +} +} +} +else +{ +lean_object* x_155; lean_object* x_156; lean_object* x_157; uint8_t x_158; lean_object* x_159; +x_155 = lean_ctor_get(x_115, 0); +x_156 = lean_ctor_get(x_115, 1); +lean_inc(x_156); +lean_inc(x_155); +lean_dec(x_115); +x_157 = lean_ctor_get(x_155, 0); +lean_inc(x_157); +lean_dec(x_155); +x_158 = 1; +x_159 = l_Lean_Expr_constructorApp_x3f(x_157, x_113, x_158); +if (lean_obj_tag(x_159) == 0) +{ +lean_object* x_160; lean_object* x_161; +lean_dec(x_23); +lean_dec(x_19); +lean_dec(x_9); +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); +x_160 = lean_box(0); +x_161 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_161, 0, x_160); +lean_ctor_set(x_161, 1, x_156); +return x_161; +} +else +{ +lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; +x_162 = lean_ctor_get(x_159, 0); +lean_inc(x_162); +lean_dec(x_159); +x_163 = lean_ctor_get(x_162, 0); +lean_inc(x_163); +x_164 = lean_ctor_get(x_162, 1); +lean_inc(x_164); +lean_dec(x_162); +x_165 = lean_ctor_get(x_163, 0); +lean_inc(x_165); +x_166 = lean_ctor_get(x_165, 0); +lean_inc(x_166); +lean_dec(x_165); +x_167 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2(x_19, x_166); +lean_dec(x_166); +lean_dec(x_19); +if (lean_obj_tag(x_167) == 0) +{ +lean_object* x_168; lean_object* x_169; +lean_dec(x_164); +lean_dec(x_163); +lean_dec(x_23); +lean_dec(x_9); +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); +x_168 = lean_box(0); +x_169 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_169, 0, x_168); +lean_ctor_set(x_169, 1, x_156); +return x_169; +} +else +{ +lean_object* x_170; uint8_t x_171; +x_170 = lean_ctor_get(x_167, 0); +lean_inc(x_170); +lean_dec(x_167); +x_171 = lean_ctor_get_uint8(x_170, sizeof(void*)*1); +if (x_171 == 0) +{ +lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; size_t x_176; lean_object* x_177; size_t x_178; lean_object* x_179; lean_object* x_180; +x_172 = lean_ctor_get(x_163, 3); +lean_inc(x_172); +lean_dec(x_163); +x_173 = lean_array_get_size(x_164); +x_174 = l_Array_toSubarray___rarg(x_164, x_172, x_173); +x_175 = lean_ctor_get(x_174, 2); +lean_inc(x_175); +x_176 = lean_usize_of_nat(x_175); +lean_dec(x_175); +x_177 = lean_ctor_get(x_174, 1); +lean_inc(x_177); +x_178 = lean_usize_of_nat(x_177); +lean_dec(x_177); +x_179 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__1; +lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); -lean_inc(x_5); -x_154 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4(x_148, x_150, x_152, x_153, x_3, x_4, x_5, x_6, x_7, x_8, x_130); -lean_dec(x_148); -if (lean_obj_tag(x_154) == 0) +x_180 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_174, x_176, x_178, x_179, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_156); +lean_dec(x_174); +if (lean_obj_tag(x_180) == 0) { -lean_object* x_155; uint8_t x_156; -x_155 = lean_ctor_get(x_154, 0); -lean_inc(x_155); -x_156 = lean_ctor_get_uint8(x_143, sizeof(void*)*1 + 1); -if (x_156 == 0) -{ -lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; -lean_dec(x_2); -x_157 = lean_ctor_get(x_143, 0); -lean_inc(x_157); -lean_dec(x_143); -x_158 = lean_ctor_get(x_154, 1); -lean_inc(x_158); -lean_dec(x_154); -x_159 = lean_ctor_get(x_155, 0); -lean_inc(x_159); -x_160 = lean_ctor_get(x_155, 1); -lean_inc(x_160); -lean_dec(x_155); -x_161 = lean_ctor_get(x_157, 0); -lean_inc(x_161); -lean_dec(x_157); -x_162 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_162, 0, x_161); -lean_ctor_set(x_162, 1, x_160); -x_163 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_159, x_162, x_3, x_4, x_5, x_6, x_7, x_8, x_158); -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_159); -return x_163; -} -else -{ -lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; -x_164 = lean_ctor_get(x_143, 0); -lean_inc(x_164); -lean_dec(x_143); -x_165 = lean_ctor_get(x_154, 1); -lean_inc(x_165); -lean_dec(x_154); -x_166 = lean_ctor_get(x_155, 0); -lean_inc(x_166); -x_167 = lean_ctor_get(x_155, 1); -lean_inc(x_167); -lean_dec(x_155); -x_168 = lean_ctor_get(x_164, 0); -lean_inc(x_168); -lean_dec(x_164); -x_169 = l_Array_append___rarg(x_2, x_167); -x_170 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_170, 0, x_168); -lean_ctor_set(x_170, 1, x_169); -x_171 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_166, x_170, x_3, x_4, x_5, x_6, x_7, x_8, x_165); -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_166); -return x_171; -} -} -else -{ -lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; -lean_dec(x_143); -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); -x_172 = lean_ctor_get(x_154, 0); -lean_inc(x_172); -x_173 = lean_ctor_get(x_154, 1); -lean_inc(x_173); -if (lean_is_exclusive(x_154)) { - lean_ctor_release(x_154, 0); - lean_ctor_release(x_154, 1); - x_174 = x_154; -} else { - lean_dec_ref(x_154); - x_174 = lean_box(0); -} -if (lean_is_scalar(x_174)) { - x_175 = lean_alloc_ctor(1, 2, 0); -} else { - x_175 = x_174; -} -lean_ctor_set(x_175, 0, x_172); -lean_ctor_set(x_175, 1, x_173); -return x_175; -} -} -else -{ -uint8_t x_176; -lean_dec(x_137); -lean_dec(x_136); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_176 = lean_ctor_get_uint8(x_143, sizeof(void*)*1 + 1); -if (x_176 == 0) -{ -lean_object* x_177; lean_object* x_178; lean_object* x_179; lean_object* x_180; lean_object* x_181; lean_object* x_182; -lean_dec(x_2); -x_177 = lean_ctor_get(x_143, 0); -lean_inc(x_177); -lean_dec(x_143); -x_178 = lean_ctor_get(x_177, 0); -lean_inc(x_178); -lean_dec(x_177); -x_179 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; -x_180 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_180, 0, x_178); -lean_ctor_set(x_180, 1, x_179); -if (lean_is_scalar(x_144)) { - x_181 = lean_alloc_ctor(1, 1, 0); -} else { - x_181 = x_144; -} -lean_ctor_set(x_181, 0, x_180); -x_182 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_182, 0, x_181); -lean_ctor_set(x_182, 1, x_130); -return x_182; -} -else -{ -lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; -x_183 = lean_ctor_get(x_143, 0); +lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; +x_181 = lean_ctor_get(x_180, 0); +lean_inc(x_181); +x_182 = lean_ctor_get(x_180, 1); +lean_inc(x_182); +lean_dec(x_180); +x_183 = lean_ctor_get(x_181, 0); lean_inc(x_183); -lean_dec(x_143); -x_184 = lean_ctor_get(x_183, 0); +x_184 = lean_ctor_get(x_181, 1); lean_inc(x_184); +lean_dec(x_181); +x_185 = lean_box(0); +x_186 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_170, x_2, x_23, x_183, x_184, x_185, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_182); +lean_dec(x_9); +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_183); -x_185 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_185, 0, x_184); -lean_ctor_set(x_185, 1, x_2); -if (lean_is_scalar(x_144)) { - x_186 = lean_alloc_ctor(1, 1, 0); +lean_dec(x_170); +return x_186; +} +else +{ +lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; +lean_dec(x_170); +lean_dec(x_23); +lean_dec(x_9); +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); +x_187 = lean_ctor_get(x_180, 0); +lean_inc(x_187); +x_188 = lean_ctor_get(x_180, 1); +lean_inc(x_188); +if (lean_is_exclusive(x_180)) { + lean_ctor_release(x_180, 0); + lean_ctor_release(x_180, 1); + x_189 = x_180; } else { - x_186 = x_144; + lean_dec_ref(x_180); + x_189 = lean_box(0); +} +if (lean_is_scalar(x_189)) { + x_190 = lean_alloc_ctor(1, 2, 0); +} else { + x_190 = x_189; +} +lean_ctor_set(x_190, 0, x_187); +lean_ctor_set(x_190, 1, x_188); +return x_190; +} +} +else +{ +lean_object* x_191; lean_object* x_192; lean_object* x_193; lean_object* x_194; +lean_dec(x_164); +lean_dec(x_163); +x_191 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_192 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_193 = lean_box(0); +x_194 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_170, x_2, x_23, x_191, x_192, x_193, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_156); +lean_dec(x_9); +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_170); +return x_194; +} } -lean_ctor_set(x_186, 0, x_185); -x_187 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_187, 0, x_186); -lean_ctor_set(x_187, 1, x_130); -return x_187; } } } @@ -5553,30 +6754,18 @@ return x_187; } else { -lean_object* x_188; uint8_t x_189; lean_object* x_190; lean_object* x_191; lean_object* x_192; lean_object* x_193; uint8_t x_194; -x_188 = lean_array_fget(x_2, x_24); -x_189 = 1; -x_190 = l_Lean_Compiler_LCNF_Simp_findExpr(x_188, x_189, x_5, x_6, x_7, x_8, x_15); -x_191 = lean_ctor_get(x_190, 0); -lean_inc(x_191); -x_192 = lean_ctor_get(x_190, 1); -lean_inc(x_192); -lean_dec(x_190); -x_193 = lean_st_ref_get(x_8, x_192); -x_194 = !lean_is_exclusive(x_193); -if (x_194 == 0) -{ -lean_object* x_195; lean_object* x_196; lean_object* x_197; lean_object* x_198; -x_195 = lean_ctor_get(x_193, 0); -x_196 = lean_ctor_get(x_193, 1); -x_197 = lean_ctor_get(x_195, 0); -lean_inc(x_197); +lean_object* x_195; lean_object* x_196; lean_object* x_197; +x_195 = lean_ctor_get(x_13, 0); +x_196 = lean_ctor_get(x_13, 1); +lean_inc(x_196); +lean_inc(x_195); +lean_dec(x_13); +x_197 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__1(x_195, x_1); lean_dec(x_195); -x_198 = l_Lean_Expr_constructorApp_x3f(x_197, x_191, x_189); -if (lean_obj_tag(x_198) == 0) +if (lean_obj_tag(x_197) == 0) { -lean_object* x_199; -lean_dec(x_18); +lean_object* x_198; lean_object* x_199; +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -5584,34 +6773,26 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_199 = lean_box(0); -lean_ctor_set(x_193, 0, x_199); -return x_193; +lean_dec(x_1); +x_198 = lean_box(0); +x_199 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_199, 0, x_198); +lean_ctor_set(x_199, 1, x_196); +return x_199; } else { -lean_object* x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; lean_object* x_204; lean_object* x_205; -x_200 = lean_ctor_get(x_198, 0); +lean_object* x_200; lean_object* x_201; +x_200 = lean_ctor_get(x_197, 0); lean_inc(x_200); -lean_dec(x_198); -x_201 = lean_ctor_get(x_200, 0); -lean_inc(x_201); -x_202 = lean_ctor_get(x_200, 1); -lean_inc(x_202); -lean_dec(x_200); -x_203 = lean_ctor_get(x_201, 0); -lean_inc(x_203); -x_204 = lean_ctor_get(x_203, 0); -lean_inc(x_204); -lean_dec(x_203); -x_205 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_18, x_204); -lean_dec(x_204); -lean_dec(x_18); -if (lean_obj_tag(x_205) == 0) +lean_dec(x_197); +x_201 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__3(x_3, x_1); +lean_dec(x_1); +if (lean_obj_tag(x_201) == 0) { -lean_object* x_206; -lean_dec(x_202); -lean_dec(x_201); +lean_object* x_202; lean_object* x_203; +lean_dec(x_200); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -5619,103 +6800,221 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_206 = lean_box(0); -lean_ctor_set(x_193, 0, x_206); -return x_193; +x_202 = lean_box(0); +x_203 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_203, 0, x_202); +lean_ctor_set(x_203, 1, x_196); +return x_203; } else { -uint8_t x_207; -x_207 = !lean_is_exclusive(x_205); +lean_object* x_204; lean_object* x_205; lean_object* x_206; uint8_t x_207; +x_204 = lean_ctor_get(x_201, 0); +lean_inc(x_204); +lean_dec(x_201); +x_205 = lean_ctor_get(x_204, 0); +lean_inc(x_205); +lean_dec(x_204); +x_206 = lean_array_get_size(x_2); +x_207 = lean_nat_dec_lt(x_205, x_206); +lean_dec(x_206); if (x_207 == 0) { -lean_object* x_208; uint8_t x_209; -x_208 = lean_ctor_get(x_205, 0); -x_209 = lean_ctor_get_uint8(x_208, sizeof(void*)*1); -if (x_209 == 0) -{ -lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; size_t x_214; lean_object* x_215; size_t x_216; lean_object* x_217; lean_object* x_218; -lean_free_object(x_205); -lean_free_object(x_193); -x_210 = lean_ctor_get(x_201, 3); -lean_inc(x_210); -lean_dec(x_201); -x_211 = lean_array_get_size(x_202); -x_212 = l_Array_toSubarray___rarg(x_202, x_210, x_211); -x_213 = lean_ctor_get(x_212, 2); -lean_inc(x_213); -x_214 = lean_usize_of_nat(x_213); -lean_dec(x_213); -x_215 = lean_ctor_get(x_212, 1); +lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; lean_object* x_217; uint8_t x_218; lean_object* x_219; +x_208 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__4; +x_209 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_208); +x_210 = l_Lean_Compiler_LCNF_Simp_findCtor(x_209, x_5, x_6, x_7, x_8, x_9, x_196); +x_211 = lean_ctor_get(x_210, 0); +lean_inc(x_211); +x_212 = lean_ctor_get(x_210, 1); +lean_inc(x_212); +lean_dec(x_210); +x_213 = lean_st_ref_get(x_9, x_212); +x_214 = lean_ctor_get(x_213, 0); +lean_inc(x_214); +x_215 = lean_ctor_get(x_213, 1); lean_inc(x_215); -x_216 = lean_usize_of_nat(x_215); -lean_dec(x_215); -x_217 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__6; -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -x_218 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4(x_212, x_214, x_216, x_217, x_3, x_4, x_5, x_6, x_7, x_8, x_196); -lean_dec(x_212); -if (lean_obj_tag(x_218) == 0) +if (lean_is_exclusive(x_213)) { + lean_ctor_release(x_213, 0); + lean_ctor_release(x_213, 1); + x_216 = x_213; +} else { + lean_dec_ref(x_213); + x_216 = lean_box(0); +} +x_217 = lean_ctor_get(x_214, 0); +lean_inc(x_217); +lean_dec(x_214); +x_218 = 1; +x_219 = l_Lean_Expr_constructorApp_x3f(x_217, x_211, x_218); +if (lean_obj_tag(x_219) == 0) { -lean_object* x_219; uint8_t x_220; -x_219 = lean_ctor_get(x_218, 0); -lean_inc(x_219); -x_220 = lean_ctor_get_uint8(x_208, sizeof(void*)*1 + 1); -if (x_220 == 0) -{ -lean_object* x_221; lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; -lean_dec(x_2); -x_221 = lean_ctor_get(x_208, 0); -lean_inc(x_221); -lean_dec(x_208); -x_222 = lean_ctor_get(x_218, 1); -lean_inc(x_222); -lean_dec(x_218); -x_223 = lean_ctor_get(x_219, 0); -lean_inc(x_223); -x_224 = lean_ctor_get(x_219, 1); -lean_inc(x_224); -lean_dec(x_219); -x_225 = lean_ctor_get(x_221, 0); -lean_inc(x_225); -lean_dec(x_221); -x_226 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_226, 0, x_225); -lean_ctor_set(x_226, 1, x_224); -x_227 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_223, x_226, x_3, x_4, x_5, x_6, x_7, x_8, x_222); +lean_object* x_220; lean_object* x_221; +lean_dec(x_205); +lean_dec(x_200); +lean_dec(x_9); 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_223); -return x_227; +lean_dec(x_2); +x_220 = lean_box(0); +if (lean_is_scalar(x_216)) { + x_221 = lean_alloc_ctor(0, 2, 0); +} else { + x_221 = x_216; +} +lean_ctor_set(x_221, 0, x_220); +lean_ctor_set(x_221, 1, x_215); +return x_221; } else { -lean_object* x_228; lean_object* x_229; lean_object* x_230; lean_object* x_231; lean_object* x_232; lean_object* x_233; lean_object* x_234; lean_object* x_235; -x_228 = lean_ctor_get(x_208, 0); -lean_inc(x_228); -lean_dec(x_208); -x_229 = lean_ctor_get(x_218, 1); -lean_inc(x_229); -lean_dec(x_218); -x_230 = lean_ctor_get(x_219, 0); -lean_inc(x_230); -x_231 = lean_ctor_get(x_219, 1); -lean_inc(x_231); +lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; +x_222 = lean_ctor_get(x_219, 0); +lean_inc(x_222); lean_dec(x_219); -x_232 = lean_ctor_get(x_228, 0); +x_223 = lean_ctor_get(x_222, 0); +lean_inc(x_223); +x_224 = lean_ctor_get(x_222, 1); +lean_inc(x_224); +lean_dec(x_222); +x_225 = lean_ctor_get(x_223, 0); +lean_inc(x_225); +x_226 = lean_ctor_get(x_225, 0); +lean_inc(x_226); +lean_dec(x_225); +x_227 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2(x_200, x_226); +lean_dec(x_226); +lean_dec(x_200); +if (lean_obj_tag(x_227) == 0) +{ +lean_object* x_228; lean_object* x_229; +lean_dec(x_224); +lean_dec(x_223); +lean_dec(x_205); +lean_dec(x_9); +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); +x_228 = lean_box(0); +if (lean_is_scalar(x_216)) { + x_229 = lean_alloc_ctor(0, 2, 0); +} else { + x_229 = x_216; +} +lean_ctor_set(x_229, 0, x_228); +lean_ctor_set(x_229, 1, x_215); +return x_229; +} +else +{ +lean_object* x_230; uint8_t x_231; +lean_dec(x_216); +x_230 = lean_ctor_get(x_227, 0); +lean_inc(x_230); +lean_dec(x_227); +x_231 = lean_ctor_get_uint8(x_230, sizeof(void*)*1); +if (x_231 == 0) +{ +lean_object* x_232; lean_object* x_233; lean_object* x_234; lean_object* x_235; size_t x_236; lean_object* x_237; size_t x_238; lean_object* x_239; lean_object* x_240; +x_232 = lean_ctor_get(x_223, 3); lean_inc(x_232); -lean_dec(x_228); -x_233 = l_Array_append___rarg(x_2, x_231); -x_234 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_234, 0, x_232); -lean_ctor_set(x_234, 1, x_233); -x_235 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_230, x_234, x_3, x_4, x_5, x_6, x_7, x_8, x_229); +lean_dec(x_223); +x_233 = lean_array_get_size(x_224); +x_234 = l_Array_toSubarray___rarg(x_224, x_232, x_233); +x_235 = lean_ctor_get(x_234, 2); +lean_inc(x_235); +x_236 = lean_usize_of_nat(x_235); +lean_dec(x_235); +x_237 = lean_ctor_get(x_234, 1); +lean_inc(x_237); +x_238 = lean_usize_of_nat(x_237); +lean_dec(x_237); +x_239 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__1; +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_240 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_234, x_236, x_238, x_239, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_215); +lean_dec(x_234); +if (lean_obj_tag(x_240) == 0) +{ +lean_object* x_241; lean_object* x_242; lean_object* x_243; lean_object* x_244; lean_object* x_245; lean_object* x_246; +x_241 = lean_ctor_get(x_240, 0); +lean_inc(x_241); +x_242 = lean_ctor_get(x_240, 1); +lean_inc(x_242); +lean_dec(x_240); +x_243 = lean_ctor_get(x_241, 0); +lean_inc(x_243); +x_244 = lean_ctor_get(x_241, 1); +lean_inc(x_244); +lean_dec(x_241); +x_245 = lean_box(0); +x_246 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_230, x_2, x_205, x_243, x_244, x_245, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_242); +lean_dec(x_9); +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_243); +lean_dec(x_230); +return x_246; +} +else +{ +lean_object* x_247; lean_object* x_248; lean_object* x_249; lean_object* x_250; +lean_dec(x_230); +lean_dec(x_205); +lean_dec(x_9); +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); +x_247 = lean_ctor_get(x_240, 0); +lean_inc(x_247); +x_248 = lean_ctor_get(x_240, 1); +lean_inc(x_248); +if (lean_is_exclusive(x_240)) { + lean_ctor_release(x_240, 0); + lean_ctor_release(x_240, 1); + x_249 = x_240; +} else { + lean_dec_ref(x_240); + x_249 = lean_box(0); +} +if (lean_is_scalar(x_249)) { + x_250 = lean_alloc_ctor(1, 2, 0); +} else { + x_250 = x_249; +} +lean_ctor_set(x_250, 0, x_247); +lean_ctor_set(x_250, 1, x_248); +return x_250; +} +} +else +{ +lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; +lean_dec(x_224); +lean_dec(x_223); +x_251 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_252 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_253 = lean_box(0); +x_254 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_230, x_2, x_205, x_251, x_252, x_253, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_215); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -5723,290 +7022,168 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_230); -return x_235; +return x_254; } } -else -{ -uint8_t x_236; -lean_dec(x_208); -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); -x_236 = !lean_is_exclusive(x_218); -if (x_236 == 0) -{ -return x_218; -} -else -{ -lean_object* x_237; lean_object* x_238; lean_object* x_239; -x_237 = lean_ctor_get(x_218, 0); -x_238 = lean_ctor_get(x_218, 1); -lean_inc(x_238); -lean_inc(x_237); -lean_dec(x_218); -x_239 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_239, 0, x_237); -lean_ctor_set(x_239, 1, x_238); -return x_239; -} } } else { -uint8_t x_240; -lean_dec(x_202); -lean_dec(x_201); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_240 = lean_ctor_get_uint8(x_208, sizeof(void*)*1 + 1); -if (x_240 == 0) -{ -lean_object* x_241; lean_object* x_242; lean_object* x_243; lean_object* x_244; -lean_dec(x_2); -x_241 = lean_ctor_get(x_208, 0); -lean_inc(x_241); -lean_dec(x_208); -x_242 = lean_ctor_get(x_241, 0); -lean_inc(x_242); -lean_dec(x_241); -x_243 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; -x_244 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_244, 0, x_242); -lean_ctor_set(x_244, 1, x_243); -lean_ctor_set(x_205, 0, x_244); -lean_ctor_set(x_193, 0, x_205); -return x_193; -} -else -{ -lean_object* x_245; lean_object* x_246; lean_object* x_247; -x_245 = lean_ctor_get(x_208, 0); -lean_inc(x_245); -lean_dec(x_208); -x_246 = lean_ctor_get(x_245, 0); -lean_inc(x_246); -lean_dec(x_245); -x_247 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_247, 0, x_246); -lean_ctor_set(x_247, 1, x_2); -lean_ctor_set(x_205, 0, x_247); -lean_ctor_set(x_193, 0, x_205); -return x_193; -} -} -} -else -{ -lean_object* x_248; uint8_t x_249; -x_248 = lean_ctor_get(x_205, 0); -lean_inc(x_248); -lean_dec(x_205); -x_249 = lean_ctor_get_uint8(x_248, sizeof(void*)*1); -if (x_249 == 0) -{ -lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; size_t x_254; lean_object* x_255; size_t x_256; lean_object* x_257; lean_object* x_258; -lean_free_object(x_193); -x_250 = lean_ctor_get(x_201, 3); -lean_inc(x_250); -lean_dec(x_201); -x_251 = lean_array_get_size(x_202); -x_252 = l_Array_toSubarray___rarg(x_202, x_250, x_251); -x_253 = lean_ctor_get(x_252, 2); -lean_inc(x_253); -x_254 = lean_usize_of_nat(x_253); -lean_dec(x_253); -x_255 = lean_ctor_get(x_252, 1); -lean_inc(x_255); -x_256 = lean_usize_of_nat(x_255); -lean_dec(x_255); -x_257 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__6; -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -x_258 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4(x_252, x_254, x_256, x_257, x_3, x_4, x_5, x_6, x_7, x_8, x_196); -lean_dec(x_252); -if (lean_obj_tag(x_258) == 0) -{ -lean_object* x_259; uint8_t x_260; -x_259 = lean_ctor_get(x_258, 0); -lean_inc(x_259); -x_260 = lean_ctor_get_uint8(x_248, sizeof(void*)*1 + 1); -if (x_260 == 0) -{ -lean_object* x_261; lean_object* x_262; lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; lean_object* x_267; -lean_dec(x_2); -x_261 = lean_ctor_get(x_248, 0); +lean_object* x_255; lean_object* x_256; lean_object* x_257; lean_object* x_258; lean_object* x_259; lean_object* x_260; lean_object* x_261; lean_object* x_262; lean_object* x_263; uint8_t x_264; lean_object* x_265; +x_255 = lean_array_fget(x_2, x_205); +x_256 = l_Lean_Compiler_LCNF_Simp_findCtor(x_255, x_5, x_6, x_7, x_8, x_9, x_196); +x_257 = lean_ctor_get(x_256, 0); +lean_inc(x_257); +x_258 = lean_ctor_get(x_256, 1); +lean_inc(x_258); +lean_dec(x_256); +x_259 = lean_st_ref_get(x_9, x_258); +x_260 = lean_ctor_get(x_259, 0); +lean_inc(x_260); +x_261 = lean_ctor_get(x_259, 1); lean_inc(x_261); -lean_dec(x_248); -x_262 = lean_ctor_get(x_258, 1); -lean_inc(x_262); -lean_dec(x_258); -x_263 = lean_ctor_get(x_259, 0); +if (lean_is_exclusive(x_259)) { + lean_ctor_release(x_259, 0); + lean_ctor_release(x_259, 1); + x_262 = x_259; +} else { + lean_dec_ref(x_259); + x_262 = lean_box(0); +} +x_263 = lean_ctor_get(x_260, 0); lean_inc(x_263); -x_264 = lean_ctor_get(x_259, 1); -lean_inc(x_264); -lean_dec(x_259); -x_265 = lean_ctor_get(x_261, 0); -lean_inc(x_265); -lean_dec(x_261); -x_266 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_266, 0, x_265); -lean_ctor_set(x_266, 1, x_264); -x_267 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_263, x_266, x_3, x_4, x_5, x_6, x_7, x_8, x_262); +lean_dec(x_260); +x_264 = 1; +x_265 = l_Lean_Expr_constructorApp_x3f(x_263, x_257, x_264); +if (lean_obj_tag(x_265) == 0) +{ +lean_object* x_266; lean_object* x_267; +lean_dec(x_205); +lean_dec(x_200); +lean_dec(x_9); 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_263); +lean_dec(x_2); +x_266 = lean_box(0); +if (lean_is_scalar(x_262)) { + x_267 = lean_alloc_ctor(0, 2, 0); +} else { + x_267 = x_262; +} +lean_ctor_set(x_267, 0, x_266); +lean_ctor_set(x_267, 1, x_261); return x_267; } else { -lean_object* x_268; lean_object* x_269; lean_object* x_270; lean_object* x_271; lean_object* x_272; lean_object* x_273; lean_object* x_274; lean_object* x_275; -x_268 = lean_ctor_get(x_248, 0); +lean_object* x_268; lean_object* x_269; lean_object* x_270; lean_object* x_271; lean_object* x_272; lean_object* x_273; +x_268 = lean_ctor_get(x_265, 0); lean_inc(x_268); -lean_dec(x_248); -x_269 = lean_ctor_get(x_258, 1); +lean_dec(x_265); +x_269 = lean_ctor_get(x_268, 0); lean_inc(x_269); -lean_dec(x_258); -x_270 = lean_ctor_get(x_259, 0); +x_270 = lean_ctor_get(x_268, 1); lean_inc(x_270); -x_271 = lean_ctor_get(x_259, 1); -lean_inc(x_271); -lean_dec(x_259); -x_272 = lean_ctor_get(x_268, 0); -lean_inc(x_272); lean_dec(x_268); -x_273 = l_Array_append___rarg(x_2, x_271); -x_274 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_274, 0, x_272); -lean_ctor_set(x_274, 1, x_273); -x_275 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_270, x_274, x_3, x_4, x_5, x_6, x_7, x_8, x_269); +x_271 = lean_ctor_get(x_269, 0); +lean_inc(x_271); +x_272 = lean_ctor_get(x_271, 0); +lean_inc(x_272); +lean_dec(x_271); +x_273 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2(x_200, x_272); +lean_dec(x_272); +lean_dec(x_200); +if (lean_obj_tag(x_273) == 0) +{ +lean_object* x_274; lean_object* x_275; +lean_dec(x_270); +lean_dec(x_269); +lean_dec(x_205); +lean_dec(x_9); 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_270); +lean_dec(x_2); +x_274 = lean_box(0); +if (lean_is_scalar(x_262)) { + x_275 = lean_alloc_ctor(0, 2, 0); +} else { + x_275 = x_262; +} +lean_ctor_set(x_275, 0, x_274); +lean_ctor_set(x_275, 1, x_261); return x_275; } -} else { -lean_object* x_276; lean_object* x_277; lean_object* x_278; lean_object* x_279; -lean_dec(x_248); -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); -x_276 = lean_ctor_get(x_258, 0); +lean_object* x_276; uint8_t x_277; +lean_dec(x_262); +x_276 = lean_ctor_get(x_273, 0); lean_inc(x_276); -x_277 = lean_ctor_get(x_258, 1); -lean_inc(x_277); -if (lean_is_exclusive(x_258)) { - lean_ctor_release(x_258, 0); - lean_ctor_release(x_258, 1); - x_278 = x_258; -} else { - lean_dec_ref(x_258); - x_278 = lean_box(0); -} -if (lean_is_scalar(x_278)) { - x_279 = lean_alloc_ctor(1, 2, 0); -} else { - x_279 = x_278; -} -lean_ctor_set(x_279, 0, x_276); -lean_ctor_set(x_279, 1, x_277); -return x_279; -} -} -else +lean_dec(x_273); +x_277 = lean_ctor_get_uint8(x_276, sizeof(void*)*1); +if (x_277 == 0) { -uint8_t x_280; -lean_dec(x_202); -lean_dec(x_201); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_280 = lean_ctor_get_uint8(x_248, sizeof(void*)*1 + 1); -if (x_280 == 0) -{ -lean_object* x_281; lean_object* x_282; lean_object* x_283; lean_object* x_284; lean_object* x_285; -lean_dec(x_2); -x_281 = lean_ctor_get(x_248, 0); +lean_object* x_278; lean_object* x_279; lean_object* x_280; lean_object* x_281; size_t x_282; lean_object* x_283; size_t x_284; lean_object* x_285; lean_object* x_286; +x_278 = lean_ctor_get(x_269, 3); +lean_inc(x_278); +lean_dec(x_269); +x_279 = lean_array_get_size(x_270); +x_280 = l_Array_toSubarray___rarg(x_270, x_278, x_279); +x_281 = lean_ctor_get(x_280, 2); lean_inc(x_281); -lean_dec(x_248); -x_282 = lean_ctor_get(x_281, 0); -lean_inc(x_282); +x_282 = lean_usize_of_nat(x_281); lean_dec(x_281); -x_283 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; -x_284 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_284, 0, x_282); -lean_ctor_set(x_284, 1, x_283); -x_285 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_285, 0, x_284); -lean_ctor_set(x_193, 0, x_285); -return x_193; -} -else +x_283 = lean_ctor_get(x_280, 1); +lean_inc(x_283); +x_284 = lean_usize_of_nat(x_283); +lean_dec(x_283); +x_285 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__1; +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_286 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_280, x_282, x_284, x_285, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_261); +lean_dec(x_280); +if (lean_obj_tag(x_286) == 0) { -lean_object* x_286; lean_object* x_287; lean_object* x_288; lean_object* x_289; -x_286 = lean_ctor_get(x_248, 0); -lean_inc(x_286); -lean_dec(x_248); +lean_object* x_287; lean_object* x_288; lean_object* x_289; lean_object* x_290; lean_object* x_291; lean_object* x_292; x_287 = lean_ctor_get(x_286, 0); lean_inc(x_287); +x_288 = lean_ctor_get(x_286, 1); +lean_inc(x_288); lean_dec(x_286); -x_288 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_288, 0, x_287); -lean_ctor_set(x_288, 1, x_2); -x_289 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_289, 0, x_288); -lean_ctor_set(x_193, 0, x_289); -return x_193; -} -} -} -} -} -} -else -{ -lean_object* x_290; lean_object* x_291; lean_object* x_292; lean_object* x_293; -x_290 = lean_ctor_get(x_193, 0); -x_291 = lean_ctor_get(x_193, 1); -lean_inc(x_291); +x_289 = lean_ctor_get(x_287, 0); +lean_inc(x_289); +x_290 = lean_ctor_get(x_287, 1); lean_inc(x_290); -lean_dec(x_193); -x_292 = lean_ctor_get(x_290, 0); -lean_inc(x_292); -lean_dec(x_290); -x_293 = l_Lean_Expr_constructorApp_x3f(x_292, x_191, x_189); -if (lean_obj_tag(x_293) == 0) +lean_dec(x_287); +x_291 = lean_box(0); +x_292 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_276, x_2, x_205, x_289, x_290, x_291, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_288); +lean_dec(x_9); +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_289); +lean_dec(x_276); +return x_292; +} +else { -lean_object* x_294; lean_object* x_295; -lean_dec(x_18); +lean_object* x_293; lean_object* x_294; lean_object* x_295; lean_object* x_296; +lean_dec(x_276); +lean_dec(x_205); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -6014,909 +7191,46 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_294 = lean_box(0); -x_295 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_295, 0, x_294); -lean_ctor_set(x_295, 1, x_291); -return x_295; +x_293 = lean_ctor_get(x_286, 0); +lean_inc(x_293); +x_294 = lean_ctor_get(x_286, 1); +lean_inc(x_294); +if (lean_is_exclusive(x_286)) { + lean_ctor_release(x_286, 0); + lean_ctor_release(x_286, 1); + x_295 = x_286; +} else { + lean_dec_ref(x_286); + x_295 = lean_box(0); +} +if (lean_is_scalar(x_295)) { + x_296 = lean_alloc_ctor(1, 2, 0); +} else { + x_296 = x_295; +} +lean_ctor_set(x_296, 0, x_293); +lean_ctor_set(x_296, 1, x_294); +return x_296; +} } else { -lean_object* x_296; lean_object* x_297; lean_object* x_298; lean_object* x_299; lean_object* x_300; lean_object* x_301; -x_296 = lean_ctor_get(x_293, 0); -lean_inc(x_296); -lean_dec(x_293); -x_297 = lean_ctor_get(x_296, 0); -lean_inc(x_297); -x_298 = lean_ctor_get(x_296, 1); -lean_inc(x_298); -lean_dec(x_296); -x_299 = lean_ctor_get(x_297, 0); -lean_inc(x_299); -x_300 = lean_ctor_get(x_299, 0); -lean_inc(x_300); -lean_dec(x_299); -x_301 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_18, x_300); -lean_dec(x_300); -lean_dec(x_18); -if (lean_obj_tag(x_301) == 0) -{ -lean_object* x_302; lean_object* x_303; -lean_dec(x_298); -lean_dec(x_297); +lean_object* x_297; lean_object* x_298; lean_object* x_299; lean_object* x_300; +lean_dec(x_270); +lean_dec(x_269); +x_297 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_298 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_299 = lean_box(0); +x_300 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_276, x_2, x_205, x_297, x_298, x_299, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_261); +lean_dec(x_9); 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); -x_302 = lean_box(0); -x_303 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_303, 0, x_302); -lean_ctor_set(x_303, 1, x_291); -return x_303; -} -else -{ -lean_object* x_304; lean_object* x_305; uint8_t x_306; -x_304 = lean_ctor_get(x_301, 0); -lean_inc(x_304); -if (lean_is_exclusive(x_301)) { - lean_ctor_release(x_301, 0); - x_305 = x_301; -} else { - lean_dec_ref(x_301); - x_305 = lean_box(0); -} -x_306 = lean_ctor_get_uint8(x_304, sizeof(void*)*1); -if (x_306 == 0) -{ -lean_object* x_307; lean_object* x_308; lean_object* x_309; lean_object* x_310; size_t x_311; lean_object* x_312; size_t x_313; lean_object* x_314; lean_object* x_315; -lean_dec(x_305); -x_307 = lean_ctor_get(x_297, 3); -lean_inc(x_307); -lean_dec(x_297); -x_308 = lean_array_get_size(x_298); -x_309 = l_Array_toSubarray___rarg(x_298, x_307, x_308); -x_310 = lean_ctor_get(x_309, 2); -lean_inc(x_310); -x_311 = lean_usize_of_nat(x_310); -lean_dec(x_310); -x_312 = lean_ctor_get(x_309, 1); -lean_inc(x_312); -x_313 = lean_usize_of_nat(x_312); -lean_dec(x_312); -x_314 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__6; -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -x_315 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4(x_309, x_311, x_313, x_314, x_3, x_4, x_5, x_6, x_7, x_8, x_291); -lean_dec(x_309); -if (lean_obj_tag(x_315) == 0) -{ -lean_object* x_316; uint8_t x_317; -x_316 = lean_ctor_get(x_315, 0); -lean_inc(x_316); -x_317 = lean_ctor_get_uint8(x_304, sizeof(void*)*1 + 1); -if (x_317 == 0) -{ -lean_object* x_318; lean_object* x_319; lean_object* x_320; lean_object* x_321; lean_object* x_322; lean_object* x_323; lean_object* x_324; -lean_dec(x_2); -x_318 = lean_ctor_get(x_304, 0); -lean_inc(x_318); -lean_dec(x_304); -x_319 = lean_ctor_get(x_315, 1); -lean_inc(x_319); -lean_dec(x_315); -x_320 = lean_ctor_get(x_316, 0); -lean_inc(x_320); -x_321 = lean_ctor_get(x_316, 1); -lean_inc(x_321); -lean_dec(x_316); -x_322 = lean_ctor_get(x_318, 0); -lean_inc(x_322); -lean_dec(x_318); -x_323 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_323, 0, x_322); -lean_ctor_set(x_323, 1, x_321); -x_324 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_320, x_323, x_3, x_4, x_5, x_6, x_7, x_8, x_319); -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_320); -return x_324; -} -else -{ -lean_object* x_325; lean_object* x_326; lean_object* x_327; lean_object* x_328; lean_object* x_329; lean_object* x_330; lean_object* x_331; lean_object* x_332; -x_325 = lean_ctor_get(x_304, 0); -lean_inc(x_325); -lean_dec(x_304); -x_326 = lean_ctor_get(x_315, 1); -lean_inc(x_326); -lean_dec(x_315); -x_327 = lean_ctor_get(x_316, 0); -lean_inc(x_327); -x_328 = lean_ctor_get(x_316, 1); -lean_inc(x_328); -lean_dec(x_316); -x_329 = lean_ctor_get(x_325, 0); -lean_inc(x_329); -lean_dec(x_325); -x_330 = l_Array_append___rarg(x_2, x_328); -x_331 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_331, 0, x_329); -lean_ctor_set(x_331, 1, x_330); -x_332 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_327, x_331, x_3, x_4, x_5, x_6, x_7, x_8, x_326); -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_327); -return x_332; -} -} -else -{ -lean_object* x_333; lean_object* x_334; lean_object* x_335; lean_object* x_336; -lean_dec(x_304); -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); -x_333 = lean_ctor_get(x_315, 0); -lean_inc(x_333); -x_334 = lean_ctor_get(x_315, 1); -lean_inc(x_334); -if (lean_is_exclusive(x_315)) { - lean_ctor_release(x_315, 0); - lean_ctor_release(x_315, 1); - x_335 = x_315; -} else { - lean_dec_ref(x_315); - x_335 = lean_box(0); -} -if (lean_is_scalar(x_335)) { - x_336 = lean_alloc_ctor(1, 2, 0); -} else { - x_336 = x_335; -} -lean_ctor_set(x_336, 0, x_333); -lean_ctor_set(x_336, 1, x_334); -return x_336; -} -} -else -{ -uint8_t x_337; -lean_dec(x_298); -lean_dec(x_297); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_337 = lean_ctor_get_uint8(x_304, sizeof(void*)*1 + 1); -if (x_337 == 0) -{ -lean_object* x_338; lean_object* x_339; lean_object* x_340; lean_object* x_341; lean_object* x_342; lean_object* x_343; -lean_dec(x_2); -x_338 = lean_ctor_get(x_304, 0); -lean_inc(x_338); -lean_dec(x_304); -x_339 = lean_ctor_get(x_338, 0); -lean_inc(x_339); -lean_dec(x_338); -x_340 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; -x_341 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_341, 0, x_339); -lean_ctor_set(x_341, 1, x_340); -if (lean_is_scalar(x_305)) { - x_342 = lean_alloc_ctor(1, 1, 0); -} else { - x_342 = x_305; -} -lean_ctor_set(x_342, 0, x_341); -x_343 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_343, 0, x_342); -lean_ctor_set(x_343, 1, x_291); -return x_343; -} -else -{ -lean_object* x_344; lean_object* x_345; lean_object* x_346; lean_object* x_347; lean_object* x_348; -x_344 = lean_ctor_get(x_304, 0); -lean_inc(x_344); -lean_dec(x_304); -x_345 = lean_ctor_get(x_344, 0); -lean_inc(x_345); -lean_dec(x_344); -x_346 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_346, 0, x_345); -lean_ctor_set(x_346, 1, x_2); -if (lean_is_scalar(x_305)) { - x_347 = lean_alloc_ctor(1, 1, 0); -} else { - x_347 = x_305; -} -lean_ctor_set(x_347, 0, x_346); -x_348 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_348, 0, x_347); -lean_ctor_set(x_348, 1, x_291); -return x_348; -} -} -} -} -} -} -} -} -} -else -{ -lean_object* x_349; lean_object* x_350; lean_object* x_351; -x_349 = lean_ctor_get(x_12, 0); -x_350 = lean_ctor_get(x_12, 1); -lean_inc(x_350); -lean_inc(x_349); -lean_dec(x_12); -x_351 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__1(x_349, x_1); -lean_dec(x_1); -lean_dec(x_349); -if (lean_obj_tag(x_351) == 0) -{ -lean_object* x_352; lean_object* x_353; -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); -x_352 = lean_box(0); -x_353 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_353, 0, x_352); -lean_ctor_set(x_353, 1, x_350); -return x_353; -} -else -{ -lean_object* x_354; lean_object* x_355; lean_object* x_356; uint8_t x_357; -x_354 = lean_ctor_get(x_351, 0); -lean_inc(x_354); -lean_dec(x_351); -x_355 = lean_array_get_size(x_2); -x_356 = lean_unsigned_to_nat(1u); -x_357 = lean_nat_dec_eq(x_355, x_356); -if (x_357 == 0) -{ -lean_object* x_358; lean_object* x_359; -lean_dec(x_355); -lean_dec(x_354); -lean_dec(x_2); -x_358 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__5; -x_359 = l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2(x_358, x_3, x_4, x_5, x_6, x_7, x_8, x_350); -return x_359; -} -else -{ -lean_object* x_360; uint8_t x_361; -x_360 = lean_unsigned_to_nat(0u); -x_361 = lean_nat_dec_lt(x_360, x_355); -lean_dec(x_355); -if (x_361 == 0) -{ -lean_object* x_362; lean_object* x_363; uint8_t x_364; lean_object* x_365; lean_object* x_366; lean_object* x_367; lean_object* x_368; lean_object* x_369; lean_object* x_370; lean_object* x_371; lean_object* x_372; lean_object* x_373; -x_362 = l_Lean_Compiler_LCNF_Simp_isJpCases___closed__4; -x_363 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_362); -x_364 = 1; -x_365 = l_Lean_Compiler_LCNF_Simp_findExpr(x_363, x_364, x_5, x_6, x_7, x_8, x_350); -x_366 = lean_ctor_get(x_365, 0); -lean_inc(x_366); -x_367 = lean_ctor_get(x_365, 1); -lean_inc(x_367); -lean_dec(x_365); -x_368 = lean_st_ref_get(x_8, x_367); -x_369 = lean_ctor_get(x_368, 0); -lean_inc(x_369); -x_370 = lean_ctor_get(x_368, 1); -lean_inc(x_370); -if (lean_is_exclusive(x_368)) { - lean_ctor_release(x_368, 0); - lean_ctor_release(x_368, 1); - x_371 = x_368; -} else { - lean_dec_ref(x_368); - x_371 = lean_box(0); -} -x_372 = lean_ctor_get(x_369, 0); -lean_inc(x_372); -lean_dec(x_369); -x_373 = l_Lean_Expr_constructorApp_x3f(x_372, x_366, x_364); -if (lean_obj_tag(x_373) == 0) -{ -lean_object* x_374; lean_object* x_375; -lean_dec(x_354); -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); -x_374 = lean_box(0); -if (lean_is_scalar(x_371)) { - x_375 = lean_alloc_ctor(0, 2, 0); -} else { - x_375 = x_371; -} -lean_ctor_set(x_375, 0, x_374); -lean_ctor_set(x_375, 1, x_370); -return x_375; -} -else -{ -lean_object* x_376; lean_object* x_377; lean_object* x_378; lean_object* x_379; lean_object* x_380; lean_object* x_381; -x_376 = lean_ctor_get(x_373, 0); -lean_inc(x_376); -lean_dec(x_373); -x_377 = lean_ctor_get(x_376, 0); -lean_inc(x_377); -x_378 = lean_ctor_get(x_376, 1); -lean_inc(x_378); -lean_dec(x_376); -x_379 = lean_ctor_get(x_377, 0); -lean_inc(x_379); -x_380 = lean_ctor_get(x_379, 0); -lean_inc(x_380); -lean_dec(x_379); -x_381 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_354, x_380); -lean_dec(x_380); -lean_dec(x_354); -if (lean_obj_tag(x_381) == 0) -{ -lean_object* x_382; lean_object* x_383; -lean_dec(x_378); -lean_dec(x_377); -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); -x_382 = lean_box(0); -if (lean_is_scalar(x_371)) { - x_383 = lean_alloc_ctor(0, 2, 0); -} else { - x_383 = x_371; -} -lean_ctor_set(x_383, 0, x_382); -lean_ctor_set(x_383, 1, x_370); -return x_383; -} -else -{ -lean_object* x_384; lean_object* x_385; uint8_t x_386; -x_384 = lean_ctor_get(x_381, 0); -lean_inc(x_384); -if (lean_is_exclusive(x_381)) { - lean_ctor_release(x_381, 0); - x_385 = x_381; -} else { - lean_dec_ref(x_381); - x_385 = lean_box(0); -} -x_386 = lean_ctor_get_uint8(x_384, sizeof(void*)*1); -if (x_386 == 0) -{ -lean_object* x_387; lean_object* x_388; lean_object* x_389; lean_object* x_390; size_t x_391; lean_object* x_392; size_t x_393; lean_object* x_394; lean_object* x_395; -lean_dec(x_385); -lean_dec(x_371); -x_387 = lean_ctor_get(x_377, 3); -lean_inc(x_387); -lean_dec(x_377); -x_388 = lean_array_get_size(x_378); -x_389 = l_Array_toSubarray___rarg(x_378, x_387, x_388); -x_390 = lean_ctor_get(x_389, 2); -lean_inc(x_390); -x_391 = lean_usize_of_nat(x_390); -lean_dec(x_390); -x_392 = lean_ctor_get(x_389, 1); -lean_inc(x_392); -x_393 = lean_usize_of_nat(x_392); -lean_dec(x_392); -x_394 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__6; -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -x_395 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4(x_389, x_391, x_393, x_394, x_3, x_4, x_5, x_6, x_7, x_8, x_370); -lean_dec(x_389); -if (lean_obj_tag(x_395) == 0) -{ -lean_object* x_396; uint8_t x_397; -x_396 = lean_ctor_get(x_395, 0); -lean_inc(x_396); -x_397 = lean_ctor_get_uint8(x_384, sizeof(void*)*1 + 1); -if (x_397 == 0) -{ -lean_object* x_398; lean_object* x_399; lean_object* x_400; lean_object* x_401; lean_object* x_402; lean_object* x_403; lean_object* x_404; -lean_dec(x_2); -x_398 = lean_ctor_get(x_384, 0); -lean_inc(x_398); -lean_dec(x_384); -x_399 = lean_ctor_get(x_395, 1); -lean_inc(x_399); -lean_dec(x_395); -x_400 = lean_ctor_get(x_396, 0); -lean_inc(x_400); -x_401 = lean_ctor_get(x_396, 1); -lean_inc(x_401); -lean_dec(x_396); -x_402 = lean_ctor_get(x_398, 0); -lean_inc(x_402); -lean_dec(x_398); -x_403 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_403, 0, x_402); -lean_ctor_set(x_403, 1, x_401); -x_404 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_400, x_403, x_3, x_4, x_5, x_6, x_7, x_8, x_399); -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_400); -return x_404; -} -else -{ -lean_object* x_405; lean_object* x_406; lean_object* x_407; lean_object* x_408; lean_object* x_409; lean_object* x_410; lean_object* x_411; lean_object* x_412; -x_405 = lean_ctor_get(x_384, 0); -lean_inc(x_405); -lean_dec(x_384); -x_406 = lean_ctor_get(x_395, 1); -lean_inc(x_406); -lean_dec(x_395); -x_407 = lean_ctor_get(x_396, 0); -lean_inc(x_407); -x_408 = lean_ctor_get(x_396, 1); -lean_inc(x_408); -lean_dec(x_396); -x_409 = lean_ctor_get(x_405, 0); -lean_inc(x_409); -lean_dec(x_405); -x_410 = l_Array_append___rarg(x_2, x_408); -x_411 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_411, 0, x_409); -lean_ctor_set(x_411, 1, x_410); -x_412 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_407, x_411, x_3, x_4, x_5, x_6, x_7, x_8, x_406); -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_407); -return x_412; -} -} -else -{ -lean_object* x_413; lean_object* x_414; lean_object* x_415; lean_object* x_416; -lean_dec(x_384); -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); -x_413 = lean_ctor_get(x_395, 0); -lean_inc(x_413); -x_414 = lean_ctor_get(x_395, 1); -lean_inc(x_414); -if (lean_is_exclusive(x_395)) { - lean_ctor_release(x_395, 0); - lean_ctor_release(x_395, 1); - x_415 = x_395; -} else { - lean_dec_ref(x_395); - x_415 = lean_box(0); -} -if (lean_is_scalar(x_415)) { - x_416 = lean_alloc_ctor(1, 2, 0); -} else { - x_416 = x_415; -} -lean_ctor_set(x_416, 0, x_413); -lean_ctor_set(x_416, 1, x_414); -return x_416; -} -} -else -{ -uint8_t x_417; -lean_dec(x_378); -lean_dec(x_377); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_417 = lean_ctor_get_uint8(x_384, sizeof(void*)*1 + 1); -if (x_417 == 0) -{ -lean_object* x_418; lean_object* x_419; lean_object* x_420; lean_object* x_421; lean_object* x_422; lean_object* x_423; -lean_dec(x_2); -x_418 = lean_ctor_get(x_384, 0); -lean_inc(x_418); -lean_dec(x_384); -x_419 = lean_ctor_get(x_418, 0); -lean_inc(x_419); -lean_dec(x_418); -x_420 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; -x_421 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_421, 0, x_419); -lean_ctor_set(x_421, 1, x_420); -if (lean_is_scalar(x_385)) { - x_422 = lean_alloc_ctor(1, 1, 0); -} else { - x_422 = x_385; -} -lean_ctor_set(x_422, 0, x_421); -if (lean_is_scalar(x_371)) { - x_423 = lean_alloc_ctor(0, 2, 0); -} else { - x_423 = x_371; -} -lean_ctor_set(x_423, 0, x_422); -lean_ctor_set(x_423, 1, x_370); -return x_423; -} -else -{ -lean_object* x_424; lean_object* x_425; lean_object* x_426; lean_object* x_427; lean_object* x_428; -x_424 = lean_ctor_get(x_384, 0); -lean_inc(x_424); -lean_dec(x_384); -x_425 = lean_ctor_get(x_424, 0); -lean_inc(x_425); -lean_dec(x_424); -x_426 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_426, 0, x_425); -lean_ctor_set(x_426, 1, x_2); -if (lean_is_scalar(x_385)) { - x_427 = lean_alloc_ctor(1, 1, 0); -} else { - x_427 = x_385; -} -lean_ctor_set(x_427, 0, x_426); -if (lean_is_scalar(x_371)) { - x_428 = lean_alloc_ctor(0, 2, 0); -} else { - x_428 = x_371; -} -lean_ctor_set(x_428, 0, x_427); -lean_ctor_set(x_428, 1, x_370); -return x_428; -} -} -} -} -} -else -{ -lean_object* x_429; uint8_t x_430; lean_object* x_431; lean_object* x_432; lean_object* x_433; lean_object* x_434; lean_object* x_435; lean_object* x_436; lean_object* x_437; lean_object* x_438; lean_object* x_439; -x_429 = lean_array_fget(x_2, x_360); -x_430 = 1; -x_431 = l_Lean_Compiler_LCNF_Simp_findExpr(x_429, x_430, x_5, x_6, x_7, x_8, x_350); -x_432 = lean_ctor_get(x_431, 0); -lean_inc(x_432); -x_433 = lean_ctor_get(x_431, 1); -lean_inc(x_433); -lean_dec(x_431); -x_434 = lean_st_ref_get(x_8, x_433); -x_435 = lean_ctor_get(x_434, 0); -lean_inc(x_435); -x_436 = lean_ctor_get(x_434, 1); -lean_inc(x_436); -if (lean_is_exclusive(x_434)) { - lean_ctor_release(x_434, 0); - lean_ctor_release(x_434, 1); - x_437 = x_434; -} else { - lean_dec_ref(x_434); - x_437 = lean_box(0); -} -x_438 = lean_ctor_get(x_435, 0); -lean_inc(x_438); -lean_dec(x_435); -x_439 = l_Lean_Expr_constructorApp_x3f(x_438, x_432, x_430); -if (lean_obj_tag(x_439) == 0) -{ -lean_object* x_440; lean_object* x_441; -lean_dec(x_354); -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); -x_440 = lean_box(0); -if (lean_is_scalar(x_437)) { - x_441 = lean_alloc_ctor(0, 2, 0); -} else { - x_441 = x_437; -} -lean_ctor_set(x_441, 0, x_440); -lean_ctor_set(x_441, 1, x_436); -return x_441; -} -else -{ -lean_object* x_442; lean_object* x_443; lean_object* x_444; lean_object* x_445; lean_object* x_446; lean_object* x_447; -x_442 = lean_ctor_get(x_439, 0); -lean_inc(x_442); -lean_dec(x_439); -x_443 = lean_ctor_get(x_442, 0); -lean_inc(x_443); -x_444 = lean_ctor_get(x_442, 1); -lean_inc(x_444); -lean_dec(x_442); -x_445 = lean_ctor_get(x_443, 0); -lean_inc(x_445); -x_446 = lean_ctor_get(x_445, 0); -lean_inc(x_446); -lean_dec(x_445); -x_447 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_354, x_446); -lean_dec(x_446); -lean_dec(x_354); -if (lean_obj_tag(x_447) == 0) -{ -lean_object* x_448; lean_object* x_449; -lean_dec(x_444); -lean_dec(x_443); -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); -x_448 = lean_box(0); -if (lean_is_scalar(x_437)) { - x_449 = lean_alloc_ctor(0, 2, 0); -} else { - x_449 = x_437; -} -lean_ctor_set(x_449, 0, x_448); -lean_ctor_set(x_449, 1, x_436); -return x_449; -} -else -{ -lean_object* x_450; lean_object* x_451; uint8_t x_452; -x_450 = lean_ctor_get(x_447, 0); -lean_inc(x_450); -if (lean_is_exclusive(x_447)) { - lean_ctor_release(x_447, 0); - x_451 = x_447; -} else { - lean_dec_ref(x_447); - x_451 = lean_box(0); -} -x_452 = lean_ctor_get_uint8(x_450, sizeof(void*)*1); -if (x_452 == 0) -{ -lean_object* x_453; lean_object* x_454; lean_object* x_455; lean_object* x_456; size_t x_457; lean_object* x_458; size_t x_459; lean_object* x_460; lean_object* x_461; -lean_dec(x_451); -lean_dec(x_437); -x_453 = lean_ctor_get(x_443, 3); -lean_inc(x_453); -lean_dec(x_443); -x_454 = lean_array_get_size(x_444); -x_455 = l_Array_toSubarray___rarg(x_444, x_453, x_454); -x_456 = lean_ctor_get(x_455, 2); -lean_inc(x_456); -x_457 = lean_usize_of_nat(x_456); -lean_dec(x_456); -x_458 = lean_ctor_get(x_455, 1); -lean_inc(x_458); -x_459 = lean_usize_of_nat(x_458); -lean_dec(x_458); -x_460 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__6; -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -x_461 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4(x_455, x_457, x_459, x_460, x_3, x_4, x_5, x_6, x_7, x_8, x_436); -lean_dec(x_455); -if (lean_obj_tag(x_461) == 0) -{ -lean_object* x_462; uint8_t x_463; -x_462 = lean_ctor_get(x_461, 0); -lean_inc(x_462); -x_463 = lean_ctor_get_uint8(x_450, sizeof(void*)*1 + 1); -if (x_463 == 0) -{ -lean_object* x_464; lean_object* x_465; lean_object* x_466; lean_object* x_467; lean_object* x_468; lean_object* x_469; lean_object* x_470; -lean_dec(x_2); -x_464 = lean_ctor_get(x_450, 0); -lean_inc(x_464); -lean_dec(x_450); -x_465 = lean_ctor_get(x_461, 1); -lean_inc(x_465); -lean_dec(x_461); -x_466 = lean_ctor_get(x_462, 0); -lean_inc(x_466); -x_467 = lean_ctor_get(x_462, 1); -lean_inc(x_467); -lean_dec(x_462); -x_468 = lean_ctor_get(x_464, 0); -lean_inc(x_468); -lean_dec(x_464); -x_469 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_469, 0, x_468); -lean_ctor_set(x_469, 1, x_467); -x_470 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_466, x_469, x_3, x_4, x_5, x_6, x_7, x_8, x_465); -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_466); -return x_470; -} -else -{ -lean_object* x_471; lean_object* x_472; lean_object* x_473; lean_object* x_474; lean_object* x_475; lean_object* x_476; lean_object* x_477; lean_object* x_478; -x_471 = lean_ctor_get(x_450, 0); -lean_inc(x_471); -lean_dec(x_450); -x_472 = lean_ctor_get(x_461, 1); -lean_inc(x_472); -lean_dec(x_461); -x_473 = lean_ctor_get(x_462, 0); -lean_inc(x_473); -x_474 = lean_ctor_get(x_462, 1); -lean_inc(x_474); -lean_dec(x_462); -x_475 = lean_ctor_get(x_471, 0); -lean_inc(x_475); -lean_dec(x_471); -x_476 = l_Array_append___rarg(x_2, x_474); -x_477 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_477, 0, x_475); -lean_ctor_set(x_477, 1, x_476); -x_478 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_473, x_477, x_3, x_4, x_5, x_6, x_7, x_8, x_472); -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_473); -return x_478; -} -} -else -{ -lean_object* x_479; lean_object* x_480; lean_object* x_481; lean_object* x_482; -lean_dec(x_450); -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); -x_479 = lean_ctor_get(x_461, 0); -lean_inc(x_479); -x_480 = lean_ctor_get(x_461, 1); -lean_inc(x_480); -if (lean_is_exclusive(x_461)) { - lean_ctor_release(x_461, 0); - lean_ctor_release(x_461, 1); - x_481 = x_461; -} else { - lean_dec_ref(x_461); - x_481 = lean_box(0); -} -if (lean_is_scalar(x_481)) { - x_482 = lean_alloc_ctor(1, 2, 0); -} else { - x_482 = x_481; -} -lean_ctor_set(x_482, 0, x_479); -lean_ctor_set(x_482, 1, x_480); -return x_482; -} -} -else -{ -uint8_t x_483; -lean_dec(x_444); -lean_dec(x_443); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_483 = lean_ctor_get_uint8(x_450, sizeof(void*)*1 + 1); -if (x_483 == 0) -{ -lean_object* x_484; lean_object* x_485; lean_object* x_486; lean_object* x_487; lean_object* x_488; lean_object* x_489; -lean_dec(x_2); -x_484 = lean_ctor_get(x_450, 0); -lean_inc(x_484); -lean_dec(x_450); -x_485 = lean_ctor_get(x_484, 0); -lean_inc(x_485); -lean_dec(x_484); -x_486 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; -x_487 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_487, 0, x_485); -lean_ctor_set(x_487, 1, x_486); -if (lean_is_scalar(x_451)) { - x_488 = lean_alloc_ctor(1, 1, 0); -} else { - x_488 = x_451; -} -lean_ctor_set(x_488, 0, x_487); -if (lean_is_scalar(x_437)) { - x_489 = lean_alloc_ctor(0, 2, 0); -} else { - x_489 = x_437; -} -lean_ctor_set(x_489, 0, x_488); -lean_ctor_set(x_489, 1, x_436); -return x_489; -} -else -{ -lean_object* x_490; lean_object* x_491; lean_object* x_492; lean_object* x_493; lean_object* x_494; -x_490 = lean_ctor_get(x_450, 0); -lean_inc(x_490); -lean_dec(x_450); -x_491 = lean_ctor_get(x_490, 0); -lean_inc(x_491); -lean_dec(x_490); -x_492 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_492, 0, x_491); -lean_ctor_set(x_492, 1, x_2); -if (lean_is_scalar(x_451)) { - x_493 = lean_alloc_ctor(1, 1, 0); -} else { - x_493 = x_451; -} -lean_ctor_set(x_493, 0, x_492); -if (lean_is_scalar(x_437)) { - x_494 = lean_alloc_ctor(0, 2, 0); -} else { - x_494 = x_437; -} -lean_ctor_set(x_494, 0, x_493); -lean_ctor_set(x_494, 1, x_436); -return x_494; -} +lean_dec(x_276); +return x_300; } } } @@ -6936,56 +7250,120 @@ lean_dec(x_1); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___boxed(lean_object* x_1, lean_object* x_2) { +LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_1, x_2); +x_3 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2(x_1, x_2); lean_dec(x_2); lean_dec(x_1); return x_3; } } -LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___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_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__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_12; size_t x_13; lean_object* x_14; -x_12 = lean_unbox_usize(x_2); +size_t x_13; size_t x_14; lean_object* x_15; +x_13 = lean_unbox_usize(x_2); lean_dec(x_2); -x_13 = lean_unbox_usize(x_3); +x_14 = lean_unbox_usize(x_3); lean_dec(x_3); -x_14 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4(x_1, x_12, x_13, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +x_15 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3(x_1, x_13, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_1); -return x_14; +return x_15; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___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_object* x_13, lean_object* x_14) { _start: { -lean_object* x_10; -x_10 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_object* x_15; +x_15 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_1); +return x_15; +} +} +LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__1___rarg(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_9; +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_9 = lean_apply_6(x_1, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_9) == 0) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_ctor_get(x_9, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = lean_apply_7(x_2, x_10, x_3, x_4, x_5, x_6, x_7, x_11); +return x_12; +} +else +{ +uint8_t x_13; +lean_dec(x_7); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -lean_dec(x_1); -return x_10; +lean_dec(x_2); +x_13 = !lean_is_exclusive(x_9); +if (x_13 == 0) +{ +return x_9; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_14 = lean_ctor_get(x_9, 0); +x_15 = lean_ctor_get(x_9, 1); +lean_inc(x_15); +lean_inc(x_14); +lean_dec(x_9); +x_16 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_16, 0, x_14); +lean_ctor_set(x_16, 1, x_15); +return x_16; } } -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__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) { +} +} +LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__1(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_11; uint8_t x_12; -x_11 = lean_array_get_size(x_3); -x_12 = lean_nat_dec_lt(x_2, x_11); -lean_dec(x_11); -if (x_12 == 0) +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__1___rarg), 8, 0); +return x_3; +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__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, lean_object* x_10, lean_object* x_11) { +_start: { -lean_object* x_13; +lean_object* x_12; uint8_t x_13; +x_12 = lean_array_get_size(x_3); +x_13 = lean_nat_dec_lt(x_2, x_12); +lean_dec(x_12); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -6994,64 +7372,66 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_3); -lean_ctor_set(x_13, 1, x_10); -return x_13; +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_11); +return x_14; } else { -lean_object* x_14; lean_object* x_15; -x_14 = lean_array_fget(x_3, x_2); +lean_object* x_15; lean_object* x_16; +x_15 = lean_array_fget(x_3, x_2); lean_inc(x_1); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -lean_inc(x_14); -x_15 = lean_apply_8(x_1, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -if (lean_obj_tag(x_15) == 0) +lean_inc(x_15); +x_16 = lean_apply_9(x_1, x_15, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +if (lean_obj_tag(x_16) == 0) { -lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; uint8_t x_20; -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); +lean_object* x_17; lean_object* x_18; size_t x_19; size_t x_20; uint8_t x_21; +x_17 = lean_ctor_get(x_16, 0); lean_inc(x_17); -lean_dec(x_15); -x_18 = lean_ptr_addr(x_14); -lean_dec(x_14); -x_19 = lean_ptr_addr(x_16); -x_20 = lean_usize_dec_eq(x_18, x_19); -if (x_20 == 0) -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_unsigned_to_nat(1u); -x_22 = lean_nat_add(x_2, x_21); -x_23 = lean_array_fset(x_3, x_2, x_16); -lean_dec(x_2); -x_2 = x_22; -x_3 = x_23; -x_10 = x_17; -goto _start; -} -else -{ -lean_object* x_25; lean_object* x_26; +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); lean_dec(x_16); -x_25 = lean_unsigned_to_nat(1u); -x_26 = lean_nat_add(x_2, x_25); +x_19 = lean_ptr_addr(x_15); +lean_dec(x_15); +x_20 = lean_ptr_addr(x_17); +x_21 = lean_usize_dec_eq(x_19, x_20); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_unsigned_to_nat(1u); +x_23 = lean_nat_add(x_2, x_22); +x_24 = lean_array_fset(x_3, x_2, x_17); lean_dec(x_2); -x_2 = x_26; -x_10 = x_17; +x_2 = x_23; +x_3 = x_24; +x_11 = x_18; +goto _start; +} +else +{ +lean_object* x_26; lean_object* x_27; +lean_dec(x_17); +x_26 = lean_unsigned_to_nat(1u); +x_27 = lean_nat_add(x_2, x_26); +lean_dec(x_2); +x_2 = x_27; +x_11 = x_18; goto _start; } } else { -uint8_t x_28; -lean_dec(x_14); +uint8_t x_29; +lean_dec(x_15); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -7061,19 +7441,126 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_28 = !lean_is_exclusive(x_15); +x_29 = !lean_is_exclusive(x_16); +if (x_29 == 0) +{ +return x_16; +} +else +{ +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; +} +} +} +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__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; lean_object* x_12; +x_11 = lean_unsigned_to_nat(0u); +x_12 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__3(x_2, x_11, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___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) { +_start: +{ +lean_object* x_9; lean_object* x_10; +x_9 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_1, x_2); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_9); +lean_ctor_set(x_10, 1, x_8); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___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: +{ +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_11 = lean_ctor_get(x_2, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_2, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_2, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 2); +lean_inc(x_14); +lean_dec(x_1); +x_15 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit), 9, 3); +lean_closure_set(x_15, 0, x_13); +lean_closure_set(x_15, 1, x_3); +lean_closure_set(x_15, 2, x_4); +x_16 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___lambda__1___boxed), 8, 1); +lean_closure_set(x_16, 0, x_2); +x_17 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__1___rarg), 8, 2); +lean_closure_set(x_17, 0, x_15); +lean_closure_set(x_17, 1, x_16); +x_18 = l_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___rarg(x_14, x_11, x_12, x_17, x_5, x_6, x_7, x_8, x_9, x_10); +return x_18; +} +else +{ +lean_object* x_19; lean_object* x_20; +lean_dec(x_1); +x_19 = lean_ctor_get(x_2, 0); +lean_inc(x_19); +x_20 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_19, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_20) == 0) +{ +uint8_t x_21; +x_21 = !lean_is_exclusive(x_20); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; +x_22 = lean_ctor_get(x_20, 0); +x_23 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_2, x_22); +lean_ctor_set(x_20, 0, x_23); +return x_20; +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_24 = lean_ctor_get(x_20, 0); +x_25 = lean_ctor_get(x_20, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_20); +x_26 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_2, x_24); +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_28; +lean_dec(x_2); +x_28 = !lean_is_exclusive(x_20); if (x_28 == 0) { -return x_15; +return x_20; } else { lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_29 = lean_ctor_get(x_15, 0); -x_30 = lean_ctor_get(x_15, 1); +x_29 = lean_ctor_get(x_20, 0); +x_30 = lean_ctor_get(x_20, 1); lean_inc(x_30); lean_inc(x_29); -lean_dec(x_15); +lean_dec(x_20); x_31 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_31, 0, x_29); lean_ctor_set(x_31, 1, x_30); @@ -7083,505 +7570,432 @@ return x_31; } } } -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__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) { -_start: -{ -lean_object* x_10; lean_object* x_11; -x_10 = lean_unsigned_to_nat(0u); -x_11 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__2(x_2, x_10, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_11; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___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) { -_start: -{ -lean_object* x_9; lean_object* x_10; -x_9 = l_Lean_Compiler_LCNF_AltCore_getCode(x_1); -x_10 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_9, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_10) == 0) -{ -uint8_t x_11; -x_11 = !lean_is_exclusive(x_10); -if (x_11 == 0) -{ -lean_object* x_12; lean_object* x_13; -x_12 = lean_ctor_get(x_10, 0); -x_13 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_1, x_12); -lean_ctor_set(x_10, 0, x_13); -return x_10; -} -else -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_14 = lean_ctor_get(x_10, 0); -x_15 = lean_ctor_get(x_10, 1); -lean_inc(x_15); -lean_inc(x_14); -lean_dec(x_10); -x_16 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_1, x_14); -x_17 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_17, 0, x_16); -lean_ctor_set(x_17, 1, x_15); -return x_17; -} -} -else -{ -uint8_t x_18; -lean_dec(x_1); -x_18 = !lean_is_exclusive(x_10); -if (x_18 == 0) -{ -return x_10; -} -else -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_10, 0); -x_20 = lean_ctor_get(x_10, 1); -lean_inc(x_20); -lean_inc(x_19); -lean_dec(x_10); -x_21 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_21, 0, x_19); -lean_ctor_set(x_21, 1, x_20); -return x_21; -} -} -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___lambda__1), 8, 0); -return x_1; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(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_Compiler_LCNF_Simp_simpJpCases_x3f_visit(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: { switch (lean_obj_tag(x_1)) { case 0: { -lean_object* x_9; lean_object* x_10; lean_object* x_11; -x_9 = lean_ctor_get(x_1, 0); -lean_inc(x_9); -x_10 = lean_ctor_get(x_1, 1); +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_ctor_get(x_1, 0); lean_inc(x_10); -lean_inc(x_10); -x_11 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_11) == 0) +x_11 = lean_ctor_get(x_1, 1); +lean_inc(x_11); +lean_inc(x_11); +x_12 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_12) == 0) { -uint8_t x_12; -x_12 = !lean_is_exclusive(x_11); -if (x_12 == 0) +uint8_t x_13; +x_13 = !lean_is_exclusive(x_12); +if (x_13 == 0) { -lean_object* x_13; size_t x_14; size_t x_15; uint8_t x_16; -x_13 = lean_ctor_get(x_11, 0); -x_14 = lean_ptr_addr(x_10); -lean_dec(x_10); -x_15 = lean_ptr_addr(x_13); -x_16 = lean_usize_dec_eq(x_14, x_15); -if (x_16 == 0) -{ -uint8_t x_17; -x_17 = !lean_is_exclusive(x_1); +lean_object* x_14; size_t x_15; size_t x_16; uint8_t x_17; +x_14 = lean_ctor_get(x_12, 0); +x_15 = lean_ptr_addr(x_11); +lean_dec(x_11); +x_16 = lean_ptr_addr(x_14); +x_17 = lean_usize_dec_eq(x_15, x_16); if (x_17 == 0) { -lean_object* x_18; lean_object* x_19; -x_18 = lean_ctor_get(x_1, 1); -lean_dec(x_18); -x_19 = lean_ctor_get(x_1, 0); +uint8_t x_18; +x_18 = !lean_is_exclusive(x_1); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; +x_19 = lean_ctor_get(x_1, 1); lean_dec(x_19); -lean_ctor_set(x_1, 1, x_13); -lean_ctor_set(x_11, 0, x_1); -return x_11; +x_20 = lean_ctor_get(x_1, 0); +lean_dec(x_20); +lean_ctor_set(x_1, 1, x_14); +lean_ctor_set(x_12, 0, x_1); +return x_12; } else { -lean_object* x_20; +lean_object* x_21; lean_dec(x_1); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_9); -lean_ctor_set(x_20, 1, x_13); -lean_ctor_set(x_11, 0, x_20); -return x_11; +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_10); +lean_ctor_set(x_21, 1, x_14); +lean_ctor_set(x_12, 0, x_21); +return x_12; } } else { -size_t x_21; uint8_t x_22; -x_21 = lean_ptr_addr(x_9); -x_22 = lean_usize_dec_eq(x_21, x_21); -if (x_22 == 0) -{ -uint8_t x_23; -x_23 = !lean_is_exclusive(x_1); +size_t x_22; uint8_t x_23; +x_22 = lean_ptr_addr(x_10); +x_23 = lean_usize_dec_eq(x_22, x_22); if (x_23 == 0) { -lean_object* x_24; lean_object* x_25; -x_24 = lean_ctor_get(x_1, 1); -lean_dec(x_24); -x_25 = lean_ctor_get(x_1, 0); +uint8_t x_24; +x_24 = !lean_is_exclusive(x_1); +if (x_24 == 0) +{ +lean_object* x_25; lean_object* x_26; +x_25 = lean_ctor_get(x_1, 1); lean_dec(x_25); -lean_ctor_set(x_1, 1, x_13); -lean_ctor_set(x_11, 0, x_1); -return x_11; +x_26 = lean_ctor_get(x_1, 0); +lean_dec(x_26); +lean_ctor_set(x_1, 1, x_14); +lean_ctor_set(x_12, 0, x_1); +return x_12; } else { -lean_object* x_26; +lean_object* x_27; lean_dec(x_1); -x_26 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_26, 0, x_9); -lean_ctor_set(x_26, 1, x_13); -lean_ctor_set(x_11, 0, x_26); -return x_11; +x_27 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_27, 0, x_10); +lean_ctor_set(x_27, 1, x_14); +lean_ctor_set(x_12, 0, x_27); +return x_12; } } else { -lean_dec(x_13); -lean_dec(x_9); -lean_ctor_set(x_11, 0, x_1); -return x_11; -} -} -} -else -{ -lean_object* x_27; lean_object* x_28; size_t x_29; size_t x_30; uint8_t x_31; -x_27 = lean_ctor_get(x_11, 0); -x_28 = lean_ctor_get(x_11, 1); -lean_inc(x_28); -lean_inc(x_27); -lean_dec(x_11); -x_29 = lean_ptr_addr(x_10); +lean_dec(x_14); lean_dec(x_10); -x_30 = lean_ptr_addr(x_27); -x_31 = lean_usize_dec_eq(x_29, x_30); -if (x_31 == 0) +lean_ctor_set(x_12, 0, x_1); +return x_12; +} +} +} +else { -lean_object* x_32; lean_object* x_33; lean_object* x_34; +lean_object* x_28; lean_object* x_29; size_t x_30; size_t x_31; uint8_t x_32; +x_28 = lean_ctor_get(x_12, 0); +x_29 = lean_ctor_get(x_12, 1); +lean_inc(x_29); +lean_inc(x_28); +lean_dec(x_12); +x_30 = lean_ptr_addr(x_11); +lean_dec(x_11); +x_31 = lean_ptr_addr(x_28); +x_32 = lean_usize_dec_eq(x_30, x_31); +if (x_32 == 0) +{ +lean_object* x_33; lean_object* x_34; lean_object* x_35; if (lean_is_exclusive(x_1)) { lean_ctor_release(x_1, 0); lean_ctor_release(x_1, 1); - x_32 = x_1; + x_33 = x_1; } else { lean_dec_ref(x_1); - x_32 = lean_box(0); + x_33 = lean_box(0); } -if (lean_is_scalar(x_32)) { - x_33 = lean_alloc_ctor(0, 2, 0); +if (lean_is_scalar(x_33)) { + x_34 = lean_alloc_ctor(0, 2, 0); } else { - x_33 = x_32; + x_34 = x_33; } -lean_ctor_set(x_33, 0, x_9); -lean_ctor_set(x_33, 1, x_27); -x_34 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_34, 0, x_33); +lean_ctor_set(x_34, 0, x_10); lean_ctor_set(x_34, 1, x_28); -return x_34; +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_34); +lean_ctor_set(x_35, 1, x_29); +return x_35; } else { -size_t x_35; uint8_t x_36; -x_35 = lean_ptr_addr(x_9); -x_36 = lean_usize_dec_eq(x_35, x_35); -if (x_36 == 0) +size_t x_36; uint8_t x_37; +x_36 = lean_ptr_addr(x_10); +x_37 = lean_usize_dec_eq(x_36, x_36); +if (x_37 == 0) { -lean_object* x_37; lean_object* x_38; lean_object* x_39; +lean_object* x_38; lean_object* x_39; lean_object* x_40; if (lean_is_exclusive(x_1)) { lean_ctor_release(x_1, 0); lean_ctor_release(x_1, 1); - x_37 = x_1; + x_38 = x_1; } else { lean_dec_ref(x_1); - x_37 = lean_box(0); + x_38 = lean_box(0); } -if (lean_is_scalar(x_37)) { - x_38 = lean_alloc_ctor(0, 2, 0); +if (lean_is_scalar(x_38)) { + x_39 = lean_alloc_ctor(0, 2, 0); } else { - x_38 = x_37; + x_39 = x_38; } -lean_ctor_set(x_38, 0, x_9); -lean_ctor_set(x_38, 1, x_27); -x_39 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 0, x_10); lean_ctor_set(x_39, 1, x_28); -return x_39; -} -else -{ -lean_object* x_40; -lean_dec(x_27); -lean_dec(x_9); x_40 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_40, 0, x_1); -lean_ctor_set(x_40, 1, x_28); +lean_ctor_set(x_40, 0, x_39); +lean_ctor_set(x_40, 1, x_29); return x_40; } -} -} -} else { -uint8_t x_41; +lean_object* x_41; +lean_dec(x_28); lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_1); -x_41 = !lean_is_exclusive(x_11); -if (x_41 == 0) -{ -return x_11; +x_41 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_41, 0, x_1); +lean_ctor_set(x_41, 1, x_29); +return x_41; +} +} +} } else { -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_11, 0); -x_43 = lean_ctor_get(x_11, 1); -lean_inc(x_43); -lean_inc(x_42); +uint8_t x_42; lean_dec(x_11); -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; +lean_dec(x_10); +lean_dec(x_1); +x_42 = !lean_is_exclusive(x_12); +if (x_42 == 0) +{ +return x_12; +} +else +{ +lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_43 = lean_ctor_get(x_12, 0); +x_44 = lean_ctor_get(x_12, 1); +lean_inc(x_44); +lean_inc(x_43); +lean_dec(x_12); +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; } } } case 1: { -lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_45 = lean_ctor_get(x_1, 0); -lean_inc(x_45); -x_46 = lean_ctor_get(x_1, 1); +lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; +x_46 = lean_ctor_get(x_1, 0); lean_inc(x_46); -x_47 = lean_ctor_get(x_45, 4); +x_47 = lean_ctor_get(x_1, 1); lean_inc(x_47); +x_48 = lean_ctor_get(x_46, 4); +lean_inc(x_48); +lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_48 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_47, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_48) == 0) +x_49 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_48, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_49) == 0) { -lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; -x_49 = lean_ctor_get(x_48, 0); -lean_inc(x_49); -x_50 = lean_ctor_get(x_48, 1); +lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; +x_50 = lean_ctor_get(x_49, 0); lean_inc(x_50); -lean_dec(x_48); -x_51 = lean_ctor_get(x_45, 3); +x_51 = lean_ctor_get(x_49, 1); lean_inc(x_51); -x_52 = lean_ctor_get(x_45, 2); +lean_dec(x_49); +x_52 = lean_ctor_get(x_46, 3); lean_inc(x_52); -lean_inc(x_45); -x_53 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_45, x_51, x_52, x_49, x_4, x_5, x_6, x_7, x_50); -x_54 = lean_ctor_get(x_53, 0); -lean_inc(x_54); -x_55 = lean_ctor_get(x_53, 1); -lean_inc(x_55); -lean_dec(x_53); +x_53 = lean_ctor_get(x_46, 2); +lean_inc(x_53); lean_inc(x_46); -x_56 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_46, x_2, x_3, x_4, x_5, x_6, x_7, x_55); -if (lean_obj_tag(x_56) == 0) +x_54 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_46, x_52, x_53, x_50, x_5, x_6, x_7, x_8, x_51); +x_55 = lean_ctor_get(x_54, 0); +lean_inc(x_55); +x_56 = lean_ctor_get(x_54, 1); +lean_inc(x_56); +lean_dec(x_54); +lean_inc(x_47); +x_57 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_47, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_56); +if (lean_obj_tag(x_57) == 0) { -uint8_t x_57; -x_57 = !lean_is_exclusive(x_56); -if (x_57 == 0) +uint8_t x_58; +x_58 = !lean_is_exclusive(x_57); +if (x_58 == 0) { -lean_object* x_58; size_t x_59; size_t x_60; uint8_t x_61; -x_58 = lean_ctor_get(x_56, 0); -x_59 = lean_ptr_addr(x_46); -lean_dec(x_46); -x_60 = lean_ptr_addr(x_58); -x_61 = lean_usize_dec_eq(x_59, x_60); -if (x_61 == 0) -{ -uint8_t x_62; -lean_dec(x_45); -x_62 = !lean_is_exclusive(x_1); +lean_object* x_59; size_t x_60; size_t x_61; uint8_t x_62; +x_59 = lean_ctor_get(x_57, 0); +x_60 = lean_ptr_addr(x_47); +lean_dec(x_47); +x_61 = lean_ptr_addr(x_59); +x_62 = lean_usize_dec_eq(x_60, x_61); if (x_62 == 0) { -lean_object* x_63; lean_object* x_64; -x_63 = lean_ctor_get(x_1, 1); -lean_dec(x_63); -x_64 = lean_ctor_get(x_1, 0); +uint8_t x_63; +lean_dec(x_46); +x_63 = !lean_is_exclusive(x_1); +if (x_63 == 0) +{ +lean_object* x_64; lean_object* x_65; +x_64 = lean_ctor_get(x_1, 1); lean_dec(x_64); -lean_ctor_set(x_1, 1, x_58); -lean_ctor_set(x_1, 0, x_54); -lean_ctor_set(x_56, 0, x_1); -return x_56; +x_65 = lean_ctor_get(x_1, 0); +lean_dec(x_65); +lean_ctor_set(x_1, 1, x_59); +lean_ctor_set(x_1, 0, x_55); +lean_ctor_set(x_57, 0, x_1); +return x_57; } else { -lean_object* x_65; +lean_object* x_66; lean_dec(x_1); -x_65 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_65, 0, x_54); -lean_ctor_set(x_65, 1, x_58); -lean_ctor_set(x_56, 0, x_65); -return x_56; +x_66 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_66, 0, x_55); +lean_ctor_set(x_66, 1, x_59); +lean_ctor_set(x_57, 0, x_66); +return x_57; } } else { -size_t x_66; size_t x_67; uint8_t x_68; -x_66 = lean_ptr_addr(x_45); -lean_dec(x_45); -x_67 = lean_ptr_addr(x_54); -x_68 = lean_usize_dec_eq(x_66, x_67); -if (x_68 == 0) -{ -uint8_t x_69; -x_69 = !lean_is_exclusive(x_1); +size_t x_67; size_t x_68; uint8_t x_69; +x_67 = lean_ptr_addr(x_46); +lean_dec(x_46); +x_68 = lean_ptr_addr(x_55); +x_69 = lean_usize_dec_eq(x_67, x_68); if (x_69 == 0) { -lean_object* x_70; lean_object* x_71; -x_70 = lean_ctor_get(x_1, 1); -lean_dec(x_70); -x_71 = lean_ctor_get(x_1, 0); +uint8_t x_70; +x_70 = !lean_is_exclusive(x_1); +if (x_70 == 0) +{ +lean_object* x_71; lean_object* x_72; +x_71 = lean_ctor_get(x_1, 1); lean_dec(x_71); -lean_ctor_set(x_1, 1, x_58); -lean_ctor_set(x_1, 0, x_54); -lean_ctor_set(x_56, 0, x_1); -return x_56; +x_72 = lean_ctor_get(x_1, 0); +lean_dec(x_72); +lean_ctor_set(x_1, 1, x_59); +lean_ctor_set(x_1, 0, x_55); +lean_ctor_set(x_57, 0, x_1); +return x_57; } else { -lean_object* x_72; +lean_object* x_73; lean_dec(x_1); -x_72 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_72, 0, x_54); -lean_ctor_set(x_72, 1, x_58); -lean_ctor_set(x_56, 0, x_72); -return x_56; +x_73 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_73, 0, x_55); +lean_ctor_set(x_73, 1, x_59); +lean_ctor_set(x_57, 0, x_73); +return x_57; } } else { -lean_dec(x_58); -lean_dec(x_54); -lean_ctor_set(x_56, 0, x_1); -return x_56; +lean_dec(x_59); +lean_dec(x_55); +lean_ctor_set(x_57, 0, x_1); +return x_57; } } } else { -lean_object* x_73; lean_object* x_74; size_t x_75; size_t x_76; uint8_t x_77; -x_73 = lean_ctor_get(x_56, 0); -x_74 = lean_ctor_get(x_56, 1); +lean_object* x_74; lean_object* x_75; size_t x_76; size_t x_77; uint8_t x_78; +x_74 = lean_ctor_get(x_57, 0); +x_75 = lean_ctor_get(x_57, 1); +lean_inc(x_75); lean_inc(x_74); -lean_inc(x_73); -lean_dec(x_56); -x_75 = lean_ptr_addr(x_46); +lean_dec(x_57); +x_76 = lean_ptr_addr(x_47); +lean_dec(x_47); +x_77 = lean_ptr_addr(x_74); +x_78 = lean_usize_dec_eq(x_76, x_77); +if (x_78 == 0) +{ +lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_dec(x_46); -x_76 = lean_ptr_addr(x_73); -x_77 = lean_usize_dec_eq(x_75, x_76); -if (x_77 == 0) -{ -lean_object* x_78; lean_object* x_79; lean_object* x_80; -lean_dec(x_45); if (lean_is_exclusive(x_1)) { lean_ctor_release(x_1, 0); lean_ctor_release(x_1, 1); - x_78 = x_1; + x_79 = x_1; } else { lean_dec_ref(x_1); - x_78 = lean_box(0); + x_79 = lean_box(0); } -if (lean_is_scalar(x_78)) { - x_79 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_79)) { + x_80 = lean_alloc_ctor(1, 2, 0); } else { - x_79 = x_78; + x_80 = x_79; } -lean_ctor_set(x_79, 0, x_54); -lean_ctor_set(x_79, 1, x_73); -x_80 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_80, 0, x_79); +lean_ctor_set(x_80, 0, x_55); lean_ctor_set(x_80, 1, x_74); -return x_80; +x_81 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_81, 0, x_80); +lean_ctor_set(x_81, 1, x_75); +return x_81; } else { -size_t x_81; size_t x_82; uint8_t x_83; -x_81 = lean_ptr_addr(x_45); -lean_dec(x_45); -x_82 = lean_ptr_addr(x_54); -x_83 = lean_usize_dec_eq(x_81, x_82); -if (x_83 == 0) +size_t x_82; size_t x_83; uint8_t x_84; +x_82 = lean_ptr_addr(x_46); +lean_dec(x_46); +x_83 = lean_ptr_addr(x_55); +x_84 = lean_usize_dec_eq(x_82, x_83); +if (x_84 == 0) { -lean_object* x_84; lean_object* x_85; lean_object* x_86; +lean_object* x_85; lean_object* x_86; lean_object* x_87; if (lean_is_exclusive(x_1)) { lean_ctor_release(x_1, 0); lean_ctor_release(x_1, 1); - x_84 = x_1; + x_85 = x_1; } else { lean_dec_ref(x_1); - x_84 = lean_box(0); + x_85 = lean_box(0); } -if (lean_is_scalar(x_84)) { - x_85 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_85)) { + x_86 = lean_alloc_ctor(1, 2, 0); } else { - x_85 = x_84; + x_86 = x_85; } -lean_ctor_set(x_85, 0, x_54); -lean_ctor_set(x_85, 1, x_73); -x_86 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_86, 0, x_85); +lean_ctor_set(x_86, 0, x_55); lean_ctor_set(x_86, 1, x_74); -return x_86; -} -else -{ -lean_object* x_87; -lean_dec(x_73); -lean_dec(x_54); x_87 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_87, 0, x_1); -lean_ctor_set(x_87, 1, x_74); +lean_ctor_set(x_87, 0, x_86); +lean_ctor_set(x_87, 1, x_75); return x_87; } +else +{ +lean_object* x_88; +lean_dec(x_74); +lean_dec(x_55); +x_88 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_88, 0, x_1); +lean_ctor_set(x_88, 1, x_75); +return x_88; +} } } } else { -uint8_t x_88; -lean_dec(x_54); +uint8_t x_89; +lean_dec(x_55); +lean_dec(x_47); lean_dec(x_46); -lean_dec(x_45); lean_dec(x_1); -x_88 = !lean_is_exclusive(x_56); -if (x_88 == 0) +x_89 = !lean_is_exclusive(x_57); +if (x_89 == 0) { -return x_56; +return x_57; } else { -lean_object* x_89; lean_object* x_90; lean_object* x_91; -x_89 = lean_ctor_get(x_56, 0); -x_90 = lean_ctor_get(x_56, 1); +lean_object* x_90; lean_object* x_91; lean_object* x_92; +x_90 = lean_ctor_get(x_57, 0); +x_91 = lean_ctor_get(x_57, 1); +lean_inc(x_91); lean_inc(x_90); -lean_inc(x_89); -lean_dec(x_56); -x_91 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_91, 0, x_89); -lean_ctor_set(x_91, 1, x_90); -return x_91; +lean_dec(x_57); +x_92 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_92, 0, x_90); +lean_ctor_set(x_92, 1, x_91); +return x_92; } } } else { -uint8_t x_92; +uint8_t x_93; +lean_dec(x_47); lean_dec(x_46); -lean_dec(x_45); +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -7589,349 +8003,354 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_92 = !lean_is_exclusive(x_48); -if (x_92 == 0) +x_93 = !lean_is_exclusive(x_49); +if (x_93 == 0) { -return x_48; +return x_49; } else { -lean_object* x_93; lean_object* x_94; lean_object* x_95; -x_93 = lean_ctor_get(x_48, 0); -x_94 = lean_ctor_get(x_48, 1); +lean_object* x_94; lean_object* x_95; lean_object* x_96; +x_94 = lean_ctor_get(x_49, 0); +x_95 = lean_ctor_get(x_49, 1); +lean_inc(x_95); lean_inc(x_94); -lean_inc(x_93); -lean_dec(x_48); -x_95 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_95, 0, x_93); -lean_ctor_set(x_95, 1, x_94); -return x_95; +lean_dec(x_49); +x_96 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_96, 0, x_94); +lean_ctor_set(x_96, 1, x_95); +return x_96; } } } case 2: { -lean_object* x_96; lean_object* x_97; lean_object* x_98; -x_96 = lean_ctor_get(x_1, 0); -lean_inc(x_96); -x_97 = lean_ctor_get(x_1, 1); +lean_object* x_97; lean_object* x_98; lean_object* x_99; +x_97 = lean_ctor_get(x_1, 0); lean_inc(x_97); +x_98 = lean_ctor_get(x_1, 1); +lean_inc(x_98); +lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); +lean_inc(x_98); lean_inc(x_97); -lean_inc(x_96); -x_98 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f(x_96, x_97, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_98) == 0) -{ -lean_object* x_99; -x_99 = lean_ctor_get(x_98, 0); -lean_inc(x_99); +x_99 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f(x_97, x_98, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); if (lean_obj_tag(x_99) == 0) { -lean_object* x_100; lean_object* x_101; lean_object* x_102; -x_100 = lean_ctor_get(x_98, 1); +lean_object* x_100; +x_100 = lean_ctor_get(x_99, 0); lean_inc(x_100); -lean_dec(x_98); -x_101 = lean_ctor_get(x_96, 4); +if (lean_obj_tag(x_100) == 0) +{ +lean_object* x_101; lean_object* x_102; lean_object* x_103; +x_101 = lean_ctor_get(x_99, 1); lean_inc(x_101); +lean_dec(x_99); +x_102 = lean_ctor_get(x_97, 4); +lean_inc(x_102); +lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_102 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_101, x_2, x_3, x_4, x_5, x_6, x_7, x_100); -if (lean_obj_tag(x_102) == 0) +x_103 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_102, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_101); +if (lean_obj_tag(x_103) == 0) { -lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; -x_103 = lean_ctor_get(x_102, 0); -lean_inc(x_103); -x_104 = lean_ctor_get(x_102, 1); +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_104 = lean_ctor_get(x_103, 0); lean_inc(x_104); -lean_dec(x_102); -x_105 = lean_ctor_get(x_96, 3); +x_105 = lean_ctor_get(x_103, 1); lean_inc(x_105); -x_106 = lean_ctor_get(x_96, 2); +lean_dec(x_103); +x_106 = lean_ctor_get(x_97, 3); lean_inc(x_106); -lean_inc(x_96); -x_107 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_96, x_105, x_106, x_103, x_4, x_5, x_6, x_7, x_104); -x_108 = lean_ctor_get(x_107, 0); -lean_inc(x_108); -x_109 = lean_ctor_get(x_107, 1); -lean_inc(x_109); -lean_dec(x_107); +x_107 = lean_ctor_get(x_97, 2); +lean_inc(x_107); lean_inc(x_97); -x_110 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_97, x_2, x_3, x_4, x_5, x_6, x_7, x_109); -if (lean_obj_tag(x_110) == 0) +x_108 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_97, x_106, x_107, x_104, x_5, x_6, x_7, x_8, x_105); +x_109 = lean_ctor_get(x_108, 0); +lean_inc(x_109); +x_110 = lean_ctor_get(x_108, 1); +lean_inc(x_110); +lean_dec(x_108); +lean_inc(x_98); +x_111 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_98, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_110); +if (lean_obj_tag(x_111) == 0) { -uint8_t x_111; -x_111 = !lean_is_exclusive(x_110); -if (x_111 == 0) +uint8_t x_112; +x_112 = !lean_is_exclusive(x_111); +if (x_112 == 0) { -lean_object* x_112; size_t x_113; size_t x_114; uint8_t x_115; -x_112 = lean_ctor_get(x_110, 0); -x_113 = lean_ptr_addr(x_97); -lean_dec(x_97); -x_114 = lean_ptr_addr(x_112); -x_115 = lean_usize_dec_eq(x_113, x_114); -if (x_115 == 0) -{ -uint8_t x_116; -lean_dec(x_96); -x_116 = !lean_is_exclusive(x_1); +lean_object* x_113; size_t x_114; size_t x_115; uint8_t x_116; +x_113 = lean_ctor_get(x_111, 0); +x_114 = lean_ptr_addr(x_98); +lean_dec(x_98); +x_115 = lean_ptr_addr(x_113); +x_116 = lean_usize_dec_eq(x_114, x_115); if (x_116 == 0) { -lean_object* x_117; lean_object* x_118; -x_117 = lean_ctor_get(x_1, 1); -lean_dec(x_117); -x_118 = lean_ctor_get(x_1, 0); +uint8_t x_117; +lean_dec(x_97); +x_117 = !lean_is_exclusive(x_1); +if (x_117 == 0) +{ +lean_object* x_118; lean_object* x_119; +x_118 = lean_ctor_get(x_1, 1); lean_dec(x_118); -lean_ctor_set(x_1, 1, x_112); -lean_ctor_set(x_1, 0, x_108); -lean_ctor_set(x_110, 0, x_1); -return x_110; +x_119 = lean_ctor_get(x_1, 0); +lean_dec(x_119); +lean_ctor_set(x_1, 1, x_113); +lean_ctor_set(x_1, 0, x_109); +lean_ctor_set(x_111, 0, x_1); +return x_111; } else { -lean_object* x_119; +lean_object* x_120; lean_dec(x_1); -x_119 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_119, 0, x_108); -lean_ctor_set(x_119, 1, x_112); -lean_ctor_set(x_110, 0, x_119); -return x_110; +x_120 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_120, 0, x_109); +lean_ctor_set(x_120, 1, x_113); +lean_ctor_set(x_111, 0, x_120); +return x_111; } } else { -size_t x_120; size_t x_121; uint8_t x_122; -x_120 = lean_ptr_addr(x_96); -lean_dec(x_96); -x_121 = lean_ptr_addr(x_108); -x_122 = lean_usize_dec_eq(x_120, x_121); -if (x_122 == 0) -{ -uint8_t x_123; -x_123 = !lean_is_exclusive(x_1); +size_t x_121; size_t x_122; uint8_t x_123; +x_121 = lean_ptr_addr(x_97); +lean_dec(x_97); +x_122 = lean_ptr_addr(x_109); +x_123 = lean_usize_dec_eq(x_121, x_122); if (x_123 == 0) { -lean_object* x_124; lean_object* x_125; -x_124 = lean_ctor_get(x_1, 1); -lean_dec(x_124); -x_125 = lean_ctor_get(x_1, 0); +uint8_t x_124; +x_124 = !lean_is_exclusive(x_1); +if (x_124 == 0) +{ +lean_object* x_125; lean_object* x_126; +x_125 = lean_ctor_get(x_1, 1); lean_dec(x_125); -lean_ctor_set(x_1, 1, x_112); -lean_ctor_set(x_1, 0, x_108); -lean_ctor_set(x_110, 0, x_1); -return x_110; +x_126 = lean_ctor_get(x_1, 0); +lean_dec(x_126); +lean_ctor_set(x_1, 1, x_113); +lean_ctor_set(x_1, 0, x_109); +lean_ctor_set(x_111, 0, x_1); +return x_111; } else { -lean_object* x_126; +lean_object* x_127; lean_dec(x_1); -x_126 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_126, 0, x_108); -lean_ctor_set(x_126, 1, x_112); -lean_ctor_set(x_110, 0, x_126); -return x_110; +x_127 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_127, 0, x_109); +lean_ctor_set(x_127, 1, x_113); +lean_ctor_set(x_111, 0, x_127); +return x_111; } } else { -lean_dec(x_112); -lean_dec(x_108); -lean_ctor_set(x_110, 0, x_1); -return x_110; +lean_dec(x_113); +lean_dec(x_109); +lean_ctor_set(x_111, 0, x_1); +return x_111; } } } else { -lean_object* x_127; lean_object* x_128; size_t x_129; size_t x_130; uint8_t x_131; -x_127 = lean_ctor_get(x_110, 0); -x_128 = lean_ctor_get(x_110, 1); +lean_object* x_128; lean_object* x_129; size_t x_130; size_t x_131; uint8_t x_132; +x_128 = lean_ctor_get(x_111, 0); +x_129 = lean_ctor_get(x_111, 1); +lean_inc(x_129); lean_inc(x_128); -lean_inc(x_127); -lean_dec(x_110); -x_129 = lean_ptr_addr(x_97); +lean_dec(x_111); +x_130 = lean_ptr_addr(x_98); +lean_dec(x_98); +x_131 = lean_ptr_addr(x_128); +x_132 = lean_usize_dec_eq(x_130, x_131); +if (x_132 == 0) +{ +lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_dec(x_97); -x_130 = lean_ptr_addr(x_127); -x_131 = lean_usize_dec_eq(x_129, x_130); -if (x_131 == 0) -{ -lean_object* x_132; lean_object* x_133; lean_object* x_134; -lean_dec(x_96); if (lean_is_exclusive(x_1)) { lean_ctor_release(x_1, 0); lean_ctor_release(x_1, 1); - x_132 = x_1; + x_133 = x_1; } else { lean_dec_ref(x_1); - x_132 = lean_box(0); + x_133 = lean_box(0); } -if (lean_is_scalar(x_132)) { - x_133 = lean_alloc_ctor(2, 2, 0); +if (lean_is_scalar(x_133)) { + x_134 = lean_alloc_ctor(2, 2, 0); } else { - x_133 = x_132; + x_134 = x_133; } -lean_ctor_set(x_133, 0, x_108); -lean_ctor_set(x_133, 1, x_127); -x_134 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_134, 0, x_133); +lean_ctor_set(x_134, 0, x_109); lean_ctor_set(x_134, 1, x_128); -return x_134; +x_135 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_135, 0, x_134); +lean_ctor_set(x_135, 1, x_129); +return x_135; } else { -size_t x_135; size_t x_136; uint8_t x_137; -x_135 = lean_ptr_addr(x_96); -lean_dec(x_96); -x_136 = lean_ptr_addr(x_108); -x_137 = lean_usize_dec_eq(x_135, x_136); -if (x_137 == 0) +size_t x_136; size_t x_137; uint8_t x_138; +x_136 = lean_ptr_addr(x_97); +lean_dec(x_97); +x_137 = lean_ptr_addr(x_109); +x_138 = lean_usize_dec_eq(x_136, x_137); +if (x_138 == 0) { -lean_object* x_138; lean_object* x_139; lean_object* x_140; +lean_object* x_139; lean_object* x_140; lean_object* x_141; if (lean_is_exclusive(x_1)) { lean_ctor_release(x_1, 0); lean_ctor_release(x_1, 1); - x_138 = x_1; + x_139 = x_1; } else { lean_dec_ref(x_1); - x_138 = lean_box(0); + x_139 = lean_box(0); } -if (lean_is_scalar(x_138)) { - x_139 = lean_alloc_ctor(2, 2, 0); +if (lean_is_scalar(x_139)) { + x_140 = lean_alloc_ctor(2, 2, 0); } else { - x_139 = x_138; + x_140 = x_139; } -lean_ctor_set(x_139, 0, x_108); -lean_ctor_set(x_139, 1, x_127); -x_140 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_140, 0, x_139); +lean_ctor_set(x_140, 0, x_109); lean_ctor_set(x_140, 1, x_128); -return x_140; -} -else -{ -lean_object* x_141; -lean_dec(x_127); -lean_dec(x_108); x_141 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_141, 0, x_1); -lean_ctor_set(x_141, 1, x_128); +lean_ctor_set(x_141, 0, x_140); +lean_ctor_set(x_141, 1, x_129); return x_141; } +else +{ +lean_object* x_142; +lean_dec(x_128); +lean_dec(x_109); +x_142 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_142, 0, x_1); +lean_ctor_set(x_142, 1, x_129); +return x_142; +} } } } else { -uint8_t x_142; -lean_dec(x_108); -lean_dec(x_97); -lean_dec(x_96); -lean_dec(x_1); -x_142 = !lean_is_exclusive(x_110); -if (x_142 == 0) -{ -return x_110; -} -else -{ -lean_object* x_143; lean_object* x_144; lean_object* x_145; -x_143 = lean_ctor_get(x_110, 0); -x_144 = lean_ctor_get(x_110, 1); -lean_inc(x_144); -lean_inc(x_143); -lean_dec(x_110); -x_145 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_145, 0, x_143); -lean_ctor_set(x_145, 1, x_144); -return x_145; -} -} -} -else -{ -uint8_t x_146; -lean_dec(x_97); -lean_dec(x_96); -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_146 = !lean_is_exclusive(x_102); -if (x_146 == 0) -{ -return x_102; -} -else -{ -lean_object* x_147; lean_object* x_148; lean_object* x_149; -x_147 = lean_ctor_get(x_102, 0); -x_148 = lean_ctor_get(x_102, 1); -lean_inc(x_148); -lean_inc(x_147); -lean_dec(x_102); -x_149 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_149, 0, x_147); -lean_ctor_set(x_149, 1, x_148); -return x_149; -} -} -} -else -{ -uint8_t x_150; -lean_dec(x_97); -lean_dec(x_96); -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_150 = !lean_is_exclusive(x_98); -if (x_150 == 0) -{ -lean_object* x_151; lean_object* x_152; -x_151 = lean_ctor_get(x_98, 0); -lean_dec(x_151); -x_152 = lean_ctor_get(x_99, 0); -lean_inc(x_152); -lean_dec(x_99); -lean_ctor_set(x_98, 0, x_152); -return x_98; -} -else -{ -lean_object* x_153; lean_object* x_154; lean_object* x_155; -x_153 = lean_ctor_get(x_98, 1); -lean_inc(x_153); +uint8_t x_143; +lean_dec(x_109); lean_dec(x_98); -x_154 = lean_ctor_get(x_99, 0); +lean_dec(x_97); +lean_dec(x_1); +x_143 = !lean_is_exclusive(x_111); +if (x_143 == 0) +{ +return x_111; +} +else +{ +lean_object* x_144; lean_object* x_145; lean_object* x_146; +x_144 = lean_ctor_get(x_111, 0); +x_145 = lean_ctor_get(x_111, 1); +lean_inc(x_145); +lean_inc(x_144); +lean_dec(x_111); +x_146 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_146, 0, x_144); +lean_ctor_set(x_146, 1, x_145); +return x_146; +} +} +} +else +{ +uint8_t x_147; +lean_dec(x_98); +lean_dec(x_97); +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_147 = !lean_is_exclusive(x_103); +if (x_147 == 0) +{ +return x_103; +} +else +{ +lean_object* x_148; lean_object* x_149; lean_object* x_150; +x_148 = lean_ctor_get(x_103, 0); +x_149 = lean_ctor_get(x_103, 1); +lean_inc(x_149); +lean_inc(x_148); +lean_dec(x_103); +x_150 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_150, 0, x_148); +lean_ctor_set(x_150, 1, x_149); +return x_150; +} +} +} +else +{ +uint8_t x_151; +lean_dec(x_98); +lean_dec(x_97); +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_151 = !lean_is_exclusive(x_99); +if (x_151 == 0) +{ +lean_object* x_152; lean_object* x_153; +x_152 = lean_ctor_get(x_99, 0); +lean_dec(x_152); +x_153 = lean_ctor_get(x_100, 0); +lean_inc(x_153); +lean_dec(x_100); +lean_ctor_set(x_99, 0, x_153); +return x_99; +} +else +{ +lean_object* x_154; lean_object* x_155; lean_object* x_156; +x_154 = lean_ctor_get(x_99, 1); lean_inc(x_154); lean_dec(x_99); -x_155 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_155, 0, x_154); -lean_ctor_set(x_155, 1, x_153); -return x_155; +x_155 = lean_ctor_get(x_100, 0); +lean_inc(x_155); +lean_dec(x_100); +x_156 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_156, 0, x_155); +lean_ctor_set(x_156, 1, x_154); +return x_156; } } } else { -uint8_t x_156; +uint8_t x_157; +lean_dec(x_98); lean_dec(x_97); -lean_dec(x_96); +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -7939,348 +8358,351 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_156 = !lean_is_exclusive(x_98); -if (x_156 == 0) +x_157 = !lean_is_exclusive(x_99); +if (x_157 == 0) { -return x_98; +return x_99; } else { -lean_object* x_157; lean_object* x_158; lean_object* x_159; -x_157 = lean_ctor_get(x_98, 0); -x_158 = lean_ctor_get(x_98, 1); +lean_object* x_158; lean_object* x_159; lean_object* x_160; +x_158 = lean_ctor_get(x_99, 0); +x_159 = lean_ctor_get(x_99, 1); +lean_inc(x_159); lean_inc(x_158); -lean_inc(x_157); -lean_dec(x_98); -x_159 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_159, 0, x_157); -lean_ctor_set(x_159, 1, x_158); -return x_159; +lean_dec(x_99); +x_160 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_160, 0, x_158); +lean_ctor_set(x_160, 1, x_159); +return x_160; } } } case 3: { -lean_object* x_160; lean_object* x_161; lean_object* x_162; -x_160 = lean_ctor_get(x_1, 0); -lean_inc(x_160); -x_161 = lean_ctor_get(x_1, 1); +lean_object* x_161; lean_object* x_162; lean_object* x_163; +x_161 = lean_ctor_get(x_1, 0); lean_inc(x_161); -x_162 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f(x_160, x_161, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_162) == 0) -{ -lean_object* x_163; -x_163 = lean_ctor_get(x_162, 0); -lean_inc(x_163); +x_162 = lean_ctor_get(x_1, 1); +lean_inc(x_162); +x_163 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f(x_161, x_162, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); if (lean_obj_tag(x_163) == 0) { -uint8_t x_164; -x_164 = !lean_is_exclusive(x_162); -if (x_164 == 0) +lean_object* x_164; +x_164 = lean_ctor_get(x_163, 0); +lean_inc(x_164); +if (lean_obj_tag(x_164) == 0) { -lean_object* x_165; -x_165 = lean_ctor_get(x_162, 0); -lean_dec(x_165); -lean_ctor_set(x_162, 0, x_1); -return x_162; +uint8_t x_165; +x_165 = !lean_is_exclusive(x_163); +if (x_165 == 0) +{ +lean_object* x_166; +x_166 = lean_ctor_get(x_163, 0); +lean_dec(x_166); +lean_ctor_set(x_163, 0, x_1); +return x_163; } else { -lean_object* x_166; lean_object* x_167; -x_166 = lean_ctor_get(x_162, 1); -lean_inc(x_166); -lean_dec(x_162); -x_167 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_167, 0, x_1); -lean_ctor_set(x_167, 1, x_166); -return x_167; -} -} -else -{ -uint8_t x_168; -lean_dec(x_1); -x_168 = !lean_is_exclusive(x_162); -if (x_168 == 0) -{ -lean_object* x_169; lean_object* x_170; -x_169 = lean_ctor_get(x_162, 0); -lean_dec(x_169); -x_170 = lean_ctor_get(x_163, 0); -lean_inc(x_170); +lean_object* x_167; lean_object* x_168; +x_167 = lean_ctor_get(x_163, 1); +lean_inc(x_167); lean_dec(x_163); -lean_ctor_set(x_162, 0, x_170); -return x_162; +x_168 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_168, 0, x_1); +lean_ctor_set(x_168, 1, x_167); +return x_168; +} } else { -lean_object* x_171; lean_object* x_172; lean_object* x_173; -x_171 = lean_ctor_get(x_162, 1); +uint8_t x_169; +lean_dec(x_1); +x_169 = !lean_is_exclusive(x_163); +if (x_169 == 0) +{ +lean_object* x_170; lean_object* x_171; +x_170 = lean_ctor_get(x_163, 0); +lean_dec(x_170); +x_171 = lean_ctor_get(x_164, 0); lean_inc(x_171); -lean_dec(x_162); -x_172 = lean_ctor_get(x_163, 0); +lean_dec(x_164); +lean_ctor_set(x_163, 0, x_171); +return x_163; +} +else +{ +lean_object* x_172; lean_object* x_173; lean_object* x_174; +x_172 = lean_ctor_get(x_163, 1); lean_inc(x_172); lean_dec(x_163); -x_173 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_173, 0, x_172); -lean_ctor_set(x_173, 1, x_171); -return x_173; +x_173 = lean_ctor_get(x_164, 0); +lean_inc(x_173); +lean_dec(x_164); +x_174 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_174, 0, x_173); +lean_ctor_set(x_174, 1, x_172); +return x_174; } } } else { -uint8_t x_174; +uint8_t x_175; lean_dec(x_1); -x_174 = !lean_is_exclusive(x_162); -if (x_174 == 0) +x_175 = !lean_is_exclusive(x_163); +if (x_175 == 0) { -return x_162; +return x_163; } else { -lean_object* x_175; lean_object* x_176; lean_object* x_177; -x_175 = lean_ctor_get(x_162, 0); -x_176 = lean_ctor_get(x_162, 1); +lean_object* x_176; lean_object* x_177; lean_object* x_178; +x_176 = lean_ctor_get(x_163, 0); +x_177 = lean_ctor_get(x_163, 1); +lean_inc(x_177); lean_inc(x_176); -lean_inc(x_175); -lean_dec(x_162); -x_177 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_177, 0, x_175); -lean_ctor_set(x_177, 1, x_176); -return x_177; +lean_dec(x_163); +x_178 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_178, 0, x_176); +lean_ctor_set(x_178, 1, x_177); +return x_178; } } } case 4: { -lean_object* x_178; lean_object* x_179; lean_object* x_180; lean_object* x_181; -x_178 = lean_ctor_get(x_1, 0); -lean_inc(x_178); -x_179 = lean_ctor_get(x_178, 3); +lean_object* x_179; lean_object* x_180; lean_object* x_181; lean_object* x_182; +x_179 = lean_ctor_get(x_1, 0); lean_inc(x_179); -x_180 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___closed__1; -x_181 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__1(x_179, x_180, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_181) == 0) -{ -uint8_t x_182; -x_182 = !lean_is_exclusive(x_181); -if (x_182 == 0) +x_180 = lean_ctor_get(x_179, 3); +lean_inc(x_180); +lean_inc(x_179); +x_181 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___lambda__2), 10, 1); +lean_closure_set(x_181, 0, x_179); +x_182 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__2(x_180, x_181, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_182) == 0) { uint8_t x_183; -x_183 = !lean_is_exclusive(x_178); +x_183 = !lean_is_exclusive(x_182); if (x_183 == 0) { -lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; size_t x_189; size_t x_190; uint8_t x_191; -x_184 = lean_ctor_get(x_181, 0); -x_185 = lean_ctor_get(x_178, 0); -x_186 = lean_ctor_get(x_178, 1); -x_187 = lean_ctor_get(x_178, 2); -x_188 = lean_ctor_get(x_178, 3); -x_189 = lean_ptr_addr(x_188); -lean_dec(x_188); -x_190 = lean_ptr_addr(x_184); -x_191 = lean_usize_dec_eq(x_189, x_190); -if (x_191 == 0) +uint8_t x_184; +x_184 = !lean_is_exclusive(x_179); +if (x_184 == 0) { -uint8_t x_192; -x_192 = !lean_is_exclusive(x_1); +lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; size_t x_190; size_t x_191; uint8_t x_192; +x_185 = lean_ctor_get(x_182, 0); +x_186 = lean_ctor_get(x_179, 0); +x_187 = lean_ctor_get(x_179, 1); +x_188 = lean_ctor_get(x_179, 2); +x_189 = lean_ctor_get(x_179, 3); +x_190 = lean_ptr_addr(x_189); +lean_dec(x_189); +x_191 = lean_ptr_addr(x_185); +x_192 = lean_usize_dec_eq(x_190, x_191); if (x_192 == 0) { -lean_object* x_193; -x_193 = lean_ctor_get(x_1, 0); -lean_dec(x_193); -lean_ctor_set(x_178, 3, x_184); -lean_ctor_set(x_181, 0, x_1); -return x_181; -} -else +uint8_t x_193; +x_193 = !lean_is_exclusive(x_1); +if (x_193 == 0) { lean_object* x_194; +x_194 = lean_ctor_get(x_1, 0); +lean_dec(x_194); +lean_ctor_set(x_179, 3, x_185); +lean_ctor_set(x_182, 0, x_1); +return x_182; +} +else +{ +lean_object* x_195; lean_dec(x_1); -lean_ctor_set(x_178, 3, x_184); -x_194 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_194, 0, x_178); -lean_ctor_set(x_181, 0, x_194); -return x_181; +lean_ctor_set(x_179, 3, x_185); +x_195 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_195, 0, x_179); +lean_ctor_set(x_182, 0, x_195); +return x_182; } } else { -lean_free_object(x_178); +lean_free_object(x_179); +lean_dec(x_188); lean_dec(x_187); lean_dec(x_186); lean_dec(x_185); -lean_dec(x_184); -lean_ctor_set(x_181, 0, x_1); -return x_181; +lean_ctor_set(x_182, 0, x_1); +return x_182; } } else { -lean_object* x_195; lean_object* x_196; lean_object* x_197; lean_object* x_198; lean_object* x_199; size_t x_200; size_t x_201; uint8_t x_202; -x_195 = lean_ctor_get(x_181, 0); -x_196 = lean_ctor_get(x_178, 0); -x_197 = lean_ctor_get(x_178, 1); -x_198 = lean_ctor_get(x_178, 2); -x_199 = lean_ctor_get(x_178, 3); +lean_object* x_196; lean_object* x_197; lean_object* x_198; lean_object* x_199; lean_object* x_200; size_t x_201; size_t x_202; uint8_t x_203; +x_196 = lean_ctor_get(x_182, 0); +x_197 = lean_ctor_get(x_179, 0); +x_198 = lean_ctor_get(x_179, 1); +x_199 = lean_ctor_get(x_179, 2); +x_200 = lean_ctor_get(x_179, 3); +lean_inc(x_200); lean_inc(x_199); lean_inc(x_198); lean_inc(x_197); -lean_inc(x_196); -lean_dec(x_178); -x_200 = lean_ptr_addr(x_199); -lean_dec(x_199); -x_201 = lean_ptr_addr(x_195); -x_202 = lean_usize_dec_eq(x_200, x_201); -if (x_202 == 0) +lean_dec(x_179); +x_201 = lean_ptr_addr(x_200); +lean_dec(x_200); +x_202 = lean_ptr_addr(x_196); +x_203 = lean_usize_dec_eq(x_201, x_202); +if (x_203 == 0) { -lean_object* x_203; lean_object* x_204; lean_object* x_205; +lean_object* x_204; lean_object* x_205; lean_object* x_206; if (lean_is_exclusive(x_1)) { lean_ctor_release(x_1, 0); - x_203 = x_1; + x_204 = x_1; } else { lean_dec_ref(x_1); - x_203 = lean_box(0); + x_204 = lean_box(0); } -x_204 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_204, 0, x_196); -lean_ctor_set(x_204, 1, x_197); -lean_ctor_set(x_204, 2, x_198); -lean_ctor_set(x_204, 3, x_195); -if (lean_is_scalar(x_203)) { - x_205 = lean_alloc_ctor(4, 1, 0); +x_205 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_205, 0, x_197); +lean_ctor_set(x_205, 1, x_198); +lean_ctor_set(x_205, 2, x_199); +lean_ctor_set(x_205, 3, x_196); +if (lean_is_scalar(x_204)) { + x_206 = lean_alloc_ctor(4, 1, 0); } else { - x_205 = x_203; + x_206 = x_204; } -lean_ctor_set(x_205, 0, x_204); -lean_ctor_set(x_181, 0, x_205); -return x_181; +lean_ctor_set(x_206, 0, x_205); +lean_ctor_set(x_182, 0, x_206); +return x_182; } else { +lean_dec(x_199); lean_dec(x_198); lean_dec(x_197); lean_dec(x_196); -lean_dec(x_195); -lean_ctor_set(x_181, 0, x_1); -return x_181; +lean_ctor_set(x_182, 0, x_1); +return x_182; } } } else { -lean_object* x_206; lean_object* x_207; lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; size_t x_213; size_t x_214; uint8_t x_215; -x_206 = lean_ctor_get(x_181, 0); -x_207 = lean_ctor_get(x_181, 1); -lean_inc(x_207); -lean_inc(x_206); -lean_dec(x_181); -x_208 = lean_ctor_get(x_178, 0); +lean_object* x_207; lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; size_t x_214; size_t x_215; uint8_t x_216; +x_207 = lean_ctor_get(x_182, 0); +x_208 = lean_ctor_get(x_182, 1); lean_inc(x_208); -x_209 = lean_ctor_get(x_178, 1); +lean_inc(x_207); +lean_dec(x_182); +x_209 = lean_ctor_get(x_179, 0); lean_inc(x_209); -x_210 = lean_ctor_get(x_178, 2); +x_210 = lean_ctor_get(x_179, 1); lean_inc(x_210); -x_211 = lean_ctor_get(x_178, 3); +x_211 = lean_ctor_get(x_179, 2); lean_inc(x_211); -if (lean_is_exclusive(x_178)) { - lean_ctor_release(x_178, 0); - lean_ctor_release(x_178, 1); - lean_ctor_release(x_178, 2); - lean_ctor_release(x_178, 3); - x_212 = x_178; +x_212 = lean_ctor_get(x_179, 3); +lean_inc(x_212); +if (lean_is_exclusive(x_179)) { + lean_ctor_release(x_179, 0); + lean_ctor_release(x_179, 1); + lean_ctor_release(x_179, 2); + lean_ctor_release(x_179, 3); + x_213 = x_179; } else { - lean_dec_ref(x_178); - x_212 = lean_box(0); + lean_dec_ref(x_179); + x_213 = lean_box(0); } -x_213 = lean_ptr_addr(x_211); -lean_dec(x_211); -x_214 = lean_ptr_addr(x_206); -x_215 = lean_usize_dec_eq(x_213, x_214); -if (x_215 == 0) +x_214 = lean_ptr_addr(x_212); +lean_dec(x_212); +x_215 = lean_ptr_addr(x_207); +x_216 = lean_usize_dec_eq(x_214, x_215); +if (x_216 == 0) { -lean_object* x_216; lean_object* x_217; lean_object* x_218; lean_object* x_219; +lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; if (lean_is_exclusive(x_1)) { lean_ctor_release(x_1, 0); - x_216 = x_1; + x_217 = x_1; } else { lean_dec_ref(x_1); - x_216 = lean_box(0); + x_217 = lean_box(0); } -if (lean_is_scalar(x_212)) { - x_217 = lean_alloc_ctor(0, 4, 0); +if (lean_is_scalar(x_213)) { + x_218 = lean_alloc_ctor(0, 4, 0); } else { - x_217 = x_212; + x_218 = x_213; } -lean_ctor_set(x_217, 0, x_208); -lean_ctor_set(x_217, 1, x_209); -lean_ctor_set(x_217, 2, x_210); -lean_ctor_set(x_217, 3, x_206); -if (lean_is_scalar(x_216)) { - x_218 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_218, 0, x_209); +lean_ctor_set(x_218, 1, x_210); +lean_ctor_set(x_218, 2, x_211); +lean_ctor_set(x_218, 3, x_207); +if (lean_is_scalar(x_217)) { + x_219 = lean_alloc_ctor(4, 1, 0); } else { - x_218 = x_216; + x_219 = x_217; } -lean_ctor_set(x_218, 0, x_217); -x_219 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_219, 0, x_218); -lean_ctor_set(x_219, 1, x_207); -return x_219; -} -else -{ -lean_object* x_220; -lean_dec(x_212); -lean_dec(x_210); -lean_dec(x_209); -lean_dec(x_208); -lean_dec(x_206); x_220 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_220, 0, x_1); -lean_ctor_set(x_220, 1, x_207); +lean_ctor_set(x_220, 0, x_219); +lean_ctor_set(x_220, 1, x_208); return x_220; } +else +{ +lean_object* x_221; +lean_dec(x_213); +lean_dec(x_211); +lean_dec(x_210); +lean_dec(x_209); +lean_dec(x_207); +x_221 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_221, 0, x_1); +lean_ctor_set(x_221, 1, x_208); +return x_221; +} } } else { -uint8_t x_221; -lean_dec(x_178); +uint8_t x_222; +lean_dec(x_179); lean_dec(x_1); -x_221 = !lean_is_exclusive(x_181); -if (x_221 == 0) +x_222 = !lean_is_exclusive(x_182); +if (x_222 == 0) { -return x_181; +return x_182; } else { -lean_object* x_222; lean_object* x_223; lean_object* x_224; -x_222 = lean_ctor_get(x_181, 0); -x_223 = lean_ctor_get(x_181, 1); +lean_object* x_223; lean_object* x_224; lean_object* x_225; +x_223 = lean_ctor_get(x_182, 0); +x_224 = lean_ctor_get(x_182, 1); +lean_inc(x_224); lean_inc(x_223); -lean_inc(x_222); -lean_dec(x_181); -x_224 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_224, 0, x_222); -lean_ctor_set(x_224, 1, x_223); -return x_224; +lean_dec(x_182); +x_225 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_225, 0, x_223); +lean_ctor_set(x_225, 1, x_224); +return x_225; } } } default: { -lean_object* x_225; +lean_object* x_226; +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); -x_225 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_225, 0, x_1); -lean_ctor_set(x_225, 1, x_8); -return x_225; +x_226 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_226, 0, x_1); +lean_ctor_set(x_226, 1, x_9); +return x_226; } } } @@ -8326,136 +8748,71 @@ return x_11; } } } -LEAN_EXPORT lean_object* l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__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, lean_object* x_11) { +LEAN_EXPORT lean_object* l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__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, lean_object* x_11, lean_object* x_12) { _start: { if (lean_obj_tag(x_3) == 0) { -lean_object* x_12; lean_object* x_13; +lean_object* x_13; lean_object* x_14; lean_dec(x_2); -x_12 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_12, 0, x_4); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_12); -lean_ctor_set(x_13, 1, x_11); -return x_13; +x_13 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_13, 0, x_4); +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_13); +lean_ctor_set(x_14, 1, x_12); +return x_14; } else { -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; -x_14 = lean_ctor_get(x_3, 0); -lean_inc(x_14); -x_15 = lean_ctor_get(x_3, 1); +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; uint8_t x_22; +x_15 = lean_ctor_get(x_3, 0); lean_inc(x_15); -x_16 = lean_ctor_get(x_3, 3); +x_16 = lean_ctor_get(x_3, 1); lean_inc(x_16); +x_17 = lean_ctor_get(x_3, 3); +lean_inc(x_17); lean_dec(x_3); lean_inc(x_2); -x_17 = l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__2(x_1, x_2, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); +x_18 = l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__2(x_1, x_2, x_15, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +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); lean_dec(x_18); -x_21 = l_Lean_NameSet_contains(x_1, x_15); -if (x_21 == 0) +x_21 = lean_ctor_get(x_19, 0); +lean_inc(x_21); +lean_dec(x_19); +x_22 = l_Lean_NameSet_contains(x_1, x_16); +if (x_22 == 0) { -lean_object* x_22; +lean_object* x_23; lean_inc(x_2); -x_22 = l_Lean_RBNode_insert___at_Lean_NameMap_insert___spec__1___rarg(x_20, x_15, x_2); -x_3 = x_16; -x_4 = x_22; -x_11 = x_19; +x_23 = l_Lean_RBNode_insert___at_Lean_NameMap_insert___spec__1___rarg(x_21, x_16, x_2); +x_3 = x_17; +x_4 = x_23; +x_12 = x_20; goto _start; } else { -lean_dec(x_15); -x_3 = x_16; -x_4 = x_20; -x_11 = x_19; +lean_dec(x_16); +x_3 = x_17; +x_4 = x_21; +x_12 = x_20; goto _start; } } } } -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___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_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, size_t x_6, size_t x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { _start: { -lean_object* x_16; uint8_t x_17; -x_16 = l_Lean_Compiler_LCNF_eraseCode(x_1, x_11, x_12, x_13, x_14, x_15); -x_17 = !lean_is_exclusive(x_16); +uint8_t x_17; +x_17 = lean_usize_dec_lt(x_7, x_6); if (x_17 == 0) { -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_18 = lean_ctor_get(x_16, 0); -lean_dec(x_18); -x_19 = lean_ctor_get(x_2, 0); -lean_inc(x_19); -x_20 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_20, 0, x_19); -lean_ctor_set(x_20, 1, x_7); -x_21 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_3, x_20); -x_22 = lean_array_push(x_6, x_21); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_4); -lean_ctor_set(x_23, 1, x_5); -x_24 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_24, 0, x_22); -lean_ctor_set(x_24, 1, x_23); -x_25 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_25, 0, x_24); -lean_ctor_set(x_16, 0, x_25); -return x_16; -} -else -{ -lean_object* x_26; 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; -x_26 = lean_ctor_get(x_16, 1); -lean_inc(x_26); -lean_dec(x_16); -x_27 = lean_ctor_get(x_2, 0); -lean_inc(x_27); -x_28 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_28, 0, x_27); -lean_ctor_set(x_28, 1, x_7); -x_29 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_3, x_28); -x_30 = lean_array_push(x_6, x_29); -x_31 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_31, 0, x_4); -lean_ctor_set(x_31, 1, x_5); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_30); -lean_ctor_set(x_32, 1, x_31); -x_33 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_33, 0, x_32); -x_34 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_34, 0, x_33); -lean_ctor_set(x_34, 1, x_26); -return x_34; -} -} -} -static lean_object* _init_l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(1u); -x_2 = lean_mk_empty_array_with_capacity(x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, size_t x_6, size_t x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { -_start: -{ -uint8_t x_16; -x_16 = lean_usize_dec_lt(x_7, x_6); -if (x_16 == 0) -{ -lean_object* x_17; +lean_object* x_18; +lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); lean_dec(x_12); @@ -8466,149 +8823,191 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_17 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_17, 0, x_8); -lean_ctor_set(x_17, 1, x_15); -return x_17; +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_8); +lean_ctor_set(x_18, 1, x_16); +return x_18; } else { -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_26; -x_18 = lean_array_uget(x_5, x_7); -x_26 = lean_ctor_get(x_8, 1); -lean_inc(x_26); -if (lean_obj_tag(x_18) == 0) -{ -lean_object* x_27; uint8_t x_28; -x_27 = lean_ctor_get(x_8, 0); +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_27; +x_19 = lean_array_uget(x_5, x_7); +x_27 = lean_ctor_get(x_8, 1); lean_inc(x_27); -lean_dec(x_8); -x_28 = !lean_is_exclusive(x_26); -if (x_28 == 0) +if (lean_obj_tag(x_19) == 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; -x_29 = lean_ctor_get(x_26, 0); -x_30 = lean_ctor_get(x_26, 1); -x_31 = lean_ctor_get(x_18, 0); -lean_inc(x_31); -x_32 = lean_ctor_get(x_18, 1); +lean_object* x_28; uint8_t x_29; +x_28 = lean_ctor_get(x_8, 0); +lean_inc(x_28); +lean_dec(x_8); +x_29 = !lean_is_exclusive(x_27); +if (x_29 == 0) +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_30 = lean_ctor_get(x_27, 0); +x_31 = lean_ctor_get(x_27, 1); +x_32 = lean_ctor_get(x_19, 0); lean_inc(x_32); -x_33 = lean_ctor_get(x_18, 2); +x_33 = lean_ctor_get(x_19, 1); lean_inc(x_33); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_11); +x_34 = lean_ctor_get(x_19, 2); +lean_inc(x_34); +x_35 = lean_ctor_get(x_4, 2); +lean_inc(x_35); lean_inc(x_10); lean_inc(x_9); -x_34 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_33, x_9, x_10, x_11, x_12, x_13, x_14, x_15); -if (lean_obj_tag(x_34) == 0) -{ -lean_object* x_35; lean_object* x_36; uint8_t x_37; -x_35 = lean_ctor_get(x_34, 0); -lean_inc(x_35); -x_36 = lean_ctor_get(x_34, 1); -lean_inc(x_36); -lean_dec(x_34); -x_37 = l_Lean_NameSet_contains(x_1, x_31); -if (x_37 == 0) -{ -lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; -lean_dec(x_32); -lean_dec(x_31); -x_38 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_18, x_35); -x_39 = lean_array_push(x_27, x_38); -x_40 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_40, 0, x_39); -lean_ctor_set(x_40, 1, x_26); -x_41 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_41, 0, x_40); -x_19 = x_41; -x_20 = x_36; -goto block_25; -} -else -{ -uint8_t x_42; lean_object* x_43; -lean_free_object(x_26); -x_42 = 0; +x_36 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit), 9, 3); +lean_closure_set(x_36, 0, x_34); +lean_closure_set(x_36, 1, x_9); +lean_closure_set(x_36, 2, x_10); +lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); -lean_inc(x_35); +lean_inc(x_33); lean_inc(x_32); -lean_inc(x_2); +x_37 = l_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___rarg(x_35, x_32, x_33, x_36, x_11, x_12, x_13, x_14, x_15, x_16); +if (lean_obj_tag(x_37) == 0) +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; +x_38 = lean_ctor_get(x_37, 0); +lean_inc(x_38); +x_39 = lean_ctor_get(x_37, 1); +lean_inc(x_39); +lean_dec(x_37); +x_40 = lean_ctor_get(x_2, 1); +lean_inc(x_40); +x_41 = l_Lean_NameSet_contains(x_40, x_32); +lean_dec(x_40); +if (x_41 == 0) +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; +lean_dec(x_33); +lean_dec(x_32); +x_42 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_19, x_38); +x_43 = lean_array_push(x_28, x_42); +x_44 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_44, 0, x_43); +lean_ctor_set(x_44, 1, x_27); +x_45 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_45, 0, x_44); +x_20 = x_45; +x_21 = x_39; +goto block_26; +} +else +{ +lean_object* x_46; lean_object* x_47; uint8_t x_48; lean_object* x_49; +x_46 = lean_ctor_get(x_1, 2); +lean_inc(x_46); +x_47 = lean_ctor_get(x_2, 0); +lean_inc(x_47); +x_48 = 0; +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_38); +lean_inc(x_33); lean_inc(x_3); -x_43 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt(x_3, x_2, x_32, x_35, x_42, x_11, x_12, x_13, x_14, x_36); -if (lean_obj_tag(x_43) == 0) +x_49 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt(x_3, x_46, x_47, x_33, x_38, x_48, x_12, x_13, x_14, x_15, x_39); +if (lean_obj_tag(x_49) == 0) { -lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; size_t x_52; size_t x_53; lean_object* x_54; -x_44 = lean_ctor_get(x_43, 0); -lean_inc(x_44); -x_45 = lean_ctor_get(x_43, 1); -lean_inc(x_45); -lean_dec(x_43); -x_46 = lean_ctor_get(x_44, 0); -lean_inc(x_46); -x_47 = lean_ctor_get_uint8(x_44, sizeof(void*)*1 + 1); -lean_inc(x_46); -x_48 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_48, 0, x_46); -x_49 = lean_array_push(x_29, x_48); -x_50 = l_Lean_RBNode_insert___at_Lean_NameMap_insert___spec__1___rarg(x_30, x_31, x_44); -x_51 = lean_array_get_size(x_32); -x_52 = lean_usize_of_nat(x_51); -lean_dec(x_51); -x_53 = 0; -x_54 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_52, x_53, x_32); -if (x_47 == 0) -{ -lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; -x_55 = lean_box(0); -x_56 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___lambda__1(x_35, x_46, x_18, x_49, x_50, x_27, x_54, x_55, x_9, x_10, x_11, x_12, x_13, x_14, x_45); -lean_dec(x_46); -x_57 = lean_ctor_get(x_56, 0); -lean_inc(x_57); -x_58 = lean_ctor_get(x_56, 1); -lean_inc(x_58); -lean_dec(x_56); -x_19 = x_57; -x_20 = x_58; -goto block_25; -} -else -{ -lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; -x_59 = lean_ctor_get(x_2, 0); +lean_object* x_50; lean_object* x_51; lean_object* x_52; uint8_t x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; +x_50 = lean_ctor_get(x_49, 0); +lean_inc(x_50); +x_51 = lean_ctor_get(x_49, 1); +lean_inc(x_51); +lean_dec(x_49); +x_52 = lean_ctor_get(x_50, 0); +lean_inc(x_52); +x_53 = lean_ctor_get_uint8(x_50, sizeof(void*)*1 + 1); +lean_inc(x_52); +x_54 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_54, 0, x_52); +x_55 = lean_array_push(x_30, x_54); +x_56 = l_Lean_RBNode_insert___at_Lean_NameMap_insert___spec__1___rarg(x_31, x_32, x_50); +x_57 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpArgsAtJp(x_46, x_47, x_33, x_53); +x_58 = l_Lean_Compiler_LCNF_eraseCode(x_38, x_12, x_13, x_14, x_15, x_51); +x_59 = lean_ctor_get(x_58, 1); lean_inc(x_59); -x_60 = l_Lean_Expr_fvar___override(x_59); -x_61 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___closed__1; -x_62 = lean_array_push(x_61, x_60); -x_63 = l_Array_append___rarg(x_62, x_54); -x_64 = lean_box(0); -x_65 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___lambda__1(x_35, x_46, x_18, x_49, x_50, x_27, x_63, x_64, x_9, x_10, x_11, x_12, x_13, x_14, x_45); +lean_dec(x_58); +x_60 = lean_ctor_get(x_52, 0); +lean_inc(x_60); +lean_dec(x_52); +x_61 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_61, 0, x_60); +lean_ctor_set(x_61, 1, x_57); +x_62 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_19, x_61); +x_63 = lean_array_push(x_28, x_62); +lean_ctor_set(x_27, 1, x_56); +lean_ctor_set(x_27, 0, x_55); +x_64 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_64, 0, x_63); +lean_ctor_set(x_64, 1, x_27); +x_65 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_65, 0, x_64); +x_20 = x_65; +x_21 = x_59; +goto block_26; +} +else +{ +uint8_t x_66; +lean_dec(x_47); lean_dec(x_46); -x_66 = lean_ctor_get(x_65, 0); -lean_inc(x_66); -x_67 = lean_ctor_get(x_65, 1); +lean_dec(x_38); +lean_dec(x_33); +lean_dec(x_32); +lean_free_object(x_27); +lean_dec(x_31); +lean_dec(x_30); +lean_dec(x_28); +lean_dec(x_19); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_66 = !lean_is_exclusive(x_49); +if (x_66 == 0) +{ +return x_49; +} +else +{ +lean_object* x_67; lean_object* x_68; lean_object* x_69; +x_67 = lean_ctor_get(x_49, 0); +x_68 = lean_ctor_get(x_49, 1); +lean_inc(x_68); lean_inc(x_67); -lean_dec(x_65); -x_19 = x_66; -x_20 = x_67; -goto block_25; +lean_dec(x_49); +x_69 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_69, 0, x_67); +lean_ctor_set(x_69, 1, x_68); +return x_69; +} +} } } else { -uint8_t x_68; -lean_dec(x_35); +uint8_t x_70; +lean_dec(x_33); lean_dec(x_32); +lean_free_object(x_27); lean_dec(x_31); lean_dec(x_30); -lean_dec(x_29); -lean_dec(x_27); -lean_dec(x_18); +lean_dec(x_28); +lean_dec(x_19); +lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); lean_dec(x_12); @@ -8619,197 +9018,157 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_68 = !lean_is_exclusive(x_43); -if (x_68 == 0) +x_70 = !lean_is_exclusive(x_37); +if (x_70 == 0) { -return x_43; +return x_37; } else { -lean_object* x_69; lean_object* x_70; lean_object* x_71; -x_69 = lean_ctor_get(x_43, 0); -x_70 = lean_ctor_get(x_43, 1); -lean_inc(x_70); -lean_inc(x_69); -lean_dec(x_43); -x_71 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_71, 0, x_69); -lean_ctor_set(x_71, 1, x_70); -return x_71; -} +lean_object* x_71; lean_object* x_72; lean_object* x_73; +x_71 = lean_ctor_get(x_37, 0); +x_72 = lean_ctor_get(x_37, 1); +lean_inc(x_72); +lean_inc(x_71); +lean_dec(x_37); +x_73 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_73, 0, x_71); +lean_ctor_set(x_73, 1, x_72); +return x_73; } } } else { -uint8_t x_72; -lean_dec(x_32); -lean_dec(x_31); -lean_free_object(x_26); -lean_dec(x_30); -lean_dec(x_29); -lean_dec(x_27); -lean_dec(x_18); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_72 = !lean_is_exclusive(x_34); -if (x_72 == 0) -{ -return x_34; -} -else -{ -lean_object* x_73; lean_object* x_74; lean_object* x_75; -x_73 = lean_ctor_get(x_34, 0); -x_74 = lean_ctor_get(x_34, 1); +lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; +x_74 = lean_ctor_get(x_27, 0); +x_75 = lean_ctor_get(x_27, 1); +lean_inc(x_75); lean_inc(x_74); -lean_inc(x_73); -lean_dec(x_34); -x_75 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_75, 0, x_73); -lean_ctor_set(x_75, 1, x_74); -return x_75; -} -} -} -else -{ -lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_76 = lean_ctor_get(x_26, 0); -x_77 = lean_ctor_get(x_26, 1); +lean_dec(x_27); +x_76 = lean_ctor_get(x_19, 0); +lean_inc(x_76); +x_77 = lean_ctor_get(x_19, 1); +lean_inc(x_77); +x_78 = lean_ctor_get(x_19, 2); +lean_inc(x_78); +x_79 = lean_ctor_get(x_4, 2); +lean_inc(x_79); +lean_inc(x_10); +lean_inc(x_9); +x_80 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit), 9, 3); +lean_closure_set(x_80, 0, x_78); +lean_closure_set(x_80, 1, x_9); +lean_closure_set(x_80, 2, x_10); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); lean_inc(x_77); lean_inc(x_76); -lean_dec(x_26); -x_78 = lean_ctor_get(x_18, 0); -lean_inc(x_78); -x_79 = lean_ctor_get(x_18, 1); -lean_inc(x_79); -x_80 = lean_ctor_get(x_18, 2); -lean_inc(x_80); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -x_81 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_80, x_9, x_10, x_11, x_12, x_13, x_14, x_15); +x_81 = l_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___rarg(x_79, x_76, x_77, x_80, x_11, x_12, x_13, x_14, x_15, x_16); if (lean_obj_tag(x_81) == 0) { -lean_object* x_82; lean_object* x_83; uint8_t x_84; +lean_object* x_82; lean_object* x_83; lean_object* x_84; uint8_t x_85; x_82 = lean_ctor_get(x_81, 0); lean_inc(x_82); x_83 = lean_ctor_get(x_81, 1); lean_inc(x_83); lean_dec(x_81); -x_84 = l_Lean_NameSet_contains(x_1, x_78); -if (x_84 == 0) +x_84 = lean_ctor_get(x_2, 1); +lean_inc(x_84); +x_85 = l_Lean_NameSet_contains(x_84, x_76); +lean_dec(x_84); +if (x_85 == 0) { -lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; -lean_dec(x_79); -lean_dec(x_78); -x_85 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_18, x_82); -x_86 = lean_array_push(x_27, x_85); -x_87 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_87, 0, x_76); -lean_ctor_set(x_87, 1, x_77); +lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; +lean_dec(x_77); +lean_dec(x_76); +x_86 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_19, x_82); +x_87 = lean_array_push(x_28, x_86); x_88 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_88, 0, x_86); -lean_ctor_set(x_88, 1, x_87); -x_89 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_89, 0, x_88); -x_19 = x_89; -x_20 = x_83; -goto block_25; +lean_ctor_set(x_88, 0, x_74); +lean_ctor_set(x_88, 1, x_75); +x_89 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_89, 0, x_87); +lean_ctor_set(x_89, 1, x_88); +x_90 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_90, 0, x_89); +x_20 = x_90; +x_21 = x_83; +goto block_26; } else { -uint8_t x_90; lean_object* x_91; -x_90 = 0; +lean_object* x_91; lean_object* x_92; uint8_t x_93; lean_object* x_94; +x_91 = lean_ctor_get(x_1, 2); +lean_inc(x_91); +x_92 = lean_ctor_get(x_2, 0); +lean_inc(x_92); +x_93 = 0; +lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); lean_inc(x_12); -lean_inc(x_11); lean_inc(x_82); -lean_inc(x_79); -lean_inc(x_2); +lean_inc(x_77); lean_inc(x_3); -x_91 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt(x_3, x_2, x_79, x_82, x_90, x_11, x_12, x_13, x_14, x_83); -if (lean_obj_tag(x_91) == 0) +x_94 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt(x_3, x_91, x_92, x_77, x_82, x_93, x_12, x_13, x_14, x_15, x_83); +if (lean_obj_tag(x_94) == 0) { -lean_object* x_92; lean_object* x_93; lean_object* x_94; uint8_t x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; size_t x_100; size_t x_101; lean_object* x_102; -x_92 = lean_ctor_get(x_91, 0); -lean_inc(x_92); -x_93 = lean_ctor_get(x_91, 1); -lean_inc(x_93); -lean_dec(x_91); -x_94 = lean_ctor_get(x_92, 0); -lean_inc(x_94); -x_95 = lean_ctor_get_uint8(x_92, sizeof(void*)*1 + 1); -lean_inc(x_94); -x_96 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_96, 0, x_94); -x_97 = lean_array_push(x_76, x_96); -x_98 = l_Lean_RBNode_insert___at_Lean_NameMap_insert___spec__1___rarg(x_77, x_78, x_92); -x_99 = lean_array_get_size(x_79); -x_100 = lean_usize_of_nat(x_99); -lean_dec(x_99); -x_101 = 0; -x_102 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_100, x_101, x_79); -if (x_95 == 0) -{ -lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; -x_103 = lean_box(0); -x_104 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___lambda__1(x_82, x_94, x_18, x_97, x_98, x_27, x_102, x_103, x_9, x_10, x_11, x_12, x_13, x_14, x_93); +lean_object* x_95; lean_object* x_96; lean_object* x_97; uint8_t x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_95 = lean_ctor_get(x_94, 0); +lean_inc(x_95); +x_96 = lean_ctor_get(x_94, 1); +lean_inc(x_96); lean_dec(x_94); -x_105 = lean_ctor_get(x_104, 0); +x_97 = lean_ctor_get(x_95, 0); +lean_inc(x_97); +x_98 = lean_ctor_get_uint8(x_95, sizeof(void*)*1 + 1); +lean_inc(x_97); +x_99 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_99, 0, x_97); +x_100 = lean_array_push(x_74, x_99); +x_101 = l_Lean_RBNode_insert___at_Lean_NameMap_insert___spec__1___rarg(x_75, x_76, x_95); +x_102 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpArgsAtJp(x_91, x_92, x_77, x_98); +x_103 = l_Lean_Compiler_LCNF_eraseCode(x_82, x_12, x_13, x_14, x_15, x_96); +x_104 = lean_ctor_get(x_103, 1); +lean_inc(x_104); +lean_dec(x_103); +x_105 = lean_ctor_get(x_97, 0); lean_inc(x_105); -x_106 = lean_ctor_get(x_104, 1); -lean_inc(x_106); -lean_dec(x_104); -x_19 = x_105; -x_20 = x_106; -goto block_25; +lean_dec(x_97); +x_106 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_106, 0, x_105); +lean_ctor_set(x_106, 1, x_102); +x_107 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_19, x_106); +x_108 = lean_array_push(x_28, x_107); +x_109 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_109, 0, x_100); +lean_ctor_set(x_109, 1, x_101); +x_110 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_110, 0, x_108); +lean_ctor_set(x_110, 1, x_109); +x_111 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_111, 0, x_110); +x_20 = x_111; +x_21 = x_104; +goto block_26; } else { -lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; -x_107 = lean_ctor_get(x_2, 0); -lean_inc(x_107); -x_108 = l_Lean_Expr_fvar___override(x_107); -x_109 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___closed__1; -x_110 = lean_array_push(x_109, x_108); -x_111 = l_Array_append___rarg(x_110, x_102); -x_112 = lean_box(0); -x_113 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___lambda__1(x_82, x_94, x_18, x_97, x_98, x_27, x_111, x_112, x_9, x_10, x_11, x_12, x_13, x_14, x_93); -lean_dec(x_94); -x_114 = lean_ctor_get(x_113, 0); -lean_inc(x_114); -x_115 = lean_ctor_get(x_113, 1); -lean_inc(x_115); -lean_dec(x_113); -x_19 = x_114; -x_20 = x_115; -goto block_25; -} -} -else -{ -lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; +lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; +lean_dec(x_92); +lean_dec(x_91); lean_dec(x_82); -lean_dec(x_79); -lean_dec(x_78); lean_dec(x_77); lean_dec(x_76); -lean_dec(x_27); -lean_dec(x_18); +lean_dec(x_75); +lean_dec(x_74); +lean_dec(x_28); +lean_dec(x_19); +lean_dec(x_15); lean_dec(x_14); lean_dec(x_13); lean_dec(x_12); @@ -8820,16 +9179,59 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_116 = lean_ctor_get(x_91, 0); -lean_inc(x_116); -x_117 = lean_ctor_get(x_91, 1); -lean_inc(x_117); -if (lean_is_exclusive(x_91)) { - lean_ctor_release(x_91, 0); - lean_ctor_release(x_91, 1); - x_118 = x_91; +x_112 = lean_ctor_get(x_94, 0); +lean_inc(x_112); +x_113 = lean_ctor_get(x_94, 1); +lean_inc(x_113); +if (lean_is_exclusive(x_94)) { + lean_ctor_release(x_94, 0); + lean_ctor_release(x_94, 1); + x_114 = x_94; } else { - lean_dec_ref(x_91); + lean_dec_ref(x_94); + x_114 = lean_box(0); +} +if (lean_is_scalar(x_114)) { + x_115 = lean_alloc_ctor(1, 2, 0); +} else { + x_115 = x_114; +} +lean_ctor_set(x_115, 0, x_112); +lean_ctor_set(x_115, 1, x_113); +return x_115; +} +} +} +else +{ +lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; +lean_dec(x_77); +lean_dec(x_76); +lean_dec(x_75); +lean_dec(x_74); +lean_dec(x_28); +lean_dec(x_19); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_116 = lean_ctor_get(x_81, 0); +lean_inc(x_116); +x_117 = lean_ctor_get(x_81, 1); +lean_inc(x_117); +if (lean_is_exclusive(x_81)) { + lean_ctor_release(x_81, 0); + lean_ctor_release(x_81, 1); + x_118 = x_81; +} else { + lean_dec_ref(x_81); x_118 = lean_box(0); } if (lean_is_scalar(x_118)) { @@ -8845,299 +9247,459 @@ return x_119; } else { -lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; -lean_dec(x_79); -lean_dec(x_78); -lean_dec(x_77); -lean_dec(x_76); -lean_dec(x_27); -lean_dec(x_18); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_120 = lean_ctor_get(x_81, 0); +lean_object* x_120; uint8_t x_121; +x_120 = lean_ctor_get(x_8, 0); lean_inc(x_120); -x_121 = lean_ctor_get(x_81, 1); -lean_inc(x_121); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_122 = x_81; -} else { - lean_dec_ref(x_81); - x_122 = lean_box(0); -} -if (lean_is_scalar(x_122)) { - x_123 = lean_alloc_ctor(1, 2, 0); -} else { - x_123 = x_122; -} -lean_ctor_set(x_123, 0, x_120); -lean_ctor_set(x_123, 1, x_121); -return x_123; -} -} -} -else -{ -lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; -x_124 = lean_ctor_get(x_8, 0); -lean_inc(x_124); lean_dec(x_8); -x_125 = lean_ctor_get(x_26, 0); -lean_inc(x_125); -x_126 = lean_ctor_get(x_26, 1); -lean_inc(x_126); -if (lean_is_exclusive(x_26)) { - lean_ctor_release(x_26, 0); - lean_ctor_release(x_26, 1); - x_127 = x_26; -} else { - lean_dec_ref(x_26); - x_127 = lean_box(0); -} -x_128 = lean_ctor_get(x_18, 0); -lean_inc(x_128); +x_121 = !lean_is_exclusive(x_27); +if (x_121 == 0) +{ +lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; +x_122 = lean_ctor_get(x_27, 0); +x_123 = lean_ctor_get(x_27, 1); +x_124 = lean_ctor_get(x_19, 0); +lean_inc(x_124); +lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); -x_129 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_128, x_9, x_10, x_11, x_12, x_13, x_14, x_15); -if (lean_obj_tag(x_129) == 0) +x_125 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_124, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +if (lean_obj_tag(x_125) == 0) { -lean_object* x_130; lean_object* x_131; lean_object* x_132; uint8_t x_133; -x_130 = lean_ctor_get(x_129, 0); -lean_inc(x_130); -x_131 = lean_ctor_get(x_129, 1); -lean_inc(x_131); -lean_dec(x_129); +lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; uint8_t x_130; +x_126 = lean_ctor_get(x_125, 0); +lean_inc(x_126); +x_127 = lean_ctor_get(x_125, 1); +lean_inc(x_127); +lean_dec(x_125); lean_inc(x_4); -x_132 = l_Lean_Compiler_LCNF_CasesCore_getCtorNames(x_4); -x_133 = l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__1(x_132, x_1); -if (x_133 == 0) +x_128 = l_Lean_Compiler_LCNF_CasesCore_getCtorNames(x_4); +x_129 = lean_ctor_get(x_2, 1); +lean_inc(x_129); +x_130 = l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__1(x_128, x_129); +if (x_130 == 0) { -lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; -lean_dec(x_132); -x_134 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_18, x_130); -x_135 = lean_array_push(x_124, x_134); -if (lean_is_scalar(x_127)) { - x_136 = lean_alloc_ctor(0, 2, 0); -} else { - x_136 = x_127; -} -lean_ctor_set(x_136, 0, x_125); -lean_ctor_set(x_136, 1, x_126); -x_137 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_137, 0, x_135); -lean_ctor_set(x_137, 1, x_136); -x_138 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_138, 0, x_137); -x_19 = x_138; -x_20 = x_131; -goto block_25; +lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; +lean_dec(x_129); +lean_dec(x_128); +x_131 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_19, x_126); +x_132 = lean_array_push(x_120, x_131); +x_133 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_133, 0, x_132); +lean_ctor_set(x_133, 1, x_27); +x_134 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_134, 0, x_133); +x_20 = x_134; +x_21 = x_127; +goto block_26; } else { -lean_object* x_139; uint8_t x_140; lean_object* x_141; -x_139 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; -x_140 = 1; +lean_object* x_135; lean_object* x_136; lean_object* x_137; uint8_t x_138; lean_object* x_139; +x_135 = lean_ctor_get(x_1, 2); +lean_inc(x_135); +x_136 = lean_ctor_get(x_2, 0); +lean_inc(x_136); +x_137 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_138 = 1; +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_126); +lean_inc(x_3); +x_139 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt(x_3, x_135, x_136, x_137, x_126, x_138, x_12, x_13, x_14, x_15, x_127); +if (lean_obj_tag(x_139) == 0) +{ +lean_object* x_140; lean_object* x_141; lean_object* x_142; uint8_t x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; uint8_t x_151; +x_140 = lean_ctor_get(x_139, 0); +lean_inc(x_140); +x_141 = lean_ctor_get(x_139, 1); +lean_inc(x_141); +lean_dec(x_139); +x_142 = lean_ctor_get(x_140, 0); +lean_inc(x_142); +x_143 = lean_ctor_get_uint8(x_140, sizeof(void*)*1 + 1); +lean_inc(x_142); +x_144 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_144, 0, x_142); +x_145 = lean_array_push(x_122, x_144); +x_146 = l_Lean_Compiler_LCNF_eraseCode(x_126, x_12, x_13, x_14, x_15, x_141); +x_147 = lean_ctor_get(x_146, 1); +lean_inc(x_147); +lean_dec(x_146); +x_148 = l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__2(x_128, x_140, x_129, x_123, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_147); +lean_dec(x_128); +x_149 = lean_ctor_get(x_148, 0); +lean_inc(x_149); +x_150 = lean_ctor_get(x_148, 1); +lean_inc(x_150); +lean_dec(x_148); +x_151 = !lean_is_exclusive(x_149); +if (x_151 == 0) +{ +lean_object* x_152; lean_object* x_153; lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; +x_152 = lean_ctor_get(x_149, 0); +x_153 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_154 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpArgsAtJp(x_135, x_136, x_153, x_143); +x_155 = lean_ctor_get(x_142, 0); +lean_inc(x_155); +lean_dec(x_142); +x_156 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_156, 0, x_155); +lean_ctor_set(x_156, 1, x_154); +x_157 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_19, x_156); +x_158 = lean_array_push(x_120, x_157); +lean_ctor_set(x_27, 1, x_152); +lean_ctor_set(x_27, 0, x_145); +x_159 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_159, 0, x_158); +lean_ctor_set(x_159, 1, x_27); +lean_ctor_set(x_149, 0, x_159); +x_20 = x_149; +x_21 = x_150; +goto block_26; +} +else +{ +lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; lean_object* x_168; +x_160 = lean_ctor_get(x_149, 0); +lean_inc(x_160); +lean_dec(x_149); +x_161 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_162 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpArgsAtJp(x_135, x_136, x_161, x_143); +x_163 = lean_ctor_get(x_142, 0); +lean_inc(x_163); +lean_dec(x_142); +x_164 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_164, 0, x_163); +lean_ctor_set(x_164, 1, x_162); +x_165 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_19, x_164); +x_166 = lean_array_push(x_120, x_165); +lean_ctor_set(x_27, 1, x_160); +lean_ctor_set(x_27, 0, x_145); +x_167 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_167, 0, x_166); +lean_ctor_set(x_167, 1, x_27); +x_168 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_168, 0, x_167); +x_20 = x_168; +x_21 = x_150; +goto block_26; +} +} +else +{ +uint8_t x_169; +lean_dec(x_136); +lean_dec(x_135); +lean_dec(x_129); +lean_dec(x_128); +lean_dec(x_126); +lean_free_object(x_27); +lean_dec(x_123); +lean_dec(x_122); +lean_dec(x_120); +lean_dec(x_19); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_169 = !lean_is_exclusive(x_139); +if (x_169 == 0) +{ +return x_139; +} +else +{ +lean_object* x_170; lean_object* x_171; lean_object* x_172; +x_170 = lean_ctor_get(x_139, 0); +x_171 = lean_ctor_get(x_139, 1); +lean_inc(x_171); +lean_inc(x_170); +lean_dec(x_139); +x_172 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_172, 0, x_170); +lean_ctor_set(x_172, 1, x_171); +return x_172; +} +} +} +} +else +{ +uint8_t x_173; +lean_free_object(x_27); +lean_dec(x_123); +lean_dec(x_122); +lean_dec(x_120); +lean_dec(x_19); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_173 = !lean_is_exclusive(x_125); +if (x_173 == 0) +{ +return x_125; +} +else +{ +lean_object* x_174; lean_object* x_175; lean_object* x_176; +x_174 = lean_ctor_get(x_125, 0); +x_175 = lean_ctor_get(x_125, 1); +lean_inc(x_175); +lean_inc(x_174); +lean_dec(x_125); +x_176 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_176, 0, x_174); +lean_ctor_set(x_176, 1, x_175); +return x_176; +} +} +} +else +{ +lean_object* x_177; lean_object* x_178; lean_object* x_179; lean_object* x_180; +x_177 = lean_ctor_get(x_27, 0); +x_178 = lean_ctor_get(x_27, 1); +lean_inc(x_178); +lean_inc(x_177); +lean_dec(x_27); +x_179 = lean_ctor_get(x_19, 0); +lean_inc(x_179); +lean_inc(x_15); lean_inc(x_14); lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); -lean_inc(x_130); -lean_inc(x_2); +lean_inc(x_10); +lean_inc(x_9); +x_180 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_179, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +if (lean_obj_tag(x_180) == 0) +{ +lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; uint8_t x_185; +x_181 = lean_ctor_get(x_180, 0); +lean_inc(x_181); +x_182 = lean_ctor_get(x_180, 1); +lean_inc(x_182); +lean_dec(x_180); +lean_inc(x_4); +x_183 = l_Lean_Compiler_LCNF_CasesCore_getCtorNames(x_4); +x_184 = lean_ctor_get(x_2, 1); +lean_inc(x_184); +x_185 = l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__1(x_183, x_184); +if (x_185 == 0) +{ +lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; +lean_dec(x_184); +lean_dec(x_183); +x_186 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_19, x_181); +x_187 = lean_array_push(x_120, x_186); +x_188 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_188, 0, x_177); +lean_ctor_set(x_188, 1, x_178); +x_189 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_189, 0, x_187); +lean_ctor_set(x_189, 1, x_188); +x_190 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_190, 0, x_189); +x_20 = x_190; +x_21 = x_182; +goto block_26; +} +else +{ +lean_object* x_191; lean_object* x_192; lean_object* x_193; uint8_t x_194; lean_object* x_195; +x_191 = lean_ctor_get(x_1, 2); +lean_inc(x_191); +x_192 = lean_ctor_get(x_2, 0); +lean_inc(x_192); +x_193 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_194 = 1; +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_181); lean_inc(x_3); -x_141 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt(x_3, x_2, x_139, x_130, x_140, x_11, x_12, x_13, x_14, x_131); -if (lean_obj_tag(x_141) == 0) +x_195 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt(x_3, x_191, x_192, x_193, x_181, x_194, x_12, x_13, x_14, x_15, x_182); +if (lean_obj_tag(x_195) == 0) { -lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; lean_object* x_173; -x_142 = lean_ctor_get(x_141, 0); -lean_inc(x_142); -x_143 = lean_ctor_get(x_141, 1); -lean_inc(x_143); -lean_dec(x_141); -x_144 = lean_ctor_get(x_142, 0); -lean_inc(x_144); -lean_inc(x_144); -x_145 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_145, 0, x_144); -x_146 = lean_array_push(x_125, x_145); -x_168 = l_Lean_Compiler_LCNF_eraseCode(x_130, x_11, x_12, x_13, x_14, x_143); -x_169 = lean_ctor_get(x_168, 1); -lean_inc(x_169); -lean_dec(x_168); -lean_inc(x_1); -lean_inc(x_142); -x_170 = l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__2(x_132, x_142, x_1, x_126, x_9, x_10, x_11, x_12, x_13, x_14, x_169); -lean_dec(x_132); -x_171 = lean_ctor_get(x_170, 0); -lean_inc(x_171); -x_172 = lean_ctor_get(x_170, 1); -lean_inc(x_172); -lean_dec(x_170); -x_173 = lean_ctor_get(x_171, 0); -lean_inc(x_173); -lean_dec(x_171); -x_147 = x_173; -x_148 = x_172; -goto block_167; -block_167: -{ -uint8_t x_149; lean_object* x_150; lean_object* x_151; -x_149 = lean_ctor_get_uint8(x_142, sizeof(void*)*1 + 1); -lean_dec(x_142); -x_150 = lean_ctor_get(x_144, 0); -lean_inc(x_150); -lean_dec(x_144); -if (lean_is_scalar(x_127)) { - x_151 = lean_alloc_ctor(0, 2, 0); +lean_object* x_196; lean_object* x_197; lean_object* x_198; uint8_t x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_object* x_207; lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; lean_object* x_217; +x_196 = lean_ctor_get(x_195, 0); +lean_inc(x_196); +x_197 = lean_ctor_get(x_195, 1); +lean_inc(x_197); +lean_dec(x_195); +x_198 = lean_ctor_get(x_196, 0); +lean_inc(x_198); +x_199 = lean_ctor_get_uint8(x_196, sizeof(void*)*1 + 1); +lean_inc(x_198); +x_200 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_200, 0, x_198); +x_201 = lean_array_push(x_177, x_200); +x_202 = l_Lean_Compiler_LCNF_eraseCode(x_181, x_12, x_13, x_14, x_15, x_197); +x_203 = lean_ctor_get(x_202, 1); +lean_inc(x_203); +lean_dec(x_202); +x_204 = l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__2(x_183, x_196, x_184, x_178, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_203); +lean_dec(x_183); +x_205 = lean_ctor_get(x_204, 0); +lean_inc(x_205); +x_206 = lean_ctor_get(x_204, 1); +lean_inc(x_206); +lean_dec(x_204); +x_207 = lean_ctor_get(x_205, 0); +lean_inc(x_207); +if (lean_is_exclusive(x_205)) { + lean_ctor_release(x_205, 0); + x_208 = x_205; } else { - x_151 = x_127; + lean_dec_ref(x_205); + x_208 = lean_box(0); } -lean_ctor_set(x_151, 0, x_146); -lean_ctor_set(x_151, 1, x_147); -if (x_149 == 0) -{ -lean_object* x_152; lean_object* x_153; lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; -x_152 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; -x_153 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_153, 0, x_150); -lean_ctor_set(x_153, 1, x_152); -x_154 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_18, x_153); -x_155 = lean_array_push(x_124, x_154); -x_156 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_156, 0, x_155); -lean_ctor_set(x_156, 1, x_151); -x_157 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_157, 0, x_156); -x_19 = x_157; -x_20 = x_148; -goto block_25; +x_209 = l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1; +x_210 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJmpArgsAtJp(x_191, x_192, x_209, x_199); +x_211 = lean_ctor_get(x_198, 0); +lean_inc(x_211); +lean_dec(x_198); +x_212 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_212, 0, x_211); +lean_ctor_set(x_212, 1, x_210); +x_213 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_19, x_212); +x_214 = lean_array_push(x_120, x_213); +x_215 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_215, 0, x_201); +lean_ctor_set(x_215, 1, x_207); +x_216 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_216, 0, x_214); +lean_ctor_set(x_216, 1, x_215); +if (lean_is_scalar(x_208)) { + x_217 = lean_alloc_ctor(1, 1, 0); +} else { + x_217 = x_208; +} +lean_ctor_set(x_217, 0, x_216); +x_20 = x_217; +x_21 = x_206; +goto block_26; } else { -lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; -x_158 = lean_ctor_get(x_2, 0); -lean_inc(x_158); -x_159 = l_Lean_Expr_fvar___override(x_158); -x_160 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___closed__1; -x_161 = lean_array_push(x_160, x_159); -x_162 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_162, 0, x_150); -lean_ctor_set(x_162, 1, x_161); -x_163 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_18, x_162); -x_164 = lean_array_push(x_124, x_163); -x_165 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_165, 0, x_164); -lean_ctor_set(x_165, 1, x_151); -x_166 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_166, 0, x_165); -x_19 = x_166; -x_20 = x_148; -goto block_25; -} -} -} -else -{ -uint8_t x_174; -lean_dec(x_132); -lean_dec(x_130); -lean_dec(x_127); -lean_dec(x_126); -lean_dec(x_125); -lean_dec(x_124); -lean_dec(x_18); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_174 = !lean_is_exclusive(x_141); -if (x_174 == 0) -{ -return x_141; -} -else -{ -lean_object* x_175; lean_object* x_176; lean_object* x_177; -x_175 = lean_ctor_get(x_141, 0); -x_176 = lean_ctor_get(x_141, 1); -lean_inc(x_176); -lean_inc(x_175); -lean_dec(x_141); -x_177 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_177, 0, x_175); -lean_ctor_set(x_177, 1, x_176); -return x_177; -} -} -} -} -else -{ -uint8_t x_178; -lean_dec(x_127); -lean_dec(x_126); -lean_dec(x_125); -lean_dec(x_124); -lean_dec(x_18); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_178 = !lean_is_exclusive(x_129); -if (x_178 == 0) -{ -return x_129; -} -else -{ -lean_object* x_179; lean_object* x_180; lean_object* x_181; -x_179 = lean_ctor_get(x_129, 0); -x_180 = lean_ctor_get(x_129, 1); -lean_inc(x_180); -lean_inc(x_179); -lean_dec(x_129); -x_181 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_181, 0, x_179); -lean_ctor_set(x_181, 1, x_180); -return x_181; -} -} -} -block_25: -{ -lean_object* x_21; size_t x_22; size_t x_23; -x_21 = lean_ctor_get(x_19, 0); -lean_inc(x_21); +lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; +lean_dec(x_192); +lean_dec(x_191); +lean_dec(x_184); +lean_dec(x_183); +lean_dec(x_181); +lean_dec(x_178); +lean_dec(x_177); +lean_dec(x_120); lean_dec(x_19); -x_22 = 1; -x_23 = lean_usize_add(x_7, x_22); -x_7 = x_23; -x_8 = x_21; -x_15 = x_20; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_218 = lean_ctor_get(x_195, 0); +lean_inc(x_218); +x_219 = lean_ctor_get(x_195, 1); +lean_inc(x_219); +if (lean_is_exclusive(x_195)) { + lean_ctor_release(x_195, 0); + lean_ctor_release(x_195, 1); + x_220 = x_195; +} else { + lean_dec_ref(x_195); + x_220 = lean_box(0); +} +if (lean_is_scalar(x_220)) { + x_221 = lean_alloc_ctor(1, 2, 0); +} else { + x_221 = x_220; +} +lean_ctor_set(x_221, 0, x_218); +lean_ctor_set(x_221, 1, x_219); +return x_221; +} +} +} +else +{ +lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; +lean_dec(x_178); +lean_dec(x_177); +lean_dec(x_120); +lean_dec(x_19); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_222 = lean_ctor_get(x_180, 0); +lean_inc(x_222); +x_223 = lean_ctor_get(x_180, 1); +lean_inc(x_223); +if (lean_is_exclusive(x_180)) { + lean_ctor_release(x_180, 0); + lean_ctor_release(x_180, 1); + x_224 = x_180; +} else { + lean_dec_ref(x_180); + x_224 = lean_box(0); +} +if (lean_is_scalar(x_224)) { + x_225 = lean_alloc_ctor(1, 2, 0); +} else { + x_225 = x_224; +} +lean_ctor_set(x_225, 0, x_222); +lean_ctor_set(x_225, 1, x_223); +return x_225; +} +} +} +block_26: +{ +lean_object* x_22; size_t x_23; size_t x_24; +x_22 = lean_ctor_get(x_20, 0); +lean_inc(x_22); +lean_dec(x_20); +x_23 = 1; +x_24 = lean_usize_add(x_7, x_23); +x_7 = x_24; +x_8 = x_22; +x_16 = x_21; goto _start; } } @@ -11565,209 +12127,177 @@ lean_ctor_set(x_3, 1, x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___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_object* x_11, lean_object* x_12) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___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_object* x_11, lean_object* x_12, lean_object* x_13) { _start: { -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_110; lean_object* x_111; lean_object* x_112; uint8_t x_113; lean_object* x_114; lean_object* x_115; -x_110 = lean_ctor_get(x_3, 2); -lean_inc(x_110); -x_111 = lean_array_get_size(x_110); -x_112 = lean_unsigned_to_nat(0u); -x_113 = lean_nat_dec_lt(x_112, x_111); -lean_dec(x_111); -x_114 = lean_ctor_get(x_3, 4); -lean_inc(x_114); -x_115 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases(x_114); -if (x_113 == 0) -{ -lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; -lean_dec(x_110); -x_116 = l_Lean_Compiler_LCNF_Simp_isJpCases___closed__4; -x_117 = l_panic___at_Lean_Compiler_LCNF_Simp_isJpCases___spec__1(x_116); -x_118 = lean_ctor_get(x_115, 0); -lean_inc(x_118); -x_119 = lean_ctor_get(x_115, 1); -lean_inc(x_119); -lean_dec(x_115); -x_13 = x_117; -x_14 = x_118; -x_15 = x_119; -goto block_109; -} -else -{ -lean_object* x_120; lean_object* x_121; lean_object* x_122; -x_120 = lean_array_fget(x_110, x_112); -lean_dec(x_110); -x_121 = lean_ctor_get(x_115, 0); -lean_inc(x_121); -x_122 = lean_ctor_get(x_115, 1); -lean_inc(x_122); -lean_dec(x_115); -x_13 = x_120; -x_14 = x_121; -x_15 = x_122; -goto block_109; -} -block_109: -{ -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; size_t x_21; size_t x_22; lean_object* x_23; lean_object* x_24; uint8_t x_25; -x_16 = lean_ctor_get(x_15, 0); +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; size_t x_23; size_t x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; +x_14 = lean_ctor_get(x_1, 4); +lean_inc(x_14); +x_15 = l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases(x_14); +x_16 = lean_ctor_get(x_15, 1); lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); +x_17 = lean_ctor_get(x_15, 0); lean_inc(x_17); -x_18 = lean_ctor_get(x_15, 2); +lean_dec(x_15); +x_18 = lean_ctor_get(x_16, 0); lean_inc(x_18); -x_19 = lean_ctor_get(x_15, 3); +x_19 = lean_ctor_get(x_16, 1); lean_inc(x_19); -x_20 = lean_array_get_size(x_19); -x_21 = lean_usize_of_nat(x_20); -lean_dec(x_20); -x_22 = 0; -x_23 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___lambda__1___closed__2; +x_20 = lean_ctor_get(x_16, 2); +lean_inc(x_20); +x_21 = lean_ctor_get(x_16, 3); +lean_inc(x_21); +x_22 = lean_array_get_size(x_21); +x_23 = lean_usize_of_nat(x_22); +lean_dec(x_22); +x_24 = 0; +x_25 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___lambda__1___closed__2; +lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); -lean_inc(x_15); -lean_inc(x_14); -x_24 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3(x_1, x_13, x_14, x_15, x_19, x_21, x_22, x_23, x_6, x_7, x_8, x_9, x_10, x_11, x_12); -lean_dec(x_19); -x_25 = !lean_is_exclusive(x_15); -if (x_25 == 0) +lean_inc(x_16); +lean_inc(x_17); +lean_inc(x_1); +x_26 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3(x_1, x_2, x_17, x_16, x_21, x_23, x_24, x_25, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +lean_dec(x_21); +x_27 = !lean_is_exclusive(x_16); +if (x_27 == 0) { -lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_26 = lean_ctor_get(x_15, 3); -lean_dec(x_26); -x_27 = lean_ctor_get(x_15, 2); -lean_dec(x_27); -x_28 = lean_ctor_get(x_15, 1); +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_28 = lean_ctor_get(x_16, 3); lean_dec(x_28); -x_29 = lean_ctor_get(x_15, 0); +x_29 = lean_ctor_get(x_16, 2); lean_dec(x_29); -if (lean_obj_tag(x_24) == 0) -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_30 = lean_ctor_get(x_24, 0); -lean_inc(x_30); -x_31 = lean_ctor_get(x_30, 1); -lean_inc(x_31); -x_32 = lean_ctor_get(x_24, 1); -lean_inc(x_32); -lean_dec(x_24); -x_33 = lean_ctor_get(x_30, 0); -lean_inc(x_33); +x_30 = lean_ctor_get(x_16, 1); lean_dec(x_30); -x_34 = lean_ctor_get(x_31, 0); -lean_inc(x_34); -x_35 = lean_ctor_get(x_31, 1); -lean_inc(x_35); +x_31 = lean_ctor_get(x_16, 0); lean_dec(x_31); -x_36 = lean_st_ref_get(x_11, x_32); -x_37 = lean_ctor_get(x_36, 1); +if (lean_obj_tag(x_26) == 0) +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; +x_32 = lean_ctor_get(x_26, 0); +lean_inc(x_32); +x_33 = lean_ctor_get(x_32, 1); +lean_inc(x_33); +x_34 = lean_ctor_get(x_26, 1); +lean_inc(x_34); +lean_dec(x_26); +x_35 = lean_ctor_get(x_32, 0); +lean_inc(x_35); +lean_dec(x_32); +x_36 = lean_ctor_get(x_33, 0); +lean_inc(x_36); +x_37 = lean_ctor_get(x_33, 1); lean_inc(x_37); -lean_dec(x_36); -x_38 = lean_st_ref_take(x_7, x_37); -x_39 = lean_ctor_get(x_38, 0); +lean_dec(x_33); +x_38 = lean_st_ref_get(x_12, x_34); +x_39 = lean_ctor_get(x_38, 1); lean_inc(x_39); -x_40 = lean_ctor_get(x_38, 1); -lean_inc(x_40); lean_dec(x_38); -x_41 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__4(x_39, x_2, x_35); -x_42 = lean_st_ref_set(x_7, x_41, x_40); -x_43 = lean_ctor_get(x_42, 1); -lean_inc(x_43); -lean_dec(x_42); -lean_ctor_set(x_15, 3, x_33); -x_44 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_44, 0, x_15); -x_45 = l_Lean_Compiler_LCNF_attachCodeDecls(x_14, x_44); -lean_dec(x_14); -x_46 = lean_ctor_get(x_3, 3); -lean_inc(x_46); -x_47 = lean_ctor_get(x_3, 2); -lean_inc(x_47); -x_48 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_3, x_46, x_47, x_45, x_8, x_9, x_10, x_11, x_43); -x_49 = lean_ctor_get(x_48, 0); +x_40 = lean_st_ref_take(x_7, x_39); +x_41 = lean_ctor_get(x_40, 0); +lean_inc(x_41); +x_42 = lean_ctor_get(x_40, 1); +lean_inc(x_42); +lean_dec(x_40); +x_43 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__4(x_41, x_3, x_37); +x_44 = lean_st_ref_set(x_7, x_43, x_42); +x_45 = lean_ctor_get(x_44, 1); +lean_inc(x_45); +lean_dec(x_44); +lean_ctor_set(x_16, 3, x_35); +x_46 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_46, 0, x_16); +x_47 = l_Lean_Compiler_LCNF_attachCodeDecls(x_17, x_46); +lean_dec(x_17); +x_48 = lean_ctor_get(x_1, 3); +lean_inc(x_48); +x_49 = lean_ctor_get(x_1, 2); lean_inc(x_49); -x_50 = lean_ctor_get(x_48, 1); -lean_inc(x_50); -lean_dec(x_48); -x_51 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_50); -if (lean_obj_tag(x_51) == 0) +x_50 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_1, x_48, x_49, x_47, x_9, x_10, x_11, x_12, x_45); +x_51 = lean_ctor_get(x_50, 0); +lean_inc(x_51); +x_52 = lean_ctor_get(x_50, 1); +lean_inc(x_52); +lean_dec(x_50); +x_53 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_52); +if (lean_obj_tag(x_53) == 0) { -uint8_t x_52; -x_52 = !lean_is_exclusive(x_51); -if (x_52 == 0) +uint8_t x_54; +x_54 = !lean_is_exclusive(x_53); +if (x_54 == 0) { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; -x_53 = lean_ctor_get(x_51, 0); -x_54 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_54, 0, x_49); -lean_ctor_set(x_54, 1, x_53); -x_55 = l_Lean_Compiler_LCNF_attachCodeDecls(x_34, x_54); -lean_dec(x_34); -x_56 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_56, 0, x_55); -lean_ctor_set(x_51, 0, x_56); -return x_51; +lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_55 = lean_ctor_get(x_53, 0); +x_56 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_56, 0, x_51); +lean_ctor_set(x_56, 1, x_55); +x_57 = l_Lean_Compiler_LCNF_attachCodeDecls(x_36, x_56); +lean_dec(x_36); +x_58 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_58, 0, x_57); +lean_ctor_set(x_53, 0, x_58); +return x_53; } else { -lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; -x_57 = lean_ctor_get(x_51, 0); -x_58 = lean_ctor_get(x_51, 1); -lean_inc(x_58); -lean_inc(x_57); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; +x_59 = lean_ctor_get(x_53, 0); +x_60 = lean_ctor_get(x_53, 1); +lean_inc(x_60); +lean_inc(x_59); +lean_dec(x_53); +x_61 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_61, 0, x_51); +lean_ctor_set(x_61, 1, x_59); +x_62 = l_Lean_Compiler_LCNF_attachCodeDecls(x_36, x_61); +lean_dec(x_36); +x_63 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_63, 0, x_62); +x_64 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_64, 0, x_63); +lean_ctor_set(x_64, 1, x_60); +return x_64; +} +} +else +{ +uint8_t x_65; lean_dec(x_51); -x_59 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_59, 0, x_49); -lean_ctor_set(x_59, 1, x_57); -x_60 = l_Lean_Compiler_LCNF_attachCodeDecls(x_34, x_59); -lean_dec(x_34); -x_61 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_61, 0, x_60); -x_62 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_62, 0, x_61); -lean_ctor_set(x_62, 1, x_58); -return x_62; -} +lean_dec(x_36); +x_65 = !lean_is_exclusive(x_53); +if (x_65 == 0) +{ +return x_53; } else { -uint8_t x_63; -lean_dec(x_49); -lean_dec(x_34); -x_63 = !lean_is_exclusive(x_51); -if (x_63 == 0) -{ -return x_51; -} -else -{ -lean_object* x_64; lean_object* x_65; lean_object* x_66; -x_64 = lean_ctor_get(x_51, 0); -x_65 = lean_ctor_get(x_51, 1); -lean_inc(x_65); -lean_inc(x_64); -lean_dec(x_51); -x_66 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_66, 0, x_64); -lean_ctor_set(x_66, 1, x_65); -return x_66; +lean_object* x_66; lean_object* x_67; lean_object* x_68; +x_66 = lean_ctor_get(x_53, 0); +x_67 = lean_ctor_get(x_53, 1); +lean_inc(x_67); +lean_inc(x_66); +lean_dec(x_53); +x_68 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_68, 0, x_66); +lean_ctor_set(x_68, 1, x_67); +return x_68; } } } else { -uint8_t x_67; -lean_free_object(x_15); +uint8_t x_69; +lean_free_object(x_16); +lean_dec(x_20); +lean_dec(x_19); lean_dec(x_18); lean_dec(x_17); -lean_dec(x_16); -lean_dec(x_14); +lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); @@ -11776,148 +12306,149 @@ lean_dec(x_7); lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); -lean_dec(x_2); -x_67 = !lean_is_exclusive(x_24); -if (x_67 == 0) +lean_dec(x_1); +x_69 = !lean_is_exclusive(x_26); +if (x_69 == 0) { -return x_24; +return x_26; } else { -lean_object* x_68; lean_object* x_69; lean_object* x_70; -x_68 = lean_ctor_get(x_24, 0); -x_69 = lean_ctor_get(x_24, 1); -lean_inc(x_69); -lean_inc(x_68); -lean_dec(x_24); -x_70 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_70, 0, x_68); -lean_ctor_set(x_70, 1, x_69); -return x_70; -} -} -} -else -{ -lean_dec(x_15); -if (lean_obj_tag(x_24) == 0) -{ -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -x_71 = lean_ctor_get(x_24, 0); +lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_70 = lean_ctor_get(x_26, 0); +x_71 = lean_ctor_get(x_26, 1); lean_inc(x_71); -x_72 = lean_ctor_get(x_71, 1); -lean_inc(x_72); -x_73 = lean_ctor_get(x_24, 1); +lean_inc(x_70); +lean_dec(x_26); +x_72 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_72, 0, x_70); +lean_ctor_set(x_72, 1, x_71); +return x_72; +} +} +} +else +{ +lean_dec(x_16); +if (lean_obj_tag(x_26) == 0) +{ +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; +x_73 = lean_ctor_get(x_26, 0); lean_inc(x_73); -lean_dec(x_24); -x_74 = lean_ctor_get(x_71, 0); +x_74 = lean_ctor_get(x_73, 1); lean_inc(x_74); -lean_dec(x_71); -x_75 = lean_ctor_get(x_72, 0); +x_75 = lean_ctor_get(x_26, 1); lean_inc(x_75); -x_76 = lean_ctor_get(x_72, 1); +lean_dec(x_26); +x_76 = lean_ctor_get(x_73, 0); lean_inc(x_76); -lean_dec(x_72); -x_77 = lean_st_ref_get(x_11, x_73); -x_78 = lean_ctor_get(x_77, 1); +lean_dec(x_73); +x_77 = lean_ctor_get(x_74, 0); +lean_inc(x_77); +x_78 = lean_ctor_get(x_74, 1); lean_inc(x_78); -lean_dec(x_77); -x_79 = lean_st_ref_take(x_7, x_78); -x_80 = lean_ctor_get(x_79, 0); +lean_dec(x_74); +x_79 = lean_st_ref_get(x_12, x_75); +x_80 = lean_ctor_get(x_79, 1); lean_inc(x_80); -x_81 = lean_ctor_get(x_79, 1); -lean_inc(x_81); lean_dec(x_79); -x_82 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__4(x_80, x_2, x_76); -x_83 = lean_st_ref_set(x_7, x_82, x_81); -x_84 = lean_ctor_get(x_83, 1); -lean_inc(x_84); -lean_dec(x_83); -x_85 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_85, 0, x_16); -lean_ctor_set(x_85, 1, x_17); -lean_ctor_set(x_85, 2, x_18); -lean_ctor_set(x_85, 3, x_74); -x_86 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_86, 0, x_85); -x_87 = l_Lean_Compiler_LCNF_attachCodeDecls(x_14, x_86); -lean_dec(x_14); -x_88 = lean_ctor_get(x_3, 3); -lean_inc(x_88); -x_89 = lean_ctor_get(x_3, 2); -lean_inc(x_89); -x_90 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_3, x_88, x_89, x_87, x_8, x_9, x_10, x_11, x_84); -x_91 = lean_ctor_get(x_90, 0); +x_81 = lean_st_ref_take(x_7, x_80); +x_82 = lean_ctor_get(x_81, 0); +lean_inc(x_82); +x_83 = lean_ctor_get(x_81, 1); +lean_inc(x_83); +lean_dec(x_81); +x_84 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__4(x_82, x_3, x_78); +x_85 = lean_st_ref_set(x_7, x_84, x_83); +x_86 = lean_ctor_get(x_85, 1); +lean_inc(x_86); +lean_dec(x_85); +x_87 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_87, 0, x_18); +lean_ctor_set(x_87, 1, x_19); +lean_ctor_set(x_87, 2, x_20); +lean_ctor_set(x_87, 3, x_76); +x_88 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_88, 0, x_87); +x_89 = l_Lean_Compiler_LCNF_attachCodeDecls(x_17, x_88); +lean_dec(x_17); +x_90 = lean_ctor_get(x_1, 3); +lean_inc(x_90); +x_91 = lean_ctor_get(x_1, 2); lean_inc(x_91); -x_92 = lean_ctor_get(x_90, 1); -lean_inc(x_92); -lean_dec(x_90); -x_93 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_92); -if (lean_obj_tag(x_93) == 0) -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; -x_94 = lean_ctor_get(x_93, 0); +x_92 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_1, x_90, x_91, x_89, x_9, x_10, x_11, x_12, x_86); +x_93 = lean_ctor_get(x_92, 0); +lean_inc(x_93); +x_94 = lean_ctor_get(x_92, 1); lean_inc(x_94); -x_95 = lean_ctor_get(x_93, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_93)) { - lean_ctor_release(x_93, 0); - lean_ctor_release(x_93, 1); - x_96 = x_93; +lean_dec(x_92); +x_95 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_94); +if (lean_obj_tag(x_95) == 0) +{ +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; +x_96 = lean_ctor_get(x_95, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_95, 1); +lean_inc(x_97); +if (lean_is_exclusive(x_95)) { + lean_ctor_release(x_95, 0); + lean_ctor_release(x_95, 1); + x_98 = x_95; } else { - lean_dec_ref(x_93); - x_96 = lean_box(0); + lean_dec_ref(x_95); + x_98 = lean_box(0); } -x_97 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_97, 0, x_91); -lean_ctor_set(x_97, 1, x_94); -x_98 = l_Lean_Compiler_LCNF_attachCodeDecls(x_75, x_97); -lean_dec(x_75); -x_99 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_99, 0, x_98); -if (lean_is_scalar(x_96)) { - x_100 = lean_alloc_ctor(0, 2, 0); +x_99 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_99, 0, x_93); +lean_ctor_set(x_99, 1, x_96); +x_100 = l_Lean_Compiler_LCNF_attachCodeDecls(x_77, x_99); +lean_dec(x_77); +x_101 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_101, 0, x_100); +if (lean_is_scalar(x_98)) { + x_102 = lean_alloc_ctor(0, 2, 0); } else { - x_100 = x_96; + x_102 = x_98; } -lean_ctor_set(x_100, 0, x_99); -lean_ctor_set(x_100, 1, x_95); -return x_100; +lean_ctor_set(x_102, 0, x_101); +lean_ctor_set(x_102, 1, x_97); +return x_102; } else { -lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; -lean_dec(x_91); -lean_dec(x_75); -x_101 = lean_ctor_get(x_93, 0); -lean_inc(x_101); -x_102 = lean_ctor_get(x_93, 1); -lean_inc(x_102); -if (lean_is_exclusive(x_93)) { - lean_ctor_release(x_93, 0); - lean_ctor_release(x_93, 1); - x_103 = x_93; +lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; +lean_dec(x_93); +lean_dec(x_77); +x_103 = lean_ctor_get(x_95, 0); +lean_inc(x_103); +x_104 = lean_ctor_get(x_95, 1); +lean_inc(x_104); +if (lean_is_exclusive(x_95)) { + lean_ctor_release(x_95, 0); + lean_ctor_release(x_95, 1); + x_105 = x_95; } else { - lean_dec_ref(x_93); - x_103 = lean_box(0); + lean_dec_ref(x_95); + x_105 = lean_box(0); } -if (lean_is_scalar(x_103)) { - x_104 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_105)) { + x_106 = lean_alloc_ctor(1, 2, 0); } else { - x_104 = x_103; + x_106 = x_105; } -lean_ctor_set(x_104, 0, x_101); -lean_ctor_set(x_104, 1, x_102); -return x_104; +lean_ctor_set(x_106, 0, x_103); +lean_ctor_set(x_106, 1, x_104); +return x_106; } } else { -lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; +lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; +lean_dec(x_20); +lean_dec(x_19); lean_dec(x_18); lean_dec(x_17); -lean_dec(x_16); -lean_dec(x_14); +lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); @@ -11926,43 +12457,43 @@ lean_dec(x_7); lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); -lean_dec(x_2); -x_105 = lean_ctor_get(x_24, 0); -lean_inc(x_105); -x_106 = lean_ctor_get(x_24, 1); -lean_inc(x_106); -if (lean_is_exclusive(x_24)) { - lean_ctor_release(x_24, 0); - lean_ctor_release(x_24, 1); - x_107 = x_24; +lean_dec(x_1); +x_107 = lean_ctor_get(x_26, 0); +lean_inc(x_107); +x_108 = lean_ctor_get(x_26, 1); +lean_inc(x_108); +if (lean_is_exclusive(x_26)) { + lean_ctor_release(x_26, 0); + lean_ctor_release(x_26, 1); + x_109 = x_26; } else { - lean_dec_ref(x_24); - x_107 = lean_box(0); + lean_dec_ref(x_26); + x_109 = lean_box(0); } -if (lean_is_scalar(x_107)) { - x_108 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_109)) { + x_110 = lean_alloc_ctor(1, 2, 0); } else { - x_108 = x_107; + x_110 = x_109; } -lean_ctor_set(x_108, 0, x_105); -lean_ctor_set(x_108, 1, x_106); -return x_108; +lean_ctor_set(x_110, 0, x_107); +lean_ctor_set(x_110, 1, x_108); +return x_110; } } } } -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f(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_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f(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_ctor_get(x_1, 0); -lean_inc(x_10); -x_11 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__3(x_3, x_10); -if (lean_obj_tag(x_11) == 0) +lean_object* x_11; lean_object* x_12; +x_11 = lean_ctor_get(x_1, 0); +lean_inc(x_11); +x_12 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___spec__3(x_3, x_11); +if (lean_obj_tag(x_12) == 0) { -lean_object* x_12; lean_object* x_13; -lean_dec(x_10); +lean_object* x_13; lean_object* x_14; +lean_dec(x_11); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -11971,22 +12502,26 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_12 = lean_box(0); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_12); -lean_ctor_set(x_13, 1, x_9); -return x_13; +x_13 = lean_box(0); +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_13); +lean_ctor_set(x_14, 1, x_10); +return x_14; } else { -lean_object* x_14; -x_14 = lean_ctor_get(x_11, 0); -lean_inc(x_14); -lean_dec(x_11); -if (lean_obj_tag(x_14) == 0) -{ lean_object* x_15; lean_object* x_16; -lean_dec(x_10); +x_15 = lean_ctor_get(x_12, 0); +lean_inc(x_15); +lean_dec(x_12); +x_16 = lean_ctor_get(x_15, 1); +lean_inc(x_16); +if (lean_obj_tag(x_16) == 0) +{ +lean_object* x_17; lean_object* x_18; +lean_dec(x_15); +lean_dec(x_11); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -11995,22 +12530,36 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_15 = lean_box(0); -x_16 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_16, 0, x_15); -lean_ctor_set(x_16, 1, x_9); -return x_16; +x_17 = lean_box(0); +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_17); +lean_ctor_set(x_18, 1, x_10); +return x_18; } else { -lean_object* x_17; lean_object* x_18; -x_17 = lean_box(0); -x_18 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___lambda__1(x_14, x_10, x_1, x_2, x_17, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_18; +lean_object* x_19; lean_object* x_20; +lean_dec(x_16); +x_19 = lean_box(0); +x_20 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___lambda__1(x_1, x_15, x_11, x_2, x_19, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_20; } } } } +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___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) { +_start: +{ +lean_object* x_9; +x_9 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +return x_9; +} +} LEAN_EXPORT lean_object* l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { @@ -12022,11 +12571,12 @@ x_4 = lean_box(x_3); return x_4; } } -LEAN_EXPORT lean_object* l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__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_EXPORT lean_object* l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__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: { -lean_object* x_12; -x_12 = l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_object* x_13; +x_13 = l_Lean_RBNode_forIn_visit___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); @@ -12034,47 +12584,31 @@ lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_1); -return x_12; -} -} -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___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_object* x_13, lean_object* x_14, lean_object* x_15) { -_start: -{ -lean_object* x_16; -x_16 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_2); -return x_16; -} -} -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__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, lean_object* x_13, lean_object* x_14, lean_object* x_15) { -_start: -{ -size_t x_16; size_t x_17; lean_object* x_18; -x_16 = lean_unbox_usize(x_6); -lean_dec(x_6); -x_17 = lean_unbox_usize(x_7); -lean_dec(x_7); -x_18 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3(x_1, x_2, x_3, x_4, x_5, x_16, x_17, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); -lean_dec(x_5); -return x_18; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___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) { -_start: -{ -lean_object* x_13; -x_13 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); -lean_dec(x_5); return x_13; } } +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__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, lean_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +_start: +{ +size_t x_17; size_t x_18; lean_object* x_19; +x_17 = lean_unbox_usize(x_6); +lean_dec(x_6); +x_18 = lean_unbox_usize(x_7); +lean_dec(x_7); +x_19 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3(x_1, x_2, x_3, x_4, x_5, x_17, x_18, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +lean_dec(x_5); +return x_19; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___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_object* x_13) { +_start: +{ +lean_object* x_14; +x_14 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +lean_dec(x_5); +return x_14; +} +} LEAN_EXPORT lean_object* l_Lean_RBNode_revFold___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__2(lean_object* x_1, lean_object* x_2) { _start: { @@ -12294,7 +12828,7 @@ return x_8; } else { -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; x_9 = lean_ctor_get(x_1, 0); lean_inc(x_9); x_10 = lean_ctor_get(x_1, 1); @@ -12316,23 +12850,26 @@ x_17 = l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__7_ x_18 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_18, 0, x_16); lean_ctor_set(x_18, 1, x_17); -x_19 = l_Lean_RBTree_toList___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__3(x_12); -x_20 = lean_box(0); -x_21 = l_List_mapTRAux___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__5(x_19, x_20); -x_22 = l_Lean_MessageData_ofList(x_21); -lean_dec(x_21); -x_23 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_23, 0, x_18); -lean_ctor_set(x_23, 1, x_22); +x_19 = lean_ctor_get(x_12, 1); +lean_inc(x_19); +lean_dec(x_12); +x_20 = l_Lean_RBTree_toList___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__3(x_19); +x_21 = lean_box(0); +x_22 = l_List_mapTRAux___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__5(x_20, x_21); +x_23 = l_Lean_MessageData_ofList(x_22); +lean_dec(x_22); x_24 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_24, 0, x_23); -lean_ctor_set(x_24, 1, x_15); -x_25 = l_Lean_indentD(x_24); -x_26 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_26, 0, x_2); -lean_ctor_set(x_26, 1, x_25); +lean_ctor_set(x_24, 0, x_18); +lean_ctor_set(x_24, 1, x_23); +x_25 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_25, 0, x_24); +lean_ctor_set(x_25, 1, x_15); +x_26 = l_Lean_indentD(x_25); +x_27 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_27, 0, x_2); +lean_ctor_set(x_27, 1, x_26); x_1 = x_10; -x_2 = x_26; +x_2 = x_27; goto _start; } } @@ -12340,26 +12877,32 @@ goto _start; static lean_object* _init_l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__1() { _start: { -lean_object* x_1; -x_1 = l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_box(0), lean_box(0)); -return x_1; +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; } } static lean_object* _init_l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__1; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; } } static lean_object* _init_l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__2; +x_1 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__2; x_2 = lean_unsigned_to_nat(0u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -12370,35 +12913,11 @@ return x_3; static lean_object* _init_l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__4() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__6() { -_start: -{ lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; x_1 = lean_unsigned_to_nat(0u); -x_2 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__3; -x_3 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__4; -x_4 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__5; +x_2 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__1; +x_3 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__2; +x_4 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__3; x_5 = lean_alloc_ctor(0, 8, 0); lean_ctor_set(x_5, 0, x_1); lean_ctor_set(x_5, 1, x_1); @@ -12436,7 +12955,7 @@ lean_inc(x_16); lean_dec(x_14); x_17 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_16); x_18 = lean_ctor_get(x_5, 2); -x_19 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__6; +x_19 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__4; lean_inc(x_18); x_20 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_20, 0, x_12); @@ -12621,48 +13140,48 @@ return x_2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___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) { _start: { -lean_object* x_9; lean_object* x_10; lean_object* x_34; lean_object* x_35; lean_object* x_36; uint8_t x_37; +lean_object* x_9; lean_object* x_10; lean_object* x_35; lean_object* x_36; lean_object* x_37; uint8_t x_38; lean_inc(x_1); x_9 = l_Lean_RBMap_toList___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__1(x_1); -x_34 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__4; -x_35 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__6(x_34, x_4, x_5, x_6, x_7, x_8); -x_36 = lean_ctor_get(x_35, 0); -lean_inc(x_36); -x_37 = lean_unbox(x_36); -lean_dec(x_36); -if (x_37 == 0) +x_35 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__4; +x_36 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__6(x_35, x_4, x_5, x_6, x_7, x_8); +x_37 = lean_ctor_get(x_36, 0); +lean_inc(x_37); +x_38 = lean_unbox(x_37); +lean_dec(x_37); +if (x_38 == 0) { -lean_object* x_38; +lean_object* x_39; lean_dec(x_9); -x_38 = lean_ctor_get(x_35, 1); -lean_inc(x_38); -lean_dec(x_35); -x_10 = x_38; -goto block_33; +x_39 = lean_ctor_get(x_36, 1); +lean_inc(x_39); +lean_dec(x_36); +x_10 = x_39; +goto block_34; } else { -lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; -x_39 = lean_ctor_get(x_35, 1); -lean_inc(x_39); -lean_dec(x_35); -x_40 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__7; -x_41 = l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__7(x_9, x_40, x_4, x_5, x_6, x_7, x_39); -x_42 = lean_ctor_get(x_41, 0); -lean_inc(x_42); -x_43 = lean_ctor_get(x_41, 1); +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_40 = lean_ctor_get(x_36, 1); +lean_inc(x_40); +lean_dec(x_36); +x_41 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__7; +x_42 = l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__7(x_9, x_41, x_4, x_5, x_6, x_7, x_40); +x_43 = lean_ctor_get(x_42, 0); lean_inc(x_43); -lean_dec(x_41); -x_44 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8(x_34, x_42, x_4, x_5, x_6, x_7, x_43); -x_45 = lean_ctor_get(x_44, 1); -lean_inc(x_45); -lean_dec(x_44); -x_10 = x_45; -goto block_33; +x_44 = lean_ctor_get(x_42, 1); +lean_inc(x_44); +lean_dec(x_42); +x_45 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8(x_35, x_43, x_4, x_5, x_6, x_7, x_44); +x_46 = lean_ctor_get(x_45, 1); +lean_inc(x_46); +lean_dec(x_45); +x_10 = x_46; +goto block_34; } -block_33: +block_34: { -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; x_11 = lean_box(0); x_12 = lean_st_ref_get(x_7, x_10); x_13 = lean_ctor_get(x_12, 1); @@ -12674,71 +13193,72 @@ lean_inc(x_15); x_16 = lean_ctor_get(x_14, 1); lean_inc(x_16); lean_dec(x_14); +x_17 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__4; lean_inc(x_7); lean_inc(x_15); -x_17 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_2, x_1, x_15, x_4, x_5, x_6, x_7, x_16); -if (lean_obj_tag(x_17) == 0) +x_18 = l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit(x_2, x_1, x_15, x_17, x_4, x_5, x_6, x_7, x_16); +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; uint8_t x_23; -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; uint8_t x_24; +x_19 = lean_ctor_get(x_18, 0); lean_inc(x_19); -lean_dec(x_17); -x_20 = lean_st_ref_get(x_7, x_19); +x_20 = lean_ctor_get(x_18, 1); +lean_inc(x_20); +lean_dec(x_18); +x_21 = lean_st_ref_get(x_7, x_20); lean_dec(x_7); -x_21 = lean_ctor_get(x_20, 1); -lean_inc(x_21); -lean_dec(x_20); -x_22 = lean_st_ref_get(x_15, x_21); +x_22 = lean_ctor_get(x_21, 1); +lean_inc(x_22); +lean_dec(x_21); +x_23 = lean_st_ref_get(x_15, x_22); lean_dec(x_15); -x_23 = !lean_is_exclusive(x_22); -if (x_23 == 0) +x_24 = !lean_is_exclusive(x_23); +if (x_24 == 0) { -lean_object* x_24; lean_object* x_25; -x_24 = lean_ctor_get(x_22, 0); -lean_dec(x_24); -x_25 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_25, 0, x_18); -lean_ctor_set(x_22, 0, x_25); -return x_22; +lean_object* x_25; lean_object* x_26; +x_25 = lean_ctor_get(x_23, 0); +lean_dec(x_25); +x_26 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_26, 0, x_19); +lean_ctor_set(x_23, 0, x_26); +return x_23; } else { -lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_26 = lean_ctor_get(x_22, 1); -lean_inc(x_26); -lean_dec(x_22); -x_27 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_27, 0, x_18); -x_28 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_28, 0, x_27); -lean_ctor_set(x_28, 1, x_26); -return x_28; +lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_27 = lean_ctor_get(x_23, 1); +lean_inc(x_27); +lean_dec(x_23); +x_28 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_28, 0, x_19); +x_29 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_29, 0, x_28); +lean_ctor_set(x_29, 1, x_27); +return x_29; } } else { -uint8_t x_29; +uint8_t x_30; lean_dec(x_15); lean_dec(x_7); -x_29 = !lean_is_exclusive(x_17); -if (x_29 == 0) +x_30 = !lean_is_exclusive(x_18); +if (x_30 == 0) { -return x_17; +return x_18; } else { -lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_30 = lean_ctor_get(x_17, 0); -x_31 = lean_ctor_get(x_17, 1); +lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_31 = lean_ctor_get(x_18, 0); +x_32 = lean_ctor_get(x_18, 1); +lean_inc(x_32); lean_inc(x_31); -lean_inc(x_30); -lean_dec(x_17); -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; +lean_dec(x_18); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_32); +return x_33; } } } @@ -12747,20 +13267,23 @@ return x_32; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { -lean_object* x_7; uint8_t x_8; +lean_object* x_7; lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); lean_inc(x_1); x_7 = l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo(x_1, x_2, x_3, x_4, x_5, x_6); +if (lean_obj_tag(x_7) == 0) +{ +uint8_t x_8; x_8 = !lean_is_exclusive(x_7); if (x_8 == 0) { lean_object* x_9; lean_object* x_10; uint8_t x_11; x_9 = lean_ctor_get(x_7, 0); x_10 = lean_ctor_get(x_7, 1); -x_11 = l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate___spec__1(x_9); +x_11 = l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate___spec__1(x_9); if (x_11 == 0) { lean_object* x_12; @@ -12791,7 +13314,7 @@ x_16 = lean_ctor_get(x_7, 1); lean_inc(x_16); lean_inc(x_15); lean_dec(x_7); -x_17 = l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfo_isCandidate___spec__1(x_15); +x_17 = l_Lean_RBNode_any___at_Lean_Compiler_LCNF_Simp_JpCasesInfoMap_isCandidate___spec__1(x_15); if (x_17 == 0) { lean_object* x_18; lean_object* x_19; @@ -12816,6 +13339,34 @@ return x_21; } } } +else +{ +uint8_t x_22; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_22 = !lean_is_exclusive(x_7); +if (x_22 == 0) +{ +return x_7; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_7, 0); +x_24 = lean_ctor_get(x_7, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_7); +x_25 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_25, 0, x_23); +lean_ctor_set(x_25, 1, x_24); +return x_25; +} +} +} } LEAN_EXPORT lean_object* l_Lean_RBNode_revFold___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__2___boxed(lean_object* x_1, lean_object* x_2) { _start: @@ -12880,7 +13431,7 @@ lean_dec(x_3); return x_9; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp_JpCases___hyg_3157_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp_JpCases___hyg_3418_(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; lean_object* x_4; @@ -12893,7 +13444,9 @@ return x_4; lean_object* initialize_Init(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_DependsOn(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_InferType(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_Internalize(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_Simp_Basic(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_Simp_DiscrM(uint8_t builtin, lean_object*); static bool _G_initialized = false; LEAN_EXPORT lean_object* initialize_Lean_Compiler_LCNF_Simp_JpCases(uint8_t builtin, lean_object* w) { lean_object * res; @@ -12908,17 +13461,37 @@ lean_dec_ref(res); res = initialize_Lean_Compiler_LCNF_InferType(builtin, lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_Internalize(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); res = initialize_Lean_Compiler_LCNF_Simp_Basic(builtin, lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -l_Lean_Compiler_LCNF_Simp_isJpCases___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_isJpCases___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_isJpCases___closed__1); -l_Lean_Compiler_LCNF_Simp_isJpCases___closed__2 = _init_l_Lean_Compiler_LCNF_Simp_isJpCases___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_isJpCases___closed__2); -l_Lean_Compiler_LCNF_Simp_isJpCases___closed__3 = _init_l_Lean_Compiler_LCNF_Simp_isJpCases___closed__3(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_isJpCases___closed__3); -l_Lean_Compiler_LCNF_Simp_isJpCases___closed__4 = _init_l_Lean_Compiler_LCNF_Simp_isJpCases___closed__4(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_isJpCases___closed__4); +res = initialize_Lean_Compiler_LCNF_Simp_DiscrM(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Compiler_LCNF_Simp_JpCasesInfo_ctorNames___default = _init_l_Lean_Compiler_LCNF_Simp_JpCasesInfo_ctorNames___default(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_JpCasesInfo_ctorNames___default); +l_Lean_Compiler_LCNF_Simp_instInhabitedJpCasesInfo___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_instInhabitedJpCasesInfo___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_instInhabitedJpCasesInfo___closed__1); +l_Lean_Compiler_LCNF_Simp_instInhabitedJpCasesInfo = _init_l_Lean_Compiler_LCNF_Simp_instInhabitedJpCasesInfo(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_instInhabitedJpCasesInfo); +l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__1); +l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__2 = _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__2); +l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__3 = _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__3); +l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__4 = _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo_go___closed__4); +l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__1); +l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__2 = _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__2); +l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__3 = _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__3); +l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__4 = _init_l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_collectJpCasesInfo___closed__4); l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1 = _init_l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1(); lean_mark_persistent(l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__1); l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__2 = _init_l_panic___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___spec__1___closed__2(); @@ -12933,42 +13506,18 @@ l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJp lean_mark_persistent(l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___closed__3); l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___closed__4 = _init_l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___closed__4(); lean_mark_persistent(l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_extractJpCases_go___closed__4); -l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1___closed__1 = _init_l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1___closed__1(); -lean_mark_persistent(l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1___closed__1); -l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1___closed__2 = _init_l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1___closed__2(); -lean_mark_persistent(l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___lambda__1___closed__2); +l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___closed__1 = _init_l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___closed__1(); +lean_mark_persistent(l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___closed__1); +l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___closed__2 = _init_l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___closed__2(); +lean_mark_persistent(l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___closed__2); l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt___closed__1 = _init_l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt___closed__1(); lean_mark_persistent(l___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt___closed__1); -l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__1 = _init_l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__1(); -lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__1); -l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__2 = _init_l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__2(); -lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__2); -l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__3 = _init_l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__3(); -lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__3); -l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__4 = _init_l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__4(); -lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__4); -l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__5 = _init_l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__5(); -lean_mark_persistent(l_panic___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__2___closed__5); -l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___closed__1 = _init_l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___closed__1(); -lean_mark_persistent(l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___closed__1); -l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___closed__2 = _init_l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___closed__2(); -lean_mark_persistent(l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__4___closed__2); +l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___closed__1 = _init_l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___closed__1(); +lean_mark_persistent(l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___closed__1); +l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___closed__2 = _init_l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___closed__2(); +lean_mark_persistent(l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___spec__3___closed__2); l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__1); -l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__2 = _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__2); -l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__3 = _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__3(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__3); -l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__4 = _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__4(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__4); -l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__5 = _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__5(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__5); -l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__6 = _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__6(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJmp_x3f___closed__6); -l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___closed__1); -l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___closed__1 = _init_l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___closed__1(); -lean_mark_persistent(l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___spec__3___closed__1); l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___lambda__1___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___lambda__1___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___lambda__1___closed__1); l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___lambda__1___closed__2 = _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visitJp_x3f___lambda__1___closed__2(); @@ -12991,10 +13540,6 @@ l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed_ lean_mark_persistent(l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__3); l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__4 = _init_l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__4(); lean_mark_persistent(l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__4); -l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__5 = _init_l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__5(); -lean_mark_persistent(l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__5); -l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__6 = _init_l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__6(); -lean_mark_persistent(l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___spec__8___closed__6); l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__1); l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__2 = _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__2(); @@ -13009,7 +13554,7 @@ l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__6 = _init_l_Lean lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__6); l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__7 = _init_l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__7(); lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_simpJpCases_x3f___lambda__1___closed__7); -res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp_JpCases___hyg_3157_(lean_io_mk_world()); +res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Simp_JpCases___hyg_3418_(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)); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Simp/Main.c b/stage0/stdlib/Lean/Compiler/LCNF/Simp/Main.c index ceffa2c2df..efcc77e0be 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Simp/Main.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Simp/Main.c @@ -15,169 +15,170 @@ extern "C" { #endif LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick(lean_object*); size_t lean_usize_add(size_t, size_t); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___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_Compiler_LCNF_Simp_inlineApp_x3f___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__4(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_Compiler_LCNF_Simp_simpCasesOnCtor_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__4(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_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_Compiler_LCNF_Simp_InlineCandidateInfo_arity(lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__2; -lean_object* l_Lean_Compiler_LCNF_Simp_eraseLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce___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_Compiler_LCNF_Simp_eraseLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce___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___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateParamImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateLetDeclImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isReturnOf(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isReturnOf(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, 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_Compiler_LCNF_Simp_etaPolyApp_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Compiler_LCNF_hasLocalInst(lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__1; static lean_object* l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___closed__4; static lean_object* l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; static lean_object* l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__3; -lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_markUsedFVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_markUsedFVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_Simp_ConstantFold_foldConstants(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_environment_find(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simp___spec__7(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_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simp___spec__7(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_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__1; lean_object* lean_st_ref_get(lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___boxed(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__3(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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__3(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*); uint8_t lean_name_eq(lean_object*, lean_object*); lean_object* l_Lean_Expr_constructorApp_x3f(lean_object*, lean_object*, uint8_t); static lean_object* l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__4(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*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineJp_x3f___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_Compiler_LCNF_Simp_inlineApp_x3f___lambda__4(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*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineJp_x3f___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* l_Array_toSubarray___rarg(lean_object*, lean_object*, lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isReturnOf___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_Compiler_LCNF_Simp_etaPolyApp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simp___spec__5(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_Compiler_LCNF_Simp_inlineApp_x3f___lambda__5(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_Compiler_LCNF_Simp_isReturnOf___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_Compiler_LCNF_Simp_etaPolyApp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simp___spec__5(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_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__5(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_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__1(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__1(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_usize_dec_lt(size_t, size_t); uint8_t l_Lean_Compiler_LCNF_Code_isFun(lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_isUsed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_isUsed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___closed__2; lean_object* l_Lean_mkAppN(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_specializePartialApp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpFunDecl(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_Compiler_LCNF_Simp_specializePartialApp___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_specializePartialApp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpFunDecl(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_Compiler_LCNF_Simp_specializePartialApp___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*); uint8_t l_Lean_Compiler_LCNF_Code_isReturnOf(lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* l_Lean_mkHashMapImp___rarg(lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_findCtor(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_shouldInlineLocal(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_findCtor(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_shouldInlineLocal(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___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* l_Lean_Compiler_LCNF_CasesCore_extractAlt_x21(lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_Decl_getArity(lean_object*); lean_object* l_Lean_Compiler_LCNF_CompilerM_codeBind(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_addFVarSubst(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__2(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___spec__1(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_addFVarSubst(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_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__2(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___spec__1(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_replaceExprFVars(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_inferType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_fvarId_x21(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_eraseFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_eraseFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__3; lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_Code_internalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__4; -lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtor___rarg(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_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Simp_simp___spec__3___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_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Simp_simp___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_FunDeclCore_etaExpand(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__3; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__6(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_Compiler_LCNF_Simp_simp___lambda__8(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_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(lean_object*, lean_object*, uint8_t); -lean_object* l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(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_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__1(lean_object*, size_t, size_t, 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_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___closed__3; -lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_of_nat(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__4(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_Compiler_LCNF_Simp_simp___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go(lean_object*); lean_object* l_Lean_ConstantInfo_type(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Simp_simpFunDecl___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_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Simp_simpFunDecl___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* l_Lean_Compiler_LCNF_findFunDecl_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_getDecl_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Compiler_LCNF_isEtaExpandCandidateCore(lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_mkAuxLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___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_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___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*); lean_object* l_Lean_Compiler_LCNF_normFunDeclImp(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_fvar___override(lean_object*); size_t lean_ptr_addr(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_specializePartialApp___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_specializePartialApp___boxed(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_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick___boxed(lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_incVisited___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_incVisited___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_LetDecl_updateValue(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Simp_simp___spec__3(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Simp_simp___spec__3(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_le(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__7___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_Compiler_LCNF_Simp_simp___lambda__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_AltCore_getCode(lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_addDefaultAlt(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_addDefaultAlt(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__2; lean_object* l_Lean_Compiler_LCNF_eraseCode(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineJp_x3f___lambda__1___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_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__2___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_Compiler_LCNF_Simp_inlineJp_x3f___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_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_eraseParams(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__5___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__7(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__5___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*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__7(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_ofSubarray___rarg(lean_object*); lean_object* l_panic___at_Lean_Compiler_LCNF_CasesCore_extractAlt_x21___spec__2(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__4___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_Compiler_LCNF_Simp_isOnceOrMustInline(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__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*); uint8_t l_Lean_Expr_isFVar(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__2(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__2(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__2___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_Compiler_LCNF_Simp_inlineApp_x3f___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_Compiler_LCNF_Simp_simp___lambda__3(lean_object*, 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_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__5(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_EXPORT lean_object* l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__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_Compiler_LCNF_Simp_inlineApp_x3f___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__3(lean_object*, 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_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__5(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*); lean_object* l_Lean_Compiler_LCNF_mkNewParams(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_mkAuxFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(size_t, size_t, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__6___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__6___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*); lean_object* l_Lean_Compiler_LCNF_mkAuxParam(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_simpValue_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineJp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_simpValue_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineJp_x3f(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_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(lean_object*, uint8_t, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__6(lean_object*, 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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__6(lean_object*, 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* l_Lean_Expr_getAppFn(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__3(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_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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*); +lean_object* l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__3(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_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_panic___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___spec__1(lean_object*); -LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__2(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__2(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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*); lean_object* l_Lean_Meta_isInstance(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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*); +lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* _init_l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___closed__1() { _start: { @@ -329,230 +330,230 @@ x_3 = lean_box(x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__1(lean_object* x_1, size_t x_2, size_t 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_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__1(lean_object* x_1, size_t x_2, size_t 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: { -uint8_t x_12; -x_12 = lean_usize_dec_lt(x_3, x_2); -if (x_12 == 0) +uint8_t x_13; +x_13 = lean_usize_dec_lt(x_3, x_2); +if (x_13 == 0) { -lean_object* x_13; -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_4); -lean_ctor_set(x_13, 1, x_11); -return x_13; +lean_object* x_14; +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_4); +lean_ctor_set(x_14, 1, x_12); +return x_14; } else { -lean_object* x_14; uint8_t x_15; -x_14 = lean_array_uget(x_1, x_3); -x_15 = !lean_is_exclusive(x_4); -if (x_15 == 0) +lean_object* x_15; uint8_t x_16; +x_15 = lean_array_uget(x_1, x_3); +x_16 = !lean_is_exclusive(x_4); +if (x_16 == 0) { -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; -x_16 = lean_ctor_get(x_4, 0); -x_17 = lean_ctor_get(x_4, 1); -x_18 = lean_ctor_get(x_16, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_16, 1); +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; +x_17 = lean_ctor_get(x_4, 0); +x_18 = lean_ctor_get(x_4, 1); +x_19 = lean_ctor_get(x_17, 0); lean_inc(x_19); -x_20 = lean_ctor_get(x_16, 2); +x_20 = lean_ctor_get(x_17, 1); lean_inc(x_20); -x_21 = lean_nat_dec_lt(x_19, x_20); -if (x_21 == 0) -{ -lean_object* x_22; -lean_dec(x_20); -lean_dec(x_19); -lean_dec(x_18); -lean_dec(x_14); -x_22 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_22, 0, x_4); -lean_ctor_set(x_22, 1, x_11); -return x_22; -} -else -{ -uint8_t x_23; -x_23 = !lean_is_exclusive(x_16); -if (x_23 == 0) -{ -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; size_t x_32; size_t x_33; -x_24 = lean_ctor_get(x_16, 2); -lean_dec(x_24); -x_25 = lean_ctor_get(x_16, 1); -lean_dec(x_25); -x_26 = lean_ctor_get(x_16, 0); -lean_dec(x_26); -x_27 = lean_array_fget(x_18, x_19); -x_28 = lean_unsigned_to_nat(1u); -x_29 = lean_nat_add(x_19, x_28); -lean_dec(x_19); -lean_ctor_set(x_16, 1, x_29); -x_30 = lean_ctor_get(x_14, 0); -lean_inc(x_30); -lean_dec(x_14); -x_31 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_17, x_30, x_27); -lean_ctor_set(x_4, 1, x_31); -x_32 = 1; -x_33 = lean_usize_add(x_3, x_32); -x_3 = x_33; -goto _start; -} -else -{ -lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; size_t x_41; size_t x_42; -lean_dec(x_16); -x_35 = lean_array_fget(x_18, x_19); -x_36 = lean_unsigned_to_nat(1u); -x_37 = lean_nat_add(x_19, x_36); -lean_dec(x_19); -x_38 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_38, 0, x_18); -lean_ctor_set(x_38, 1, x_37); -lean_ctor_set(x_38, 2, x_20); -x_39 = lean_ctor_get(x_14, 0); -lean_inc(x_39); -lean_dec(x_14); -x_40 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_17, x_39, x_35); -lean_ctor_set(x_4, 1, x_40); -lean_ctor_set(x_4, 0, x_38); -x_41 = 1; -x_42 = lean_usize_add(x_3, x_41); -x_3 = x_42; -goto _start; -} -} -} -else -{ -lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; uint8_t x_49; -x_44 = lean_ctor_get(x_4, 0); -x_45 = lean_ctor_get(x_4, 1); -lean_inc(x_45); -lean_inc(x_44); -lean_dec(x_4); -x_46 = lean_ctor_get(x_44, 0); -lean_inc(x_46); -x_47 = lean_ctor_get(x_44, 1); -lean_inc(x_47); -x_48 = lean_ctor_get(x_44, 2); -lean_inc(x_48); -x_49 = lean_nat_dec_lt(x_47, x_48); -if (x_49 == 0) -{ -lean_object* x_50; lean_object* x_51; -lean_dec(x_48); -lean_dec(x_47); -lean_dec(x_46); -lean_dec(x_14); -x_50 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_50, 0, x_44); -lean_ctor_set(x_50, 1, x_45); -x_51 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_51, 0, x_50); -lean_ctor_set(x_51, 1, x_11); -return x_51; -} -else -{ -lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; size_t x_60; size_t x_61; -if (lean_is_exclusive(x_44)) { - lean_ctor_release(x_44, 0); - lean_ctor_release(x_44, 1); - lean_ctor_release(x_44, 2); - x_52 = x_44; -} else { - lean_dec_ref(x_44); - x_52 = lean_box(0); -} -x_53 = lean_array_fget(x_46, x_47); -x_54 = lean_unsigned_to_nat(1u); -x_55 = lean_nat_add(x_47, x_54); -lean_dec(x_47); -if (lean_is_scalar(x_52)) { - x_56 = lean_alloc_ctor(0, 3, 0); -} else { - x_56 = x_52; -} -lean_ctor_set(x_56, 0, x_46); -lean_ctor_set(x_56, 1, x_55); -lean_ctor_set(x_56, 2, x_48); -x_57 = lean_ctor_get(x_14, 0); -lean_inc(x_57); -lean_dec(x_14); -x_58 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_45, x_57, x_53); -x_59 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_59, 0, x_56); -lean_ctor_set(x_59, 1, x_58); -x_60 = 1; -x_61 = lean_usize_add(x_3, x_60); -x_3 = x_61; -x_4 = x_59; -goto _start; -} -} -} -} -} -LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__2(lean_object* x_1, size_t x_2, size_t 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) { -_start: -{ -uint8_t x_12; -x_12 = lean_usize_dec_lt(x_3, x_2); -if (x_12 == 0) -{ -lean_object* x_13; -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_4); -lean_ctor_set(x_13, 1, x_11); -return x_13; -} -else -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t 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; lean_object* x_32; size_t x_33; size_t x_34; -x_14 = lean_ctor_get(x_1, 0); -x_15 = lean_array_uget(x_14, x_3); -x_16 = lean_ctor_get(x_4, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_4, 1); -lean_inc(x_17); -lean_dec(x_4); -x_18 = lean_ctor_get(x_15, 2); -lean_inc(x_18); -x_19 = 1; -lean_inc(x_17); -x_20 = l_Lean_Compiler_LCNF_replaceExprFVars(x_18, x_17, x_19, x_7, x_8, x_9, x_10, x_11); -x_21 = lean_ctor_get(x_20, 0); +x_21 = lean_ctor_get(x_17, 2); lean_inc(x_21); -x_22 = lean_ctor_get(x_20, 1); -lean_inc(x_22); +x_22 = lean_nat_dec_lt(x_20, x_21); +if (x_22 == 0) +{ +lean_object* x_23; +lean_dec(x_21); lean_dec(x_20); -x_23 = 0; -x_24 = l_Lean_Compiler_LCNF_mkAuxParam(x_21, x_23, x_7, x_8, x_9, x_10, x_22); -x_25 = lean_ctor_get(x_24, 0); -lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -lean_inc(x_25); -x_27 = lean_array_push(x_16, x_25); -x_28 = lean_ctor_get(x_15, 0); -lean_inc(x_28); +lean_dec(x_19); lean_dec(x_15); -x_29 = lean_ctor_get(x_25, 0); -lean_inc(x_29); +x_23 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_23, 0, x_4); +lean_ctor_set(x_23, 1, x_12); +return x_23; +} +else +{ +uint8_t x_24; +x_24 = !lean_is_exclusive(x_17); +if (x_24 == 0) +{ +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; lean_object* x_32; size_t x_33; size_t x_34; +x_25 = lean_ctor_get(x_17, 2); lean_dec(x_25); -x_30 = l_Lean_Expr_fvar___override(x_29); -x_31 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_17, x_28, x_30); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_27); -lean_ctor_set(x_32, 1, x_31); +x_26 = lean_ctor_get(x_17, 1); +lean_dec(x_26); +x_27 = lean_ctor_get(x_17, 0); +lean_dec(x_27); +x_28 = lean_array_fget(x_19, x_20); +x_29 = lean_unsigned_to_nat(1u); +x_30 = lean_nat_add(x_20, x_29); +lean_dec(x_20); +lean_ctor_set(x_17, 1, x_30); +x_31 = lean_ctor_get(x_15, 0); +lean_inc(x_31); +lean_dec(x_15); +x_32 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_18, x_31, x_28); +lean_ctor_set(x_4, 1, x_32); x_33 = 1; x_34 = lean_usize_add(x_3, x_33); x_3 = x_34; -x_4 = x_32; -x_11 = x_26; +goto _start; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; size_t x_42; size_t x_43; +lean_dec(x_17); +x_36 = lean_array_fget(x_19, x_20); +x_37 = lean_unsigned_to_nat(1u); +x_38 = lean_nat_add(x_20, x_37); +lean_dec(x_20); +x_39 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_39, 0, x_19); +lean_ctor_set(x_39, 1, x_38); +lean_ctor_set(x_39, 2, x_21); +x_40 = lean_ctor_get(x_15, 0); +lean_inc(x_40); +lean_dec(x_15); +x_41 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_18, x_40, x_36); +lean_ctor_set(x_4, 1, x_41); +lean_ctor_set(x_4, 0, x_39); +x_42 = 1; +x_43 = lean_usize_add(x_3, x_42); +x_3 = x_43; +goto _start; +} +} +} +else +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; uint8_t x_50; +x_45 = lean_ctor_get(x_4, 0); +x_46 = lean_ctor_get(x_4, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_4); +x_47 = lean_ctor_get(x_45, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_45, 1); +lean_inc(x_48); +x_49 = lean_ctor_get(x_45, 2); +lean_inc(x_49); +x_50 = lean_nat_dec_lt(x_48, x_49); +if (x_50 == 0) +{ +lean_object* x_51; lean_object* x_52; +lean_dec(x_49); +lean_dec(x_48); +lean_dec(x_47); +lean_dec(x_15); +x_51 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_51, 0, x_45); +lean_ctor_set(x_51, 1, x_46); +x_52 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_52, 0, x_51); +lean_ctor_set(x_52, 1, x_12); +return x_52; +} +else +{ +lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; size_t x_61; size_t x_62; +if (lean_is_exclusive(x_45)) { + lean_ctor_release(x_45, 0); + lean_ctor_release(x_45, 1); + lean_ctor_release(x_45, 2); + x_53 = x_45; +} else { + lean_dec_ref(x_45); + x_53 = lean_box(0); +} +x_54 = lean_array_fget(x_47, x_48); +x_55 = lean_unsigned_to_nat(1u); +x_56 = lean_nat_add(x_48, x_55); +lean_dec(x_48); +if (lean_is_scalar(x_53)) { + x_57 = lean_alloc_ctor(0, 3, 0); +} else { + x_57 = x_53; +} +lean_ctor_set(x_57, 0, x_47); +lean_ctor_set(x_57, 1, x_56); +lean_ctor_set(x_57, 2, x_49); +x_58 = lean_ctor_get(x_15, 0); +lean_inc(x_58); +lean_dec(x_15); +x_59 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_46, x_58, x_54); +x_60 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_60, 0, x_57); +lean_ctor_set(x_60, 1, x_59); +x_61 = 1; +x_62 = lean_usize_add(x_3, x_61); +x_3 = x_62; +x_4 = x_60; +goto _start; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__2(lean_object* x_1, size_t x_2, size_t 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: +{ +uint8_t x_13; +x_13 = lean_usize_dec_lt(x_3, x_2); +if (x_13 == 0) +{ +lean_object* x_14; +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_4); +lean_ctor_set(x_14, 1, x_12); +return x_14; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t 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; lean_object* x_32; lean_object* x_33; size_t x_34; size_t x_35; +x_15 = lean_ctor_get(x_1, 0); +x_16 = lean_array_uget(x_15, x_3); +x_17 = lean_ctor_get(x_4, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_4, 1); +lean_inc(x_18); +lean_dec(x_4); +x_19 = lean_ctor_get(x_16, 2); +lean_inc(x_19); +x_20 = 1; +lean_inc(x_18); +x_21 = l_Lean_Compiler_LCNF_replaceExprFVars(x_19, x_18, x_20, x_8, x_9, x_10, x_11, x_12); +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_21, 1); +lean_inc(x_23); +lean_dec(x_21); +x_24 = 0; +x_25 = l_Lean_Compiler_LCNF_mkAuxParam(x_22, x_24, x_8, x_9, x_10, x_11, x_23); +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_25, 1); +lean_inc(x_27); +lean_dec(x_25); +lean_inc(x_26); +x_28 = lean_array_push(x_17, x_26); +x_29 = lean_ctor_get(x_16, 0); +lean_inc(x_29); +lean_dec(x_16); +x_30 = lean_ctor_get(x_26, 0); +lean_inc(x_30); +lean_dec(x_26); +x_31 = l_Lean_Expr_fvar___override(x_30); +x_32 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_18, x_29, x_31); +x_33 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_33, 0, x_28); +lean_ctor_set(x_33, 1, x_32); +x_34 = 1; +x_35 = lean_usize_add(x_3, x_34); +x_3 = x_35; +x_4 = x_33; +x_12 = x_27; goto _start; } } @@ -593,681 +594,171 @@ x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_specializePartialApp(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_Compiler_LCNF_Simp_specializePartialApp(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_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; size_t x_17; size_t x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; -x_9 = lean_ctor_get(x_1, 3); -lean_inc(x_9); -x_10 = lean_array_get_size(x_9); -x_11 = lean_unsigned_to_nat(0u); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; +x_10 = lean_ctor_get(x_1, 3); lean_inc(x_10); -x_12 = l_Array_toSubarray___rarg(x_9, x_11, x_10); -x_13 = lean_ctor_get(x_1, 0); -lean_inc(x_13); -x_14 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__1; -x_15 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_15, 0, x_12); -lean_ctor_set(x_15, 1, x_14); -x_16 = lean_array_get_size(x_13); -x_17 = lean_usize_of_nat(x_16); -x_18 = 0; -x_19 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__1(x_13, x_17, x_18, x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_19, 1); -lean_inc(x_21); -lean_dec(x_19); -x_22 = !lean_is_exclusive(x_20); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; size_t x_27; lean_object* x_28; size_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; uint8_t x_39; lean_object* x_40; -x_23 = lean_ctor_get(x_20, 0); -lean_dec(x_23); -x_24 = l_Array_toSubarray___rarg(x_13, x_10, x_16); -x_25 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__2; -lean_ctor_set(x_20, 0, x_25); -x_26 = lean_ctor_get(x_24, 2); -lean_inc(x_26); -x_27 = lean_usize_of_nat(x_26); -lean_dec(x_26); -x_28 = lean_ctor_get(x_24, 1); -lean_inc(x_28); -x_29 = lean_usize_of_nat(x_28); -lean_dec(x_28); -x_30 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__2(x_24, x_27, x_29, x_20, x_2, x_3, x_4, x_5, x_6, x_7, x_21); -lean_dec(x_24); -x_31 = lean_ctor_get(x_30, 0); -lean_inc(x_31); -x_32 = lean_ctor_get(x_30, 1); -lean_inc(x_32); -lean_dec(x_30); -x_33 = lean_ctor_get(x_31, 0); -lean_inc(x_33); -x_34 = lean_ctor_get(x_31, 1); -lean_inc(x_34); -lean_dec(x_31); -x_35 = lean_ctor_get(x_1, 1); -lean_inc(x_35); -lean_dec(x_1); -x_36 = l_Lean_Compiler_LCNF_Code_internalize(x_35, x_34, x_4, x_5, x_6, x_7, x_32); -x_37 = lean_ctor_get(x_36, 0); -lean_inc(x_37); -x_38 = lean_ctor_get(x_36, 1); -lean_inc(x_38); -lean_dec(x_36); -x_39 = 0; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_37); -x_40 = l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(x_37, x_39, x_2, x_3, x_4, x_5, x_6, x_7, x_38); -if (lean_obj_tag(x_40) == 0) -{ -lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_41 = lean_ctor_get(x_40, 1); -lean_inc(x_41); -lean_dec(x_40); -x_42 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__4; -x_43 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_33, x_37, x_42, x_4, x_5, x_6, x_7, x_41); -return x_43; -} -else -{ -uint8_t x_44; -lean_dec(x_37); -lean_dec(x_33); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -x_44 = !lean_is_exclusive(x_40); -if (x_44 == 0) -{ -return x_40; -} -else -{ -lean_object* x_45; lean_object* x_46; lean_object* x_47; -x_45 = lean_ctor_get(x_40, 0); -x_46 = lean_ctor_get(x_40, 1); -lean_inc(x_46); -lean_inc(x_45); -lean_dec(x_40); -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; -} -} -} -else -{ -lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; size_t x_53; lean_object* x_54; size_t x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; lean_object* x_66; -x_48 = lean_ctor_get(x_20, 1); -lean_inc(x_48); -lean_dec(x_20); -x_49 = l_Array_toSubarray___rarg(x_13, x_10, x_16); -x_50 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__2; -x_51 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_51, 0, x_50); -lean_ctor_set(x_51, 1, x_48); -x_52 = lean_ctor_get(x_49, 2); -lean_inc(x_52); -x_53 = lean_usize_of_nat(x_52); -lean_dec(x_52); -x_54 = lean_ctor_get(x_49, 1); -lean_inc(x_54); -x_55 = lean_usize_of_nat(x_54); -lean_dec(x_54); -x_56 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__2(x_49, x_53, x_55, x_51, x_2, x_3, x_4, x_5, x_6, x_7, x_21); -lean_dec(x_49); -x_57 = lean_ctor_get(x_56, 0); -lean_inc(x_57); -x_58 = lean_ctor_get(x_56, 1); -lean_inc(x_58); -lean_dec(x_56); -x_59 = lean_ctor_get(x_57, 0); -lean_inc(x_59); -x_60 = lean_ctor_get(x_57, 1); -lean_inc(x_60); -lean_dec(x_57); -x_61 = lean_ctor_get(x_1, 1); -lean_inc(x_61); -lean_dec(x_1); -x_62 = l_Lean_Compiler_LCNF_Code_internalize(x_61, x_60, x_4, x_5, x_6, x_7, x_58); -x_63 = lean_ctor_get(x_62, 0); -lean_inc(x_63); -x_64 = lean_ctor_get(x_62, 1); -lean_inc(x_64); -lean_dec(x_62); -x_65 = 0; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_63); -x_66 = l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(x_63, x_65, x_2, x_3, x_4, x_5, x_6, x_7, x_64); -if (lean_obj_tag(x_66) == 0) -{ -lean_object* x_67; lean_object* x_68; lean_object* x_69; -x_67 = lean_ctor_get(x_66, 1); -lean_inc(x_67); -lean_dec(x_66); -x_68 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__4; -x_69 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_59, x_63, x_68, x_4, x_5, x_6, x_7, x_67); -return x_69; -} -else -{ -lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; -lean_dec(x_63); -lean_dec(x_59); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -x_70 = lean_ctor_get(x_66, 0); -lean_inc(x_70); -x_71 = lean_ctor_get(x_66, 1); -lean_inc(x_71); -if (lean_is_exclusive(x_66)) { - lean_ctor_release(x_66, 0); - lean_ctor_release(x_66, 1); - x_72 = x_66; -} else { - lean_dec_ref(x_66); - x_72 = lean_box(0); -} -if (lean_is_scalar(x_72)) { - x_73 = lean_alloc_ctor(1, 2, 0); -} else { - x_73 = x_72; -} -lean_ctor_set(x_73, 0, x_70); -lean_ctor_set(x_73, 1, x_71); -return x_73; -} -} -} -} -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__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) { -_start: -{ -size_t x_12; size_t x_13; lean_object* x_14; -x_12 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_13 = lean_unbox_usize(x_3); -lean_dec(x_3); -x_14 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__1(x_1, x_12, x_13, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_1); -return x_14; -} -} -LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__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) { -_start: -{ -size_t x_12; size_t x_13; lean_object* x_14; -x_12 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_13 = lean_unbox_usize(x_3); -lean_dec(x_3); -x_14 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__2(x_1, x_12, x_13, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_1); -return x_14; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_specializePartialApp___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_specializePartialApp(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean_dec(x_3); -lean_dec(x_2); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineJp_x3f___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_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; lean_object* x_16; -x_11 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_5, x_6, x_7, x_8, x_9, x_10); -x_12 = lean_ctor_get(x_11, 1); -lean_inc(x_12); -lean_dec(x_11); -x_13 = lean_ctor_get(x_1, 2); -lean_inc(x_13); -x_14 = lean_ctor_get(x_1, 4); -lean_inc(x_14); -lean_dec(x_1); -x_15 = 0; -x_16 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_13, x_14, x_2, x_15, x_4, x_5, x_6, x_7, x_8, x_9, x_12); -lean_dec(x_13); -if (lean_obj_tag(x_16) == 0) -{ -uint8_t x_17; -x_17 = !lean_is_exclusive(x_16); -if (x_17 == 0) -{ -lean_object* x_18; lean_object* x_19; -x_18 = lean_ctor_get(x_16, 0); -x_19 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_19, 0, x_18); -lean_ctor_set(x_16, 0, x_19); -return x_16; -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_20 = lean_ctor_get(x_16, 0); -x_21 = lean_ctor_get(x_16, 1); -lean_inc(x_21); -lean_inc(x_20); -lean_dec(x_16); -x_22 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_22, 0, x_20); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_21); -return x_23; -} -} -else -{ -uint8_t x_24; -x_24 = !lean_is_exclusive(x_16); -if (x_24 == 0) -{ -return x_16; -} -else -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_16, 0); -x_26 = lean_ctor_get(x_16, 1); -lean_inc(x_26); -lean_inc(x_25); -lean_dec(x_16); -x_27 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_27, 0, x_25); -lean_ctor_set(x_27, 1, x_26); -return x_27; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineJp_x3f(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_10; lean_object* x_11; -x_10 = l_Lean_Compiler_LCNF_findFunDecl_x3f(x_1, x_5, x_6, x_7, x_8, x_9); -x_11 = lean_ctor_get(x_10, 0); +x_11 = lean_array_get_size(x_10); +x_12 = lean_unsigned_to_nat(0u); lean_inc(x_11); -if (lean_obj_tag(x_11) == 0) -{ -uint8_t 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); -x_12 = !lean_is_exclusive(x_10); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; -x_13 = lean_ctor_get(x_10, 0); -lean_dec(x_13); -x_14 = lean_box(0); -lean_ctor_set(x_10, 0, x_14); -return x_10; -} -else -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_15 = lean_ctor_get(x_10, 1); -lean_inc(x_15); -lean_dec(x_10); -x_16 = lean_box(0); -x_17 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_17, 0, x_16); -lean_ctor_set(x_17, 1, x_15); -return x_17; -} -} -else -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; -x_18 = lean_ctor_get(x_10, 1); -lean_inc(x_18); -lean_dec(x_10); -x_19 = lean_ctor_get(x_11, 0); -lean_inc(x_19); -lean_dec(x_11); -lean_inc(x_19); -x_20 = l_Lean_Compiler_LCNF_Simp_shouldInlineLocal(x_19, x_3, x_4, x_5, x_6, x_7, x_8, x_18); +x_13 = l_Array_toSubarray___rarg(x_10, x_12, x_11); +x_14 = lean_ctor_get(x_1, 0); +lean_inc(x_14); +x_15 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__1; +x_16 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_16, 0, x_13); +lean_ctor_set(x_16, 1, x_15); +x_17 = lean_array_get_size(x_14); +x_18 = lean_usize_of_nat(x_17); +x_19 = 0; +x_20 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__1(x_14, x_18, x_19, x_16, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); x_21 = lean_ctor_get(x_20, 0); lean_inc(x_21); -x_22 = lean_unbox(x_21); -lean_dec(x_21); -if (x_22 == 0) +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +x_23 = !lean_is_exclusive(x_21); +if (x_23 == 0) { -uint8_t x_23; -lean_dec(x_19); +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; size_t x_28; lean_object* x_29; size_t x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_24 = lean_ctor_get(x_21, 0); +lean_dec(x_24); +x_25 = l_Array_toSubarray___rarg(x_14, x_11, x_17); +x_26 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__2; +lean_ctor_set(x_21, 0, x_26); +x_27 = lean_ctor_get(x_25, 2); +lean_inc(x_27); +x_28 = lean_usize_of_nat(x_27); +lean_dec(x_27); +x_29 = lean_ctor_get(x_25, 1); +lean_inc(x_29); +x_30 = lean_usize_of_nat(x_29); +lean_dec(x_29); +x_31 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__2(x_25, x_28, x_30, x_21, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_22); +lean_dec(x_25); +x_32 = lean_ctor_get(x_31, 0); +lean_inc(x_32); +x_33 = lean_ctor_get(x_31, 1); +lean_inc(x_33); +lean_dec(x_31); +x_34 = lean_ctor_get(x_32, 0); +lean_inc(x_34); +x_35 = lean_ctor_get(x_32, 1); +lean_inc(x_35); +lean_dec(x_32); +x_36 = lean_ctor_get(x_1, 1); +lean_inc(x_36); +lean_dec(x_1); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +x_37 = l_Lean_Compiler_LCNF_Code_internalize(x_36, x_35, x_5, x_6, x_7, x_8, x_33); +if (lean_obj_tag(x_37) == 0) +{ +lean_object* x_38; lean_object* x_39; uint8_t x_40; lean_object* x_41; +x_38 = lean_ctor_get(x_37, 0); +lean_inc(x_38); +x_39 = lean_ctor_get(x_37, 1); +lean_inc(x_39); +lean_dec(x_37); +x_40 = 0; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_38); +x_41 = l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(x_38, x_40, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_39); +if (lean_obj_tag(x_41) == 0) +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_42 = lean_ctor_get(x_41, 1); +lean_inc(x_42); +lean_dec(x_41); +x_43 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__4; +x_44 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_34, x_38, x_43, x_5, x_6, x_7, x_8, x_42); +return x_44; +} +else +{ +uint8_t x_45; +lean_dec(x_38); +lean_dec(x_34); 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); -x_23 = !lean_is_exclusive(x_20); -if (x_23 == 0) +x_45 = !lean_is_exclusive(x_41); +if (x_45 == 0) { -lean_object* x_24; lean_object* x_25; -x_24 = lean_ctor_get(x_20, 0); -lean_dec(x_24); -x_25 = lean_box(0); -lean_ctor_set(x_20, 0, x_25); -return x_20; +return x_41; } else { -lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_26 = lean_ctor_get(x_20, 1); -lean_inc(x_26); -lean_dec(x_20); -x_27 = lean_box(0); -x_28 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_28, 0, x_27); -lean_ctor_set(x_28, 1, x_26); -return x_28; +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_41, 0); +x_47 = lean_ctor_get(x_41, 1); +lean_inc(x_47); +lean_inc(x_46); +lean_dec(x_41); +x_48 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_48, 0, x_46); +lean_ctor_set(x_48, 1, x_47); +return x_48; +} } } else { -lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_29 = lean_ctor_get(x_20, 1); -lean_inc(x_29); -lean_dec(x_20); -x_30 = lean_box(0); -x_31 = l_Lean_Compiler_LCNF_Simp_inlineJp_x3f___lambda__1(x_19, x_2, x_30, x_3, x_4, x_5, x_6, x_7, x_8, x_29); -lean_dec(x_4); -lean_dec(x_3); -return x_31; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineJp_x3f___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) { -_start: -{ -lean_object* x_11; -x_11 = l_Lean_Compiler_LCNF_Simp_inlineJp_x3f___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -return x_11; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("_x", 2); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__1; -x_3 = l_Lean_Name_str___override(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_box(0); -x_2 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f(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_9; uint8_t x_10; lean_object* x_11; lean_object* x_12; -x_9 = lean_ctor_get(x_2, 1); -x_10 = lean_ctor_get_uint8(x_9, 0); -if (x_10 == 0) -{ -lean_object* x_274; -x_274 = lean_box(0); -x_11 = x_274; -x_12 = x_8; -goto block_273; -} -else -{ -lean_object* x_275; -x_275 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__3; -x_11 = x_275; -x_12 = x_8; -goto block_273; -} -block_273: -{ -if (lean_obj_tag(x_11) == 0) -{ -lean_object* x_13; lean_object* x_14; +uint8_t x_49; +lean_dec(x_34); +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_13 = lean_box(0); -x_14 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_14, 0, x_13); -lean_ctor_set(x_14, 1, x_12); -return x_14; -} -else -{ -lean_object* x_15; lean_object* x_16; -lean_dec(x_11); -x_15 = lean_ctor_get(x_1, 3); -lean_inc(x_15); -x_16 = l_Lean_Expr_getAppFn(x_15); -if (lean_obj_tag(x_16) == 4) -{ -lean_object* x_17; lean_object* x_18; uint8_t x_19; -x_17 = lean_ctor_get(x_16, 0); -lean_inc(x_17); -lean_dec(x_16); -x_18 = lean_st_ref_get(x_7, x_12); -x_19 = !lean_is_exclusive(x_18); -if (x_19 == 0) -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_20 = lean_ctor_get(x_18, 0); -x_21 = lean_ctor_get(x_18, 1); -x_22 = lean_ctor_get(x_20, 0); -lean_inc(x_22); -lean_dec(x_20); -lean_inc(x_17); -x_23 = lean_environment_find(x_22, x_17); -if (lean_obj_tag(x_23) == 0) -{ -lean_object* x_24; -lean_dec(x_17); -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_24 = lean_box(0); -lean_ctor_set(x_18, 0, x_24); -return x_18; -} -else -{ -lean_object* x_25; lean_object* x_26; uint8_t x_27; -x_25 = lean_ctor_get(x_23, 0); -lean_inc(x_25); -lean_dec(x_23); -x_26 = l_Lean_ConstantInfo_type(x_25); -lean_dec(x_25); -x_27 = l_Lean_Compiler_LCNF_hasLocalInst(x_26); -lean_dec(x_26); -if (x_27 == 0) -{ -lean_object* x_28; -lean_dec(x_17); -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_28 = lean_box(0); -lean_ctor_set(x_18, 0, x_28); -return x_18; -} -else -{ -lean_object* x_29; lean_object* x_30; uint8_t x_31; -lean_free_object(x_18); -lean_inc(x_17); -x_29 = l_Lean_Meta_isInstance(x_17, x_6, x_7, x_21); -x_30 = lean_ctor_get(x_29, 0); -lean_inc(x_30); -x_31 = lean_unbox(x_30); -lean_dec(x_30); -if (x_31 == 0) -{ -lean_object* x_32; lean_object* x_33; lean_object* x_34; -x_32 = lean_ctor_get(x_29, 1); -lean_inc(x_32); -lean_dec(x_29); -x_33 = l_Lean_Compiler_LCNF_getDecl_x3f(x_17, x_4, x_5, x_6, x_7, x_32); -x_34 = lean_ctor_get(x_33, 0); -lean_inc(x_34); -if (lean_obj_tag(x_34) == 0) -{ -uint8_t x_35; -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_35 = !lean_is_exclusive(x_33); -if (x_35 == 0) -{ -lean_object* x_36; lean_object* x_37; -x_36 = lean_ctor_get(x_33, 0); -lean_dec(x_36); -x_37 = lean_box(0); -lean_ctor_set(x_33, 0, x_37); -return x_33; -} -else -{ -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_33, 1); -lean_inc(x_38); -lean_dec(x_33); -x_39 = lean_box(0); -x_40 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_40, 0, x_39); -lean_ctor_set(x_40, 1, x_38); -return x_40; -} -} -else -{ -uint8_t x_41; -x_41 = !lean_is_exclusive(x_33); -if (x_41 == 0) -{ -lean_object* x_42; lean_object* x_43; uint8_t x_44; -x_42 = lean_ctor_get(x_33, 1); -x_43 = lean_ctor_get(x_33, 0); -lean_dec(x_43); -x_44 = !lean_is_exclusive(x_34); -if (x_44 == 0) -{ -lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; uint8_t x_49; -x_45 = lean_ctor_get(x_34, 0); -x_46 = lean_unsigned_to_nat(0u); -x_47 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_15, x_46); -x_48 = l_Lean_Compiler_LCNF_Decl_getArity(x_45); -lean_dec(x_45); -x_49 = lean_nat_dec_lt(x_47, x_48); -lean_dec(x_48); -lean_dec(x_47); +x_49 = !lean_is_exclusive(x_37); if (x_49 == 0) { -lean_object* x_50; -lean_free_object(x_34); -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_50 = lean_box(0); -lean_ctor_set(x_33, 0, x_50); -return x_33; +return x_37; } else { -lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; size_t x_56; size_t x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; -lean_free_object(x_33); -x_51 = lean_ctor_get(x_1, 2); +lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_50 = lean_ctor_get(x_37, 0); +x_51 = lean_ctor_get(x_37, 1); lean_inc(x_51); -x_52 = l_Lean_Compiler_LCNF_mkNewParams(x_51, x_4, x_5, x_6, x_7, x_42); -x_53 = lean_ctor_get(x_52, 0); -lean_inc(x_53); -x_54 = lean_ctor_get(x_52, 1); -lean_inc(x_54); -lean_dec(x_52); -x_55 = lean_array_get_size(x_53); -x_56 = lean_usize_of_nat(x_55); -lean_dec(x_55); -x_57 = 0; -lean_inc(x_53); -x_58 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_56, x_57, x_53); -x_59 = l_Lean_mkAppN(x_15, x_58); -x_60 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_61 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_59, x_60, x_4, x_5, x_6, x_7, x_54); -if (lean_obj_tag(x_61) == 0) +lean_inc(x_50); +lean_dec(x_37); +x_52 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_52, 0, x_50); +lean_ctor_set(x_52, 1, x_51); +return x_52; +} +} +} +else { -lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; +lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; size_t x_58; lean_object* x_59; size_t x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +x_53 = lean_ctor_get(x_21, 1); +lean_inc(x_53); +lean_dec(x_21); +x_54 = l_Array_toSubarray___rarg(x_14, x_11, x_17); +x_55 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__2; +x_56 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_56, 0, x_55); +lean_ctor_set(x_56, 1, x_53); +x_57 = lean_ctor_get(x_54, 2); +lean_inc(x_57); +x_58 = lean_usize_of_nat(x_57); +lean_dec(x_57); +x_59 = lean_ctor_get(x_54, 1); +lean_inc(x_59); +x_60 = lean_usize_of_nat(x_59); +lean_dec(x_59); +x_61 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__2(x_54, x_58, x_60, x_56, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_22); +lean_dec(x_54); x_62 = lean_ctor_get(x_61, 0); lean_inc(x_62); x_63 = lean_ctor_get(x_61, 1); @@ -1275,1997 +766,172 @@ lean_inc(x_63); lean_dec(x_61); x_64 = lean_ctor_get(x_62, 0); lean_inc(x_64); -x_65 = lean_alloc_ctor(5, 1, 0); -lean_ctor_set(x_65, 0, x_64); -x_66 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_66, 0, x_62); -lean_ctor_set(x_66, 1, x_65); -x_67 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__4; +x_65 = lean_ctor_get(x_62, 1); +lean_inc(x_65); +lean_dec(x_62); +x_66 = lean_ctor_get(x_1, 1); +lean_inc(x_66); +lean_dec(x_1); +lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -lean_inc(x_4); -x_68 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_53, x_66, x_67, x_4, x_5, x_6, x_7, x_63); -if (lean_obj_tag(x_68) == 0) +x_67 = l_Lean_Compiler_LCNF_Code_internalize(x_66, x_65, x_5, x_6, x_7, x_8, x_63); +if (lean_obj_tag(x_67) == 0) { -lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; -x_69 = lean_ctor_get(x_68, 0); +lean_object* x_68; lean_object* x_69; uint8_t x_70; lean_object* x_71; +x_68 = lean_ctor_get(x_67, 0); +lean_inc(x_68); +x_69 = lean_ctor_get(x_67, 1); lean_inc(x_69); -x_70 = lean_ctor_get(x_68, 1); -lean_inc(x_70); -lean_dec(x_68); -x_71 = lean_ctor_get(x_1, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_69, 0); +lean_dec(x_67); +x_70 = 0; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_68); +x_71 = l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(x_68, x_70, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_69); +if (lean_obj_tag(x_71) == 0) +{ +lean_object* x_72; lean_object* x_73; lean_object* x_74; +x_72 = lean_ctor_get(x_71, 1); lean_inc(x_72); -x_73 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_71, x_72, x_2, x_3, x_4, x_5, x_6, x_7, x_70); -if (lean_obj_tag(x_73) == 0) -{ -lean_object* x_74; lean_object* x_75; uint8_t x_76; -x_74 = lean_ctor_get(x_73, 1); -lean_inc(x_74); -lean_dec(x_73); -x_75 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_74); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_76 = !lean_is_exclusive(x_75); -if (x_76 == 0) -{ -lean_object* x_77; -x_77 = lean_ctor_get(x_75, 0); -lean_dec(x_77); -lean_ctor_set(x_34, 0, x_69); -lean_ctor_set(x_75, 0, x_34); -return x_75; +lean_dec(x_71); +x_73 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__4; +x_74 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_64, x_68, x_73, x_5, x_6, x_7, x_8, x_72); +return x_74; } else { -lean_object* x_78; lean_object* x_79; -x_78 = lean_ctor_get(x_75, 1); -lean_inc(x_78); -lean_dec(x_75); -lean_ctor_set(x_34, 0, x_69); -x_79 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_79, 0, x_34); -lean_ctor_set(x_79, 1, x_78); -return x_79; -} -} -else -{ -uint8_t x_80; -lean_dec(x_69); -lean_free_object(x_34); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_80 = !lean_is_exclusive(x_73); -if (x_80 == 0) -{ -return x_73; -} -else -{ -lean_object* x_81; lean_object* x_82; lean_object* x_83; -x_81 = lean_ctor_get(x_73, 0); -x_82 = lean_ctor_get(x_73, 1); -lean_inc(x_82); -lean_inc(x_81); -lean_dec(x_73); -x_83 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_83, 0, x_81); -lean_ctor_set(x_83, 1, x_82); -return x_83; -} -} -} -else -{ -uint8_t x_84; -lean_free_object(x_34); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_84 = !lean_is_exclusive(x_68); -if (x_84 == 0) -{ -return x_68; -} -else -{ -lean_object* x_85; lean_object* x_86; lean_object* x_87; -x_85 = lean_ctor_get(x_68, 0); -x_86 = lean_ctor_get(x_68, 1); -lean_inc(x_86); -lean_inc(x_85); +lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_dec(x_68); -x_87 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_87, 0, x_85); -lean_ctor_set(x_87, 1, x_86); -return x_87; -} -} -} -else -{ -uint8_t x_88; -lean_dec(x_53); -lean_free_object(x_34); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_88 = !lean_is_exclusive(x_61); -if (x_88 == 0) -{ -return x_61; -} -else -{ -lean_object* x_89; lean_object* x_90; lean_object* x_91; -x_89 = lean_ctor_get(x_61, 0); -x_90 = lean_ctor_get(x_61, 1); -lean_inc(x_90); -lean_inc(x_89); -lean_dec(x_61); -x_91 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_91, 0, x_89); -lean_ctor_set(x_91, 1, x_90); -return x_91; -} -} -} -} -else -{ -lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; uint8_t x_96; -x_92 = lean_ctor_get(x_34, 0); -lean_inc(x_92); -lean_dec(x_34); -x_93 = lean_unsigned_to_nat(0u); -x_94 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_15, x_93); -x_95 = l_Lean_Compiler_LCNF_Decl_getArity(x_92); -lean_dec(x_92); -x_96 = lean_nat_dec_lt(x_94, x_95); -lean_dec(x_95); -lean_dec(x_94); -if (x_96 == 0) -{ -lean_object* x_97; -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_97 = lean_box(0); -lean_ctor_set(x_33, 0, x_97); -return x_33; -} -else -{ -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; size_t x_103; size_t x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; -lean_free_object(x_33); -x_98 = lean_ctor_get(x_1, 2); -lean_inc(x_98); -x_99 = l_Lean_Compiler_LCNF_mkNewParams(x_98, x_4, x_5, x_6, x_7, x_42); -x_100 = lean_ctor_get(x_99, 0); -lean_inc(x_100); -x_101 = lean_ctor_get(x_99, 1); -lean_inc(x_101); -lean_dec(x_99); -x_102 = lean_array_get_size(x_100); -x_103 = lean_usize_of_nat(x_102); -lean_dec(x_102); -x_104 = 0; -lean_inc(x_100); -x_105 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_103, x_104, x_100); -x_106 = l_Lean_mkAppN(x_15, x_105); -x_107 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_108 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_106, x_107, x_4, x_5, x_6, x_7, x_101); -if (lean_obj_tag(x_108) == 0) -{ -lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; -x_109 = lean_ctor_get(x_108, 0); -lean_inc(x_109); -x_110 = lean_ctor_get(x_108, 1); -lean_inc(x_110); -lean_dec(x_108); -x_111 = lean_ctor_get(x_109, 0); -lean_inc(x_111); -x_112 = lean_alloc_ctor(5, 1, 0); -lean_ctor_set(x_112, 0, x_111); -x_113 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_113, 0, x_109); -lean_ctor_set(x_113, 1, x_112); -x_114 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__4; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_115 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_100, x_113, x_114, x_4, x_5, x_6, x_7, x_110); -if (lean_obj_tag(x_115) == 0) -{ -lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; -x_116 = lean_ctor_get(x_115, 0); -lean_inc(x_116); -x_117 = lean_ctor_get(x_115, 1); -lean_inc(x_117); -lean_dec(x_115); -x_118 = lean_ctor_get(x_1, 0); -lean_inc(x_118); -x_119 = lean_ctor_get(x_116, 0); -lean_inc(x_119); -x_120 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_118, x_119, x_2, x_3, x_4, x_5, x_6, x_7, x_117); -if (lean_obj_tag(x_120) == 0) -{ -lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; -x_121 = lean_ctor_get(x_120, 1); -lean_inc(x_121); -lean_dec(x_120); -x_122 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_121); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_123 = lean_ctor_get(x_122, 1); -lean_inc(x_123); -if (lean_is_exclusive(x_122)) { - lean_ctor_release(x_122, 0); - lean_ctor_release(x_122, 1); - x_124 = x_122; -} else { - lean_dec_ref(x_122); - x_124 = lean_box(0); -} -x_125 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_125, 0, x_116); -if (lean_is_scalar(x_124)) { - x_126 = lean_alloc_ctor(0, 2, 0); -} else { - x_126 = x_124; -} -lean_ctor_set(x_126, 0, x_125); -lean_ctor_set(x_126, 1, x_123); -return x_126; -} -else -{ -lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; -lean_dec(x_116); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_127 = lean_ctor_get(x_120, 0); -lean_inc(x_127); -x_128 = lean_ctor_get(x_120, 1); -lean_inc(x_128); -if (lean_is_exclusive(x_120)) { - lean_ctor_release(x_120, 0); - lean_ctor_release(x_120, 1); - x_129 = x_120; -} else { - lean_dec_ref(x_120); - x_129 = lean_box(0); -} -if (lean_is_scalar(x_129)) { - x_130 = lean_alloc_ctor(1, 2, 0); -} else { - x_130 = x_129; -} -lean_ctor_set(x_130, 0, x_127); -lean_ctor_set(x_130, 1, x_128); -return x_130; -} -} -else -{ -lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_131 = lean_ctor_get(x_115, 0); -lean_inc(x_131); -x_132 = lean_ctor_get(x_115, 1); -lean_inc(x_132); -if (lean_is_exclusive(x_115)) { - lean_ctor_release(x_115, 0); - lean_ctor_release(x_115, 1); - x_133 = x_115; -} else { - lean_dec_ref(x_115); - x_133 = lean_box(0); -} -if (lean_is_scalar(x_133)) { - x_134 = lean_alloc_ctor(1, 2, 0); -} else { - x_134 = x_133; -} -lean_ctor_set(x_134, 0, x_131); -lean_ctor_set(x_134, 1, x_132); -return x_134; -} -} -else -{ -lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; -lean_dec(x_100); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_135 = lean_ctor_get(x_108, 0); -lean_inc(x_135); -x_136 = lean_ctor_get(x_108, 1); -lean_inc(x_136); -if (lean_is_exclusive(x_108)) { - lean_ctor_release(x_108, 0); - lean_ctor_release(x_108, 1); - x_137 = x_108; -} else { - lean_dec_ref(x_108); - x_137 = lean_box(0); -} -if (lean_is_scalar(x_137)) { - x_138 = lean_alloc_ctor(1, 2, 0); -} else { - x_138 = x_137; -} -lean_ctor_set(x_138, 0, x_135); -lean_ctor_set(x_138, 1, x_136); -return x_138; -} -} -} -} -else -{ -lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; uint8_t x_145; -x_139 = lean_ctor_get(x_33, 1); -lean_inc(x_139); -lean_dec(x_33); -x_140 = lean_ctor_get(x_34, 0); -lean_inc(x_140); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - x_141 = x_34; -} else { - lean_dec_ref(x_34); - x_141 = lean_box(0); -} -x_142 = lean_unsigned_to_nat(0u); -x_143 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_15, x_142); -x_144 = l_Lean_Compiler_LCNF_Decl_getArity(x_140); -lean_dec(x_140); -x_145 = lean_nat_dec_lt(x_143, x_144); -lean_dec(x_144); -lean_dec(x_143); -if (x_145 == 0) -{ -lean_object* x_146; lean_object* x_147; -lean_dec(x_141); -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_146 = lean_box(0); -x_147 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_147, 0, x_146); -lean_ctor_set(x_147, 1, x_139); -return x_147; -} -else -{ -lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; size_t x_153; size_t x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; -x_148 = lean_ctor_get(x_1, 2); -lean_inc(x_148); -x_149 = l_Lean_Compiler_LCNF_mkNewParams(x_148, x_4, x_5, x_6, x_7, x_139); -x_150 = lean_ctor_get(x_149, 0); -lean_inc(x_150); -x_151 = lean_ctor_get(x_149, 1); -lean_inc(x_151); -lean_dec(x_149); -x_152 = lean_array_get_size(x_150); -x_153 = lean_usize_of_nat(x_152); -lean_dec(x_152); -x_154 = 0; -lean_inc(x_150); -x_155 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_153, x_154, x_150); -x_156 = l_Lean_mkAppN(x_15, x_155); -x_157 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_158 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_156, x_157, x_4, x_5, x_6, x_7, x_151); -if (lean_obj_tag(x_158) == 0) -{ -lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; -x_159 = lean_ctor_get(x_158, 0); -lean_inc(x_159); -x_160 = lean_ctor_get(x_158, 1); -lean_inc(x_160); -lean_dec(x_158); -x_161 = lean_ctor_get(x_159, 0); -lean_inc(x_161); -x_162 = lean_alloc_ctor(5, 1, 0); -lean_ctor_set(x_162, 0, x_161); -x_163 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_163, 0, x_159); -lean_ctor_set(x_163, 1, x_162); -x_164 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__4; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_165 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_150, x_163, x_164, x_4, x_5, x_6, x_7, x_160); -if (lean_obj_tag(x_165) == 0) -{ -lean_object* x_166; lean_object* x_167; lean_object* x_168; lean_object* x_169; lean_object* x_170; -x_166 = lean_ctor_get(x_165, 0); -lean_inc(x_166); -x_167 = lean_ctor_get(x_165, 1); -lean_inc(x_167); -lean_dec(x_165); -x_168 = lean_ctor_get(x_1, 0); -lean_inc(x_168); -x_169 = lean_ctor_get(x_166, 0); -lean_inc(x_169); -x_170 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_168, x_169, x_2, x_3, x_4, x_5, x_6, x_7, x_167); -if (lean_obj_tag(x_170) == 0) -{ -lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; -x_171 = lean_ctor_get(x_170, 1); -lean_inc(x_171); -lean_dec(x_170); -x_172 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_171); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_173 = lean_ctor_get(x_172, 1); -lean_inc(x_173); -if (lean_is_exclusive(x_172)) { - lean_ctor_release(x_172, 0); - lean_ctor_release(x_172, 1); - x_174 = x_172; -} else { - lean_dec_ref(x_172); - x_174 = lean_box(0); -} -if (lean_is_scalar(x_141)) { - x_175 = lean_alloc_ctor(1, 1, 0); -} else { - x_175 = x_141; -} -lean_ctor_set(x_175, 0, x_166); -if (lean_is_scalar(x_174)) { - x_176 = lean_alloc_ctor(0, 2, 0); -} else { - x_176 = x_174; -} -lean_ctor_set(x_176, 0, x_175); -lean_ctor_set(x_176, 1, x_173); -return x_176; -} -else -{ -lean_object* x_177; lean_object* x_178; lean_object* x_179; lean_object* x_180; -lean_dec(x_166); -lean_dec(x_141); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_177 = lean_ctor_get(x_170, 0); -lean_inc(x_177); -x_178 = lean_ctor_get(x_170, 1); -lean_inc(x_178); -if (lean_is_exclusive(x_170)) { - lean_ctor_release(x_170, 0); - lean_ctor_release(x_170, 1); - x_179 = x_170; -} else { - lean_dec_ref(x_170); - x_179 = lean_box(0); -} -if (lean_is_scalar(x_179)) { - x_180 = lean_alloc_ctor(1, 2, 0); -} else { - x_180 = x_179; -} -lean_ctor_set(x_180, 0, x_177); -lean_ctor_set(x_180, 1, x_178); -return x_180; -} -} -else -{ -lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; -lean_dec(x_141); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_181 = lean_ctor_get(x_165, 0); -lean_inc(x_181); -x_182 = lean_ctor_get(x_165, 1); -lean_inc(x_182); -if (lean_is_exclusive(x_165)) { - lean_ctor_release(x_165, 0); - lean_ctor_release(x_165, 1); - x_183 = x_165; -} else { - lean_dec_ref(x_165); - x_183 = lean_box(0); -} -if (lean_is_scalar(x_183)) { - x_184 = lean_alloc_ctor(1, 2, 0); -} else { - x_184 = x_183; -} -lean_ctor_set(x_184, 0, x_181); -lean_ctor_set(x_184, 1, x_182); -return x_184; -} -} -else -{ -lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; -lean_dec(x_150); -lean_dec(x_141); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_185 = lean_ctor_get(x_158, 0); -lean_inc(x_185); -x_186 = lean_ctor_get(x_158, 1); -lean_inc(x_186); -if (lean_is_exclusive(x_158)) { - lean_ctor_release(x_158, 0); - lean_ctor_release(x_158, 1); - x_187 = x_158; -} else { - lean_dec_ref(x_158); - x_187 = lean_box(0); -} -if (lean_is_scalar(x_187)) { - x_188 = lean_alloc_ctor(1, 2, 0); -} else { - x_188 = x_187; -} -lean_ctor_set(x_188, 0, x_185); -lean_ctor_set(x_188, 1, x_186); -return x_188; -} -} -} -} -} -else -{ -uint8_t x_189; -lean_dec(x_17); -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_189 = !lean_is_exclusive(x_29); -if (x_189 == 0) -{ -lean_object* x_190; lean_object* x_191; -x_190 = lean_ctor_get(x_29, 0); -lean_dec(x_190); -x_191 = lean_box(0); -lean_ctor_set(x_29, 0, x_191); -return x_29; -} -else -{ -lean_object* x_192; lean_object* x_193; lean_object* x_194; -x_192 = lean_ctor_get(x_29, 1); -lean_inc(x_192); -lean_dec(x_29); -x_193 = lean_box(0); -x_194 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_194, 0, x_193); -lean_ctor_set(x_194, 1, x_192); -return x_194; -} -} -} -} -} -else -{ -lean_object* x_195; lean_object* x_196; lean_object* x_197; lean_object* x_198; -x_195 = lean_ctor_get(x_18, 0); -x_196 = lean_ctor_get(x_18, 1); -lean_inc(x_196); -lean_inc(x_195); -lean_dec(x_18); -x_197 = lean_ctor_get(x_195, 0); -lean_inc(x_197); -lean_dec(x_195); -lean_inc(x_17); -x_198 = lean_environment_find(x_197, x_17); -if (lean_obj_tag(x_198) == 0) -{ -lean_object* x_199; lean_object* x_200; -lean_dec(x_17); -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_199 = lean_box(0); -x_200 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_200, 0, x_199); -lean_ctor_set(x_200, 1, x_196); -return x_200; -} -else -{ -lean_object* x_201; lean_object* x_202; uint8_t x_203; -x_201 = lean_ctor_get(x_198, 0); -lean_inc(x_201); -lean_dec(x_198); -x_202 = l_Lean_ConstantInfo_type(x_201); -lean_dec(x_201); -x_203 = l_Lean_Compiler_LCNF_hasLocalInst(x_202); -lean_dec(x_202); -if (x_203 == 0) -{ -lean_object* x_204; lean_object* x_205; -lean_dec(x_17); -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_204 = lean_box(0); -x_205 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_205, 0, x_204); -lean_ctor_set(x_205, 1, x_196); -return x_205; -} -else -{ -lean_object* x_206; lean_object* x_207; uint8_t x_208; -lean_inc(x_17); -x_206 = l_Lean_Meta_isInstance(x_17, x_6, x_7, x_196); -x_207 = lean_ctor_get(x_206, 0); -lean_inc(x_207); -x_208 = lean_unbox(x_207); -lean_dec(x_207); -if (x_208 == 0) -{ -lean_object* x_209; lean_object* x_210; lean_object* x_211; -x_209 = lean_ctor_get(x_206, 1); -lean_inc(x_209); -lean_dec(x_206); -x_210 = l_Lean_Compiler_LCNF_getDecl_x3f(x_17, x_4, x_5, x_6, x_7, x_209); -x_211 = lean_ctor_get(x_210, 0); -lean_inc(x_211); -if (lean_obj_tag(x_211) == 0) -{ -lean_object* x_212; lean_object* x_213; lean_object* x_214; lean_object* x_215; -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_212 = lean_ctor_get(x_210, 1); -lean_inc(x_212); -if (lean_is_exclusive(x_210)) { - lean_ctor_release(x_210, 0); - lean_ctor_release(x_210, 1); - x_213 = x_210; -} else { - lean_dec_ref(x_210); - x_213 = lean_box(0); -} -x_214 = lean_box(0); -if (lean_is_scalar(x_213)) { - x_215 = lean_alloc_ctor(0, 2, 0); -} else { - x_215 = x_213; -} -lean_ctor_set(x_215, 0, x_214); -lean_ctor_set(x_215, 1, x_212); -return x_215; -} -else -{ -lean_object* x_216; lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; lean_object* x_222; uint8_t x_223; -x_216 = lean_ctor_get(x_210, 1); -lean_inc(x_216); -if (lean_is_exclusive(x_210)) { - lean_ctor_release(x_210, 0); - lean_ctor_release(x_210, 1); - x_217 = x_210; -} else { - lean_dec_ref(x_210); - x_217 = lean_box(0); -} -x_218 = lean_ctor_get(x_211, 0); -lean_inc(x_218); -if (lean_is_exclusive(x_211)) { - lean_ctor_release(x_211, 0); - x_219 = x_211; -} else { - lean_dec_ref(x_211); - x_219 = lean_box(0); -} -x_220 = lean_unsigned_to_nat(0u); -x_221 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_15, x_220); -x_222 = l_Lean_Compiler_LCNF_Decl_getArity(x_218); -lean_dec(x_218); -x_223 = lean_nat_dec_lt(x_221, x_222); -lean_dec(x_222); -lean_dec(x_221); -if (x_223 == 0) -{ -lean_object* x_224; lean_object* x_225; -lean_dec(x_219); -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_224 = lean_box(0); -if (lean_is_scalar(x_217)) { - x_225 = lean_alloc_ctor(0, 2, 0); -} else { - x_225 = x_217; -} -lean_ctor_set(x_225, 0, x_224); -lean_ctor_set(x_225, 1, x_216); -return x_225; -} -else -{ -lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; size_t x_231; size_t x_232; lean_object* x_233; lean_object* x_234; lean_object* x_235; lean_object* x_236; -lean_dec(x_217); -x_226 = lean_ctor_get(x_1, 2); -lean_inc(x_226); -x_227 = l_Lean_Compiler_LCNF_mkNewParams(x_226, x_4, x_5, x_6, x_7, x_216); -x_228 = lean_ctor_get(x_227, 0); -lean_inc(x_228); -x_229 = lean_ctor_get(x_227, 1); -lean_inc(x_229); -lean_dec(x_227); -x_230 = lean_array_get_size(x_228); -x_231 = lean_usize_of_nat(x_230); -lean_dec(x_230); -x_232 = 0; -lean_inc(x_228); -x_233 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_231, x_232, x_228); -x_234 = l_Lean_mkAppN(x_15, x_233); -x_235 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_236 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_234, x_235, x_4, x_5, x_6, x_7, x_229); -if (lean_obj_tag(x_236) == 0) -{ -lean_object* x_237; lean_object* x_238; lean_object* x_239; lean_object* x_240; lean_object* x_241; lean_object* x_242; lean_object* x_243; -x_237 = lean_ctor_get(x_236, 0); -lean_inc(x_237); -x_238 = lean_ctor_get(x_236, 1); -lean_inc(x_238); -lean_dec(x_236); -x_239 = lean_ctor_get(x_237, 0); -lean_inc(x_239); -x_240 = lean_alloc_ctor(5, 1, 0); -lean_ctor_set(x_240, 0, x_239); -x_241 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_241, 0, x_237); -lean_ctor_set(x_241, 1, x_240); -x_242 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__4; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_243 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_228, x_241, x_242, x_4, x_5, x_6, x_7, x_238); -if (lean_obj_tag(x_243) == 0) -{ -lean_object* x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; -x_244 = lean_ctor_get(x_243, 0); -lean_inc(x_244); -x_245 = lean_ctor_get(x_243, 1); -lean_inc(x_245); -lean_dec(x_243); -x_246 = lean_ctor_get(x_1, 0); -lean_inc(x_246); -x_247 = lean_ctor_get(x_244, 0); -lean_inc(x_247); -x_248 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_246, x_247, x_2, x_3, x_4, x_5, x_6, x_7, x_245); -if (lean_obj_tag(x_248) == 0) -{ -lean_object* x_249; lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; -x_249 = lean_ctor_get(x_248, 1); -lean_inc(x_249); -lean_dec(x_248); -x_250 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_249); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_251 = lean_ctor_get(x_250, 1); -lean_inc(x_251); -if (lean_is_exclusive(x_250)) { - lean_ctor_release(x_250, 0); - lean_ctor_release(x_250, 1); - x_252 = x_250; -} else { - lean_dec_ref(x_250); - x_252 = lean_box(0); -} -if (lean_is_scalar(x_219)) { - x_253 = lean_alloc_ctor(1, 1, 0); -} else { - x_253 = x_219; -} -lean_ctor_set(x_253, 0, x_244); -if (lean_is_scalar(x_252)) { - x_254 = lean_alloc_ctor(0, 2, 0); -} else { - x_254 = x_252; -} -lean_ctor_set(x_254, 0, x_253); -lean_ctor_set(x_254, 1, x_251); -return x_254; -} -else -{ -lean_object* x_255; lean_object* x_256; lean_object* x_257; lean_object* x_258; -lean_dec(x_244); -lean_dec(x_219); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_255 = lean_ctor_get(x_248, 0); -lean_inc(x_255); -x_256 = lean_ctor_get(x_248, 1); -lean_inc(x_256); -if (lean_is_exclusive(x_248)) { - lean_ctor_release(x_248, 0); - lean_ctor_release(x_248, 1); - x_257 = x_248; -} else { - lean_dec_ref(x_248); - x_257 = lean_box(0); -} -if (lean_is_scalar(x_257)) { - x_258 = lean_alloc_ctor(1, 2, 0); -} else { - x_258 = x_257; -} -lean_ctor_set(x_258, 0, x_255); -lean_ctor_set(x_258, 1, x_256); -return x_258; -} -} -else -{ -lean_object* x_259; lean_object* x_260; lean_object* x_261; lean_object* x_262; -lean_dec(x_219); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_259 = lean_ctor_get(x_243, 0); -lean_inc(x_259); -x_260 = lean_ctor_get(x_243, 1); -lean_inc(x_260); -if (lean_is_exclusive(x_243)) { - lean_ctor_release(x_243, 0); - lean_ctor_release(x_243, 1); - x_261 = x_243; -} else { - lean_dec_ref(x_243); - x_261 = lean_box(0); -} -if (lean_is_scalar(x_261)) { - x_262 = lean_alloc_ctor(1, 2, 0); -} else { - x_262 = x_261; -} -lean_ctor_set(x_262, 0, x_259); -lean_ctor_set(x_262, 1, x_260); -return x_262; -} -} -else -{ -lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; -lean_dec(x_228); -lean_dec(x_219); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_263 = lean_ctor_get(x_236, 0); -lean_inc(x_263); -x_264 = lean_ctor_get(x_236, 1); -lean_inc(x_264); -if (lean_is_exclusive(x_236)) { - lean_ctor_release(x_236, 0); - lean_ctor_release(x_236, 1); - x_265 = x_236; -} else { - lean_dec_ref(x_236); - x_265 = lean_box(0); -} -if (lean_is_scalar(x_265)) { - x_266 = lean_alloc_ctor(1, 2, 0); -} else { - x_266 = x_265; -} -lean_ctor_set(x_266, 0, x_263); -lean_ctor_set(x_266, 1, x_264); -return x_266; -} -} -} -} -else -{ -lean_object* x_267; lean_object* x_268; lean_object* x_269; lean_object* x_270; -lean_dec(x_17); -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_267 = lean_ctor_get(x_206, 1); -lean_inc(x_267); -if (lean_is_exclusive(x_206)) { - lean_ctor_release(x_206, 0); - lean_ctor_release(x_206, 1); - x_268 = x_206; -} else { - lean_dec_ref(x_206); - x_268 = lean_box(0); -} -x_269 = lean_box(0); -if (lean_is_scalar(x_268)) { - x_270 = lean_alloc_ctor(0, 2, 0); -} else { - x_270 = x_268; -} -lean_ctor_set(x_270, 0, x_269); -lean_ctor_set(x_270, 1, x_267); -return x_270; -} -} -} -} -} -else -{ -lean_object* x_271; lean_object* x_272; -lean_dec(x_16); -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_271 = lean_box(0); -x_272 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_272, 0, x_271); -lean_ctor_set(x_272, 1, x_12); -return x_272; -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean_dec(x_3); -lean_dec(x_2); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isReturnOf(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: -{ -if (lean_obj_tag(x_1) == 5) -{ -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); -lean_dec(x_1); -x_11 = lean_st_ref_get(x_8, x_9); -x_12 = lean_ctor_get(x_11, 1); -lean_inc(x_12); -lean_dec(x_11); -x_13 = lean_st_ref_get(x_4, x_12); -x_14 = !lean_is_exclusive(x_13); -if (x_14 == 0) -{ -lean_object* x_15; lean_object* x_16; uint8_t x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; -x_15 = lean_ctor_get(x_13, 0); -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -lean_dec(x_15); -x_17 = 0; -x_18 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_16, x_10, x_17); -x_19 = lean_name_eq(x_18, x_2); -lean_dec(x_18); -x_20 = lean_box(x_19); -lean_ctor_set(x_13, 0, x_20); -return x_13; -} -else -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; lean_object* x_25; uint8_t x_26; lean_object* x_27; lean_object* x_28; -x_21 = lean_ctor_get(x_13, 0); -x_22 = lean_ctor_get(x_13, 1); -lean_inc(x_22); -lean_inc(x_21); -lean_dec(x_13); -x_23 = lean_ctor_get(x_21, 0); -lean_inc(x_23); -lean_dec(x_21); -x_24 = 0; -x_25 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_23, x_10, x_24); -x_26 = lean_name_eq(x_25, x_2); -lean_dec(x_25); -x_27 = lean_box(x_26); -x_28 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_28, 0, x_27); -lean_ctor_set(x_28, 1, x_22); -return x_28; -} -} -else -{ -uint8_t x_29; lean_object* x_30; lean_object* x_31; -lean_dec(x_1); -x_29 = 0; -x_30 = lean_box(x_29); -x_31 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_31, 0, x_30); -lean_ctor_set(x_31, 1, x_9); -return x_31; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isReturnOf___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) { -_start: -{ -lean_object* x_10; -x_10 = l_Lean_Compiler_LCNF_Simp_isReturnOf(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_64); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); +x_75 = lean_ctor_get(x_71, 0); +lean_inc(x_75); +x_76 = lean_ctor_get(x_71, 1); +lean_inc(x_76); +if (lean_is_exclusive(x_71)) { + lean_ctor_release(x_71, 0); + lean_ctor_release(x_71, 1); + x_77 = x_71; +} else { + lean_dec_ref(x_71); + x_77 = lean_box(0); +} +if (lean_is_scalar(x_77)) { + x_78 = lean_alloc_ctor(1, 2, 0); +} else { + x_78 = x_77; +} +lean_ctor_set(x_78, 0, x_75); +lean_ctor_set(x_78, 1, x_76); +return x_78; +} +} +else +{ +lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; +lean_dec(x_64); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +x_79 = lean_ctor_get(x_67, 0); +lean_inc(x_79); +x_80 = lean_ctor_get(x_67, 1); +lean_inc(x_80); +if (lean_is_exclusive(x_67)) { + lean_ctor_release(x_67, 0); + lean_ctor_release(x_67, 1); + x_81 = x_67; +} else { + lean_dec_ref(x_67); + x_81 = lean_box(0); +} +if (lean_is_scalar(x_81)) { + x_82 = lean_alloc_ctor(1, 2, 0); +} else { + x_82 = x_81; +} +lean_ctor_set(x_82, 0, x_79); +lean_ctor_set(x_82, 1, x_80); +return x_82; +} +} +} +} +LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__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) { +_start: +{ +size_t x_13; size_t x_14; lean_object* x_15; +x_13 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_14 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_15 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__1(x_1, x_13, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +return x_15; +} +} +LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__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; +x_13 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_14 = lean_unbox_usize(x_3); +lean_dec(x_3); +x_15 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_specializePartialApp___spec__2(x_1, x_13, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +return x_15; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_specializePartialApp___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_specializePartialApp(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); return x_10; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineJp_x3f___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_object* x_11) { _start: { -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; -x_9 = lean_ctor_get(x_1, 0); -x_10 = l_Lean_Expr_fvar___override(x_3); -x_11 = lean_array_push(x_2, x_10); -lean_inc(x_9); -x_12 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_12, 0, x_9); -lean_ctor_set(x_12, 1, x_11); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_12); -lean_ctor_set(x_13, 1, x_8); -return x_13; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(1u); -x_2 = lean_mk_empty_array_with_capacity(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__2() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("_jp", 3); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__2; -x_3 = l_Lean_Name_str___override(x_1, x_2); -return x_3; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___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; lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_11 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__1; -x_12 = lean_array_push(x_11, x_1); -x_13 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__3; -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -x_14 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_12, x_3, x_13, x_6, x_7, x_8, x_9, x_10); -if (lean_obj_tag(x_14) == 0) -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -lean_inc(x_15); -x_17 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__1___boxed), 8, 2); -lean_closure_set(x_17, 0, x_15); -lean_closure_set(x_17, 1, x_11); -x_18 = l_Lean_Compiler_LCNF_CompilerM_codeBind(x_2, x_17, x_6, x_7, x_8, x_9, x_16); -if (lean_obj_tag(x_18) == 0) -{ -uint8_t x_19; -x_19 = !lean_is_exclusive(x_18); -if (x_19 == 0) -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_18, 0); -x_21 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_21, 0, x_15); -lean_ctor_set(x_21, 1, x_20); -x_22 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_18, 0, x_22); -return x_18; -} -else -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_23 = lean_ctor_get(x_18, 0); -x_24 = lean_ctor_get(x_18, 1); -lean_inc(x_24); -lean_inc(x_23); -lean_dec(x_18); -x_25 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_25, 0, x_15); -lean_ctor_set(x_25, 1, x_23); -x_26 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_26, 0, x_25); -x_27 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_27, 0, x_26); -lean_ctor_set(x_27, 1, x_24); -return x_27; -} -} -else -{ -uint8_t x_28; -lean_dec(x_15); -x_28 = !lean_is_exclusive(x_18); -if (x_28 == 0) -{ -return x_18; -} -else -{ -lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_29 = lean_ctor_get(x_18, 0); -x_30 = lean_ctor_get(x_18, 1); -lean_inc(x_30); -lean_inc(x_29); -lean_dec(x_18); -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_32; -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_2); -x_32 = !lean_is_exclusive(x_14); -if (x_32 == 0) -{ -return x_14; -} -else -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_33 = lean_ctor_get(x_14, 0); -x_34 = lean_ctor_get(x_14, 1); -lean_inc(x_34); -lean_inc(x_33); -lean_dec(x_14); -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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___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, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { -_start: -{ -lean_object* x_14; lean_object* x_15; uint8_t x_16; -lean_inc(x_8); -x_14 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_8, x_1, x_2, x_9, x_10, x_11, x_12, x_13); -x_15 = lean_ctor_get(x_14, 1); -lean_inc(x_15); -lean_dec(x_14); -x_16 = lean_nat_dec_lt(x_3, x_4); -lean_dec(x_4); -if (x_16 == 0) -{ -lean_object* x_17; -lean_dec(x_7); -lean_dec(x_3); -x_17 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_5, x_8, x_1, x_2, x_9, x_10, x_11, x_12, x_15); -if (lean_obj_tag(x_17) == 0) -{ -lean_object* x_18; lean_object* x_19; -x_18 = lean_ctor_get(x_17, 1); -lean_inc(x_18); -lean_dec(x_17); -x_19 = l_Lean_Compiler_LCNF_Simp_simp(x_6, x_1, x_2, x_9, x_10, x_11, x_12, x_18); -return x_19; -} -else -{ -uint8_t x_20; -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_6); -lean_dec(x_2); -lean_dec(x_1); -x_20 = !lean_is_exclusive(x_17); -if (x_20 == 0) -{ -return x_17; -} -else -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_17, 0); -x_22 = lean_ctor_get(x_17, 1); -lean_inc(x_22); -lean_inc(x_21); -lean_dec(x_17); -x_23 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_23, 0, x_21); -lean_ctor_set(x_23, 1, x_22); -return x_23; -} -} -} -else -{ -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_24 = l_Lean_Expr_fvar___override(x_8); -x_25 = lean_array_get_size(x_7); -x_26 = l_Array_toSubarray___rarg(x_7, x_3, x_25); -x_27 = l_Array_ofSubarray___rarg(x_26); -x_28 = l_Lean_mkAppN(x_24, x_27); -x_29 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -x_30 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_28, x_29, x_9, x_10, x_11, x_12, x_15); -if (lean_obj_tag(x_30) == 0) -{ -lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; -x_31 = lean_ctor_get(x_30, 0); -lean_inc(x_31); -x_32 = lean_ctor_get(x_30, 1); -lean_inc(x_32); -lean_dec(x_30); -x_33 = lean_ctor_get(x_31, 0); -lean_inc(x_33); -x_34 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_5, x_33, x_1, x_2, x_9, x_10, x_11, x_12, x_32); -if (lean_obj_tag(x_34) == 0) -{ -lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_35 = lean_ctor_get(x_34, 1); -lean_inc(x_35); -lean_dec(x_34); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_31); -lean_ctor_set(x_36, 1, x_6); -x_37 = l_Lean_Compiler_LCNF_Simp_simp(x_36, x_1, x_2, x_9, x_10, x_11, x_12, x_35); -return x_37; -} -else -{ -uint8_t x_38; -lean_dec(x_31); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_6); -lean_dec(x_2); -lean_dec(x_1); -x_38 = !lean_is_exclusive(x_34); -if (x_38 == 0) -{ -return x_34; -} -else -{ -lean_object* x_39; lean_object* x_40; lean_object* x_41; -x_39 = lean_ctor_get(x_34, 0); -x_40 = lean_ctor_get(x_34, 1); -lean_inc(x_40); -lean_inc(x_39); -lean_dec(x_34); -x_41 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_41, 0, x_39); -lean_ctor_set(x_41, 1, x_40); -return x_41; -} -} -} -else -{ -uint8_t x_42; -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_2); -lean_dec(x_1); -x_42 = !lean_is_exclusive(x_30); -if (x_42 == 0) -{ -return x_30; -} -else -{ -lean_object* x_43; lean_object* x_44; lean_object* x_45; -x_43 = lean_ctor_get(x_30, 0); -x_44 = lean_ctor_get(x_30, 1); -lean_inc(x_44); -lean_inc(x_43); -lean_dec(x_30); -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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__4(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_object* x_13, lean_object* x_14, lean_object* x_15) { -_start: -{ -lean_object* x_16; uint8_t x_102; -x_102 = l_Lean_Compiler_LCNF_Code_isReturnOf(x_6, x_5); -if (x_102 == 0) -{ -lean_object* x_103; -x_103 = lean_box(0); -x_16 = x_103; -goto block_101; -} -else -{ -uint8_t x_104; -x_104 = lean_nat_dec_eq(x_4, x_3); -if (x_104 == 0) -{ -lean_object* x_105; -x_105 = lean_box(0); -x_16 = x_105; -goto block_101; -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; -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_106 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_10, x_11, x_12, x_13, x_14, x_15); -x_107 = lean_ctor_get(x_106, 1); -lean_inc(x_107); -lean_dec(x_106); -x_108 = l_Lean_Compiler_LCNF_Simp_simp(x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_107); -if (lean_obj_tag(x_108) == 0) -{ -uint8_t x_109; -x_109 = !lean_is_exclusive(x_108); -if (x_109 == 0) -{ -lean_object* x_110; lean_object* x_111; -x_110 = lean_ctor_get(x_108, 0); -x_111 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_111, 0, x_110); -lean_ctor_set(x_108, 0, x_111); -return x_108; -} -else -{ -lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; -x_112 = lean_ctor_get(x_108, 0); -x_113 = lean_ctor_get(x_108, 1); -lean_inc(x_113); -lean_inc(x_112); -lean_dec(x_108); -x_114 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_114, 0, x_112); -x_115 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_115, 0, x_114); -lean_ctor_set(x_115, 1, x_113); -return x_115; -} -} -else -{ -uint8_t x_116; -x_116 = !lean_is_exclusive(x_108); -if (x_116 == 0) -{ -return x_108; -} -else -{ -lean_object* x_117; lean_object* x_118; lean_object* x_119; -x_117 = lean_ctor_get(x_108, 0); -x_118 = lean_ctor_get(x_108, 1); -lean_inc(x_118); -lean_inc(x_117); -lean_dec(x_108); -x_119 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_119, 0, x_117); -lean_ctor_set(x_119, 1, x_118); -return x_119; -} -} -} -} -block_101: -{ -lean_object* x_17; -lean_dec(x_16); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -x_17 = l_Lean_Compiler_LCNF_Simp_simp(x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); -if (lean_obj_tag(x_17) == 0) -{ -lean_object* x_18; lean_object* x_19; uint8_t x_20; -x_18 = lean_ctor_get(x_17, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_17, 1); -lean_inc(x_19); -lean_dec(x_17); -lean_inc(x_18); -x_20 = l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go(x_18); -if (x_20 == 0) -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_21 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_10, x_11, x_12, x_13, x_14, x_19); -x_22 = lean_ctor_get(x_21, 1); -lean_inc(x_22); -lean_dec(x_21); -x_23 = lean_ctor_get(x_1, 2); -lean_inc(x_23); -lean_dec(x_1); -x_24 = l_Lean_mkAppN(x_23, x_2); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_11); -x_25 = l_Lean_Compiler_LCNF_inferType(x_24, x_11, x_12, x_13, x_14, x_22); -if (lean_obj_tag(x_25) == 0) -{ -lean_object* x_26; lean_object* x_27; uint8_t x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; -x_26 = lean_ctor_get(x_25, 0); -lean_inc(x_26); -x_27 = lean_ctor_get(x_25, 1); -lean_inc(x_27); -lean_dec(x_25); -x_28 = 0; -x_29 = l_Lean_Compiler_LCNF_mkAuxParam(x_26, x_28, x_11, x_12, x_13, x_14, x_27); -x_30 = lean_ctor_get(x_29, 0); -lean_inc(x_30); -x_31 = lean_ctor_get(x_29, 1); -lean_inc(x_31); -lean_dec(x_29); -x_32 = lean_nat_dec_lt(x_3, x_4); -lean_dec(x_4); -if (x_32 == 0) -{ -lean_object* x_33; lean_object* x_34; -lean_dec(x_7); -lean_dec(x_3); -x_33 = lean_ctor_get(x_30, 0); -lean_inc(x_33); -x_34 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_5, x_33, x_9, x_10, x_11, x_12, x_13, x_14, x_31); -if (lean_obj_tag(x_34) == 0) -{ -lean_object* x_35; lean_object* x_36; -x_35 = lean_ctor_get(x_34, 1); -lean_inc(x_35); -lean_dec(x_34); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -x_36 = l_Lean_Compiler_LCNF_Simp_simp(x_6, x_9, x_10, x_11, x_12, x_13, x_14, x_35); -if (lean_obj_tag(x_36) == 0) -{ -lean_object* x_37; lean_object* x_38; lean_object* x_39; -x_37 = lean_ctor_get(x_36, 0); -lean_inc(x_37); -x_38 = lean_ctor_get(x_36, 1); -lean_inc(x_38); -lean_dec(x_36); -x_39 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2(x_30, x_18, x_37, x_9, x_10, x_11, x_12, x_13, x_14, x_38); -lean_dec(x_10); -lean_dec(x_9); -return x_39; -} -else -{ -uint8_t x_40; -lean_dec(x_30); -lean_dec(x_18); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -x_40 = !lean_is_exclusive(x_36); -if (x_40 == 0) -{ -return x_36; -} -else -{ -lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_41 = lean_ctor_get(x_36, 0); -x_42 = lean_ctor_get(x_36, 1); -lean_inc(x_42); -lean_inc(x_41); -lean_dec(x_36); -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_44; -lean_dec(x_30); -lean_dec(x_18); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_6); -x_44 = !lean_is_exclusive(x_34); -if (x_44 == 0) -{ -return x_34; -} -else -{ -lean_object* x_45; lean_object* x_46; lean_object* x_47; -x_45 = lean_ctor_get(x_34, 0); -x_46 = lean_ctor_get(x_34, 1); -lean_inc(x_46); -lean_inc(x_45); -lean_dec(x_34); -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; -} -} -} -else -{ -lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_48 = lean_ctor_get(x_30, 0); -lean_inc(x_48); -x_49 = l_Lean_Expr_fvar___override(x_48); -x_50 = lean_array_get_size(x_7); -x_51 = l_Array_toSubarray___rarg(x_7, x_3, x_50); -x_52 = l_Array_ofSubarray___rarg(x_51); -x_53 = l_Lean_mkAppN(x_49, x_52); -x_54 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_11); -x_55 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_53, x_54, x_11, x_12, x_13, x_14, x_31); -if (lean_obj_tag(x_55) == 0) -{ -lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_56 = lean_ctor_get(x_55, 0); -lean_inc(x_56); -x_57 = lean_ctor_get(x_55, 1); -lean_inc(x_57); -lean_dec(x_55); -x_58 = lean_ctor_get(x_56, 0); -lean_inc(x_58); -x_59 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_5, x_58, x_9, x_10, x_11, x_12, x_13, x_14, x_57); -if (lean_obj_tag(x_59) == 0) -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; -x_60 = lean_ctor_get(x_59, 1); -lean_inc(x_60); -lean_dec(x_59); -x_61 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_61, 0, x_56); -lean_ctor_set(x_61, 1, x_6); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -x_62 = l_Lean_Compiler_LCNF_Simp_simp(x_61, x_9, x_10, x_11, x_12, x_13, x_14, x_60); -if (lean_obj_tag(x_62) == 0) -{ -lean_object* x_63; lean_object* x_64; lean_object* x_65; -x_63 = lean_ctor_get(x_62, 0); -lean_inc(x_63); -x_64 = lean_ctor_get(x_62, 1); -lean_inc(x_64); -lean_dec(x_62); -x_65 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2(x_30, x_18, x_63, x_9, x_10, x_11, x_12, x_13, x_14, x_64); -lean_dec(x_10); -lean_dec(x_9); -return x_65; -} -else -{ -uint8_t x_66; -lean_dec(x_30); -lean_dec(x_18); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -x_66 = !lean_is_exclusive(x_62); -if (x_66 == 0) -{ -return x_62; -} -else -{ -lean_object* x_67; lean_object* x_68; lean_object* x_69; -x_67 = lean_ctor_get(x_62, 0); -x_68 = lean_ctor_get(x_62, 1); -lean_inc(x_68); -lean_inc(x_67); -lean_dec(x_62); -x_69 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_69, 0, x_67); -lean_ctor_set(x_69, 1, x_68); -return x_69; -} -} -} -else -{ -uint8_t x_70; -lean_dec(x_56); -lean_dec(x_30); -lean_dec(x_18); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_6); -x_70 = !lean_is_exclusive(x_59); -if (x_70 == 0) -{ -return x_59; -} -else -{ -lean_object* x_71; lean_object* x_72; lean_object* x_73; -x_71 = lean_ctor_get(x_59, 0); -x_72 = lean_ctor_get(x_59, 1); -lean_inc(x_72); -lean_inc(x_71); -lean_dec(x_59); -x_73 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_73, 0, x_71); -lean_ctor_set(x_73, 1, x_72); -return x_73; -} -} -} -else -{ -uint8_t x_74; -lean_dec(x_30); -lean_dec(x_18); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_6); -lean_dec(x_5); -x_74 = !lean_is_exclusive(x_55); -if (x_74 == 0) -{ -return x_55; -} -else -{ -lean_object* x_75; lean_object* x_76; lean_object* x_77; -x_75 = lean_ctor_get(x_55, 0); -x_76 = lean_ctor_get(x_55, 1); -lean_inc(x_76); -lean_inc(x_75); -lean_dec(x_55); -x_77 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_77, 0, x_75); -lean_ctor_set(x_77, 1, x_76); -return x_77; -} -} -} -} -else -{ -uint8_t x_78; -lean_dec(x_18); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_78 = !lean_is_exclusive(x_25); -if (x_78 == 0) -{ -return x_25; -} -else -{ -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_25, 0); -x_80 = lean_ctor_get(x_25, 1); -lean_inc(x_80); -lean_inc(x_79); -lean_dec(x_25); -x_81 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_81, 0, x_79); -lean_ctor_set(x_81, 1, x_80); -return x_81; -} -} -} -else -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; -lean_dec(x_2); -lean_dec(x_1); -x_82 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_10, x_11, x_12, x_13, x_14, x_19); -x_83 = lean_ctor_get(x_82, 1); -lean_inc(x_83); -lean_dec(x_82); -x_84 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__3), 13, 7); -lean_closure_set(x_84, 0, x_9); -lean_closure_set(x_84, 1, x_10); -lean_closure_set(x_84, 2, x_3); -lean_closure_set(x_84, 3, x_4); -lean_closure_set(x_84, 4, x_5); -lean_closure_set(x_84, 5, x_6); -lean_closure_set(x_84, 6, x_7); -x_85 = l_Lean_Compiler_LCNF_CompilerM_codeBind(x_18, x_84, x_11, x_12, x_13, x_14, x_83); -if (lean_obj_tag(x_85) == 0) -{ -uint8_t x_86; -x_86 = !lean_is_exclusive(x_85); -if (x_86 == 0) -{ -lean_object* x_87; lean_object* x_88; -x_87 = lean_ctor_get(x_85, 0); -x_88 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_88, 0, x_87); -lean_ctor_set(x_85, 0, x_88); -return x_85; -} -else -{ -lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; -x_89 = lean_ctor_get(x_85, 0); -x_90 = lean_ctor_get(x_85, 1); -lean_inc(x_90); -lean_inc(x_89); -lean_dec(x_85); -x_91 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_91, 0, x_89); -x_92 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_92, 0, x_91); -lean_ctor_set(x_92, 1, x_90); -return x_92; -} -} -else -{ -uint8_t x_93; -x_93 = !lean_is_exclusive(x_85); -if (x_93 == 0) -{ -return x_85; -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; -x_94 = lean_ctor_get(x_85, 0); -x_95 = lean_ctor_get(x_85, 1); -lean_inc(x_95); -lean_inc(x_94); -lean_dec(x_85); -x_96 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_96, 0, x_94); -lean_ctor_set(x_96, 1, x_95); -return x_96; -} -} -} -} -else -{ -uint8_t x_97; -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -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_97 = !lean_is_exclusive(x_17); -if (x_97 == 0) -{ -return x_17; -} -else -{ -lean_object* x_98; lean_object* x_99; lean_object* x_100; -x_98 = lean_ctor_get(x_17, 0); -x_99 = lean_ctor_get(x_17, 1); -lean_inc(x_99); -lean_inc(x_98); -lean_dec(x_17); -x_100 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_100, 0, x_98); -lean_ctor_set(x_100, 1, x_99); -return x_100; -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__5(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; lean_object* x_12; -x_11 = lean_ctor_get(x_3, 0); -lean_inc(x_11); -x_12 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_1, x_11, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -if (lean_obj_tag(x_12) == 0) -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; lean_object* x_17; +x_12 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_5, x_6, x_7, x_8, x_9, x_10, x_11); x_13 = lean_ctor_get(x_12, 1); lean_inc(x_13); lean_dec(x_12); -x_14 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_5, x_6, x_7, x_8, x_9, x_13); -x_15 = lean_ctor_get(x_14, 1); +x_14 = lean_ctor_get(x_1, 2); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 4); lean_inc(x_15); +lean_dec(x_1); +x_16 = 0; +x_17 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_14, x_15, x_2, x_16, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_13); lean_dec(x_14); -x_16 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_16, 0, x_3); -lean_ctor_set(x_16, 1, x_2); -x_17 = l_Lean_Compiler_LCNF_Simp_simp(x_16, x_4, x_5, x_6, x_7, x_8, x_9, x_15); if (lean_obj_tag(x_17) == 0) { uint8_t x_18; @@ -3318,9 +984,17 @@ return x_28; } } } -else +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineJp_x3f(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: { -uint8_t x_29; +lean_object* x_11; lean_object* x_12; +x_11 = l_Lean_Compiler_LCNF_findFunDecl_x3f(x_1, x_6, x_7, x_8, x_9, x_10); +x_12 = lean_ctor_get(x_11, 0); +lean_inc(x_12); +if (lean_obj_tag(x_12) == 0) +{ +uint8_t x_13; lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -3329,58 +1003,6 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_29 = !lean_is_exclusive(x_12); -if (x_29 == 0) -{ -return x_12; -} -else -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_30 = lean_ctor_get(x_12, 0); -x_31 = lean_ctor_get(x_12, 1); -lean_inc(x_31); -lean_inc(x_30); -lean_dec(x_12); -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; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f(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_10; lean_object* x_11; -x_10 = lean_ctor_get(x_1, 3); -lean_inc(x_10); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -lean_inc(x_10); -x_11 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f(x_10, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -if (lean_obj_tag(x_11) == 0) -{ -lean_object* x_12; -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -if (lean_obj_tag(x_12) == 0) -{ -uint8_t x_13; -lean_dec(x_10); -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_13 = !lean_is_exclusive(x_11); if (x_13 == 0) { @@ -3406,798 +1028,415 @@ return x_18; } else { -lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; lean_object* x_24; lean_object* x_25; uint8_t x_26; +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; x_19 = lean_ctor_get(x_11, 1); lean_inc(x_19); lean_dec(x_11); x_20 = lean_ctor_get(x_12, 0); lean_inc(x_20); lean_dec(x_12); -x_21 = lean_ctor_get(x_20, 3); -lean_inc(x_21); -x_22 = lean_array_get_size(x_21); -x_23 = lean_ctor_get_uint8(x_20, sizeof(void*)*4 + 2); -x_24 = lean_ctor_get(x_1, 0); -lean_inc(x_24); -lean_dec(x_1); -x_25 = l_Lean_Compiler_LCNF_Simp_InlineCandidateInfo_arity(x_20); -x_26 = lean_nat_dec_lt(x_22, x_25); -if (x_26 == 0) +lean_inc(x_20); +x_21 = l_Lean_Compiler_LCNF_Simp_shouldInlineLocal(x_20, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_19); +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +x_23 = lean_unbox(x_22); +lean_dec(x_22); +if (x_23 == 0) { -lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_27 = lean_ctor_get(x_20, 0); -lean_inc(x_27); -x_28 = lean_ctor_get(x_20, 1); -lean_inc(x_28); -x_29 = lean_unsigned_to_nat(0u); -lean_inc(x_25); -lean_inc(x_21); -x_30 = l_Array_toSubarray___rarg(x_21, x_29, x_25); -x_31 = l_Array_ofSubarray___rarg(x_30); -x_32 = 0; -x_33 = lean_box(x_32); -lean_inc(x_31); -x_34 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_betaReduce___boxed), 11, 4); -lean_closure_set(x_34, 0, x_27); -lean_closure_set(x_34, 1, x_28); -lean_closure_set(x_34, 2, x_31); -lean_closure_set(x_34, 3, x_33); -x_35 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__4), 15, 7); -lean_closure_set(x_35, 0, x_20); -lean_closure_set(x_35, 1, x_31); -lean_closure_set(x_35, 2, x_25); -lean_closure_set(x_35, 3, x_22); -lean_closure_set(x_35, 4, x_24); -lean_closure_set(x_35, 5, x_2); -lean_closure_set(x_35, 6, x_21); -x_36 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg), 9, 2); -lean_closure_set(x_36, 0, x_34); -lean_closure_set(x_36, 1, x_35); -x_37 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg(x_10, x_23, x_36, x_3, x_4, x_5, x_6, x_7, x_8, x_19); -return x_37; +uint8_t x_24; +lean_dec(x_20); +lean_dec(x_9); +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); +x_24 = !lean_is_exclusive(x_21); +if (x_24 == 0) +{ +lean_object* x_25; lean_object* x_26; +x_25 = lean_ctor_get(x_21, 0); +lean_dec(x_25); +x_26 = lean_box(0); +lean_ctor_set(x_21, 0, x_26); +return x_21; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; -lean_dec(x_25); -lean_dec(x_22); +lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_27 = lean_ctor_get(x_21, 1); +lean_inc(x_27); lean_dec(x_21); -x_38 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_specializePartialApp___boxed), 8, 1); -lean_closure_set(x_38, 0, x_20); -x_39 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__5), 10, 2); -lean_closure_set(x_39, 0, x_24); -lean_closure_set(x_39, 1, x_2); -x_40 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg), 9, 2); -lean_closure_set(x_40, 0, x_38); -lean_closure_set(x_40, 1, x_39); -x_41 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg(x_10, x_23, x_40, x_3, x_4, x_5, x_6, x_7, x_8, x_19); -return x_41; +x_28 = lean_box(0); +x_29 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_29, 0, x_28); +lean_ctor_set(x_29, 1, x_27); +return x_29; } } +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_21, 1); +lean_inc(x_30); +lean_dec(x_21); +x_31 = lean_box(0); +x_32 = l_Lean_Compiler_LCNF_Simp_inlineJp_x3f___lambda__1(x_20, x_2, x_31, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_30); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +return x_32; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineJp_x3f___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) { +_start: +{ +lean_object* x_12; +x_12 = l_Lean_Compiler_LCNF_Simp_inlineJp_x3f___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +return x_12; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("_x", 2); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__1; +x_3 = l_Lean_Name_str___override(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_box(0); +x_2 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f(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_10; uint8_t x_11; lean_object* x_12; lean_object* x_13; +x_10 = lean_ctor_get(x_2, 1); +x_11 = lean_ctor_get_uint8(x_10, 0); +if (x_11 == 0) +{ +lean_object* x_275; +x_275 = lean_box(0); +x_12 = x_275; +x_13 = x_9; +goto block_274; +} +else +{ +lean_object* x_276; +x_276 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__3; +x_12 = x_276; +x_13 = x_9; +goto block_274; +} +block_274: +{ +if (lean_obj_tag(x_12) == 0) +{ +lean_object* x_14; lean_object* x_15; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_14 = lean_box(0); +x_15 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_13); +return x_15; +} +else +{ +lean_object* x_16; lean_object* x_17; +lean_dec(x_12); +x_16 = lean_ctor_get(x_1, 3); +lean_inc(x_16); +x_17 = l_Lean_Expr_getAppFn(x_16); +if (lean_obj_tag(x_17) == 4) +{ +lean_object* x_18; lean_object* x_19; uint8_t x_20; +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +lean_dec(x_17); +x_19 = lean_st_ref_get(x_8, x_13); +x_20 = !lean_is_exclusive(x_19); +if (x_20 == 0) +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_21 = lean_ctor_get(x_19, 0); +x_22 = lean_ctor_get(x_19, 1); +x_23 = lean_ctor_get(x_21, 0); +lean_inc(x_23); +lean_dec(x_21); +lean_inc(x_18); +x_24 = lean_environment_find(x_23, x_18); +if (lean_obj_tag(x_24) == 0) +{ +lean_object* x_25; +lean_dec(x_18); +lean_dec(x_16); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_25 = lean_box(0); +lean_ctor_set(x_19, 0, x_25); +return x_19; +} +else +{ +lean_object* x_26; lean_object* x_27; uint8_t x_28; +x_26 = lean_ctor_get(x_24, 0); +lean_inc(x_26); +lean_dec(x_24); +x_27 = l_Lean_ConstantInfo_type(x_26); +lean_dec(x_26); +x_28 = l_Lean_Compiler_LCNF_hasLocalInst(x_27); +lean_dec(x_27); +if (x_28 == 0) +{ +lean_object* x_29; +lean_dec(x_18); +lean_dec(x_16); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_29 = lean_box(0); +lean_ctor_set(x_19, 0, x_29); +return x_19; +} +else +{ +lean_object* x_30; lean_object* x_31; uint8_t x_32; +lean_free_object(x_19); +lean_inc(x_18); +x_30 = l_Lean_Meta_isInstance(x_18, x_7, x_8, x_22); +x_31 = lean_ctor_get(x_30, 0); +lean_inc(x_31); +x_32 = lean_unbox(x_31); +lean_dec(x_31); +if (x_32 == 0) +{ +lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_33 = lean_ctor_get(x_30, 1); +lean_inc(x_33); +lean_dec(x_30); +x_34 = l_Lean_Compiler_LCNF_getDecl_x3f(x_18, x_5, x_6, x_7, x_8, x_33); +x_35 = lean_ctor_get(x_34, 0); +lean_inc(x_35); +if (lean_obj_tag(x_35) == 0) +{ +uint8_t x_36; +lean_dec(x_16); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_36 = !lean_is_exclusive(x_34); +if (x_36 == 0) +{ +lean_object* x_37; lean_object* x_38; +x_37 = lean_ctor_get(x_34, 0); +lean_dec(x_37); +x_38 = lean_box(0); +lean_ctor_set(x_34, 0, x_38); +return x_34; +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_39 = lean_ctor_get(x_34, 1); +lean_inc(x_39); +lean_dec(x_34); +x_40 = lean_box(0); +x_41 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set(x_41, 1, x_39); +return x_41; +} } else { uint8_t x_42; -lean_dec(x_10); -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_11); +x_42 = !lean_is_exclusive(x_34); if (x_42 == 0) { -return x_11; -} -else +lean_object* x_43; lean_object* x_44; uint8_t x_45; +x_43 = lean_ctor_get(x_34, 1); +x_44 = lean_ctor_get(x_34, 0); +lean_dec(x_44); +x_45 = !lean_is_exclusive(x_35); +if (x_45 == 0) { -lean_object* x_43; lean_object* x_44; lean_object* x_45; -x_43 = lean_ctor_get(x_11, 0); -x_44 = lean_ctor_get(x_11, 1); -lean_inc(x_44); -lean_inc(x_43); -lean_dec(x_11); -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_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___spec__1(uint8_t 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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_10 = lean_ctor_get(x_2, 2); -lean_inc(x_10); -x_11 = lean_st_ref_get(x_8, x_9); -x_12 = lean_ctor_get(x_11, 1); -lean_inc(x_12); -lean_dec(x_11); -x_13 = lean_st_ref_get(x_4, x_12); -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 = lean_ctor_get(x_14, 0); -lean_inc(x_16); -lean_dec(x_14); -x_17 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_16, x_1, x_10); -x_18 = lean_ctor_get(x_2, 3); -lean_inc(x_18); -x_19 = lean_st_ref_get(x_8, x_15); -x_20 = lean_ctor_get(x_19, 1); -lean_inc(x_20); -lean_dec(x_19); -x_21 = lean_st_ref_get(x_4, x_20); -x_22 = lean_ctor_get(x_21, 0); -lean_inc(x_22); -x_23 = lean_ctor_get(x_21, 1); -lean_inc(x_23); -lean_dec(x_21); -x_24 = lean_ctor_get(x_22, 0); -lean_inc(x_24); -lean_dec(x_22); -x_25 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_24, x_1, x_18); -x_26 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateLetDeclImp(x_2, x_17, x_25, x_5, x_6, x_7, x_8, x_23); -return x_26; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Simp_simp___spec__3(uint8_t 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_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; -x_10 = lean_st_ref_get(x_8, x_9); -x_11 = lean_ctor_get(x_10, 1); -lean_inc(x_11); -lean_dec(x_10); -x_12 = lean_st_ref_get(x_4, x_11); -x_13 = !lean_is_exclusive(x_12); -if (x_13 == 0) -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; -x_14 = lean_ctor_get(x_12, 0); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -lean_dec(x_14); -x_16 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_15, x_1, x_2); -lean_ctor_set(x_12, 0, x_16); -return x_12; -} -else -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_17 = lean_ctor_get(x_12, 0); -x_18 = lean_ctor_get(x_12, 1); -lean_inc(x_18); -lean_inc(x_17); -lean_dec(x_12); -x_19 = lean_ctor_get(x_17, 0); -lean_inc(x_19); -lean_dec(x_17); -x_20 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_19, x_1, x_2); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_20); -lean_ctor_set(x_21, 1, x_18); -return x_21; -} -} -} -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simp___spec__5(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; uint8_t x_12; -x_11 = lean_array_get_size(x_3); -x_12 = lean_nat_dec_lt(x_2, x_11); -lean_dec(x_11); -if (x_12 == 0) -{ -lean_object* x_13; -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_2); -lean_dec(x_1); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_3); -lean_ctor_set(x_13, 1, x_10); -return x_13; -} -else -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_array_fget(x_3, x_2); -lean_inc(x_1); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_14); -x_15 = lean_apply_8(x_1, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -if (lean_obj_tag(x_15) == 0) -{ -lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; uint8_t x_20; -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); -x_18 = lean_ptr_addr(x_14); -lean_dec(x_14); -x_19 = lean_ptr_addr(x_16); -x_20 = lean_usize_dec_eq(x_18, x_19); -if (x_20 == 0) -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_unsigned_to_nat(1u); -x_22 = lean_nat_add(x_2, x_21); -x_23 = lean_array_fset(x_3, x_2, x_16); -lean_dec(x_2); -x_2 = x_22; -x_3 = x_23; -x_10 = x_17; -goto _start; -} -else -{ -lean_object* x_25; lean_object* x_26; -lean_dec(x_16); -x_25 = lean_unsigned_to_nat(1u); -x_26 = lean_nat_add(x_2, x_25); -lean_dec(x_2); -x_2 = x_26; -x_10 = x_17; -goto _start; -} -} -else -{ -uint8_t x_28; -lean_dec(x_14); -lean_dec(x_9); -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_28 = !lean_is_exclusive(x_15); -if (x_28 == 0) -{ -return x_15; -} -else -{ -lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_29 = lean_ctor_get(x_15, 0); -x_30 = lean_ctor_get(x_15, 1); -lean_inc(x_30); -lean_inc(x_29); -lean_dec(x_15); -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; -} -} -} -} -} -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__4(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_10; lean_object* x_11; -x_10 = lean_unsigned_to_nat(0u); -x_11 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simp___spec__5(x_2, x_10, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_11; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__2(uint8_t 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_10; lean_object* x_11; lean_object* x_12; -x_10 = lean_box(x_1); -x_11 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Simp_simp___spec__3___boxed), 9, 1); -lean_closure_set(x_11, 0, x_10); -x_12 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__4(x_2, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_12; -} -} -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simp___spec__7(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; uint8_t x_12; -x_11 = lean_array_get_size(x_3); -x_12 = lean_nat_dec_lt(x_2, x_11); -lean_dec(x_11); -if (x_12 == 0) -{ -lean_object* x_13; -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_2); -lean_dec(x_1); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_3); -lean_ctor_set(x_13, 1, x_10); -return x_13; -} -else -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_array_fget(x_3, x_2); -lean_inc(x_1); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_14); -x_15 = lean_apply_8(x_1, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -if (lean_obj_tag(x_15) == 0) -{ -lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; uint8_t x_20; -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); -x_18 = lean_ptr_addr(x_14); -lean_dec(x_14); -x_19 = lean_ptr_addr(x_16); -x_20 = lean_usize_dec_eq(x_18, x_19); -if (x_20 == 0) -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_unsigned_to_nat(1u); -x_22 = lean_nat_add(x_2, x_21); -x_23 = lean_array_fset(x_3, x_2, x_16); -lean_dec(x_2); -x_2 = x_22; -x_3 = x_23; -x_10 = x_17; -goto _start; -} -else -{ -lean_object* x_25; lean_object* x_26; -lean_dec(x_16); -x_25 = lean_unsigned_to_nat(1u); -x_26 = lean_nat_add(x_2, x_25); -lean_dec(x_2); -x_2 = x_26; -x_10 = x_17; -goto _start; -} -} -else -{ -uint8_t x_28; -lean_dec(x_14); -lean_dec(x_9); -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_28 = !lean_is_exclusive(x_15); -if (x_28 == 0) -{ -return x_15; -} -else -{ -lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_29 = lean_ctor_get(x_15, 0); -x_30 = lean_ctor_get(x_15, 1); -lean_inc(x_30); -lean_inc(x_29); -lean_dec(x_15); -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; -} -} -} -} -} -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__6(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_10; lean_object* x_11; -x_10 = lean_unsigned_to_nat(0u); -x_11 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simp___spec__7(x_2, x_10, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_11; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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_object* x_11, lean_object* x_12) { -_start: -{ -lean_object* x_13; -lean_dec(x_5); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_4); -x_13 = l_Lean_Compiler_LCNF_Simp_ConstantFold_foldConstants(x_4, x_8, x_9, x_10, x_11, x_12); -if (lean_obj_tag(x_13) == 0) -{ -lean_object* x_14; -x_14 = lean_ctor_get(x_13, 0); -lean_inc(x_14); -if (lean_obj_tag(x_14) == 0) -{ -lean_object* x_15; lean_object* x_16; -x_15 = lean_ctor_get(x_13, 1); -lean_inc(x_15); -lean_dec(x_13); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_4); -x_16 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_15); -if (lean_obj_tag(x_16) == 0) -{ -lean_object* x_17; -x_17 = lean_ctor_get(x_16, 0); -lean_inc(x_17); -if (lean_obj_tag(x_17) == 0) -{ -lean_object* x_18; lean_object* x_19; uint8_t x_20; -x_18 = lean_ctor_get(x_16, 1); -lean_inc(x_18); -lean_dec(x_16); -x_19 = lean_ctor_get(x_4, 3); -lean_inc(x_19); -x_20 = l_Lean_Expr_isFVar(x_19); -if (x_20 == 0) -{ -lean_object* x_21; -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_1); -lean_inc(x_4); -x_21 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f(x_4, x_1, x_6, x_7, x_8, x_9, x_10, x_11, x_18); -if (lean_obj_tag(x_21) == 0) -{ -lean_object* x_22; -x_22 = lean_ctor_get(x_21, 0); -lean_inc(x_22); -if (lean_obj_tag(x_22) == 0) -{ -lean_object* x_23; lean_object* x_24; -x_23 = lean_ctor_get(x_21, 1); -lean_inc(x_23); -lean_dec(x_21); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -x_24 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f(x_19, x_6, x_7, x_8, x_9, x_10, x_11, x_23); -if (lean_obj_tag(x_24) == 0) -{ -lean_object* x_25; -x_25 = lean_ctor_get(x_24, 0); -lean_inc(x_25); -if (lean_obj_tag(x_25) == 0) -{ -lean_object* x_26; lean_object* x_27; -x_26 = lean_ctor_get(x_24, 1); -lean_inc(x_26); -lean_dec(x_24); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_1); -x_27 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_6, x_7, x_8, x_9, x_10, x_11, x_26); -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; uint8_t x_33; -x_28 = lean_ctor_get(x_27, 0); -lean_inc(x_28); -x_29 = lean_ctor_get(x_27, 1); -lean_inc(x_29); -lean_dec(x_27); -x_30 = lean_ctor_get(x_4, 0); -lean_inc(x_30); -x_31 = l_Lean_Compiler_LCNF_Simp_isUsed(x_30, x_6, x_7, x_8, x_9, x_10, x_11, x_29); -lean_dec(x_30); -x_32 = lean_ctor_get(x_31, 0); -lean_inc(x_32); -x_33 = lean_unbox(x_32); -lean_dec(x_32); -if (x_33 == 0) -{ -lean_object* x_34; lean_object* x_35; uint8_t x_36; -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_34 = lean_ctor_get(x_31, 1); -lean_inc(x_34); -lean_dec(x_31); -x_35 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_34); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_4); -x_36 = !lean_is_exclusive(x_35); -if (x_36 == 0) -{ -lean_object* x_37; -x_37 = lean_ctor_get(x_35, 0); -lean_dec(x_37); -lean_ctor_set(x_35, 0, x_28); -return x_35; -} -else -{ -lean_object* x_38; lean_object* x_39; -x_38 = lean_ctor_get(x_35, 1); -lean_inc(x_38); -lean_dec(x_35); -x_39 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_39, 0, x_28); -lean_ctor_set(x_39, 1, x_38); -return x_39; -} -} -else -{ -lean_object* x_40; lean_object* x_41; uint8_t x_42; -x_40 = lean_ctor_get(x_31, 1); -lean_inc(x_40); -lean_dec(x_31); -lean_inc(x_4); -x_41 = l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_40); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -x_42 = !lean_is_exclusive(x_41); -if (x_42 == 0) -{ -lean_object* x_43; size_t x_44; size_t x_45; uint8_t x_46; -x_43 = lean_ctor_get(x_41, 0); -lean_dec(x_43); -x_44 = lean_ptr_addr(x_1); -lean_dec(x_1); -x_45 = lean_ptr_addr(x_28); -x_46 = lean_usize_dec_eq(x_44, x_45); -if (x_46 == 0) -{ -lean_object* x_47; -lean_dec(x_3); -lean_dec(x_2); -x_47 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_47, 0, x_4); -lean_ctor_set(x_47, 1, x_28); -lean_ctor_set(x_41, 0, x_47); -return x_41; -} -else -{ -size_t x_48; size_t x_49; uint8_t x_50; -x_48 = lean_ptr_addr(x_2); -lean_dec(x_2); -x_49 = lean_ptr_addr(x_4); -x_50 = lean_usize_dec_eq(x_48, x_49); +lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; uint8_t x_50; +x_46 = lean_ctor_get(x_35, 0); +x_47 = lean_unsigned_to_nat(0u); +x_48 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_16, x_47); +x_49 = l_Lean_Compiler_LCNF_Decl_getArity(x_46); +lean_dec(x_46); +x_50 = lean_nat_dec_lt(x_48, x_49); +lean_dec(x_49); +lean_dec(x_48); if (x_50 == 0) { lean_object* x_51; -lean_dec(x_3); -x_51 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_51, 0, x_4); -lean_ctor_set(x_51, 1, x_28); -lean_ctor_set(x_41, 0, x_51); -return x_41; -} -else -{ -lean_dec(x_28); -lean_dec(x_4); -lean_ctor_set(x_41, 0, x_3); -return x_41; -} -} -} -else -{ -lean_object* x_52; size_t x_53; size_t x_54; uint8_t x_55; -x_52 = lean_ctor_get(x_41, 1); -lean_inc(x_52); -lean_dec(x_41); -x_53 = lean_ptr_addr(x_1); -lean_dec(x_1); -x_54 = lean_ptr_addr(x_28); -x_55 = lean_usize_dec_eq(x_53, x_54); -if (x_55 == 0) -{ -lean_object* x_56; lean_object* x_57; -lean_dec(x_3); -lean_dec(x_2); -x_56 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_56, 0, x_4); -lean_ctor_set(x_56, 1, x_28); -x_57 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_57, 0, x_56); -lean_ctor_set(x_57, 1, x_52); -return x_57; -} -else -{ -size_t x_58; size_t x_59; uint8_t x_60; -x_58 = lean_ptr_addr(x_2); -lean_dec(x_2); -x_59 = lean_ptr_addr(x_4); -x_60 = lean_usize_dec_eq(x_58, x_59); -if (x_60 == 0) -{ -lean_object* x_61; lean_object* x_62; -lean_dec(x_3); -x_61 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_61, 0, x_4); -lean_ctor_set(x_61, 1, x_28); -x_62 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_62, 0, x_61); -lean_ctor_set(x_62, 1, x_52); -return x_62; -} -else -{ -lean_object* x_63; -lean_dec(x_28); -lean_dec(x_4); -x_63 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_63, 0, x_3); -lean_ctor_set(x_63, 1, x_52); -return x_63; -} -} -} -} -} -else -{ -uint8_t x_64; -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); +lean_free_object(x_35); +lean_dec(x_16); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); +lean_dec(x_5); lean_dec(x_1); -x_64 = !lean_is_exclusive(x_27); -if (x_64 == 0) -{ -return x_27; +x_51 = lean_box(0); +lean_ctor_set(x_34, 0, x_51); +return x_34; } else { -lean_object* x_65; lean_object* x_66; lean_object* x_67; -x_65 = lean_ctor_get(x_27, 0); -x_66 = lean_ctor_get(x_27, 1); -lean_inc(x_66); -lean_inc(x_65); -lean_dec(x_27); -x_67 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_67, 0, x_65); -lean_ctor_set(x_67, 1, x_66); -return x_67; -} -} -} -else -{ -lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; -lean_dec(x_3); -lean_dec(x_2); -x_68 = lean_ctor_get(x_25, 0); -lean_inc(x_68); -lean_dec(x_25); -x_69 = lean_ctor_get(x_24, 1); -lean_inc(x_69); -lean_dec(x_24); -x_70 = lean_ctor_get(x_68, 0); -lean_inc(x_70); -x_71 = lean_ctor_get(x_68, 1); -lean_inc(x_71); -lean_dec(x_68); -x_72 = lean_ctor_get(x_4, 0); -lean_inc(x_72); -x_73 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_72, x_71, x_6, x_7, x_8, x_9, x_10, x_11, x_69); -if (lean_obj_tag(x_73) == 0) -{ -lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; -x_74 = lean_ctor_get(x_73, 1); -lean_inc(x_74); -lean_dec(x_73); -x_75 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_74); -lean_dec(x_4); -x_76 = lean_ctor_get(x_75, 1); -lean_inc(x_76); -lean_dec(x_75); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; size_t x_57; size_t x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +lean_free_object(x_34); +x_52 = lean_ctor_get(x_1, 2); +lean_inc(x_52); +x_53 = l_Lean_Compiler_LCNF_mkNewParams(x_52, x_5, x_6, x_7, x_8, x_43); +x_54 = lean_ctor_get(x_53, 0); +lean_inc(x_54); +x_55 = lean_ctor_get(x_53, 1); +lean_inc(x_55); +lean_dec(x_53); +x_56 = lean_array_get_size(x_54); +x_57 = lean_usize_of_nat(x_56); +lean_dec(x_56); +x_58 = 0; +lean_inc(x_54); +x_59 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_57, x_58, x_54); +x_60 = l_Lean_mkAppN(x_16, x_59); +x_61 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); -x_77 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_6, x_7, x_8, x_9, x_10, x_11, x_76); -if (lean_obj_tag(x_77) == 0) +lean_inc(x_5); +x_62 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_60, x_61, x_5, x_6, x_7, x_8, x_55); +if (lean_obj_tag(x_62) == 0) { -lean_object* x_78; lean_object* x_79; lean_object* x_80; -x_78 = lean_ctor_get(x_77, 0); -lean_inc(x_78); -x_79 = lean_ctor_get(x_77, 1); +lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; +x_63 = lean_ctor_get(x_62, 0); +lean_inc(x_63); +x_64 = lean_ctor_get(x_62, 1); +lean_inc(x_64); +lean_dec(x_62); +x_65 = lean_ctor_get(x_63, 0); +lean_inc(x_65); +x_66 = lean_alloc_ctor(5, 1, 0); +lean_ctor_set(x_66, 0, x_65); +x_67 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_67, 0, x_63); +lean_ctor_set(x_67, 1, x_66); +x_68 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__4; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +x_69 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_54, x_67, x_68, x_5, x_6, x_7, x_8, x_64); +if (lean_obj_tag(x_69) == 0) +{ +lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; +x_70 = lean_ctor_get(x_69, 0); +lean_inc(x_70); +x_71 = lean_ctor_get(x_69, 1); +lean_inc(x_71); +lean_dec(x_69); +x_72 = lean_ctor_get(x_1, 0); +lean_inc(x_72); +x_73 = lean_ctor_get(x_70, 0); +lean_inc(x_73); +x_74 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_72, x_73, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_71); +if (lean_obj_tag(x_74) == 0) +{ +lean_object* x_75; lean_object* x_76; uint8_t x_77; +x_75 = lean_ctor_get(x_74, 1); +lean_inc(x_75); +lean_dec(x_74); +x_76 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_75); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_77 = !lean_is_exclusive(x_76); +if (x_77 == 0) +{ +lean_object* x_78; +x_78 = lean_ctor_get(x_76, 0); +lean_dec(x_78); +lean_ctor_set(x_35, 0, x_70); +lean_ctor_set(x_76, 0, x_35); +return x_76; +} +else +{ +lean_object* x_79; lean_object* x_80; +x_79 = lean_ctor_get(x_76, 1); lean_inc(x_79); -lean_dec(x_77); -x_80 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls(x_70, x_78, x_6, x_7, x_8, x_9, x_10, x_11, x_79); -lean_dec(x_70); +lean_dec(x_76); +lean_ctor_set(x_35, 0, x_70); +x_80 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_80, 0, x_35); +lean_ctor_set(x_80, 1, x_79); return x_80; } +} else { uint8_t x_81; lean_dec(x_70); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); +lean_free_object(x_35); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); -x_81 = !lean_is_exclusive(x_77); +lean_dec(x_5); +lean_dec(x_1); +x_81 = !lean_is_exclusive(x_74); if (x_81 == 0) { -return x_77; +return x_74; } else { lean_object* x_82; lean_object* x_83; lean_object* x_84; -x_82 = lean_ctor_get(x_77, 0); -x_83 = lean_ctor_get(x_77, 1); +x_82 = lean_ctor_get(x_74, 0); +x_83 = lean_ctor_get(x_74, 1); lean_inc(x_83); lean_inc(x_82); -lean_dec(x_77); +lean_dec(x_74); x_84 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_84, 0, x_82); lean_ctor_set(x_84, 1, x_83); @@ -4208,28 +1447,25 @@ return x_84; else { uint8_t x_85; -lean_dec(x_70); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); +lean_free_object(x_35); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); -lean_dec(x_4); +lean_dec(x_5); lean_dec(x_1); -x_85 = !lean_is_exclusive(x_73); +x_85 = !lean_is_exclusive(x_69); if (x_85 == 0) { -return x_73; +return x_69; } else { lean_object* x_86; lean_object* x_87; lean_object* x_88; -x_86 = lean_ctor_get(x_73, 0); -x_87 = lean_ctor_get(x_73, 1); +x_86 = lean_ctor_get(x_69, 0); +x_87 = lean_ctor_get(x_69, 1); lean_inc(x_87); lean_inc(x_86); -lean_dec(x_73); +lean_dec(x_69); x_88 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_88, 0, x_86); lean_ctor_set(x_88, 1, x_87); @@ -4237,33 +1473,29 @@ return x_88; } } } -} else { uint8_t x_89; -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); +lean_dec(x_54); +lean_free_object(x_35); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); +lean_dec(x_5); lean_dec(x_1); -x_89 = !lean_is_exclusive(x_24); +x_89 = !lean_is_exclusive(x_62); if (x_89 == 0) { -return x_24; +return x_62; } else { lean_object* x_90; lean_object* x_91; lean_object* x_92; -x_90 = lean_ctor_get(x_24, 0); -x_91 = lean_ctor_get(x_24, 1); +x_90 = lean_ctor_get(x_62, 0); +x_91 = lean_ctor_get(x_62, 1); lean_inc(x_91); lean_inc(x_90); -lean_dec(x_24); +lean_dec(x_62); x_92 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_92, 0, x_90); lean_ctor_set(x_92, 1, x_91); @@ -4271,790 +1503,1867 @@ return x_92; } } } +} else { -lean_object* x_93; lean_object* x_94; lean_object* x_95; uint8_t x_96; -lean_dec(x_19); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_93 = lean_ctor_get(x_21, 1); +lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; uint8_t x_97; +x_93 = lean_ctor_get(x_35, 0); lean_inc(x_93); -lean_dec(x_21); -x_94 = lean_ctor_get(x_22, 0); -lean_inc(x_94); -lean_dec(x_22); -x_95 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_93); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_4); -x_96 = !lean_is_exclusive(x_95); -if (x_96 == 0) -{ -lean_object* x_97; -x_97 = lean_ctor_get(x_95, 0); -lean_dec(x_97); -lean_ctor_set(x_95, 0, x_94); -return x_95; -} -else -{ -lean_object* x_98; lean_object* x_99; -x_98 = lean_ctor_get(x_95, 1); -lean_inc(x_98); +lean_dec(x_35); +x_94 = lean_unsigned_to_nat(0u); +x_95 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_16, x_94); +x_96 = l_Lean_Compiler_LCNF_Decl_getArity(x_93); +lean_dec(x_93); +x_97 = lean_nat_dec_lt(x_95, x_96); +lean_dec(x_96); lean_dec(x_95); -x_99 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_99, 0, x_94); -lean_ctor_set(x_99, 1, x_98); -return x_99; -} -} -} -else +if (x_97 == 0) { -uint8_t x_100; -lean_dec(x_19); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); +lean_object* x_98; +lean_dec(x_16); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); +lean_dec(x_5); lean_dec(x_1); -x_100 = !lean_is_exclusive(x_21); -if (x_100 == 0) -{ -return x_21; +x_98 = lean_box(0); +lean_ctor_set(x_34, 0, x_98); +return x_34; } else { -lean_object* x_101; lean_object* x_102; lean_object* x_103; -x_101 = lean_ctor_get(x_21, 0); -x_102 = lean_ctor_get(x_21, 1); -lean_inc(x_102); +lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; size_t x_104; size_t x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; +lean_free_object(x_34); +x_99 = lean_ctor_get(x_1, 2); +lean_inc(x_99); +x_100 = l_Lean_Compiler_LCNF_mkNewParams(x_99, x_5, x_6, x_7, x_8, x_43); +x_101 = lean_ctor_get(x_100, 0); lean_inc(x_101); -lean_dec(x_21); -x_103 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_103, 0, x_101); -lean_ctor_set(x_103, 1, x_102); -return x_103; -} -} -} -else -{ -lean_object* x_104; lean_object* x_105; lean_object* x_106; -lean_dec(x_3); -lean_dec(x_2); -x_104 = lean_ctor_get(x_4, 0); -lean_inc(x_104); -x_105 = l_Lean_Expr_fvarId_x21(x_19); -x_106 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_104, x_105, x_6, x_7, x_8, x_9, x_10, x_11, x_18); -if (lean_obj_tag(x_106) == 0) -{ -lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; -x_107 = lean_ctor_get(x_106, 1); -lean_inc(x_107); -lean_dec(x_106); -x_108 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_107); -lean_dec(x_4); -x_109 = lean_ctor_get(x_108, 1); -lean_inc(x_109); -lean_dec(x_108); -x_110 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_6, x_7, x_8, x_9, x_10, x_11, x_109); -return x_110; -} -else -{ -uint8_t x_111; -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_4); -lean_dec(x_1); -x_111 = !lean_is_exclusive(x_106); -if (x_111 == 0) -{ -return x_106; -} -else -{ -lean_object* x_112; lean_object* x_113; lean_object* x_114; -x_112 = lean_ctor_get(x_106, 0); -x_113 = lean_ctor_get(x_106, 1); -lean_inc(x_113); -lean_inc(x_112); -lean_dec(x_106); -x_114 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_114, 0, x_112); -lean_ctor_set(x_114, 1, x_113); -return x_114; -} -} -} -} -else -{ -lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_115 = lean_ctor_get(x_16, 1); -lean_inc(x_115); -lean_dec(x_16); -x_116 = lean_ctor_get(x_17, 0); -lean_inc(x_116); -lean_dec(x_17); -x_117 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_117, 0, x_116); -lean_ctor_set(x_117, 1, x_1); -x_118 = l_Lean_Compiler_LCNF_Simp_simp(x_117, x_6, x_7, x_8, x_9, x_10, x_11, x_115); -return x_118; -} -} -else -{ -uint8_t x_119; -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_119 = !lean_is_exclusive(x_16); -if (x_119 == 0) -{ -return x_16; -} -else -{ -lean_object* x_120; lean_object* x_121; lean_object* x_122; -x_120 = lean_ctor_get(x_16, 0); -x_121 = lean_ctor_get(x_16, 1); -lean_inc(x_121); -lean_inc(x_120); -lean_dec(x_16); -x_122 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_122, 0, x_120); -lean_ctor_set(x_122, 1, x_121); -return x_122; -} -} -} -else -{ -lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_123 = lean_ctor_get(x_13, 1); -lean_inc(x_123); -lean_dec(x_13); -x_124 = lean_ctor_get(x_14, 0); -lean_inc(x_124); -lean_dec(x_14); -x_125 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_7, x_8, x_9, x_10, x_11, x_123); -x_126 = lean_ctor_get(x_125, 1); -lean_inc(x_126); -lean_dec(x_125); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); +x_102 = lean_ctor_get(x_100, 1); +lean_inc(x_102); +lean_dec(x_100); +x_103 = lean_array_get_size(x_101); +x_104 = lean_usize_of_nat(x_103); +lean_dec(x_103); +x_105 = 0; +lean_inc(x_101); +x_106 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_104, x_105, x_101); +x_107 = l_Lean_mkAppN(x_16, x_106); +x_108 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); -x_127 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_6, x_7, x_8, x_9, x_10, x_11, x_126); -if (lean_obj_tag(x_127) == 0) +lean_inc(x_5); +x_109 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_107, x_108, x_5, x_6, x_7, x_8, x_102); +if (lean_obj_tag(x_109) == 0) { -lean_object* x_128; lean_object* x_129; lean_object* x_130; -x_128 = lean_ctor_get(x_127, 0); -lean_inc(x_128); -x_129 = lean_ctor_get(x_127, 1); -lean_inc(x_129); -lean_dec(x_127); -x_130 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls(x_124, x_128, x_6, x_7, x_8, x_9, x_10, x_11, x_129); -lean_dec(x_124); -return x_130; -} -else +lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; +x_110 = lean_ctor_get(x_109, 0); +lean_inc(x_110); +x_111 = lean_ctor_get(x_109, 1); +lean_inc(x_111); +lean_dec(x_109); +x_112 = lean_ctor_get(x_110, 0); +lean_inc(x_112); +x_113 = lean_alloc_ctor(5, 1, 0); +lean_ctor_set(x_113, 0, x_112); +x_114 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_114, 0, x_110); +lean_ctor_set(x_114, 1, x_113); +x_115 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__4; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +x_116 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_101, x_114, x_115, x_5, x_6, x_7, x_8, x_111); +if (lean_obj_tag(x_116) == 0) { -uint8_t x_131; -lean_dec(x_124); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); +lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; +x_117 = lean_ctor_get(x_116, 0); +lean_inc(x_117); +x_118 = lean_ctor_get(x_116, 1); +lean_inc(x_118); +lean_dec(x_116); +x_119 = lean_ctor_get(x_1, 0); +lean_inc(x_119); +x_120 = lean_ctor_get(x_117, 0); +lean_inc(x_120); +x_121 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_119, x_120, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_118); +if (lean_obj_tag(x_121) == 0) +{ +lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; +x_122 = lean_ctor_get(x_121, 1); +lean_inc(x_122); +lean_dec(x_121); +x_123 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_122); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); -x_131 = !lean_is_exclusive(x_127); -if (x_131 == 0) -{ +lean_dec(x_5); +lean_dec(x_1); +x_124 = lean_ctor_get(x_123, 1); +lean_inc(x_124); +if (lean_is_exclusive(x_123)) { + lean_ctor_release(x_123, 0); + lean_ctor_release(x_123, 1); + x_125 = x_123; +} else { + lean_dec_ref(x_123); + x_125 = lean_box(0); +} +x_126 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_126, 0, x_117); +if (lean_is_scalar(x_125)) { + x_127 = lean_alloc_ctor(0, 2, 0); +} else { + x_127 = x_125; +} +lean_ctor_set(x_127, 0, x_126); +lean_ctor_set(x_127, 1, x_124); return x_127; } else { -lean_object* x_132; lean_object* x_133; lean_object* x_134; -x_132 = lean_ctor_get(x_127, 0); -x_133 = lean_ctor_get(x_127, 1); -lean_inc(x_133); +lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; +lean_dec(x_117); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_128 = lean_ctor_get(x_121, 0); +lean_inc(x_128); +x_129 = lean_ctor_get(x_121, 1); +lean_inc(x_129); +if (lean_is_exclusive(x_121)) { + lean_ctor_release(x_121, 0); + lean_ctor_release(x_121, 1); + x_130 = x_121; +} else { + lean_dec_ref(x_121); + x_130 = lean_box(0); +} +if (lean_is_scalar(x_130)) { + x_131 = lean_alloc_ctor(1, 2, 0); +} else { + x_131 = x_130; +} +lean_ctor_set(x_131, 0, x_128); +lean_ctor_set(x_131, 1, x_129); +return x_131; +} +} +else +{ +lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_132 = lean_ctor_get(x_116, 0); lean_inc(x_132); -lean_dec(x_127); -x_134 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_134, 0, x_132); -lean_ctor_set(x_134, 1, x_133); -return x_134; +x_133 = lean_ctor_get(x_116, 1); +lean_inc(x_133); +if (lean_is_exclusive(x_116)) { + lean_ctor_release(x_116, 0); + lean_ctor_release(x_116, 1); + x_134 = x_116; +} else { + lean_dec_ref(x_116); + x_134 = lean_box(0); } +if (lean_is_scalar(x_134)) { + x_135 = lean_alloc_ctor(1, 2, 0); +} else { + x_135 = x_134; } +lean_ctor_set(x_135, 0, x_132); +lean_ctor_set(x_135, 1, x_133); +return x_135; } } else { -uint8_t x_135; -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); +lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; +lean_dec(x_101); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); +lean_dec(x_5); lean_dec(x_1); -x_135 = !lean_is_exclusive(x_13); -if (x_135 == 0) -{ -return x_13; -} -else -{ -lean_object* x_136; lean_object* x_137; lean_object* x_138; -x_136 = lean_ctor_get(x_13, 0); -x_137 = lean_ctor_get(x_13, 1); -lean_inc(x_137); +x_136 = lean_ctor_get(x_109, 0); lean_inc(x_136); -lean_dec(x_13); -x_138 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_138, 0, x_136); -lean_ctor_set(x_138, 1, x_137); -return x_138; +x_137 = lean_ctor_get(x_109, 1); +lean_inc(x_137); +if (lean_is_exclusive(x_109)) { + lean_ctor_release(x_109, 0); + lean_ctor_release(x_109, 1); + x_138 = x_109; +} else { + lean_dec_ref(x_109); + x_138 = lean_box(0); +} +if (lean_is_scalar(x_138)) { + x_139 = lean_alloc_ctor(1, 2, 0); +} else { + x_139 = x_138; +} +lean_ctor_set(x_139, 0, x_136); +lean_ctor_set(x_139, 1, x_137); +return x_139; } } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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, lean_object* x_11, lean_object* x_12, lean_object* x_13) { -_start: -{ -size_t x_14; size_t x_15; uint8_t x_16; -x_14 = lean_ptr_addr(x_1); -x_15 = lean_ptr_addr(x_2); -x_16 = lean_usize_dec_eq(x_14, x_15); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; -lean_dec(x_5); -x_17 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_17, 0, x_3); -lean_ctor_set(x_17, 1, x_2); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_17); -lean_ctor_set(x_18, 1, x_13); -return x_18; -} else { -size_t x_19; size_t x_20; uint8_t x_21; -x_19 = lean_ptr_addr(x_4); -x_20 = lean_ptr_addr(x_3); -x_21 = lean_usize_dec_eq(x_19, x_20); -if (x_21 == 0) +lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; uint8_t x_146; +x_140 = lean_ctor_get(x_34, 1); +lean_inc(x_140); +lean_dec(x_34); +x_141 = lean_ctor_get(x_35, 0); +lean_inc(x_141); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + x_142 = x_35; +} else { + lean_dec_ref(x_35); + x_142 = lean_box(0); +} +x_143 = lean_unsigned_to_nat(0u); +x_144 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_16, x_143); +x_145 = l_Lean_Compiler_LCNF_Decl_getArity(x_141); +lean_dec(x_141); +x_146 = lean_nat_dec_lt(x_144, x_145); +lean_dec(x_145); +lean_dec(x_144); +if (x_146 == 0) { -lean_object* x_22; lean_object* x_23; -lean_dec(x_5); -x_22 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_22, 0, x_3); -lean_ctor_set(x_22, 1, x_2); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_13); -return x_23; -} -else -{ -lean_object* x_24; -lean_dec(x_3); -lean_dec(x_2); -x_24 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_24, 0, x_5); -lean_ctor_set(x_24, 1, x_13); -return x_24; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { -_start: -{ -lean_object* x_14; +lean_object* x_147; lean_object* x_148; +lean_dec(x_142); +lean_dec(x_16); +lean_dec(x_8); +lean_dec(x_7); lean_dec(x_6); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_1); -x_14 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_7, x_8, x_9, x_10, x_11, x_12, x_13); -if (lean_obj_tag(x_14) == 0) -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -x_17 = lean_ctor_get(x_5, 0); -lean_inc(x_17); -x_18 = l_Lean_Compiler_LCNF_Simp_isUsed(x_17, x_7, x_8, x_9, x_10, x_11, x_12, x_16); -lean_dec(x_17); -x_19 = lean_ctor_get(x_18, 0); -lean_inc(x_19); -x_20 = lean_unbox(x_19); -lean_dec(x_19); -if (x_20 == 0) -{ -lean_object* x_21; lean_object* x_22; uint8_t x_23; -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_21 = lean_ctor_get(x_18, 1); -lean_inc(x_21); -lean_dec(x_18); -x_22 = l_Lean_Compiler_LCNF_Simp_eraseFunDecl(x_5, x_7, x_8, x_9, x_10, x_11, x_12, x_21); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -x_23 = !lean_is_exclusive(x_22); -if (x_23 == 0) -{ -lean_object* x_24; -x_24 = lean_ctor_get(x_22, 0); -lean_dec(x_24); -lean_ctor_set(x_22, 0, x_15); -return x_22; -} -else -{ -lean_object* x_25; lean_object* x_26; -x_25 = lean_ctor_get(x_22, 1); -lean_inc(x_25); -lean_dec(x_22); -x_26 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_26, 0, x_15); -lean_ctor_set(x_26, 1, x_25); -return x_26; -} -} -else -{ -if (x_4 == 0) -{ -lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_27 = lean_ctor_get(x_18, 1); -lean_inc(x_27); -lean_dec(x_18); -x_28 = lean_box(0); -x_29 = l_Lean_Compiler_LCNF_Simp_simp___lambda__2(x_1, x_15, x_5, x_2, x_3, x_28, x_7, x_8, x_9, x_10, x_11, x_12, x_27); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_2); -lean_dec(x_1); -return x_29; -} -else -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; -x_30 = lean_ctor_get(x_18, 1); -lean_inc(x_30); -lean_dec(x_18); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_5); -x_31 = l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(x_5, x_7, x_8, x_9, x_10, x_11, x_12, x_30); -x_32 = lean_ctor_get(x_31, 0); -lean_inc(x_32); -x_33 = lean_ctor_get(x_31, 1); -lean_inc(x_33); -lean_dec(x_31); -x_34 = l_Lean_Compiler_LCNF_Simp_simp___lambda__2(x_1, x_15, x_5, x_2, x_3, x_32, x_7, x_8, x_9, x_10, x_11, x_12, x_33); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_32); -lean_dec(x_2); -lean_dec(x_1); -return x_34; -} -} -} -else -{ -uint8_t x_35; -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); lean_dec(x_1); -x_35 = !lean_is_exclusive(x_14); -if (x_35 == 0) -{ -return x_14; +x_147 = lean_box(0); +x_148 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_148, 0, x_147); +lean_ctor_set(x_148, 1, x_140); +return x_148; } else { -lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_36 = lean_ctor_get(x_14, 0); -x_37 = lean_ctor_get(x_14, 1); -lean_inc(x_37); -lean_inc(x_36); -lean_dec(x_14); -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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__4(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; -lean_inc(x_9); +lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; size_t x_154; size_t x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; +x_149 = lean_ctor_get(x_1, 2); +lean_inc(x_149); +x_150 = l_Lean_Compiler_LCNF_mkNewParams(x_149, x_5, x_6, x_7, x_8, x_140); +x_151 = lean_ctor_get(x_150, 0); +lean_inc(x_151); +x_152 = lean_ctor_get(x_150, 1); +lean_inc(x_152); +lean_dec(x_150); +x_153 = lean_array_get_size(x_151); +x_154 = lean_usize_of_nat(x_153); +lean_dec(x_153); +x_155 = 0; +lean_inc(x_151); +x_156 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_154, x_155, x_151); +x_157 = l_Lean_mkAppN(x_16, x_156); +x_158 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -lean_inc(x_4); -x_11 = l_Lean_Compiler_LCNF_Simp_simpFunDecl(x_2, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -if (lean_obj_tag(x_11) == 0) +x_159 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_157, x_158, x_5, x_6, x_7, x_8, x_152); +if (lean_obj_tag(x_159) == 0) { -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 = lean_box(0); -x_15 = lean_apply_9(x_1, x_12, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_13); -return x_15; +lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; +x_160 = lean_ctor_get(x_159, 0); +lean_inc(x_160); +x_161 = lean_ctor_get(x_159, 1); +lean_inc(x_161); +lean_dec(x_159); +x_162 = lean_ctor_get(x_160, 0); +lean_inc(x_162); +x_163 = lean_alloc_ctor(5, 1, 0); +lean_ctor_set(x_163, 0, x_162); +x_164 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_164, 0, x_160); +lean_ctor_set(x_164, 1, x_163); +x_165 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__4; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +x_166 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_151, x_164, x_165, x_5, x_6, x_7, x_8, x_161); +if (lean_obj_tag(x_166) == 0) +{ +lean_object* x_167; lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; +x_167 = lean_ctor_get(x_166, 0); +lean_inc(x_167); +x_168 = lean_ctor_get(x_166, 1); +lean_inc(x_168); +lean_dec(x_166); +x_169 = lean_ctor_get(x_1, 0); +lean_inc(x_169); +x_170 = lean_ctor_get(x_167, 0); +lean_inc(x_170); +x_171 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_169, x_170, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_168); +if (lean_obj_tag(x_171) == 0) +{ +lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; +x_172 = lean_ctor_get(x_171, 1); +lean_inc(x_172); +lean_dec(x_171); +x_173 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_172); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_174 = lean_ctor_get(x_173, 1); +lean_inc(x_174); +if (lean_is_exclusive(x_173)) { + lean_ctor_release(x_173, 0); + lean_ctor_release(x_173, 1); + x_175 = x_173; +} else { + lean_dec_ref(x_173); + x_175 = lean_box(0); +} +if (lean_is_scalar(x_142)) { + x_176 = lean_alloc_ctor(1, 1, 0); +} else { + x_176 = x_142; +} +lean_ctor_set(x_176, 0, x_167); +if (lean_is_scalar(x_175)) { + x_177 = lean_alloc_ctor(0, 2, 0); +} else { + x_177 = x_175; +} +lean_ctor_set(x_177, 0, x_176); +lean_ctor_set(x_177, 1, x_174); +return x_177; } else { -uint8_t x_16; +lean_object* x_178; lean_object* x_179; lean_object* x_180; lean_object* x_181; +lean_dec(x_167); +lean_dec(x_142); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_178 = lean_ctor_get(x_171, 0); +lean_inc(x_178); +x_179 = lean_ctor_get(x_171, 1); +lean_inc(x_179); +if (lean_is_exclusive(x_171)) { + lean_ctor_release(x_171, 0); + lean_ctor_release(x_171, 1); + x_180 = x_171; +} else { + lean_dec_ref(x_171); + x_180 = lean_box(0); +} +if (lean_is_scalar(x_180)) { + x_181 = lean_alloc_ctor(1, 2, 0); +} else { + x_181 = x_180; +} +lean_ctor_set(x_181, 0, x_178); +lean_ctor_set(x_181, 1, x_179); +return x_181; +} +} +else +{ +lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; +lean_dec(x_142); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_182 = lean_ctor_get(x_166, 0); +lean_inc(x_182); +x_183 = lean_ctor_get(x_166, 1); +lean_inc(x_183); +if (lean_is_exclusive(x_166)) { + lean_ctor_release(x_166, 0); + lean_ctor_release(x_166, 1); + x_184 = x_166; +} else { + lean_dec_ref(x_166); + x_184 = lean_box(0); +} +if (lean_is_scalar(x_184)) { + x_185 = lean_alloc_ctor(1, 2, 0); +} else { + x_185 = x_184; +} +lean_ctor_set(x_185, 0, x_182); +lean_ctor_set(x_185, 1, x_183); +return x_185; +} +} +else +{ +lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; +lean_dec(x_151); +lean_dec(x_142); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_186 = lean_ctor_get(x_159, 0); +lean_inc(x_186); +x_187 = lean_ctor_get(x_159, 1); +lean_inc(x_187); +if (lean_is_exclusive(x_159)) { + lean_ctor_release(x_159, 0); + lean_ctor_release(x_159, 1); + x_188 = x_159; +} else { + lean_dec_ref(x_159); + x_188 = lean_box(0); +} +if (lean_is_scalar(x_188)) { + x_189 = lean_alloc_ctor(1, 2, 0); +} else { + x_189 = x_188; +} +lean_ctor_set(x_189, 0, x_186); +lean_ctor_set(x_189, 1, x_187); +return x_189; +} +} +} +} +} +else +{ +uint8_t x_190; +lean_dec(x_18); +lean_dec(x_16); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_190 = !lean_is_exclusive(x_30); +if (x_190 == 0) +{ +lean_object* x_191; lean_object* x_192; +x_191 = lean_ctor_get(x_30, 0); +lean_dec(x_191); +x_192 = lean_box(0); +lean_ctor_set(x_30, 0, x_192); +return x_30; +} +else +{ +lean_object* x_193; lean_object* x_194; lean_object* x_195; +x_193 = lean_ctor_get(x_30, 1); +lean_inc(x_193); +lean_dec(x_30); +x_194 = lean_box(0); +x_195 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_195, 0, x_194); +lean_ctor_set(x_195, 1, x_193); +return x_195; +} +} +} +} +} +else +{ +lean_object* x_196; lean_object* x_197; lean_object* x_198; lean_object* x_199; +x_196 = lean_ctor_get(x_19, 0); +x_197 = lean_ctor_get(x_19, 1); +lean_inc(x_197); +lean_inc(x_196); +lean_dec(x_19); +x_198 = lean_ctor_get(x_196, 0); +lean_inc(x_198); +lean_dec(x_196); +lean_inc(x_18); +x_199 = lean_environment_find(x_198, x_18); +if (lean_obj_tag(x_199) == 0) +{ +lean_object* x_200; lean_object* x_201; +lean_dec(x_18); +lean_dec(x_16); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_200 = lean_box(0); +x_201 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_201, 0, x_200); +lean_ctor_set(x_201, 1, x_197); +return x_201; +} +else +{ +lean_object* x_202; lean_object* x_203; uint8_t x_204; +x_202 = lean_ctor_get(x_199, 0); +lean_inc(x_202); +lean_dec(x_199); +x_203 = l_Lean_ConstantInfo_type(x_202); +lean_dec(x_202); +x_204 = l_Lean_Compiler_LCNF_hasLocalInst(x_203); +lean_dec(x_203); +if (x_204 == 0) +{ +lean_object* x_205; lean_object* x_206; +lean_dec(x_18); +lean_dec(x_16); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_205 = lean_box(0); +x_206 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_206, 0, x_205); +lean_ctor_set(x_206, 1, x_197); +return x_206; +} +else +{ +lean_object* x_207; lean_object* x_208; uint8_t x_209; +lean_inc(x_18); +x_207 = l_Lean_Meta_isInstance(x_18, x_7, x_8, x_197); +x_208 = lean_ctor_get(x_207, 0); +lean_inc(x_208); +x_209 = lean_unbox(x_208); +lean_dec(x_208); +if (x_209 == 0) +{ +lean_object* x_210; lean_object* x_211; lean_object* x_212; +x_210 = lean_ctor_get(x_207, 1); +lean_inc(x_210); +lean_dec(x_207); +x_211 = l_Lean_Compiler_LCNF_getDecl_x3f(x_18, x_5, x_6, x_7, x_8, x_210); +x_212 = lean_ctor_get(x_211, 0); +lean_inc(x_212); +if (lean_obj_tag(x_212) == 0) +{ +lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; +lean_dec(x_16); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_213 = lean_ctor_get(x_211, 1); +lean_inc(x_213); +if (lean_is_exclusive(x_211)) { + lean_ctor_release(x_211, 0); + lean_ctor_release(x_211, 1); + x_214 = x_211; +} else { + lean_dec_ref(x_211); + x_214 = lean_box(0); +} +x_215 = lean_box(0); +if (lean_is_scalar(x_214)) { + x_216 = lean_alloc_ctor(0, 2, 0); +} else { + x_216 = x_214; +} +lean_ctor_set(x_216, 0, x_215); +lean_ctor_set(x_216, 1, x_213); +return x_216; +} +else +{ +lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; lean_object* x_222; lean_object* x_223; uint8_t x_224; +x_217 = lean_ctor_get(x_211, 1); +lean_inc(x_217); +if (lean_is_exclusive(x_211)) { + lean_ctor_release(x_211, 0); + lean_ctor_release(x_211, 1); + x_218 = x_211; +} else { + lean_dec_ref(x_211); + x_218 = lean_box(0); +} +x_219 = lean_ctor_get(x_212, 0); +lean_inc(x_219); +if (lean_is_exclusive(x_212)) { + lean_ctor_release(x_212, 0); + x_220 = x_212; +} else { + lean_dec_ref(x_212); + x_220 = lean_box(0); +} +x_221 = lean_unsigned_to_nat(0u); +x_222 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_16, x_221); +x_223 = l_Lean_Compiler_LCNF_Decl_getArity(x_219); +lean_dec(x_219); +x_224 = lean_nat_dec_lt(x_222, x_223); +lean_dec(x_223); +lean_dec(x_222); +if (x_224 == 0) +{ +lean_object* x_225; lean_object* x_226; +lean_dec(x_220); +lean_dec(x_16); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_225 = lean_box(0); +if (lean_is_scalar(x_218)) { + x_226 = lean_alloc_ctor(0, 2, 0); +} else { + x_226 = x_218; +} +lean_ctor_set(x_226, 0, x_225); +lean_ctor_set(x_226, 1, x_217); +return x_226; +} +else +{ +lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; lean_object* x_231; size_t x_232; size_t x_233; lean_object* x_234; lean_object* x_235; lean_object* x_236; lean_object* x_237; +lean_dec(x_218); +x_227 = lean_ctor_get(x_1, 2); +lean_inc(x_227); +x_228 = l_Lean_Compiler_LCNF_mkNewParams(x_227, x_5, x_6, x_7, x_8, x_217); +x_229 = lean_ctor_get(x_228, 0); +lean_inc(x_229); +x_230 = lean_ctor_get(x_228, 1); +lean_inc(x_230); +lean_dec(x_228); +x_231 = lean_array_get_size(x_229); +x_232 = lean_usize_of_nat(x_231); +lean_dec(x_231); +x_233 = 0; +lean_inc(x_229); +x_234 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_232, x_233, x_229); +x_235 = l_Lean_mkAppN(x_16, x_234); +x_236 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +x_237 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_235, x_236, x_5, x_6, x_7, x_8, x_230); +if (lean_obj_tag(x_237) == 0) +{ +lean_object* x_238; lean_object* x_239; lean_object* x_240; lean_object* x_241; lean_object* x_242; lean_object* x_243; lean_object* x_244; +x_238 = lean_ctor_get(x_237, 0); +lean_inc(x_238); +x_239 = lean_ctor_get(x_237, 1); +lean_inc(x_239); +lean_dec(x_237); +x_240 = lean_ctor_get(x_238, 0); +lean_inc(x_240); +x_241 = lean_alloc_ctor(5, 1, 0); +lean_ctor_set(x_241, 0, x_240); +x_242 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_242, 0, x_238); +lean_ctor_set(x_242, 1, x_241); +x_243 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__4; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +x_244 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_229, x_242, x_243, x_5, x_6, x_7, x_8, x_239); +if (lean_obj_tag(x_244) == 0) +{ +lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; lean_object* x_249; +x_245 = lean_ctor_get(x_244, 0); +lean_inc(x_245); +x_246 = lean_ctor_get(x_244, 1); +lean_inc(x_246); +lean_dec(x_244); +x_247 = lean_ctor_get(x_1, 0); +lean_inc(x_247); +x_248 = lean_ctor_get(x_245, 0); +lean_inc(x_248); +x_249 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_247, x_248, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_246); +if (lean_obj_tag(x_249) == 0) +{ +lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; lean_object* x_255; +x_250 = lean_ctor_get(x_249, 1); +lean_inc(x_250); +lean_dec(x_249); +x_251 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_250); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_252 = lean_ctor_get(x_251, 1); +lean_inc(x_252); +if (lean_is_exclusive(x_251)) { + lean_ctor_release(x_251, 0); + lean_ctor_release(x_251, 1); + x_253 = x_251; +} else { + lean_dec_ref(x_251); + x_253 = lean_box(0); +} +if (lean_is_scalar(x_220)) { + x_254 = lean_alloc_ctor(1, 1, 0); +} else { + x_254 = x_220; +} +lean_ctor_set(x_254, 0, x_245); +if (lean_is_scalar(x_253)) { + x_255 = lean_alloc_ctor(0, 2, 0); +} else { + x_255 = x_253; +} +lean_ctor_set(x_255, 0, x_254); +lean_ctor_set(x_255, 1, x_252); +return x_255; +} +else +{ +lean_object* x_256; lean_object* x_257; lean_object* x_258; lean_object* x_259; +lean_dec(x_245); +lean_dec(x_220); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_256 = lean_ctor_get(x_249, 0); +lean_inc(x_256); +x_257 = lean_ctor_get(x_249, 1); +lean_inc(x_257); +if (lean_is_exclusive(x_249)) { + lean_ctor_release(x_249, 0); + lean_ctor_release(x_249, 1); + x_258 = x_249; +} else { + lean_dec_ref(x_249); + x_258 = lean_box(0); +} +if (lean_is_scalar(x_258)) { + x_259 = lean_alloc_ctor(1, 2, 0); +} else { + x_259 = x_258; +} +lean_ctor_set(x_259, 0, x_256); +lean_ctor_set(x_259, 1, x_257); +return x_259; +} +} +else +{ +lean_object* x_260; lean_object* x_261; lean_object* x_262; lean_object* x_263; +lean_dec(x_220); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_260 = lean_ctor_get(x_244, 0); +lean_inc(x_260); +x_261 = lean_ctor_get(x_244, 1); +lean_inc(x_261); +if (lean_is_exclusive(x_244)) { + lean_ctor_release(x_244, 0); + lean_ctor_release(x_244, 1); + x_262 = x_244; +} else { + lean_dec_ref(x_244); + x_262 = lean_box(0); +} +if (lean_is_scalar(x_262)) { + x_263 = lean_alloc_ctor(1, 2, 0); +} else { + x_263 = x_262; +} +lean_ctor_set(x_263, 0, x_260); +lean_ctor_set(x_263, 1, x_261); +return x_263; +} +} +else +{ +lean_object* x_264; lean_object* x_265; lean_object* x_266; lean_object* x_267; +lean_dec(x_229); +lean_dec(x_220); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_264 = lean_ctor_get(x_237, 0); +lean_inc(x_264); +x_265 = lean_ctor_get(x_237, 1); +lean_inc(x_265); +if (lean_is_exclusive(x_237)) { + lean_ctor_release(x_237, 0); + lean_ctor_release(x_237, 1); + x_266 = x_237; +} else { + lean_dec_ref(x_237); + x_266 = lean_box(0); +} +if (lean_is_scalar(x_266)) { + x_267 = lean_alloc_ctor(1, 2, 0); +} else { + x_267 = x_266; +} +lean_ctor_set(x_267, 0, x_264); +lean_ctor_set(x_267, 1, x_265); +return x_267; +} +} +} +} +else +{ +lean_object* x_268; lean_object* x_269; lean_object* x_270; lean_object* x_271; +lean_dec(x_18); +lean_dec(x_16); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_268 = lean_ctor_get(x_207, 1); +lean_inc(x_268); +if (lean_is_exclusive(x_207)) { + lean_ctor_release(x_207, 0); + lean_ctor_release(x_207, 1); + x_269 = x_207; +} else { + lean_dec_ref(x_207); + x_269 = lean_box(0); +} +x_270 = lean_box(0); +if (lean_is_scalar(x_269)) { + x_271 = lean_alloc_ctor(0, 2, 0); +} else { + x_271 = x_269; +} +lean_ctor_set(x_271, 0, x_270); +lean_ctor_set(x_271, 1, x_268); +return x_271; +} +} +} +} +} +else +{ +lean_object* x_272; lean_object* x_273; +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_272 = lean_box(0); +x_273 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_273, 0, x_272); +lean_ctor_set(x_273, 1, x_13); +return x_273; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isReturnOf(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: +{ +if (lean_obj_tag(x_1) == 5) +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_11 = lean_ctor_get(x_1, 0); +lean_inc(x_11); +lean_dec(x_1); +x_12 = lean_st_ref_get(x_9, x_10); +x_13 = lean_ctor_get(x_12, 1); +lean_inc(x_13); +lean_dec(x_12); +x_14 = lean_st_ref_get(x_4, x_13); +x_15 = !lean_is_exclusive(x_14); +if (x_15 == 0) +{ +lean_object* x_16; lean_object* x_17; uint8_t x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; +x_16 = lean_ctor_get(x_14, 0); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +lean_dec(x_16); +x_18 = 0; +x_19 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_17, x_11, x_18); +x_20 = lean_name_eq(x_19, x_2); +lean_dec(x_19); +x_21 = lean_box(x_20); +lean_ctor_set(x_14, 0, x_21); +return x_14; +} +else +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; uint8_t x_25; lean_object* x_26; uint8_t x_27; lean_object* x_28; lean_object* x_29; +x_22 = lean_ctor_get(x_14, 0); +x_23 = lean_ctor_get(x_14, 1); +lean_inc(x_23); +lean_inc(x_22); +lean_dec(x_14); +x_24 = lean_ctor_get(x_22, 0); +lean_inc(x_24); +lean_dec(x_22); +x_25 = 0; +x_26 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_24, x_11, x_25); +x_27 = lean_name_eq(x_26, x_2); +lean_dec(x_26); +x_28 = lean_box(x_27); +x_29 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_29, 0, x_28); +lean_ctor_set(x_29, 1, x_23); +return x_29; +} +} +else +{ +uint8_t x_30; lean_object* x_31; lean_object* x_32; +lean_dec(x_1); +x_30 = 0; +x_31 = lean_box(x_30); +x_32 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_32, 0, x_31); +lean_ctor_set(x_32, 1, x_10); +return x_32; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isReturnOf___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) { +_start: +{ +lean_object* x_11; +x_11 = l_Lean_Compiler_LCNF_Simp_isReturnOf(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); -lean_dec(x_1); -x_16 = !lean_is_exclusive(x_11); -if (x_16 == 0) -{ +lean_dec(x_3); +lean_dec(x_2); return x_11; } +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___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) { +_start: +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_9 = lean_ctor_get(x_1, 0); +x_10 = l_Lean_Expr_fvar___override(x_3); +x_11 = lean_array_push(x_2, x_10); +lean_inc(x_9); +x_12 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_12, 0, x_9); +lean_ctor_set(x_12, 1, x_11); +x_13 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_13, 0, x_12); +lean_ctor_set(x_13, 1, x_8); +return x_13; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(1u); +x_2 = lean_mk_empty_array_with_capacity(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("_jp", 3); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__2; +x_3 = l_Lean_Name_str___override(x_1, x_2); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___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, lean_object* x_11) { +_start: +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_12 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__1; +x_13 = lean_array_push(x_12, x_1); +x_14 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2___closed__3; +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +x_15 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_13, x_3, x_14, x_7, x_8, x_9, x_10, x_11); +if (lean_obj_tag(x_15) == 0) +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +lean_inc(x_16); +x_18 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__1___boxed), 8, 2); +lean_closure_set(x_18, 0, x_16); +lean_closure_set(x_18, 1, x_12); +x_19 = l_Lean_Compiler_LCNF_CompilerM_codeBind(x_2, x_18, x_7, x_8, x_9, x_10, x_17); +if (lean_obj_tag(x_19) == 0) +{ +uint8_t x_20; +x_20 = !lean_is_exclusive(x_19); +if (x_20 == 0) +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_19, 0); +x_22 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_22, 0, x_16); +lean_ctor_set(x_22, 1, x_21); +x_23 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_19, 0, x_23); +return x_19; +} else { -lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_17 = lean_ctor_get(x_11, 0); -x_18 = lean_ctor_get(x_11, 1); -lean_inc(x_18); -lean_inc(x_17); -lean_dec(x_11); -x_19 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_19, 0, x_17); -lean_ctor_set(x_19, 1, x_18); +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_24 = lean_ctor_get(x_19, 0); +x_25 = lean_ctor_get(x_19, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_19); +x_26 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_26, 0, x_16); +lean_ctor_set(x_26, 1, x_24); +x_27 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_27, 0, x_26); +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_25); +return x_28; +} +} +else +{ +uint8_t x_29; +lean_dec(x_16); +x_29 = !lean_is_exclusive(x_19); +if (x_29 == 0) +{ return x_19; } +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_19, 0); +x_31 = lean_ctor_get(x_19, 1); +lean_inc(x_31); +lean_inc(x_30); +lean_dec(x_19); +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; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__5(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_object* x_13) { +else +{ +uint8_t x_33; +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_2); +x_33 = !lean_is_exclusive(x_15); +if (x_33 == 0) +{ +return x_15; +} +else +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_34 = lean_ctor_get(x_15, 0); +x_35 = lean_ctor_get(x_15, 1); +lean_inc(x_35); +lean_inc(x_34); +lean_dec(x_15); +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; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___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, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14) { _start: { -size_t x_14; size_t x_15; uint8_t x_16; -x_14 = lean_ptr_addr(x_1); -x_15 = lean_ptr_addr(x_2); -x_16 = lean_usize_dec_eq(x_14, x_15); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; +lean_object* x_15; lean_object* x_16; uint8_t x_17; +lean_inc(x_9); +x_15 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_9, x_1, x_2, x_3, x_10, x_11, x_12, x_13, x_14); +x_16 = lean_ctor_get(x_15, 1); +lean_inc(x_16); +lean_dec(x_15); +x_17 = lean_nat_dec_lt(x_4, x_5); lean_dec(x_5); -x_17 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_17, 0, x_3); -lean_ctor_set(x_17, 1, x_2); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_17); -lean_ctor_set(x_18, 1, x_13); +if (x_17 == 0) +{ +lean_object* x_18; +lean_dec(x_8); +lean_dec(x_4); +x_18 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_6, x_9, x_1, x_2, x_3, x_10, x_11, x_12, x_13, x_16); +if (lean_obj_tag(x_18) == 0) +{ +lean_object* x_19; lean_object* x_20; +x_19 = lean_ctor_get(x_18, 1); +lean_inc(x_19); +lean_dec(x_18); +x_20 = l_Lean_Compiler_LCNF_Simp_simp(x_7, x_1, x_2, x_3, x_10, x_11, x_12, x_13, x_19); +return x_20; +} +else +{ +uint8_t x_21; +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_7); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_21 = !lean_is_exclusive(x_18); +if (x_21 == 0) +{ return x_18; } else { -size_t x_19; size_t x_20; uint8_t x_21; -x_19 = lean_ptr_addr(x_4); -x_20 = lean_ptr_addr(x_3); -x_21 = lean_usize_dec_eq(x_19, x_20); -if (x_21 == 0) -{ -lean_object* x_22; lean_object* x_23; -lean_dec(x_5); -x_22 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_22, 0, x_3); -lean_ctor_set(x_22, 1, x_2); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_13); -return x_23; -} -else -{ -lean_object* x_24; -lean_dec(x_3); -lean_dec(x_2); -x_24 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_24, 0, x_5); -lean_ctor_set(x_24, 1, x_13); +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_18, 0); +x_23 = lean_ctor_get(x_18, 1); +lean_inc(x_23); +lean_inc(x_22); +lean_dec(x_18); +x_24 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_24, 0, x_22); +lean_ctor_set(x_24, 1, x_23); return x_24; } } } -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__6(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { -_start: +else { -lean_object* x_14; -lean_dec(x_6); +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_25 = l_Lean_Expr_fvar___override(x_9); +x_26 = lean_array_get_size(x_8); +x_27 = l_Array_toSubarray___rarg(x_8, x_4, x_26); +x_28 = l_Array_ofSubarray___rarg(x_27); +x_29 = l_Lean_mkAppN(x_25, x_28); +x_30 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; +lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_1); -x_14 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_7, x_8, x_9, x_10, x_11, x_12, x_13); -if (lean_obj_tag(x_14) == 0) +x_31 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_29, x_30, x_10, x_11, x_12, x_13, x_16); +if (lean_obj_tag(x_31) == 0) { -lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -x_17 = lean_ctor_get(x_5, 0); -lean_inc(x_17); -x_18 = l_Lean_Compiler_LCNF_Simp_isUsed(x_17, x_7, x_8, x_9, x_10, x_11, x_12, x_16); -lean_dec(x_17); -x_19 = lean_ctor_get(x_18, 0); -lean_inc(x_19); -x_20 = lean_unbox(x_19); -lean_dec(x_19); -if (x_20 == 0) -{ -lean_object* x_21; lean_object* x_22; uint8_t x_23; -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_21 = lean_ctor_get(x_18, 1); -lean_inc(x_21); -lean_dec(x_18); -x_22 = l_Lean_Compiler_LCNF_Simp_eraseFunDecl(x_5, x_7, x_8, x_9, x_10, x_11, x_12, x_21); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -x_23 = !lean_is_exclusive(x_22); -if (x_23 == 0) -{ -lean_object* x_24; -x_24 = lean_ctor_get(x_22, 0); -lean_dec(x_24); -lean_ctor_set(x_22, 0, x_15); -return x_22; -} -else -{ -lean_object* x_25; lean_object* x_26; -x_25 = lean_ctor_get(x_22, 1); -lean_inc(x_25); -lean_dec(x_22); -x_26 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_26, 0, x_15); -lean_ctor_set(x_26, 1, x_25); -return x_26; -} -} -else -{ -if (x_4 == 0) -{ -lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_27 = lean_ctor_get(x_18, 1); -lean_inc(x_27); -lean_dec(x_18); -x_28 = lean_box(0); -x_29 = l_Lean_Compiler_LCNF_Simp_simp___lambda__5(x_1, x_15, x_5, x_2, x_3, x_28, x_7, x_8, x_9, x_10, x_11, x_12, x_27); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_2); -lean_dec(x_1); -return x_29; -} -else -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; -x_30 = lean_ctor_get(x_18, 1); -lean_inc(x_30); -lean_dec(x_18); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_5); -x_31 = l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(x_5, x_7, x_8, x_9, x_10, x_11, x_12, x_30); +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; x_32 = lean_ctor_get(x_31, 0); lean_inc(x_32); x_33 = lean_ctor_get(x_31, 1); lean_inc(x_33); lean_dec(x_31); -x_34 = l_Lean_Compiler_LCNF_Simp_simp___lambda__5(x_1, x_15, x_5, x_2, x_3, x_32, x_7, x_8, x_9, x_10, x_11, x_12, x_33); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_32); -lean_dec(x_2); -lean_dec(x_1); -return x_34; -} -} +x_34 = lean_ctor_get(x_32, 0); +lean_inc(x_34); +x_35 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_6, x_34, x_1, x_2, x_3, x_10, x_11, x_12, x_13, x_33); +if (lean_obj_tag(x_35) == 0) +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_35, 1); +lean_inc(x_36); +lean_dec(x_35); +x_37 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_37, 0, x_32); +lean_ctor_set(x_37, 1, x_7); +x_38 = l_Lean_Compiler_LCNF_Simp_simp(x_37, x_1, x_2, x_3, x_10, x_11, x_12, x_13, x_36); +return x_38; } else { -uint8_t x_35; +uint8_t x_39; +lean_dec(x_32); +lean_dec(x_13); lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); lean_dec(x_7); -lean_dec(x_5); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_35 = !lean_is_exclusive(x_14); -if (x_35 == 0) +x_39 = !lean_is_exclusive(x_35); +if (x_39 == 0) { -return x_14; +return x_35; } else { -lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_36 = lean_ctor_get(x_14, 0); -x_37 = lean_ctor_get(x_14, 1); -lean_inc(x_37); -lean_inc(x_36); -lean_dec(x_14); -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_object* x_40; lean_object* x_41; lean_object* x_42; +x_40 = lean_ctor_get(x_35, 0); +x_41 = lean_ctor_get(x_35, 1); +lean_inc(x_41); +lean_inc(x_40); +lean_dec(x_35); +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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__7(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_10; lean_object* x_11; -x_10 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_1, x_2); -x_11 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_11, 0, x_10); -lean_ctor_set(x_11, 1, x_9); -return x_11; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__8(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: -{ -if (lean_obj_tag(x_2) == 0) -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; -x_10 = lean_ctor_get(x_2, 0); -lean_inc(x_10); -x_11 = lean_ctor_get(x_2, 1); -lean_inc(x_11); -x_12 = lean_ctor_get(x_2, 2); -lean_inc(x_12); -x_13 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp), 8, 1); -lean_closure_set(x_13, 0, x_12); -x_14 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__7___boxed), 9, 1); -lean_closure_set(x_14, 0, x_2); -x_15 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg), 9, 2); -lean_closure_set(x_15, 0, x_13); -lean_closure_set(x_15, 1, x_14); -x_16 = l_Lean_Compiler_LCNF_Simp_withDiscrCtor___rarg(x_1, x_10, x_11, x_15, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_16; -} else { -lean_object* x_17; lean_object* x_18; +uint8_t x_43; +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); lean_dec(x_1); -x_17 = lean_ctor_get(x_2, 0); -lean_inc(x_17); -x_18 = l_Lean_Compiler_LCNF_Simp_simp(x_17, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_43 = !lean_is_exclusive(x_31); +if (x_43 == 0) +{ +return x_31; +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_44 = lean_ctor_get(x_31, 0); +x_45 = lean_ctor_get(x_31, 1); +lean_inc(x_45); +lean_inc(x_44); +lean_dec(x_31); +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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__4(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_object* x_13, lean_object* x_14, lean_object* x_15, lean_object* x_16) { +_start: +{ +lean_object* x_17; uint8_t x_103; +x_103 = l_Lean_Compiler_LCNF_Code_isReturnOf(x_6, x_5); +if (x_103 == 0) +{ +lean_object* x_104; +x_104 = lean_box(0); +x_17 = x_104; +goto block_102; +} +else +{ +uint8_t x_105; +x_105 = lean_nat_dec_eq(x_4, x_3); +if (x_105 == 0) +{ +lean_object* x_106; +x_106 = lean_box(0); +x_17 = x_106; +goto block_102; +} +else +{ +lean_object* x_107; lean_object* x_108; lean_object* x_109; +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_107 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_10, x_11, x_12, x_13, x_14, x_15, x_16); +x_108 = lean_ctor_get(x_107, 1); +lean_inc(x_108); +lean_dec(x_107); +x_109 = l_Lean_Compiler_LCNF_Simp_simp(x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_108); +if (lean_obj_tag(x_109) == 0) +{ +uint8_t x_110; +x_110 = !lean_is_exclusive(x_109); +if (x_110 == 0) +{ +lean_object* x_111; lean_object* x_112; +x_111 = lean_ctor_get(x_109, 0); +x_112 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_112, 0, x_111); +lean_ctor_set(x_109, 0, x_112); +return x_109; +} +else +{ +lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; +x_113 = lean_ctor_get(x_109, 0); +x_114 = lean_ctor_get(x_109, 1); +lean_inc(x_114); +lean_inc(x_113); +lean_dec(x_109); +x_115 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_115, 0, x_113); +x_116 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_116, 0, x_115); +lean_ctor_set(x_116, 1, x_114); +return x_116; +} +} +else +{ +uint8_t x_117; +x_117 = !lean_is_exclusive(x_109); +if (x_117 == 0) +{ +return x_109; +} +else +{ +lean_object* x_118; lean_object* x_119; lean_object* x_120; +x_118 = lean_ctor_get(x_109, 0); +x_119 = lean_ctor_get(x_109, 1); +lean_inc(x_119); +lean_inc(x_118); +lean_dec(x_109); +x_120 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_120, 0, x_118); +lean_ctor_set(x_120, 1, x_119); +return x_120; +} +} +} +} +block_102: +{ +lean_object* x_18; +lean_dec(x_17); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +x_18 = l_Lean_Compiler_LCNF_Simp_simp(x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16); +if (lean_obj_tag(x_18) == 0) +{ +lean_object* x_19; lean_object* x_20; uint8_t x_21; +x_19 = lean_ctor_get(x_18, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_18, 1); +lean_inc(x_20); +lean_dec(x_18); +lean_inc(x_19); +x_21 = l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go(x_19); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_22 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_10, x_11, x_12, x_13, x_14, x_15, x_20); +x_23 = lean_ctor_get(x_22, 1); +lean_inc(x_23); +lean_dec(x_22); +x_24 = lean_ctor_get(x_1, 2); +lean_inc(x_24); +lean_dec(x_1); +x_25 = l_Lean_mkAppN(x_24, x_2); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +x_26 = l_Lean_Compiler_LCNF_inferType(x_25, x_12, x_13, x_14, x_15, x_23); +if (lean_obj_tag(x_26) == 0) +{ +lean_object* x_27; lean_object* x_28; uint8_t x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; +x_27 = lean_ctor_get(x_26, 0); +lean_inc(x_27); +x_28 = lean_ctor_get(x_26, 1); +lean_inc(x_28); +lean_dec(x_26); +x_29 = 0; +x_30 = l_Lean_Compiler_LCNF_mkAuxParam(x_27, x_29, x_12, x_13, x_14, x_15, x_28); +x_31 = lean_ctor_get(x_30, 0); +lean_inc(x_31); +x_32 = lean_ctor_get(x_30, 1); +lean_inc(x_32); +lean_dec(x_30); +x_33 = lean_nat_dec_lt(x_3, x_4); +lean_dec(x_4); +if (x_33 == 0) +{ +lean_object* x_34; lean_object* x_35; +lean_dec(x_7); +lean_dec(x_3); +x_34 = lean_ctor_get(x_31, 0); +lean_inc(x_34); +x_35 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_5, x_34, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_32); +if (lean_obj_tag(x_35) == 0) +{ +lean_object* x_36; lean_object* x_37; +x_36 = lean_ctor_get(x_35, 1); +lean_inc(x_36); +lean_dec(x_35); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +x_37 = l_Lean_Compiler_LCNF_Simp_simp(x_6, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_36); +if (lean_obj_tag(x_37) == 0) +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_38 = lean_ctor_get(x_37, 0); +lean_inc(x_38); +x_39 = lean_ctor_get(x_37, 1); +lean_inc(x_39); +lean_dec(x_37); +x_40 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2(x_31, x_19, x_38, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_39); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +return x_40; +} +else +{ +uint8_t x_41; +lean_dec(x_31); +lean_dec(x_19); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +x_41 = !lean_is_exclusive(x_37); +if (x_41 == 0) +{ +return x_37; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_42 = lean_ctor_get(x_37, 0); +x_43 = lean_ctor_get(x_37, 1); +lean_inc(x_43); +lean_inc(x_42); +lean_dec(x_37); +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; +} +} +} +else +{ +uint8_t x_45; +lean_dec(x_31); +lean_dec(x_19); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_6); +x_45 = !lean_is_exclusive(x_35); +if (x_45 == 0) +{ +return x_35; +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_35, 0); +x_47 = lean_ctor_get(x_35, 1); +lean_inc(x_47); +lean_inc(x_46); +lean_dec(x_35); +x_48 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_48, 0, x_46); +lean_ctor_set(x_48, 1, x_47); +return x_48; +} +} +} +else +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; +x_49 = lean_ctor_get(x_31, 0); +lean_inc(x_49); +x_50 = l_Lean_Expr_fvar___override(x_49); +x_51 = lean_array_get_size(x_7); +x_52 = l_Array_toSubarray___rarg(x_7, x_3, x_51); +x_53 = l_Array_ofSubarray___rarg(x_52); +x_54 = l_Lean_mkAppN(x_50, x_53); +x_55 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +x_56 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_54, x_55, x_12, x_13, x_14, x_15, x_32); +if (lean_obj_tag(x_56) == 0) +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; +x_57 = lean_ctor_get(x_56, 0); +lean_inc(x_57); +x_58 = lean_ctor_get(x_56, 1); +lean_inc(x_58); +lean_dec(x_56); +x_59 = lean_ctor_get(x_57, 0); +lean_inc(x_59); +x_60 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_5, x_59, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_58); +if (lean_obj_tag(x_60) == 0) +{ +lean_object* x_61; lean_object* x_62; lean_object* x_63; +x_61 = lean_ctor_get(x_60, 1); +lean_inc(x_61); +lean_dec(x_60); +x_62 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_62, 0, x_57); +lean_ctor_set(x_62, 1, x_6); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +x_63 = l_Lean_Compiler_LCNF_Simp_simp(x_62, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_61); +if (lean_obj_tag(x_63) == 0) +{ +lean_object* x_64; lean_object* x_65; lean_object* x_66; +x_64 = lean_ctor_get(x_63, 0); +lean_inc(x_64); +x_65 = lean_ctor_get(x_63, 1); +lean_inc(x_65); +lean_dec(x_63); +x_66 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2(x_31, x_19, x_64, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_65); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +return x_66; +} +else +{ +uint8_t x_67; +lean_dec(x_31); +lean_dec(x_19); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +x_67 = !lean_is_exclusive(x_63); +if (x_67 == 0) +{ +return x_63; +} +else +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; +x_68 = lean_ctor_get(x_63, 0); +x_69 = lean_ctor_get(x_63, 1); +lean_inc(x_69); +lean_inc(x_68); +lean_dec(x_63); +x_70 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_70, 0, x_68); +lean_ctor_set(x_70, 1, x_69); +return x_70; +} +} +} +else +{ +uint8_t x_71; +lean_dec(x_57); +lean_dec(x_31); +lean_dec(x_19); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_6); +x_71 = !lean_is_exclusive(x_60); +if (x_71 == 0) +{ +return x_60; +} +else +{ +lean_object* x_72; lean_object* x_73; lean_object* x_74; +x_72 = lean_ctor_get(x_60, 0); +x_73 = lean_ctor_get(x_60, 1); +lean_inc(x_73); +lean_inc(x_72); +lean_dec(x_60); +x_74 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_74, 0, x_72); +lean_ctor_set(x_74, 1, x_73); +return x_74; +} +} +} +else +{ +uint8_t x_75; +lean_dec(x_31); +lean_dec(x_19); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_6); +lean_dec(x_5); +x_75 = !lean_is_exclusive(x_56); +if (x_75 == 0) +{ +return x_56; +} +else +{ +lean_object* x_76; lean_object* x_77; lean_object* x_78; +x_76 = lean_ctor_get(x_56, 0); +x_77 = lean_ctor_get(x_56, 1); +lean_inc(x_77); +lean_inc(x_76); +lean_dec(x_56); +x_78 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_78, 0, x_76); +lean_ctor_set(x_78, 1, x_77); +return x_78; +} +} +} +} +else +{ +uint8_t x_79; +lean_dec(x_19); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_79 = !lean_is_exclusive(x_26); +if (x_79 == 0) +{ +return x_26; +} +else +{ +lean_object* x_80; lean_object* x_81; lean_object* x_82; +x_80 = lean_ctor_get(x_26, 0); +x_81 = lean_ctor_get(x_26, 1); +lean_inc(x_81); +lean_inc(x_80); +lean_dec(x_26); +x_82 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_82, 0, x_80); +lean_ctor_set(x_82, 1, x_81); +return x_82; +} +} +} +else +{ +lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; +lean_dec(x_2); +lean_dec(x_1); +x_83 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_10, x_11, x_12, x_13, x_14, x_15, x_20); +x_84 = lean_ctor_get(x_83, 1); +lean_inc(x_84); +lean_dec(x_83); +x_85 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__3), 14, 8); +lean_closure_set(x_85, 0, x_9); +lean_closure_set(x_85, 1, x_10); +lean_closure_set(x_85, 2, x_11); +lean_closure_set(x_85, 3, x_3); +lean_closure_set(x_85, 4, x_4); +lean_closure_set(x_85, 5, x_5); +lean_closure_set(x_85, 6, x_6); +lean_closure_set(x_85, 7, x_7); +x_86 = l_Lean_Compiler_LCNF_CompilerM_codeBind(x_19, x_85, x_12, x_13, x_14, x_15, x_84); +if (lean_obj_tag(x_86) == 0) +{ +uint8_t x_87; +x_87 = !lean_is_exclusive(x_86); +if (x_87 == 0) +{ +lean_object* x_88; lean_object* x_89; +x_88 = lean_ctor_get(x_86, 0); +x_89 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_89, 0, x_88); +lean_ctor_set(x_86, 0, x_89); +return x_86; +} +else +{ +lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; +x_90 = lean_ctor_get(x_86, 0); +x_91 = lean_ctor_get(x_86, 1); +lean_inc(x_91); +lean_inc(x_90); +lean_dec(x_86); +x_92 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_92, 0, x_90); +x_93 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_93, 0, x_92); +lean_ctor_set(x_93, 1, x_91); +return x_93; +} +} +else +{ +uint8_t x_94; +x_94 = !lean_is_exclusive(x_86); +if (x_94 == 0) +{ +return x_86; +} +else +{ +lean_object* x_95; lean_object* x_96; lean_object* x_97; +x_95 = lean_ctor_get(x_86, 0); +x_96 = lean_ctor_get(x_86, 1); +lean_inc(x_96); +lean_inc(x_95); +lean_dec(x_86); +x_97 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_97, 0, x_95); +lean_ctor_set(x_97, 1, x_96); +return x_97; +} +} +} +} +else +{ +uint8_t x_98; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +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_98 = !lean_is_exclusive(x_18); +if (x_98 == 0) +{ +return x_18; +} +else +{ +lean_object* x_99; lean_object* x_100; lean_object* x_101; +x_99 = lean_ctor_get(x_18, 0); +x_100 = lean_ctor_get(x_18, 1); +lean_inc(x_100); +lean_inc(x_99); +lean_dec(x_18); +x_101 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_101, 0, x_99); +lean_ctor_set(x_101, 1, x_100); +return x_101; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__5(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) { +_start: +{ +lean_object* x_12; lean_object* x_13; +x_12 = lean_ctor_get(x_3, 0); +lean_inc(x_12); +x_13 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_1, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +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; +x_14 = lean_ctor_get(x_13, 1); +lean_inc(x_14); +lean_dec(x_13); +x_15 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_5, x_6, x_7, x_8, x_9, x_10, x_14); +x_16 = lean_ctor_get(x_15, 1); +lean_inc(x_16); +lean_dec(x_15); +x_17 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_17, 0, x_3); +lean_ctor_set(x_17, 1, x_2); +x_18 = l_Lean_Compiler_LCNF_Simp_simp(x_17, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_16); if (lean_obj_tag(x_18) == 0) { uint8_t x_19; @@ -5063,7 +3372,8 @@ if (x_19 == 0) { lean_object* x_20; lean_object* x_21; x_20 = lean_ctor_get(x_18, 0); -x_21 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_2, x_20); +x_21 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_21, 0, x_20); lean_ctor_set(x_18, 0, x_21); return x_18; } @@ -5075,7 +3385,8 @@ x_23 = lean_ctor_get(x_18, 1); lean_inc(x_23); lean_inc(x_22); lean_dec(x_18); -x_24 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_2, x_22); +x_24 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_24, 0, x_22); x_25 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_25, 0, x_24); lean_ctor_set(x_25, 1, x_23); @@ -5085,7 +3396,6 @@ return x_25; else { uint8_t x_26; -lean_dec(x_2); x_26 = !lean_is_exclusive(x_18); if (x_26 == 0) { @@ -5106,3405 +3416,5279 @@ return x_29; } } } +else +{ +uint8_t x_30; +lean_dec(x_10); +lean_dec(x_9); +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); +x_30 = !lean_is_exclusive(x_13); +if (x_30 == 0) +{ +return x_13; +} +else +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_31 = lean_ctor_get(x_13, 0); +x_32 = lean_ctor_get(x_13, 1); +lean_inc(x_32); +lean_inc(x_31); +lean_dec(x_13); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_32); +return x_33; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp(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_Compiler_LCNF_Simp_inlineApp_x3f(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_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; -x_9 = lean_ctor_get(x_6, 0); -lean_inc(x_9); -x_10 = lean_ctor_get(x_6, 1); -lean_inc(x_10); -x_11 = lean_ctor_get(x_6, 2); +lean_object* x_11; lean_object* x_12; +x_11 = lean_ctor_get(x_1, 3); lean_inc(x_11); -x_12 = lean_ctor_get(x_6, 3); -lean_inc(x_12); -x_13 = lean_ctor_get(x_6, 4); -lean_inc(x_13); -x_14 = lean_ctor_get(x_6, 5); -lean_inc(x_14); -x_15 = lean_ctor_get(x_6, 6); -lean_inc(x_15); -x_16 = lean_ctor_get(x_6, 7); -lean_inc(x_16); -x_17 = lean_ctor_get(x_6, 8); -lean_inc(x_17); -x_18 = lean_ctor_get(x_6, 9); -lean_inc(x_18); -x_19 = lean_ctor_get(x_6, 10); -lean_inc(x_19); -x_20 = lean_nat_dec_eq(x_12, x_13); -if (x_20 == 0) +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_11); +x_12 = l_Lean_Compiler_LCNF_Simp_inlineCandidate_x3f(x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_12) == 0) { -uint8_t x_21; -x_21 = !lean_is_exclusive(x_6); +lean_object* x_13; +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +if (lean_obj_tag(x_13) == 0) +{ +uint8_t x_14; +lean_dec(x_11); +lean_dec(x_9); +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_14 = !lean_is_exclusive(x_12); +if (x_14 == 0) +{ +lean_object* x_15; lean_object* x_16; +x_15 = lean_ctor_get(x_12, 0); +lean_dec(x_15); +x_16 = lean_box(0); +lean_ctor_set(x_12, 0, x_16); +return x_12; +} +else +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_17 = lean_ctor_get(x_12, 1); +lean_inc(x_17); +lean_dec(x_12); +x_18 = lean_box(0); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_17); +return x_19; +} +} +else +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; +x_20 = lean_ctor_get(x_12, 1); +lean_inc(x_20); +lean_dec(x_12); +x_21 = lean_ctor_get(x_13, 0); +lean_inc(x_21); +lean_dec(x_13); +x_22 = lean_ctor_get(x_21, 3); +lean_inc(x_22); +x_23 = lean_array_get_size(x_22); +x_24 = lean_ctor_get_uint8(x_21, sizeof(void*)*4 + 2); +x_25 = lean_ctor_get(x_1, 0); +lean_inc(x_25); +lean_dec(x_1); +x_26 = l_Lean_Compiler_LCNF_Simp_InlineCandidateInfo_arity(x_21); +x_27 = lean_nat_dec_lt(x_23, 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; uint8_t x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_28 = lean_ctor_get(x_21, 0); +lean_inc(x_28); +x_29 = lean_ctor_get(x_21, 1); +lean_inc(x_29); +x_30 = lean_unsigned_to_nat(0u); +lean_inc(x_26); +lean_inc(x_22); +x_31 = l_Array_toSubarray___rarg(x_22, x_30, x_26); +x_32 = l_Array_ofSubarray___rarg(x_31); +x_33 = 0; +x_34 = lean_box(x_33); +lean_inc(x_32); +x_35 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_betaReduce___boxed), 12, 4); +lean_closure_set(x_35, 0, x_28); +lean_closure_set(x_35, 1, x_29); +lean_closure_set(x_35, 2, x_32); +lean_closure_set(x_35, 3, x_34); +x_36 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__4), 16, 7); +lean_closure_set(x_36, 0, x_21); +lean_closure_set(x_36, 1, x_32); +lean_closure_set(x_36, 2, x_26); +lean_closure_set(x_36, 3, x_23); +lean_closure_set(x_36, 4, x_25); +lean_closure_set(x_36, 5, x_2); +lean_closure_set(x_36, 6, x_22); +x_37 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg), 10, 2); +lean_closure_set(x_37, 0, x_35); +lean_closure_set(x_37, 1, x_36); +x_38 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg(x_11, x_24, x_37, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_20); +return x_38; +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; +lean_dec(x_26); +lean_dec(x_23); +lean_dec(x_22); +x_39 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_specializePartialApp___boxed), 9, 1); +lean_closure_set(x_39, 0, x_21); +x_40 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__5), 11, 2); +lean_closure_set(x_40, 0, x_25); +lean_closure_set(x_40, 1, x_2); +x_41 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg), 10, 2); +lean_closure_set(x_41, 0, x_39); +lean_closure_set(x_41, 1, x_40); +x_42 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg(x_11, x_24, x_41, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_20); +return x_42; +} +} +} +else +{ +uint8_t x_43; +lean_dec(x_11); +lean_dec(x_9); +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_43 = !lean_is_exclusive(x_12); +if (x_43 == 0) +{ +return x_12; +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_44 = lean_ctor_get(x_12, 0); +x_45 = lean_ctor_get(x_12, 1); +lean_inc(x_45); +lean_inc(x_44); +lean_dec(x_12); +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_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___spec__1(uint8_t 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; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_11 = lean_ctor_get(x_2, 2); +lean_inc(x_11); +x_12 = lean_st_ref_get(x_9, x_10); +x_13 = lean_ctor_get(x_12, 1); +lean_inc(x_13); +lean_dec(x_12); +x_14 = lean_st_ref_get(x_4, x_13); +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +x_16 = lean_ctor_get(x_14, 1); +lean_inc(x_16); +lean_dec(x_14); +x_17 = lean_ctor_get(x_15, 0); +lean_inc(x_17); +lean_dec(x_15); +x_18 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_17, x_1, x_11); +x_19 = lean_ctor_get(x_2, 3); +lean_inc(x_19); +x_20 = lean_st_ref_get(x_9, x_16); +x_21 = lean_ctor_get(x_20, 1); +lean_inc(x_21); +lean_dec(x_20); +x_22 = lean_st_ref_get(x_4, x_21); +x_23 = lean_ctor_get(x_22, 0); +lean_inc(x_23); +x_24 = lean_ctor_get(x_22, 1); +lean_inc(x_24); +lean_dec(x_22); +x_25 = lean_ctor_get(x_23, 0); +lean_inc(x_25); +lean_dec(x_23); +x_26 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_25, x_1, x_19); +x_27 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateLetDeclImp(x_2, x_18, x_26, x_6, x_7, x_8, x_9, x_24); +return x_27; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Simp_simp___spec__3(uint8_t 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; lean_object* x_12; lean_object* x_13; uint8_t x_14; +x_11 = lean_st_ref_get(x_9, x_10); +x_12 = lean_ctor_get(x_11, 1); +lean_inc(x_12); +lean_dec(x_11); +x_13 = lean_st_ref_get(x_4, x_12); +x_14 = !lean_is_exclusive(x_13); +if (x_14 == 0) +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_ctor_get(x_13, 0); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +lean_dec(x_15); +x_17 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_16, x_1, x_2); +lean_ctor_set(x_13, 0, x_17); +return x_13; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_18 = lean_ctor_get(x_13, 0); +x_19 = lean_ctor_get(x_13, 1); +lean_inc(x_19); +lean_inc(x_18); +lean_dec(x_13); +x_20 = lean_ctor_get(x_18, 0); +lean_inc(x_20); +lean_dec(x_18); +x_21 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_20, x_1, x_2); +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; +} +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simp___spec__5(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) { +_start: +{ +lean_object* x_12; uint8_t x_13; +x_12 = lean_array_get_size(x_3); +x_13 = lean_nat_dec_lt(x_2, x_12); +lean_dec(x_12); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_11); +return x_14; +} +else +{ +lean_object* x_15; lean_object* x_16; +x_15 = lean_array_fget(x_3, x_2); +lean_inc(x_1); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_15); +x_16 = lean_apply_9(x_1, x_15, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +if (lean_obj_tag(x_16) == 0) +{ +lean_object* x_17; lean_object* x_18; size_t x_19; size_t x_20; uint8_t x_21; +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = lean_ptr_addr(x_15); +lean_dec(x_15); +x_20 = lean_ptr_addr(x_17); +x_21 = lean_usize_dec_eq(x_19, x_20); if (x_21 == 0) { -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; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_22 = lean_ctor_get(x_6, 10); -lean_dec(x_22); -x_23 = lean_ctor_get(x_6, 9); -lean_dec(x_23); -x_24 = lean_ctor_get(x_6, 8); -lean_dec(x_24); -x_25 = lean_ctor_get(x_6, 7); -lean_dec(x_25); -x_26 = lean_ctor_get(x_6, 6); -lean_dec(x_26); -x_27 = lean_ctor_get(x_6, 5); -lean_dec(x_27); -x_28 = lean_ctor_get(x_6, 4); -lean_dec(x_28); -x_29 = lean_ctor_get(x_6, 3); -lean_dec(x_29); -x_30 = lean_ctor_get(x_6, 2); -lean_dec(x_30); -x_31 = lean_ctor_get(x_6, 1); -lean_dec(x_31); -x_32 = lean_ctor_get(x_6, 0); -lean_dec(x_32); -x_33 = lean_unsigned_to_nat(1u); -x_34 = lean_nat_add(x_12, x_33); -lean_dec(x_12); -lean_ctor_set(x_6, 3, x_34); -x_35 = l_Lean_Compiler_LCNF_Simp_incVisited___rarg(x_3, x_4, x_5, x_6, x_7, x_8); -switch (lean_obj_tag(x_1)) { -case 0: -{ -lean_object* x_36; lean_object* x_37; lean_object* x_38; uint8_t x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_36 = lean_ctor_get(x_35, 1); -lean_inc(x_36); -lean_dec(x_35); -x_37 = lean_ctor_get(x_1, 0); -lean_inc(x_37); -x_38 = lean_ctor_get(x_1, 1); -lean_inc(x_38); -x_39 = 0; -lean_inc(x_37); -x_40 = l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___spec__1(x_39, x_37, x_2, x_3, x_4, x_5, x_6, x_7, x_36); -x_41 = lean_ctor_get(x_40, 0); -lean_inc(x_41); -x_42 = lean_ctor_get(x_40, 1); -lean_inc(x_42); -lean_dec(x_40); -x_43 = lean_ctor_get(x_41, 3); -lean_inc(x_43); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_2); -x_44 = l_Lean_Compiler_LCNF_Simp_simpValue_x3f(x_43, x_2, x_3, x_4, x_5, x_6, x_7, x_42); -if (lean_obj_tag(x_44) == 0) -{ -lean_object* x_45; -x_45 = lean_ctor_get(x_44, 0); -lean_inc(x_45); -if (lean_obj_tag(x_45) == 0) -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_44, 1); -lean_inc(x_46); -lean_dec(x_44); -x_47 = lean_box(0); -x_48 = l_Lean_Compiler_LCNF_Simp_simp___lambda__1(x_38, x_37, x_1, x_41, x_47, x_2, x_3, x_4, x_5, x_6, x_7, x_46); -return x_48; +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_unsigned_to_nat(1u); +x_23 = lean_nat_add(x_2, x_22); +x_24 = lean_array_fset(x_3, x_2, x_17); +lean_dec(x_2); +x_2 = x_23; +x_3 = x_24; +x_11 = x_18; +goto _start; } else { -lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_49 = lean_ctor_get(x_44, 1); -lean_inc(x_49); -lean_dec(x_44); -x_50 = lean_ctor_get(x_45, 0); -lean_inc(x_50); -lean_dec(x_45); -x_51 = l_Lean_Compiler_LCNF_LetDecl_updateValue(x_41, x_50, x_4, x_5, x_6, x_7, x_49); -x_52 = lean_ctor_get(x_51, 0); -lean_inc(x_52); -x_53 = lean_ctor_get(x_51, 1); -lean_inc(x_53); -lean_dec(x_51); -x_54 = lean_box(0); -x_55 = l_Lean_Compiler_LCNF_Simp_simp___lambda__1(x_38, x_37, x_1, x_52, x_54, x_2, x_3, x_4, x_5, x_6, x_7, x_53); -return x_55; +lean_object* x_26; lean_object* x_27; +lean_dec(x_17); +x_26 = lean_unsigned_to_nat(1u); +x_27 = lean_nat_add(x_2, x_26); +lean_dec(x_2); +x_2 = x_27; +x_11 = x_18; +goto _start; } } else { -uint8_t x_56; -lean_dec(x_41); -lean_dec(x_38); -lean_dec(x_37); -lean_dec(x_6); +uint8_t x_29; +lean_dec(x_15); +lean_dec(x_10); +lean_dec(x_9); +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_56 = !lean_is_exclusive(x_44); +x_29 = !lean_is_exclusive(x_16); +if (x_29 == 0) +{ +return x_16; +} +else +{ +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; +} +} +} +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__4(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; lean_object* x_12; +x_11 = lean_unsigned_to_nat(0u); +x_12 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simp___spec__5(x_2, x_11, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__2(uint8_t 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; lean_object* x_12; lean_object* x_13; +x_11 = lean_box(x_1); +x_12 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Simp_simp___spec__3___boxed), 10, 1); +lean_closure_set(x_12, 0, x_11); +x_13 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__4(x_2, x_12, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_13; +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simp___spec__7(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) { +_start: +{ +lean_object* x_12; uint8_t x_13; +x_12 = lean_array_get_size(x_3); +x_13 = lean_nat_dec_lt(x_2, x_12); +lean_dec(x_12); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_11); +return x_14; +} +else +{ +lean_object* x_15; lean_object* x_16; +x_15 = lean_array_fget(x_3, x_2); +lean_inc(x_1); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_15); +x_16 = lean_apply_9(x_1, x_15, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +if (lean_obj_tag(x_16) == 0) +{ +lean_object* x_17; lean_object* x_18; size_t x_19; size_t x_20; uint8_t x_21; +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = lean_ptr_addr(x_15); +lean_dec(x_15); +x_20 = lean_ptr_addr(x_17); +x_21 = lean_usize_dec_eq(x_19, x_20); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_unsigned_to_nat(1u); +x_23 = lean_nat_add(x_2, x_22); +x_24 = lean_array_fset(x_3, x_2, x_17); +lean_dec(x_2); +x_2 = x_23; +x_3 = x_24; +x_11 = x_18; +goto _start; +} +else +{ +lean_object* x_26; lean_object* x_27; +lean_dec(x_17); +x_26 = lean_unsigned_to_nat(1u); +x_27 = lean_nat_add(x_2, x_26); +lean_dec(x_2); +x_2 = x_27; +x_11 = x_18; +goto _start; +} +} +else +{ +uint8_t x_29; +lean_dec(x_15); +lean_dec(x_10); +lean_dec(x_9); +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_29 = !lean_is_exclusive(x_16); +if (x_29 == 0) +{ +return x_16; +} +else +{ +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; +} +} +} +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__6(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; lean_object* x_12; +x_11 = lean_unsigned_to_nat(0u); +x_12 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simp___spec__7(x_2, x_11, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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_object* x_11, lean_object* x_12, lean_object* x_13) { +_start: +{ +lean_object* x_14; +lean_dec(x_5); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_4); +x_14 = l_Lean_Compiler_LCNF_Simp_ConstantFold_foldConstants(x_4, x_9, x_10, x_11, x_12, x_13); +if (lean_obj_tag(x_14) == 0) +{ +lean_object* x_15; +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +if (lean_obj_tag(x_15) == 0) +{ +lean_object* x_16; lean_object* x_17; +x_16 = lean_ctor_get(x_14, 1); +lean_inc(x_16); +lean_dec(x_14); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_4); +x_17 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_16); +if (lean_obj_tag(x_17) == 0) +{ +lean_object* x_18; +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +if (lean_obj_tag(x_18) == 0) +{ +lean_object* x_19; lean_object* x_20; uint8_t x_21; +x_19 = lean_ctor_get(x_17, 1); +lean_inc(x_19); +lean_dec(x_17); +x_20 = lean_ctor_get(x_4, 3); +lean_inc(x_20); +x_21 = l_Lean_Expr_isFVar(x_20); +if (x_21 == 0) +{ +lean_object* x_22; +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_1); +lean_inc(x_4); +x_22 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f(x_4, x_1, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_19); +if (lean_obj_tag(x_22) == 0) +{ +lean_object* x_23; +x_23 = lean_ctor_get(x_22, 0); +lean_inc(x_23); +if (lean_obj_tag(x_23) == 0) +{ +lean_object* x_24; lean_object* x_25; +x_24 = lean_ctor_get(x_22, 1); +lean_inc(x_24); +lean_dec(x_22); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_25 = l_Lean_Compiler_LCNF_Simp_inlineProjInst_x3f(x_20, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_24); +if (lean_obj_tag(x_25) == 0) +{ +lean_object* x_26; +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +if (lean_obj_tag(x_26) == 0) +{ +lean_object* x_27; lean_object* x_28; +x_27 = lean_ctor_get(x_25, 1); +lean_inc(x_27); +lean_dec(x_25); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_1); +x_28 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_27); +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; uint8_t x_34; +x_29 = lean_ctor_get(x_28, 0); +lean_inc(x_29); +x_30 = lean_ctor_get(x_28, 1); +lean_inc(x_30); +lean_dec(x_28); +x_31 = lean_ctor_get(x_4, 0); +lean_inc(x_31); +x_32 = l_Lean_Compiler_LCNF_Simp_isUsed(x_31, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_30); +lean_dec(x_31); +x_33 = lean_ctor_get(x_32, 0); +lean_inc(x_33); +x_34 = lean_unbox(x_33); +lean_dec(x_33); +if (x_34 == 0) +{ +lean_object* x_35; lean_object* x_36; uint8_t x_37; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_35 = lean_ctor_get(x_32, 1); +lean_inc(x_35); +lean_dec(x_32); +x_36 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_35); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +x_37 = !lean_is_exclusive(x_36); +if (x_37 == 0) +{ +lean_object* x_38; +x_38 = lean_ctor_get(x_36, 0); +lean_dec(x_38); +lean_ctor_set(x_36, 0, x_29); +return x_36; +} +else +{ +lean_object* x_39; lean_object* x_40; +x_39 = lean_ctor_get(x_36, 1); +lean_inc(x_39); +lean_dec(x_36); +x_40 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_40, 0, x_29); +lean_ctor_set(x_40, 1, x_39); +return x_40; +} +} +else +{ +lean_object* x_41; lean_object* x_42; uint8_t x_43; +x_41 = lean_ctor_get(x_32, 1); +lean_inc(x_41); +lean_dec(x_32); +lean_inc(x_4); +x_42 = l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_41); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_43 = !lean_is_exclusive(x_42); +if (x_43 == 0) +{ +lean_object* x_44; size_t x_45; size_t x_46; uint8_t x_47; +x_44 = lean_ctor_get(x_42, 0); +lean_dec(x_44); +x_45 = lean_ptr_addr(x_1); +lean_dec(x_1); +x_46 = lean_ptr_addr(x_29); +x_47 = lean_usize_dec_eq(x_45, x_46); +if (x_47 == 0) +{ +lean_object* x_48; +lean_dec(x_3); +lean_dec(x_2); +x_48 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_48, 0, x_4); +lean_ctor_set(x_48, 1, x_29); +lean_ctor_set(x_42, 0, x_48); +return x_42; +} +else +{ +size_t x_49; size_t x_50; uint8_t x_51; +x_49 = lean_ptr_addr(x_2); +lean_dec(x_2); +x_50 = lean_ptr_addr(x_4); +x_51 = lean_usize_dec_eq(x_49, x_50); +if (x_51 == 0) +{ +lean_object* x_52; +lean_dec(x_3); +x_52 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_52, 0, x_4); +lean_ctor_set(x_52, 1, x_29); +lean_ctor_set(x_42, 0, x_52); +return x_42; +} +else +{ +lean_dec(x_29); +lean_dec(x_4); +lean_ctor_set(x_42, 0, x_3); +return x_42; +} +} +} +else +{ +lean_object* x_53; size_t x_54; size_t x_55; uint8_t x_56; +x_53 = lean_ctor_get(x_42, 1); +lean_inc(x_53); +lean_dec(x_42); +x_54 = lean_ptr_addr(x_1); +lean_dec(x_1); +x_55 = lean_ptr_addr(x_29); +x_56 = lean_usize_dec_eq(x_54, x_55); if (x_56 == 0) { -return x_44; +lean_object* x_57; lean_object* x_58; +lean_dec(x_3); +lean_dec(x_2); +x_57 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_57, 0, x_4); +lean_ctor_set(x_57, 1, x_29); +x_58 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_58, 0, x_57); +lean_ctor_set(x_58, 1, x_53); +return x_58; } else { -lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_57 = lean_ctor_get(x_44, 0); -x_58 = lean_ctor_get(x_44, 1); -lean_inc(x_58); -lean_inc(x_57); -lean_dec(x_44); -x_59 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_59, 0, x_57); -lean_ctor_set(x_59, 1, x_58); -return x_59; -} -} -} -case 1: +size_t x_59; size_t x_60; uint8_t x_61; +x_59 = lean_ptr_addr(x_2); +lean_dec(x_2); +x_60 = lean_ptr_addr(x_4); +x_61 = lean_usize_dec_eq(x_59, x_60); +if (x_61 == 0) { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; uint8_t x_66; -x_60 = lean_ctor_get(x_35, 1); -lean_inc(x_60); -lean_dec(x_35); -x_61 = lean_ctor_get(x_1, 0); -lean_inc(x_61); -x_62 = lean_ctor_get(x_1, 1); -lean_inc(x_62); -x_63 = lean_ctor_get(x_61, 0); -lean_inc(x_63); -x_64 = l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(x_63, x_2, x_3, x_4, x_5, x_6, x_7, x_60); -x_65 = lean_ctor_get(x_64, 0); -lean_inc(x_65); -x_66 = lean_unbox(x_65); -if (x_66 == 0) +lean_object* x_62; lean_object* x_63; +lean_dec(x_3); +x_62 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_62, 0, x_4); +lean_ctor_set(x_62, 1, x_29); +x_63 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_63, 0, x_62); +lean_ctor_set(x_63, 1, x_53); +return x_63; +} +else { -lean_object* x_67; lean_object* x_68; uint8_t x_69; -x_67 = lean_ctor_get(x_64, 1); -lean_inc(x_67); -lean_dec(x_64); -lean_inc(x_1); -lean_inc(x_61); -x_68 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__3___boxed), 13, 4); -lean_closure_set(x_68, 0, x_62); -lean_closure_set(x_68, 1, x_61); -lean_closure_set(x_68, 2, x_1); -lean_closure_set(x_68, 3, x_65); -x_69 = l_Lean_Compiler_LCNF_Code_isFun(x_1); +lean_object* x_64; +lean_dec(x_29); +lean_dec(x_4); +x_64 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_64, 0, x_3); +lean_ctor_set(x_64, 1, x_53); +return x_64; +} +} +} +} +} +else +{ +uint8_t x_65; +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); lean_dec(x_1); -if (x_69 == 0) +x_65 = !lean_is_exclusive(x_28); +if (x_65 == 0) { -lean_object* x_70; lean_object* x_71; -x_70 = lean_box(0); -x_71 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_68, x_61, x_70, x_2, x_3, x_4, x_5, x_6, x_7, x_67); -return x_71; +return x_28; } else { -lean_object* x_72; lean_object* x_73; uint8_t x_74; -x_72 = lean_ctor_get(x_61, 3); +lean_object* x_66; lean_object* x_67; lean_object* x_68; +x_66 = lean_ctor_get(x_28, 0); +x_67 = lean_ctor_get(x_28, 1); +lean_inc(x_67); +lean_inc(x_66); +lean_dec(x_28); +x_68 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_68, 0, x_66); +lean_ctor_set(x_68, 1, x_67); +return x_68; +} +} +} +else +{ +lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; +lean_dec(x_3); +lean_dec(x_2); +x_69 = lean_ctor_get(x_26, 0); +lean_inc(x_69); +lean_dec(x_26); +x_70 = lean_ctor_get(x_25, 1); +lean_inc(x_70); +lean_dec(x_25); +x_71 = lean_ctor_get(x_69, 0); +lean_inc(x_71); +x_72 = lean_ctor_get(x_69, 1); lean_inc(x_72); -x_73 = lean_ctor_get(x_61, 2); +lean_dec(x_69); +x_73 = lean_ctor_get(x_4, 0); lean_inc(x_73); -x_74 = l_Lean_Compiler_LCNF_isEtaExpandCandidateCore(x_72, x_73); -lean_dec(x_73); -if (x_74 == 0) +x_74 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_73, x_72, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_70); +if (lean_obj_tag(x_74) == 0) { -lean_object* x_75; lean_object* x_76; -x_75 = lean_box(0); -x_76 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_68, x_61, x_75, x_2, x_3, x_4, x_5, x_6, x_7, x_67); -return x_76; +lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; +x_75 = lean_ctor_get(x_74, 1); +lean_inc(x_75); +lean_dec(x_74); +x_76 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_75); +lean_dec(x_4); +x_77 = lean_ctor_get(x_76, 1); +lean_inc(x_77); +lean_dec(x_76); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_78 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_77); +if (lean_obj_tag(x_78) == 0) +{ +lean_object* x_79; lean_object* x_80; lean_object* x_81; +x_79 = lean_ctor_get(x_78, 0); +lean_inc(x_79); +x_80 = lean_ctor_get(x_78, 1); +lean_inc(x_80); +lean_dec(x_78); +x_81 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls(x_71, x_79, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_80); +lean_dec(x_71); +return x_81; } else { -lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; uint8_t x_83; lean_object* x_84; -x_77 = lean_st_ref_get(x_7, x_67); -x_78 = lean_ctor_get(x_77, 1); -lean_inc(x_78); -lean_dec(x_77); -x_79 = lean_st_ref_get(x_3, x_78); -x_80 = lean_ctor_get(x_79, 0); -lean_inc(x_80); -x_81 = lean_ctor_get(x_79, 1); -lean_inc(x_81); -lean_dec(x_79); -x_82 = lean_ctor_get(x_80, 0); -lean_inc(x_82); -lean_dec(x_80); -x_83 = 0; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_84 = l_Lean_Compiler_LCNF_normFunDeclImp(x_83, x_61, x_82, x_4, x_5, x_6, x_7, x_81); -if (lean_obj_tag(x_84) == 0) +uint8_t x_82; +lean_dec(x_71); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_82 = !lean_is_exclusive(x_78); +if (x_82 == 0) { -lean_object* x_85; lean_object* x_86; lean_object* x_87; -x_85 = lean_ctor_get(x_84, 0); -lean_inc(x_85); -x_86 = lean_ctor_get(x_84, 1); -lean_inc(x_86); -lean_dec(x_84); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_87 = l_Lean_Compiler_LCNF_FunDeclCore_etaExpand(x_85, x_4, x_5, x_6, x_7, x_86); -if (lean_obj_tag(x_87) == 0) +return x_78; +} +else { -lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -x_88 = lean_ctor_get(x_87, 0); +lean_object* x_83; lean_object* x_84; lean_object* x_85; +x_83 = lean_ctor_get(x_78, 0); +x_84 = lean_ctor_get(x_78, 1); +lean_inc(x_84); +lean_inc(x_83); +lean_dec(x_78); +x_85 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_85, 0, x_83); +lean_ctor_set(x_85, 1, x_84); +return x_85; +} +} +} +else +{ +uint8_t x_86; +lean_dec(x_71); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_1); +x_86 = !lean_is_exclusive(x_74); +if (x_86 == 0) +{ +return x_74; +} +else +{ +lean_object* x_87; lean_object* x_88; lean_object* x_89; +x_87 = lean_ctor_get(x_74, 0); +x_88 = lean_ctor_get(x_74, 1); lean_inc(x_88); -x_89 = lean_ctor_get(x_87, 1); -lean_inc(x_89); -lean_dec(x_87); -x_90 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_89); -x_91 = lean_ctor_get(x_90, 0); -lean_inc(x_91); -x_92 = lean_ctor_get(x_90, 1); +lean_inc(x_87); +lean_dec(x_74); +x_89 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_89, 0, x_87); +lean_ctor_set(x_89, 1, x_88); +return x_89; +} +} +} +} +else +{ +uint8_t x_90; +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_90 = !lean_is_exclusive(x_25); +if (x_90 == 0) +{ +return x_25; +} +else +{ +lean_object* x_91; lean_object* x_92; lean_object* x_93; +x_91 = lean_ctor_get(x_25, 0); +x_92 = lean_ctor_get(x_25, 1); lean_inc(x_92); -lean_dec(x_90); -x_93 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_68, x_88, x_91, x_2, x_3, x_4, x_5, x_6, x_7, x_92); -lean_dec(x_91); +lean_inc(x_91); +lean_dec(x_25); +x_93 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_93, 0, x_91); +lean_ctor_set(x_93, 1, x_92); return x_93; } -else -{ -uint8_t x_94; -lean_dec(x_68); -lean_dec(x_6); -lean_dec(x_7); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_94 = !lean_is_exclusive(x_87); -if (x_94 == 0) -{ -return x_87; +} } else { -lean_object* x_95; lean_object* x_96; lean_object* x_97; -x_95 = lean_ctor_get(x_87, 0); -x_96 = lean_ctor_get(x_87, 1); -lean_inc(x_96); +lean_object* x_94; lean_object* x_95; lean_object* x_96; uint8_t x_97; +lean_dec(x_20); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_94 = lean_ctor_get(x_22, 1); +lean_inc(x_94); +lean_dec(x_22); +x_95 = lean_ctor_get(x_23, 0); lean_inc(x_95); -lean_dec(x_87); -x_97 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_97, 0, x_95); -lean_ctor_set(x_97, 1, x_96); -return x_97; -} -} -} -else -{ -uint8_t x_98; -lean_dec(x_68); -lean_dec(x_6); +lean_dec(x_23); +x_96 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_94); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); lean_dec(x_7); -lean_dec(x_5); +lean_dec(x_6); lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_98 = !lean_is_exclusive(x_84); -if (x_98 == 0) +x_97 = !lean_is_exclusive(x_96); +if (x_97 == 0) { -return x_84; +lean_object* x_98; +x_98 = lean_ctor_get(x_96, 0); +lean_dec(x_98); +lean_ctor_set(x_96, 0, x_95); +return x_96; } else { -lean_object* x_99; lean_object* x_100; lean_object* x_101; -x_99 = lean_ctor_get(x_84, 0); -x_100 = lean_ctor_get(x_84, 1); -lean_inc(x_100); +lean_object* x_99; lean_object* x_100; +x_99 = lean_ctor_get(x_96, 1); lean_inc(x_99); -lean_dec(x_84); -x_101 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_101, 0, x_99); -lean_ctor_set(x_101, 1, x_100); -return x_101; -} -} +lean_dec(x_96); +x_100 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_100, 0, x_95); +lean_ctor_set(x_100, 1, x_99); +return x_100; } } } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; uint8_t x_109; lean_object* x_110; -x_102 = lean_ctor_get(x_64, 1); -lean_inc(x_102); -lean_dec(x_64); -x_103 = lean_st_ref_get(x_7, x_102); -x_104 = lean_ctor_get(x_103, 1); -lean_inc(x_104); -lean_dec(x_103); -x_105 = lean_st_ref_get(x_3, x_104); -x_106 = lean_ctor_get(x_105, 0); -lean_inc(x_106); -x_107 = lean_ctor_get(x_105, 1); -lean_inc(x_107); -lean_dec(x_105); -x_108 = lean_ctor_get(x_106, 0); -lean_inc(x_108); -lean_dec(x_106); -x_109 = 0; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_61); -x_110 = l_Lean_Compiler_LCNF_normFunDeclImp(x_109, x_61, x_108, x_4, x_5, x_6, x_7, x_107); -if (lean_obj_tag(x_110) == 0) -{ -lean_object* x_111; lean_object* x_112; lean_object* x_113; uint8_t x_114; lean_object* x_115; -x_111 = lean_ctor_get(x_110, 0); -lean_inc(x_111); -x_112 = lean_ctor_get(x_110, 1); -lean_inc(x_112); -lean_dec(x_110); -x_113 = lean_box(0); -x_114 = lean_unbox(x_65); -lean_dec(x_65); -x_115 = l_Lean_Compiler_LCNF_Simp_simp___lambda__3(x_62, x_61, x_1, x_114, x_111, x_113, x_2, x_3, x_4, x_5, x_6, x_7, x_112); -return x_115; -} -else -{ -uint8_t x_116; -lean_dec(x_65); -lean_dec(x_62); -lean_dec(x_61); -lean_dec(x_6); +uint8_t x_101; +lean_dec(x_20); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); lean_dec(x_7); -lean_dec(x_5); +lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_116 = !lean_is_exclusive(x_110); -if (x_116 == 0) +x_101 = !lean_is_exclusive(x_22); +if (x_101 == 0) { -return x_110; +return x_22; } else { -lean_object* x_117; lean_object* x_118; lean_object* x_119; -x_117 = lean_ctor_get(x_110, 0); -x_118 = lean_ctor_get(x_110, 1); -lean_inc(x_118); +lean_object* x_102; lean_object* x_103; lean_object* x_104; +x_102 = lean_ctor_get(x_22, 0); +x_103 = lean_ctor_get(x_22, 1); +lean_inc(x_103); +lean_inc(x_102); +lean_dec(x_22); +x_104 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_104, 0, x_102); +lean_ctor_set(x_104, 1, x_103); +return x_104; +} +} +} +else +{ +lean_object* x_105; lean_object* x_106; lean_object* x_107; +lean_dec(x_3); +lean_dec(x_2); +x_105 = lean_ctor_get(x_4, 0); +lean_inc(x_105); +x_106 = l_Lean_Expr_fvarId_x21(x_20); +x_107 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_105, x_106, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_19); +if (lean_obj_tag(x_107) == 0) +{ +lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_108 = lean_ctor_get(x_107, 1); +lean_inc(x_108); +lean_dec(x_107); +x_109 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_4, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_108); +lean_dec(x_4); +x_110 = lean_ctor_get(x_109, 1); +lean_inc(x_110); +lean_dec(x_109); +x_111 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_110); +return x_111; +} +else +{ +uint8_t x_112; +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_1); +x_112 = !lean_is_exclusive(x_107); +if (x_112 == 0) +{ +return x_107; +} +else +{ +lean_object* x_113; lean_object* x_114; lean_object* x_115; +x_113 = lean_ctor_get(x_107, 0); +x_114 = lean_ctor_get(x_107, 1); +lean_inc(x_114); +lean_inc(x_113); +lean_dec(x_107); +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set(x_115, 1, x_114); +return x_115; +} +} +} +} +else +{ +lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_116 = lean_ctor_get(x_17, 1); +lean_inc(x_116); +lean_dec(x_17); +x_117 = lean_ctor_get(x_18, 0); lean_inc(x_117); -lean_dec(x_110); -x_119 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_119, 0, x_117); -lean_ctor_set(x_119, 1, x_118); +lean_dec(x_18); +x_118 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_118, 0, x_117); +lean_ctor_set(x_118, 1, x_1); +x_119 = l_Lean_Compiler_LCNF_Simp_simp(x_118, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_116); return x_119; } } -} -} -case 2: +else { -lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; uint8_t x_126; -x_120 = lean_ctor_get(x_35, 1); -lean_inc(x_120); -lean_dec(x_35); -x_121 = lean_ctor_get(x_1, 0); -lean_inc(x_121); -x_122 = lean_ctor_get(x_1, 1); -lean_inc(x_122); -x_123 = lean_ctor_get(x_121, 0); -lean_inc(x_123); -x_124 = l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(x_123, x_2, x_3, x_4, x_5, x_6, x_7, x_120); -x_125 = lean_ctor_get(x_124, 0); -lean_inc(x_125); -x_126 = lean_unbox(x_125); -if (x_126 == 0) -{ -lean_object* x_127; lean_object* x_128; uint8_t x_129; -x_127 = lean_ctor_get(x_124, 1); -lean_inc(x_127); -lean_dec(x_124); -lean_inc(x_1); -lean_inc(x_121); -x_128 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__6___boxed), 13, 4); -lean_closure_set(x_128, 0, x_122); -lean_closure_set(x_128, 1, x_121); -lean_closure_set(x_128, 2, x_1); -lean_closure_set(x_128, 3, x_125); -x_129 = l_Lean_Compiler_LCNF_Code_isFun(x_1); +uint8_t x_120; +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); lean_dec(x_1); -if (x_129 == 0) +x_120 = !lean_is_exclusive(x_17); +if (x_120 == 0) { -lean_object* x_130; lean_object* x_131; -x_130 = lean_box(0); -x_131 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_128, x_121, x_130, x_2, x_3, x_4, x_5, x_6, x_7, x_127); +return x_17; +} +else +{ +lean_object* x_121; lean_object* x_122; lean_object* x_123; +x_121 = lean_ctor_get(x_17, 0); +x_122 = lean_ctor_get(x_17, 1); +lean_inc(x_122); +lean_inc(x_121); +lean_dec(x_17); +x_123 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_123, 0, x_121); +lean_ctor_set(x_123, 1, x_122); +return x_123; +} +} +} +else +{ +lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_124 = lean_ctor_get(x_14, 1); +lean_inc(x_124); +lean_dec(x_14); +x_125 = lean_ctor_get(x_15, 0); +lean_inc(x_125); +lean_dec(x_15); +x_126 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_7, x_8, x_9, x_10, x_11, x_12, x_124); +x_127 = lean_ctor_get(x_126, 1); +lean_inc(x_127); +lean_dec(x_126); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_128 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_127); +if (lean_obj_tag(x_128) == 0) +{ +lean_object* x_129; lean_object* x_130; lean_object* x_131; +x_129 = lean_ctor_get(x_128, 0); +lean_inc(x_129); +x_130 = lean_ctor_get(x_128, 1); +lean_inc(x_130); +lean_dec(x_128); +x_131 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls(x_125, x_129, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_130); +lean_dec(x_125); return x_131; } else { -lean_object* x_132; lean_object* x_133; uint8_t x_134; -x_132 = lean_ctor_get(x_121, 3); -lean_inc(x_132); -x_133 = lean_ctor_get(x_121, 2); -lean_inc(x_133); -x_134 = l_Lean_Compiler_LCNF_isEtaExpandCandidateCore(x_132, x_133); -lean_dec(x_133); -if (x_134 == 0) -{ -lean_object* x_135; lean_object* x_136; -x_135 = lean_box(0); -x_136 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_128, x_121, x_135, x_2, x_3, x_4, x_5, x_6, x_7, x_127); -return x_136; -} -else -{ -lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; uint8_t x_143; lean_object* x_144; -x_137 = lean_st_ref_get(x_7, x_127); -x_138 = lean_ctor_get(x_137, 1); -lean_inc(x_138); -lean_dec(x_137); -x_139 = lean_st_ref_get(x_3, x_138); -x_140 = lean_ctor_get(x_139, 0); -lean_inc(x_140); -x_141 = lean_ctor_get(x_139, 1); -lean_inc(x_141); -lean_dec(x_139); -x_142 = lean_ctor_get(x_140, 0); -lean_inc(x_142); -lean_dec(x_140); -x_143 = 0; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_144 = l_Lean_Compiler_LCNF_normFunDeclImp(x_143, x_121, x_142, x_4, x_5, x_6, x_7, x_141); -if (lean_obj_tag(x_144) == 0) -{ -lean_object* x_145; lean_object* x_146; lean_object* x_147; -x_145 = lean_ctor_get(x_144, 0); -lean_inc(x_145); -x_146 = lean_ctor_get(x_144, 1); -lean_inc(x_146); -lean_dec(x_144); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_147 = l_Lean_Compiler_LCNF_FunDeclCore_etaExpand(x_145, x_4, x_5, x_6, x_7, x_146); -if (lean_obj_tag(x_147) == 0) -{ -lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; -x_148 = lean_ctor_get(x_147, 0); -lean_inc(x_148); -x_149 = lean_ctor_get(x_147, 1); -lean_inc(x_149); -lean_dec(x_147); -x_150 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_149); -x_151 = lean_ctor_get(x_150, 0); -lean_inc(x_151); -x_152 = lean_ctor_get(x_150, 1); -lean_inc(x_152); -lean_dec(x_150); -x_153 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_128, x_148, x_151, x_2, x_3, x_4, x_5, x_6, x_7, x_152); -lean_dec(x_151); -return x_153; -} -else -{ -uint8_t x_154; -lean_dec(x_128); -lean_dec(x_6); -lean_dec(x_7); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_154 = !lean_is_exclusive(x_147); -if (x_154 == 0) -{ -return x_147; -} -else -{ -lean_object* x_155; lean_object* x_156; lean_object* x_157; -x_155 = lean_ctor_get(x_147, 0); -x_156 = lean_ctor_get(x_147, 1); -lean_inc(x_156); -lean_inc(x_155); -lean_dec(x_147); -x_157 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_157, 0, x_155); -lean_ctor_set(x_157, 1, x_156); -return x_157; -} -} -} -else -{ -uint8_t x_158; -lean_dec(x_128); -lean_dec(x_6); -lean_dec(x_7); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_158 = !lean_is_exclusive(x_144); -if (x_158 == 0) -{ -return x_144; -} -else -{ -lean_object* x_159; lean_object* x_160; lean_object* x_161; -x_159 = lean_ctor_get(x_144, 0); -x_160 = lean_ctor_get(x_144, 1); -lean_inc(x_160); -lean_inc(x_159); -lean_dec(x_144); -x_161 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_161, 0, x_159); -lean_ctor_set(x_161, 1, x_160); -return x_161; -} -} -} -} -} -else -{ -lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; lean_object* x_168; uint8_t x_169; lean_object* x_170; -x_162 = lean_ctor_get(x_124, 1); -lean_inc(x_162); -lean_dec(x_124); -x_163 = lean_st_ref_get(x_7, x_162); -x_164 = lean_ctor_get(x_163, 1); -lean_inc(x_164); -lean_dec(x_163); -x_165 = lean_st_ref_get(x_3, x_164); -x_166 = lean_ctor_get(x_165, 0); -lean_inc(x_166); -x_167 = lean_ctor_get(x_165, 1); -lean_inc(x_167); -lean_dec(x_165); -x_168 = lean_ctor_get(x_166, 0); -lean_inc(x_168); -lean_dec(x_166); -x_169 = 0; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_121); -x_170 = l_Lean_Compiler_LCNF_normFunDeclImp(x_169, x_121, x_168, x_4, x_5, x_6, x_7, x_167); -if (lean_obj_tag(x_170) == 0) -{ -lean_object* x_171; lean_object* x_172; lean_object* x_173; uint8_t x_174; lean_object* x_175; -x_171 = lean_ctor_get(x_170, 0); -lean_inc(x_171); -x_172 = lean_ctor_get(x_170, 1); -lean_inc(x_172); -lean_dec(x_170); -x_173 = lean_box(0); -x_174 = lean_unbox(x_125); +uint8_t x_132; lean_dec(x_125); -x_175 = l_Lean_Compiler_LCNF_Simp_simp___lambda__6(x_122, x_121, x_1, x_174, x_171, x_173, x_2, x_3, x_4, x_5, x_6, x_7, x_172); -return x_175; -} -else -{ -uint8_t x_176; -lean_dec(x_125); -lean_dec(x_122); -lean_dec(x_121); -lean_dec(x_6); -lean_dec(x_7); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_176 = !lean_is_exclusive(x_170); -if (x_176 == 0) -{ -return x_170; -} -else -{ -lean_object* x_177; lean_object* x_178; lean_object* x_179; -x_177 = lean_ctor_get(x_170, 0); -x_178 = lean_ctor_get(x_170, 1); -lean_inc(x_178); -lean_inc(x_177); -lean_dec(x_170); -x_179 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_179, 0, x_177); -lean_ctor_set(x_179, 1, x_178); -return x_179; -} -} -} -} -case 3: -{ -lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; uint8_t x_189; lean_object* x_190; lean_object* x_191; -x_180 = lean_ctor_get(x_35, 1); -lean_inc(x_180); -lean_dec(x_35); -x_181 = lean_ctor_get(x_1, 0); -lean_inc(x_181); -x_182 = lean_ctor_get(x_1, 1); -lean_inc(x_182); -x_183 = lean_st_ref_get(x_7, x_180); -x_184 = lean_ctor_get(x_183, 1); -lean_inc(x_184); -lean_dec(x_183); -x_185 = lean_st_ref_get(x_3, x_184); -x_186 = lean_ctor_get(x_185, 0); -lean_inc(x_186); -x_187 = lean_ctor_get(x_185, 1); -lean_inc(x_187); -lean_dec(x_185); -x_188 = lean_ctor_get(x_186, 0); -lean_inc(x_188); -lean_dec(x_186); -x_189 = 0; -lean_inc(x_181); -x_190 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_188, x_181, x_189); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -lean_inc(x_2); -lean_inc(x_182); -x_191 = l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__2(x_189, x_182, x_2, x_3, x_4, x_5, x_6, x_7, x_187); -if (lean_obj_tag(x_191) == 0) -{ -lean_object* x_192; lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_214; -x_192 = lean_ctor_get(x_191, 0); -lean_inc(x_192); -x_193 = lean_ctor_get(x_191, 1); -lean_inc(x_193); -if (lean_is_exclusive(x_191)) { - lean_ctor_release(x_191, 0); - lean_ctor_release(x_191, 1); - x_194 = x_191; -} else { - lean_dec_ref(x_191); - x_194 = lean_box(0); -} -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -lean_inc(x_2); -lean_inc(x_192); -lean_inc(x_190); -x_214 = l_Lean_Compiler_LCNF_Simp_inlineJp_x3f(x_190, x_192, x_2, x_3, x_4, x_5, x_6, x_7, x_193); -if (lean_obj_tag(x_214) == 0) -{ -lean_object* x_215; -x_215 = lean_ctor_get(x_214, 0); -lean_inc(x_215); -if (lean_obj_tag(x_215) == 0) -{ -lean_object* x_216; lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; uint8_t x_221; -x_216 = lean_ctor_get(x_214, 1); -lean_inc(x_216); -lean_dec(x_214); -lean_inc(x_190); -x_217 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_190, x_2, x_3, x_4, x_5, x_6, x_7, x_216); -x_218 = lean_ctor_get(x_217, 1); -lean_inc(x_218); -lean_dec(x_217); -x_219 = lean_array_get_size(x_192); -x_220 = lean_unsigned_to_nat(0u); -x_221 = lean_nat_dec_lt(x_220, x_219); -if (x_221 == 0) -{ -lean_dec(x_219); -lean_dec(x_6); -lean_dec(x_7); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_195 = x_218; -goto block_213; -} -else -{ -uint8_t x_222; -x_222 = lean_nat_dec_le(x_219, x_219); -if (x_222 == 0) -{ -lean_dec(x_219); -lean_dec(x_6); -lean_dec(x_7); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_195 = x_218; -goto block_213; -} -else -{ -size_t x_223; size_t x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; -x_223 = 0; -x_224 = lean_usize_of_nat(x_219); -lean_dec(x_219); -x_225 = lean_box(0); -x_226 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(x_192, x_223, x_224, x_225, x_2, x_3, x_4, x_5, x_6, x_7, x_218); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_227 = lean_ctor_get(x_226, 1); -lean_inc(x_227); -lean_dec(x_226); -x_195 = x_227; -goto block_213; -} -} -} -else -{ -lean_object* x_228; lean_object* x_229; -lean_dec(x_194); -lean_dec(x_192); -lean_dec(x_190); -lean_dec(x_182); -lean_dec(x_181); -lean_dec(x_1); -x_228 = lean_ctor_get(x_214, 1); -lean_inc(x_228); -lean_dec(x_214); -x_229 = lean_ctor_get(x_215, 0); -lean_inc(x_229); -lean_dec(x_215); -x_1 = x_229; -x_8 = x_228; -goto _start; -} -} -else -{ -uint8_t x_231; -lean_dec(x_194); -lean_dec(x_192); -lean_dec(x_190); -lean_dec(x_182); -lean_dec(x_181); -lean_dec(x_6); -lean_dec(x_7); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_231 = !lean_is_exclusive(x_214); -if (x_231 == 0) -{ -return x_214; -} -else -{ -lean_object* x_232; lean_object* x_233; lean_object* x_234; -x_232 = lean_ctor_get(x_214, 0); -x_233 = lean_ctor_get(x_214, 1); -lean_inc(x_233); -lean_inc(x_232); -lean_dec(x_214); -x_234 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_234, 0, x_232); -lean_ctor_set(x_234, 1, x_233); -return x_234; -} -} -block_213: -{ -uint8_t x_196; -x_196 = lean_name_eq(x_181, x_190); -lean_dec(x_181); -if (x_196 == 0) -{ -uint8_t x_197; -lean_dec(x_182); -x_197 = !lean_is_exclusive(x_1); -if (x_197 == 0) -{ -lean_object* x_198; lean_object* x_199; lean_object* x_200; -x_198 = lean_ctor_get(x_1, 1); -lean_dec(x_198); -x_199 = lean_ctor_get(x_1, 0); -lean_dec(x_199); -lean_ctor_set(x_1, 1, x_192); -lean_ctor_set(x_1, 0, x_190); -if (lean_is_scalar(x_194)) { - x_200 = lean_alloc_ctor(0, 2, 0); -} else { - x_200 = x_194; -} -lean_ctor_set(x_200, 0, x_1); -lean_ctor_set(x_200, 1, x_195); -return x_200; -} -else -{ -lean_object* x_201; lean_object* x_202; -lean_dec(x_1); -x_201 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_201, 0, x_190); -lean_ctor_set(x_201, 1, x_192); -if (lean_is_scalar(x_194)) { - x_202 = lean_alloc_ctor(0, 2, 0); -} else { - x_202 = x_194; -} -lean_ctor_set(x_202, 0, x_201); -lean_ctor_set(x_202, 1, x_195); -return x_202; -} -} -else -{ -size_t x_203; size_t x_204; uint8_t x_205; -x_203 = lean_ptr_addr(x_182); -lean_dec(x_182); -x_204 = lean_ptr_addr(x_192); -x_205 = lean_usize_dec_eq(x_203, x_204); -if (x_205 == 0) -{ -uint8_t x_206; -x_206 = !lean_is_exclusive(x_1); -if (x_206 == 0) -{ -lean_object* x_207; lean_object* x_208; lean_object* x_209; -x_207 = lean_ctor_get(x_1, 1); -lean_dec(x_207); -x_208 = lean_ctor_get(x_1, 0); -lean_dec(x_208); -lean_ctor_set(x_1, 1, x_192); -lean_ctor_set(x_1, 0, x_190); -if (lean_is_scalar(x_194)) { - x_209 = lean_alloc_ctor(0, 2, 0); -} else { - x_209 = x_194; -} -lean_ctor_set(x_209, 0, x_1); -lean_ctor_set(x_209, 1, x_195); -return x_209; -} -else -{ -lean_object* x_210; lean_object* x_211; -lean_dec(x_1); -x_210 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_210, 0, x_190); -lean_ctor_set(x_210, 1, x_192); -if (lean_is_scalar(x_194)) { - x_211 = lean_alloc_ctor(0, 2, 0); -} else { - x_211 = x_194; -} -lean_ctor_set(x_211, 0, x_210); -lean_ctor_set(x_211, 1, x_195); -return x_211; -} -} -else -{ -lean_object* x_212; -lean_dec(x_192); -lean_dec(x_190); -if (lean_is_scalar(x_194)) { - x_212 = lean_alloc_ctor(0, 2, 0); -} else { - x_212 = x_194; -} -lean_ctor_set(x_212, 0, x_1); -lean_ctor_set(x_212, 1, x_195); -return x_212; -} -} -} -} -else -{ -uint8_t x_235; -lean_dec(x_190); -lean_dec(x_182); -lean_dec(x_181); -lean_dec(x_6); -lean_dec(x_7); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_235 = !lean_is_exclusive(x_191); -if (x_235 == 0) -{ -return x_191; -} -else -{ -lean_object* x_236; lean_object* x_237; lean_object* x_238; -x_236 = lean_ctor_get(x_191, 0); -x_237 = lean_ctor_get(x_191, 1); -lean_inc(x_237); -lean_inc(x_236); -lean_dec(x_191); -x_238 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_238, 0, x_236); -lean_ctor_set(x_238, 1, x_237); -return x_238; -} -} -} -case 4: -{ -lean_object* x_239; lean_object* x_240; lean_object* x_241; -x_239 = lean_ctor_get(x_35, 1); -lean_inc(x_239); -lean_dec(x_35); -x_240 = lean_ctor_get(x_1, 0); -lean_inc(x_240); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -lean_inc(x_2); -lean_inc(x_240); -x_241 = l_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f(x_240, x_2, x_3, x_4, x_5, x_6, x_7, x_239); -if (lean_obj_tag(x_241) == 0) -{ -lean_object* x_242; -x_242 = lean_ctor_get(x_241, 0); -lean_inc(x_242); -if (lean_obj_tag(x_242) == 0) -{ -lean_object* x_243; lean_object* x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; lean_object* x_249; lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; uint8_t x_255; lean_object* x_256; lean_object* x_257; lean_object* x_258; lean_object* x_259; lean_object* x_260; lean_object* x_261; lean_object* x_262; lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; lean_object* x_267; -x_243 = lean_ctor_get(x_241, 1); -lean_inc(x_243); -lean_dec(x_241); -x_244 = lean_ctor_get(x_240, 0); -lean_inc(x_244); -x_245 = lean_ctor_get(x_240, 1); -lean_inc(x_245); -x_246 = lean_ctor_get(x_240, 2); -lean_inc(x_246); -x_247 = lean_ctor_get(x_240, 3); -lean_inc(x_247); -if (lean_is_exclusive(x_240)) { - lean_ctor_release(x_240, 0); - lean_ctor_release(x_240, 1); - lean_ctor_release(x_240, 2); - lean_ctor_release(x_240, 3); - x_248 = x_240; -} else { - lean_dec_ref(x_240); - x_248 = lean_box(0); -} -x_249 = lean_st_ref_get(x_7, x_243); -x_250 = lean_ctor_get(x_249, 1); -lean_inc(x_250); -lean_dec(x_249); -x_251 = lean_st_ref_get(x_3, x_250); -x_252 = lean_ctor_get(x_251, 0); -lean_inc(x_252); -x_253 = lean_ctor_get(x_251, 1); -lean_inc(x_253); -lean_dec(x_251); -x_254 = lean_ctor_get(x_252, 0); -lean_inc(x_254); -lean_dec(x_252); -x_255 = 0; -lean_inc(x_246); -x_256 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_254, x_246, x_255); -x_257 = lean_st_ref_get(x_7, x_253); -x_258 = lean_ctor_get(x_257, 1); -lean_inc(x_258); -lean_dec(x_257); -x_259 = lean_st_ref_get(x_3, x_258); -x_260 = lean_ctor_get(x_259, 0); -lean_inc(x_260); -x_261 = lean_ctor_get(x_259, 1); -lean_inc(x_261); -lean_dec(x_259); -x_262 = lean_ctor_get(x_260, 0); -lean_inc(x_262); -lean_dec(x_260); -lean_inc(x_245); -x_263 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_262, x_255, x_245); -lean_inc(x_256); -x_264 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_256, x_2, x_3, x_4, x_5, x_6, x_7, x_261); -x_265 = lean_ctor_get(x_264, 1); -lean_inc(x_265); -lean_dec(x_264); -lean_inc(x_256); -x_266 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__8), 9, 1); -lean_closure_set(x_266, 0, x_256); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -lean_inc(x_2); -lean_inc(x_247); -x_267 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__6(x_247, x_266, x_2, x_3, x_4, x_5, x_6, x_7, x_265); -if (lean_obj_tag(x_267) == 0) -{ -lean_object* x_268; lean_object* x_269; lean_object* x_270; lean_object* x_271; -x_268 = lean_ctor_get(x_267, 0); -lean_inc(x_268); -x_269 = lean_ctor_get(x_267, 1); -lean_inc(x_269); -if (lean_is_exclusive(x_267)) { - lean_ctor_release(x_267, 0); - lean_ctor_release(x_267, 1); - x_270 = x_267; -} else { - lean_dec_ref(x_267); - x_270 = lean_box(0); -} -x_271 = l_Lean_Compiler_LCNF_Simp_addDefaultAlt(x_268, x_2, x_3, x_4, x_5, x_6, x_7, x_269); -if (lean_obj_tag(x_271) == 0) -{ -lean_object* x_272; lean_object* x_273; lean_object* x_274; lean_object* x_275; lean_object* x_306; lean_object* x_307; uint8_t x_318; -x_272 = lean_ctor_get(x_271, 0); -lean_inc(x_272); -x_273 = lean_ctor_get(x_271, 1); -lean_inc(x_273); -if (lean_is_exclusive(x_271)) { - lean_ctor_release(x_271, 0); - lean_ctor_release(x_271, 1); - x_274 = x_271; -} else { - lean_dec_ref(x_271); - x_274 = lean_box(0); -} -x_306 = lean_array_get_size(x_272); -x_318 = lean_nat_dec_eq(x_306, x_33); -if (x_318 == 0) -{ -lean_object* x_319; -lean_dec(x_306); -lean_dec(x_270); -x_319 = lean_box(0); -x_275 = x_319; -goto block_305; -} -else -{ -lean_object* x_320; uint8_t x_321; -x_320 = lean_unsigned_to_nat(0u); -x_321 = lean_nat_dec_lt(x_320, x_306); -if (x_321 == 0) -{ -lean_object* x_322; lean_object* x_323; -x_322 = l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___closed__4; -x_323 = l_panic___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___spec__1(x_322); -if (lean_obj_tag(x_323) == 0) -{ -lean_object* x_324; -lean_dec(x_323); -lean_dec(x_306); -lean_dec(x_270); -x_324 = lean_box(0); -x_275 = x_324; -goto block_305; -} -else -{ -lean_object* x_325; -lean_dec(x_323); -lean_dec(x_274); -lean_dec(x_263); -lean_dec(x_256); -lean_dec(x_248); -lean_dec(x_247); -lean_dec(x_246); -lean_dec(x_245); -lean_dec(x_244); -lean_dec(x_1); -x_325 = lean_box(0); -x_307 = x_325; -goto block_317; -} -} -else -{ -lean_object* x_326; -x_326 = lean_array_fget(x_272, x_320); -if (lean_obj_tag(x_326) == 0) -{ -lean_object* x_327; -lean_dec(x_326); -lean_dec(x_306); -lean_dec(x_270); -x_327 = lean_box(0); -x_275 = x_327; -goto block_305; -} -else -{ -lean_object* x_328; -lean_dec(x_326); -lean_dec(x_274); -lean_dec(x_263); -lean_dec(x_256); -lean_dec(x_248); -lean_dec(x_247); -lean_dec(x_246); -lean_dec(x_245); -lean_dec(x_244); -lean_dec(x_1); -x_328 = lean_box(0); -x_307 = x_328; -goto block_317; -} -} -} -block_305: -{ -size_t x_276; size_t x_277; uint8_t x_278; -lean_dec(x_275); -x_276 = lean_ptr_addr(x_247); -lean_dec(x_247); -x_277 = lean_ptr_addr(x_272); -x_278 = lean_usize_dec_eq(x_276, x_277); -if (x_278 == 0) -{ -uint8_t x_279; -lean_dec(x_246); -lean_dec(x_245); -x_279 = !lean_is_exclusive(x_1); -if (x_279 == 0) -{ -lean_object* x_280; lean_object* x_281; lean_object* x_282; -x_280 = lean_ctor_get(x_1, 0); -lean_dec(x_280); -if (lean_is_scalar(x_248)) { - x_281 = lean_alloc_ctor(0, 4, 0); -} else { - x_281 = x_248; -} -lean_ctor_set(x_281, 0, x_244); -lean_ctor_set(x_281, 1, x_263); -lean_ctor_set(x_281, 2, x_256); -lean_ctor_set(x_281, 3, x_272); -lean_ctor_set(x_1, 0, x_281); -if (lean_is_scalar(x_274)) { - x_282 = lean_alloc_ctor(0, 2, 0); -} else { - x_282 = x_274; -} -lean_ctor_set(x_282, 0, x_1); -lean_ctor_set(x_282, 1, x_273); -return x_282; -} -else -{ -lean_object* x_283; lean_object* x_284; lean_object* x_285; -lean_dec(x_1); -if (lean_is_scalar(x_248)) { - x_283 = lean_alloc_ctor(0, 4, 0); -} else { - x_283 = x_248; -} -lean_ctor_set(x_283, 0, x_244); -lean_ctor_set(x_283, 1, x_263); -lean_ctor_set(x_283, 2, x_256); -lean_ctor_set(x_283, 3, x_272); -x_284 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_284, 0, x_283); -if (lean_is_scalar(x_274)) { - x_285 = lean_alloc_ctor(0, 2, 0); -} else { - x_285 = x_274; -} -lean_ctor_set(x_285, 0, x_284); -lean_ctor_set(x_285, 1, x_273); -return x_285; -} -} -else -{ -size_t x_286; size_t x_287; uint8_t x_288; -x_286 = lean_ptr_addr(x_245); -lean_dec(x_245); -x_287 = lean_ptr_addr(x_263); -x_288 = lean_usize_dec_eq(x_286, x_287); -if (x_288 == 0) -{ -uint8_t x_289; -lean_dec(x_246); -x_289 = !lean_is_exclusive(x_1); -if (x_289 == 0) -{ -lean_object* x_290; lean_object* x_291; lean_object* x_292; -x_290 = lean_ctor_get(x_1, 0); -lean_dec(x_290); -if (lean_is_scalar(x_248)) { - x_291 = lean_alloc_ctor(0, 4, 0); -} else { - x_291 = x_248; -} -lean_ctor_set(x_291, 0, x_244); -lean_ctor_set(x_291, 1, x_263); -lean_ctor_set(x_291, 2, x_256); -lean_ctor_set(x_291, 3, x_272); -lean_ctor_set(x_1, 0, x_291); -if (lean_is_scalar(x_274)) { - x_292 = lean_alloc_ctor(0, 2, 0); -} else { - x_292 = x_274; -} -lean_ctor_set(x_292, 0, x_1); -lean_ctor_set(x_292, 1, x_273); -return x_292; -} -else -{ -lean_object* x_293; lean_object* x_294; lean_object* x_295; -lean_dec(x_1); -if (lean_is_scalar(x_248)) { - x_293 = lean_alloc_ctor(0, 4, 0); -} else { - x_293 = x_248; -} -lean_ctor_set(x_293, 0, x_244); -lean_ctor_set(x_293, 1, x_263); -lean_ctor_set(x_293, 2, x_256); -lean_ctor_set(x_293, 3, x_272); -x_294 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_294, 0, x_293); -if (lean_is_scalar(x_274)) { - x_295 = lean_alloc_ctor(0, 2, 0); -} else { - x_295 = x_274; -} -lean_ctor_set(x_295, 0, x_294); -lean_ctor_set(x_295, 1, x_273); -return x_295; -} -} -else -{ -uint8_t x_296; -x_296 = lean_name_eq(x_246, x_256); -lean_dec(x_246); -if (x_296 == 0) -{ -uint8_t x_297; -x_297 = !lean_is_exclusive(x_1); -if (x_297 == 0) -{ -lean_object* x_298; lean_object* x_299; lean_object* x_300; -x_298 = lean_ctor_get(x_1, 0); -lean_dec(x_298); -if (lean_is_scalar(x_248)) { - x_299 = lean_alloc_ctor(0, 4, 0); -} else { - x_299 = x_248; -} -lean_ctor_set(x_299, 0, x_244); -lean_ctor_set(x_299, 1, x_263); -lean_ctor_set(x_299, 2, x_256); -lean_ctor_set(x_299, 3, x_272); -lean_ctor_set(x_1, 0, x_299); -if (lean_is_scalar(x_274)) { - x_300 = lean_alloc_ctor(0, 2, 0); -} else { - x_300 = x_274; -} -lean_ctor_set(x_300, 0, x_1); -lean_ctor_set(x_300, 1, x_273); -return x_300; -} -else -{ -lean_object* x_301; lean_object* x_302; lean_object* x_303; -lean_dec(x_1); -if (lean_is_scalar(x_248)) { - x_301 = lean_alloc_ctor(0, 4, 0); -} else { - x_301 = x_248; -} -lean_ctor_set(x_301, 0, x_244); -lean_ctor_set(x_301, 1, x_263); -lean_ctor_set(x_301, 2, x_256); -lean_ctor_set(x_301, 3, x_272); -x_302 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_302, 0, x_301); -if (lean_is_scalar(x_274)) { - x_303 = lean_alloc_ctor(0, 2, 0); -} else { - x_303 = x_274; -} -lean_ctor_set(x_303, 0, x_302); -lean_ctor_set(x_303, 1, x_273); -return x_303; -} -} -else -{ -lean_object* x_304; -lean_dec(x_272); -lean_dec(x_263); -lean_dec(x_256); -lean_dec(x_248); -lean_dec(x_244); -if (lean_is_scalar(x_274)) { - x_304 = lean_alloc_ctor(0, 2, 0); -} else { - x_304 = x_274; -} -lean_ctor_set(x_304, 0, x_1); -lean_ctor_set(x_304, 1, x_273); -return x_304; -} -} -} -} -block_317: -{ -lean_object* x_308; uint8_t x_309; -lean_dec(x_307); -x_308 = lean_unsigned_to_nat(0u); -x_309 = lean_nat_dec_lt(x_308, x_306); -lean_dec(x_306); -if (x_309 == 0) -{ -lean_object* x_310; lean_object* x_311; lean_object* x_312; lean_object* x_313; -lean_dec(x_272); -x_310 = l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___closed__4; -x_311 = l_panic___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___spec__1(x_310); -x_312 = l_Lean_Compiler_LCNF_AltCore_getCode(x_311); -lean_dec(x_311); -if (lean_is_scalar(x_270)) { - x_313 = lean_alloc_ctor(0, 2, 0); -} else { - x_313 = x_270; -} -lean_ctor_set(x_313, 0, x_312); -lean_ctor_set(x_313, 1, x_273); -return x_313; -} -else -{ -lean_object* x_314; lean_object* x_315; lean_object* x_316; -x_314 = lean_array_fget(x_272, x_308); -lean_dec(x_272); -x_315 = l_Lean_Compiler_LCNF_AltCore_getCode(x_314); -lean_dec(x_314); -if (lean_is_scalar(x_270)) { - x_316 = lean_alloc_ctor(0, 2, 0); -} else { - x_316 = x_270; -} -lean_ctor_set(x_316, 0, x_315); -lean_ctor_set(x_316, 1, x_273); -return x_316; -} -} -} -else -{ -uint8_t x_329; -lean_dec(x_270); -lean_dec(x_263); -lean_dec(x_256); -lean_dec(x_248); -lean_dec(x_247); -lean_dec(x_246); -lean_dec(x_245); -lean_dec(x_244); -lean_dec(x_1); -x_329 = !lean_is_exclusive(x_271); -if (x_329 == 0) -{ -return x_271; -} -else -{ -lean_object* x_330; lean_object* x_331; lean_object* x_332; -x_330 = lean_ctor_get(x_271, 0); -x_331 = lean_ctor_get(x_271, 1); -lean_inc(x_331); -lean_inc(x_330); -lean_dec(x_271); -x_332 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_332, 0, x_330); -lean_ctor_set(x_332, 1, x_331); -return x_332; -} -} -} -else -{ -uint8_t x_333; -lean_dec(x_263); -lean_dec(x_256); -lean_dec(x_248); -lean_dec(x_247); -lean_dec(x_246); -lean_dec(x_245); -lean_dec(x_244); -lean_dec(x_6); -lean_dec(x_7); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_333 = !lean_is_exclusive(x_267); -if (x_333 == 0) -{ -return x_267; -} -else -{ -lean_object* x_334; lean_object* x_335; lean_object* x_336; -x_334 = lean_ctor_get(x_267, 0); -x_335 = lean_ctor_get(x_267, 1); -lean_inc(x_335); -lean_inc(x_334); -lean_dec(x_267); -x_336 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_336, 0, x_334); -lean_ctor_set(x_336, 1, x_335); -return x_336; -} -} -} -else -{ -uint8_t x_337; -lean_dec(x_240); -lean_dec(x_6); -lean_dec(x_7); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_337 = !lean_is_exclusive(x_241); -if (x_337 == 0) -{ -lean_object* x_338; lean_object* x_339; -x_338 = lean_ctor_get(x_241, 0); -lean_dec(x_338); -x_339 = lean_ctor_get(x_242, 0); -lean_inc(x_339); -lean_dec(x_242); -lean_ctor_set(x_241, 0, x_339); -return x_241; -} -else -{ -lean_object* x_340; lean_object* x_341; lean_object* x_342; -x_340 = lean_ctor_get(x_241, 1); -lean_inc(x_340); -lean_dec(x_241); -x_341 = lean_ctor_get(x_242, 0); -lean_inc(x_341); -lean_dec(x_242); -x_342 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_342, 0, x_341); -lean_ctor_set(x_342, 1, x_340); -return x_342; -} -} -} -else -{ -uint8_t x_343; -lean_dec(x_240); -lean_dec(x_6); -lean_dec(x_7); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_343 = !lean_is_exclusive(x_241); -if (x_343 == 0) -{ -return x_241; -} -else -{ -lean_object* x_344; lean_object* x_345; lean_object* x_346; -x_344 = lean_ctor_get(x_241, 0); -x_345 = lean_ctor_get(x_241, 1); -lean_inc(x_345); -lean_inc(x_344); -lean_dec(x_241); -x_346 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_346, 0, x_344); -lean_ctor_set(x_346, 1, x_345); -return x_346; -} -} -} -case 5: -{ -lean_object* x_347; lean_object* x_348; lean_object* x_349; lean_object* x_350; lean_object* x_351; lean_object* x_352; lean_object* x_353; lean_object* x_354; uint8_t x_355; lean_object* x_356; lean_object* x_357; uint8_t x_358; -x_347 = lean_ctor_get(x_35, 1); -lean_inc(x_347); -lean_dec(x_35); -x_348 = lean_ctor_get(x_1, 0); -lean_inc(x_348); -x_349 = lean_st_ref_get(x_7, x_347); -x_350 = lean_ctor_get(x_349, 1); -lean_inc(x_350); -lean_dec(x_349); -x_351 = lean_st_ref_get(x_3, x_350); -x_352 = lean_ctor_get(x_351, 0); -lean_inc(x_352); -x_353 = lean_ctor_get(x_351, 1); -lean_inc(x_353); -lean_dec(x_351); -x_354 = lean_ctor_get(x_352, 0); -lean_inc(x_354); -lean_dec(x_352); -x_355 = 0; -lean_inc(x_348); -x_356 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_354, x_348, x_355); -lean_inc(x_356); -x_357 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_356, x_2, x_3, x_4, x_5, x_6, x_7, x_353); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_358 = !lean_is_exclusive(x_357); -if (x_358 == 0) -{ -lean_object* x_359; uint8_t x_360; -x_359 = lean_ctor_get(x_357, 0); -lean_dec(x_359); -x_360 = lean_name_eq(x_348, x_356); -lean_dec(x_348); -if (x_360 == 0) -{ -uint8_t x_361; -x_361 = !lean_is_exclusive(x_1); -if (x_361 == 0) -{ -lean_object* x_362; -x_362 = lean_ctor_get(x_1, 0); -lean_dec(x_362); -lean_ctor_set(x_1, 0, x_356); -lean_ctor_set(x_357, 0, x_1); -return x_357; -} -else -{ -lean_object* x_363; -lean_dec(x_1); -x_363 = lean_alloc_ctor(5, 1, 0); -lean_ctor_set(x_363, 0, x_356); -lean_ctor_set(x_357, 0, x_363); -return x_357; -} -} -else -{ -lean_dec(x_356); -lean_ctor_set(x_357, 0, x_1); -return x_357; -} -} -else -{ -lean_object* x_364; uint8_t x_365; -x_364 = lean_ctor_get(x_357, 1); -lean_inc(x_364); -lean_dec(x_357); -x_365 = lean_name_eq(x_348, x_356); -lean_dec(x_348); -if (x_365 == 0) -{ -lean_object* x_366; lean_object* x_367; lean_object* x_368; -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - x_366 = x_1; -} else { - lean_dec_ref(x_1); - x_366 = lean_box(0); -} -if (lean_is_scalar(x_366)) { - x_367 = lean_alloc_ctor(5, 1, 0); -} else { - x_367 = x_366; -} -lean_ctor_set(x_367, 0, x_356); -x_368 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_368, 0, x_367); -lean_ctor_set(x_368, 1, x_364); -return x_368; -} -else -{ -lean_object* x_369; -lean_dec(x_356); -x_369 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_369, 0, x_1); -lean_ctor_set(x_369, 1, x_364); -return x_369; -} -} -} -default: -{ -lean_object* x_370; lean_object* x_371; lean_object* x_372; lean_object* x_373; lean_object* x_374; uint8_t x_375; -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_2); -x_370 = lean_ctor_get(x_35, 1); -lean_inc(x_370); -lean_dec(x_35); -x_371 = lean_ctor_get(x_1, 0); -lean_inc(x_371); -x_372 = lean_st_ref_get(x_7, x_370); -lean_dec(x_7); -x_373 = lean_ctor_get(x_372, 1); -lean_inc(x_373); -lean_dec(x_372); -x_374 = lean_st_ref_get(x_3, x_373); -lean_dec(x_3); -x_375 = !lean_is_exclusive(x_374); -if (x_375 == 0) -{ -lean_object* x_376; lean_object* x_377; uint8_t x_378; lean_object* x_379; size_t x_380; size_t x_381; uint8_t x_382; -x_376 = lean_ctor_get(x_374, 0); -x_377 = lean_ctor_get(x_376, 0); -lean_inc(x_377); -lean_dec(x_376); -x_378 = 0; -lean_inc(x_371); -x_379 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_377, x_378, x_371); -x_380 = lean_ptr_addr(x_371); -lean_dec(x_371); -x_381 = lean_ptr_addr(x_379); -x_382 = lean_usize_dec_eq(x_380, x_381); -if (x_382 == 0) -{ -uint8_t x_383; -x_383 = !lean_is_exclusive(x_1); -if (x_383 == 0) -{ -lean_object* x_384; -x_384 = lean_ctor_get(x_1, 0); -lean_dec(x_384); -lean_ctor_set(x_1, 0, x_379); -lean_ctor_set(x_374, 0, x_1); -return x_374; -} -else -{ -lean_object* x_385; -lean_dec(x_1); -x_385 = lean_alloc_ctor(6, 1, 0); -lean_ctor_set(x_385, 0, x_379); -lean_ctor_set(x_374, 0, x_385); -return x_374; -} -} -else -{ -lean_dec(x_379); -lean_ctor_set(x_374, 0, x_1); -return x_374; -} -} -else -{ -lean_object* x_386; lean_object* x_387; lean_object* x_388; uint8_t x_389; lean_object* x_390; size_t x_391; size_t x_392; uint8_t x_393; -x_386 = lean_ctor_get(x_374, 0); -x_387 = lean_ctor_get(x_374, 1); -lean_inc(x_387); -lean_inc(x_386); -lean_dec(x_374); -x_388 = lean_ctor_get(x_386, 0); -lean_inc(x_388); -lean_dec(x_386); -x_389 = 0; -lean_inc(x_371); -x_390 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_388, x_389, x_371); -x_391 = lean_ptr_addr(x_371); -lean_dec(x_371); -x_392 = lean_ptr_addr(x_390); -x_393 = lean_usize_dec_eq(x_391, x_392); -if (x_393 == 0) -{ -lean_object* x_394; lean_object* x_395; lean_object* x_396; -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - x_394 = x_1; -} else { - lean_dec_ref(x_1); - x_394 = lean_box(0); -} -if (lean_is_scalar(x_394)) { - x_395 = lean_alloc_ctor(6, 1, 0); -} else { - x_395 = x_394; -} -lean_ctor_set(x_395, 0, x_390); -x_396 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_396, 0, x_395); -lean_ctor_set(x_396, 1, x_387); -return x_396; -} -else -{ -lean_object* x_397; -lean_dec(x_390); -x_397 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_397, 0, x_1); -lean_ctor_set(x_397, 1, x_387); -return x_397; -} -} -} -} -} -else -{ -lean_object* x_398; lean_object* x_399; lean_object* x_400; lean_object* x_401; -lean_dec(x_6); -x_398 = lean_unsigned_to_nat(1u); -x_399 = lean_nat_add(x_12, x_398); lean_dec(x_12); -x_400 = lean_alloc_ctor(0, 11, 0); -lean_ctor_set(x_400, 0, x_9); -lean_ctor_set(x_400, 1, x_10); -lean_ctor_set(x_400, 2, x_11); -lean_ctor_set(x_400, 3, x_399); -lean_ctor_set(x_400, 4, x_13); -lean_ctor_set(x_400, 5, x_14); -lean_ctor_set(x_400, 6, x_15); -lean_ctor_set(x_400, 7, x_16); -lean_ctor_set(x_400, 8, x_17); -lean_ctor_set(x_400, 9, x_18); -lean_ctor_set(x_400, 10, x_19); -x_401 = l_Lean_Compiler_LCNF_Simp_incVisited___rarg(x_3, x_4, x_5, x_400, x_7, x_8); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +x_132 = !lean_is_exclusive(x_128); +if (x_132 == 0) +{ +return x_128; +} +else +{ +lean_object* x_133; lean_object* x_134; lean_object* x_135; +x_133 = lean_ctor_get(x_128, 0); +x_134 = lean_ctor_get(x_128, 1); +lean_inc(x_134); +lean_inc(x_133); +lean_dec(x_128); +x_135 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_135, 0, x_133); +lean_ctor_set(x_135, 1, x_134); +return x_135; +} +} +} +} +else +{ +uint8_t x_136; +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_136 = !lean_is_exclusive(x_14); +if (x_136 == 0) +{ +return x_14; +} +else +{ +lean_object* x_137; lean_object* x_138; lean_object* x_139; +x_137 = lean_ctor_get(x_14, 0); +x_138 = lean_ctor_get(x_14, 1); +lean_inc(x_138); +lean_inc(x_137); +lean_dec(x_14); +x_139 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_139, 0, x_137); +lean_ctor_set(x_139, 1, x_138); +return x_139; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14) { +_start: +{ +size_t x_15; size_t x_16; uint8_t x_17; +x_15 = lean_ptr_addr(x_1); +x_16 = lean_ptr_addr(x_2); +x_17 = lean_usize_dec_eq(x_15, x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +lean_dec(x_5); +x_18 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_18, 0, x_3); +lean_ctor_set(x_18, 1, x_2); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_14); +return x_19; +} +else +{ +size_t x_20; size_t x_21; uint8_t x_22; +x_20 = lean_ptr_addr(x_4); +x_21 = lean_ptr_addr(x_3); +x_22 = lean_usize_dec_eq(x_20, x_21); +if (x_22 == 0) +{ +lean_object* x_23; lean_object* x_24; +lean_dec(x_5); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_3); +lean_ctor_set(x_23, 1, x_2); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_14); +return x_24; +} +else +{ +lean_object* x_25; +lean_dec(x_3); +lean_dec(x_2); +x_25 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_25, 0, x_5); +lean_ctor_set(x_25, 1, x_14); +return x_25; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14) { +_start: +{ +lean_object* x_15; +lean_dec(x_6); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_1); +x_15 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14); +if (lean_obj_tag(x_15) == 0) +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +x_18 = lean_ctor_get(x_5, 0); +lean_inc(x_18); +x_19 = l_Lean_Compiler_LCNF_Simp_isUsed(x_18, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_17); +lean_dec(x_18); +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +x_21 = lean_unbox(x_20); +lean_dec(x_20); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; uint8_t x_24; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_22 = lean_ctor_get(x_19, 1); +lean_inc(x_22); +lean_dec(x_19); +x_23 = l_Lean_Compiler_LCNF_Simp_eraseFunDecl(x_5, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_22); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +x_24 = !lean_is_exclusive(x_23); +if (x_24 == 0) +{ +lean_object* x_25; +x_25 = lean_ctor_get(x_23, 0); +lean_dec(x_25); +lean_ctor_set(x_23, 0, x_16); +return x_23; +} +else +{ +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_23, 1); +lean_inc(x_26); +lean_dec(x_23); +x_27 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_27, 0, x_16); +lean_ctor_set(x_27, 1, x_26); +return x_27; +} +} +else +{ +if (x_4 == 0) +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_19, 1); +lean_inc(x_28); +lean_dec(x_19); +x_29 = lean_box(0); +x_30 = l_Lean_Compiler_LCNF_Simp_simp___lambda__2(x_1, x_16, x_5, x_2, x_3, x_29, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_28); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_2); +lean_dec(x_1); +return x_30; +} +else +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_31 = lean_ctor_get(x_19, 1); +lean_inc(x_31); +lean_dec(x_19); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_5); +x_32 = l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(x_5, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_31); +x_33 = lean_ctor_get(x_32, 0); +lean_inc(x_33); +x_34 = lean_ctor_get(x_32, 1); +lean_inc(x_34); +lean_dec(x_32); +x_35 = l_Lean_Compiler_LCNF_Simp_simp___lambda__2(x_1, x_16, x_5, x_2, x_3, x_33, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_34); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_33); +lean_dec(x_2); +lean_dec(x_1); +return x_35; +} +} +} +else +{ +uint8_t x_36; +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_36 = !lean_is_exclusive(x_15); +if (x_36 == 0) +{ +return x_15; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_15, 0); +x_38 = lean_ctor_get(x_15, 1); +lean_inc(x_38); +lean_inc(x_37); +lean_dec(x_15); +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_Compiler_LCNF_Simp_simp___lambda__4(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) { +_start: +{ +lean_object* x_12; +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +x_12 = l_Lean_Compiler_LCNF_Simp_simpFunDecl(x_2, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +if (lean_obj_tag(x_12) == 0) +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); +lean_dec(x_12); +x_15 = lean_box(0); +x_16 = lean_apply_10(x_1, x_13, x_15, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_14); +return x_16; +} +else +{ +uint8_t x_17; +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_1); +x_17 = !lean_is_exclusive(x_12); +if (x_17 == 0) +{ +return x_12; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_12, 0); +x_19 = lean_ctor_get(x_12, 1); +lean_inc(x_19); +lean_inc(x_18); +lean_dec(x_12); +x_20 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_20, 0, x_18); +lean_ctor_set(x_20, 1, x_19); +return x_20; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__5(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_object* x_13, lean_object* x_14) { +_start: +{ +size_t x_15; size_t x_16; uint8_t x_17; +x_15 = lean_ptr_addr(x_1); +x_16 = lean_ptr_addr(x_2); +x_17 = lean_usize_dec_eq(x_15, x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; +lean_dec(x_5); +x_18 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_18, 0, x_3); +lean_ctor_set(x_18, 1, x_2); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_14); +return x_19; +} +else +{ +size_t x_20; size_t x_21; uint8_t x_22; +x_20 = lean_ptr_addr(x_4); +x_21 = lean_ptr_addr(x_3); +x_22 = lean_usize_dec_eq(x_20, x_21); +if (x_22 == 0) +{ +lean_object* x_23; lean_object* x_24; +lean_dec(x_5); +x_23 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_23, 0, x_3); +lean_ctor_set(x_23, 1, x_2); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_14); +return x_24; +} +else +{ +lean_object* x_25; +lean_dec(x_3); +lean_dec(x_2); +x_25 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_25, 0, x_5); +lean_ctor_set(x_25, 1, x_14); +return x_25; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__6(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14) { +_start: +{ +lean_object* x_15; +lean_dec(x_6); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_1); +x_15 = l_Lean_Compiler_LCNF_Simp_simp(x_1, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14); +if (lean_obj_tag(x_15) == 0) +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_15, 1); +lean_inc(x_17); +lean_dec(x_15); +x_18 = lean_ctor_get(x_5, 0); +lean_inc(x_18); +x_19 = l_Lean_Compiler_LCNF_Simp_isUsed(x_18, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_17); +lean_dec(x_18); +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +x_21 = lean_unbox(x_20); +lean_dec(x_20); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; uint8_t x_24; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_22 = lean_ctor_get(x_19, 1); +lean_inc(x_22); +lean_dec(x_19); +x_23 = l_Lean_Compiler_LCNF_Simp_eraseFunDecl(x_5, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_22); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +x_24 = !lean_is_exclusive(x_23); +if (x_24 == 0) +{ +lean_object* x_25; +x_25 = lean_ctor_get(x_23, 0); +lean_dec(x_25); +lean_ctor_set(x_23, 0, x_16); +return x_23; +} +else +{ +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_23, 1); +lean_inc(x_26); +lean_dec(x_23); +x_27 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_27, 0, x_16); +lean_ctor_set(x_27, 1, x_26); +return x_27; +} +} +else +{ +if (x_4 == 0) +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_19, 1); +lean_inc(x_28); +lean_dec(x_19); +x_29 = lean_box(0); +x_30 = l_Lean_Compiler_LCNF_Simp_simp___lambda__5(x_1, x_16, x_5, x_2, x_3, x_29, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_28); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_2); +lean_dec(x_1); +return x_30; +} +else +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_31 = lean_ctor_get(x_19, 1); +lean_inc(x_31); +lean_dec(x_19); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_5); +x_32 = l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(x_5, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_31); +x_33 = lean_ctor_get(x_32, 0); +lean_inc(x_33); +x_34 = lean_ctor_get(x_32, 1); +lean_inc(x_34); +lean_dec(x_32); +x_35 = l_Lean_Compiler_LCNF_Simp_simp___lambda__5(x_1, x_16, x_5, x_2, x_3, x_33, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_34); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_33); +lean_dec(x_2); +lean_dec(x_1); +return x_35; +} +} +} +else +{ +uint8_t x_36; +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_36 = !lean_is_exclusive(x_15); +if (x_36 == 0) +{ +return x_15; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_15, 0); +x_38 = lean_ctor_get(x_15, 1); +lean_inc(x_38); +lean_inc(x_37); +lean_dec(x_15); +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_Compiler_LCNF_Simp_simp___lambda__7(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_9; lean_object* x_10; +x_9 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_1, x_2); +x_10 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_10, 0, x_9); +lean_ctor_set(x_10, 1, x_8); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__8(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: +{ +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_11 = lean_ctor_get(x_2, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_2, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_2, 2); +lean_inc(x_13); +x_14 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp), 9, 3); +lean_closure_set(x_14, 0, x_13); +lean_closure_set(x_14, 1, x_3); +lean_closure_set(x_14, 2, x_4); +x_15 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__7___boxed), 8, 1); +lean_closure_set(x_15, 0, x_2); +x_16 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_simpJpCases_x3f_visit___spec__1___rarg), 8, 2); +lean_closure_set(x_16, 0, x_14); +lean_closure_set(x_16, 1, x_15); +x_17 = l_Lean_Compiler_LCNF_Simp_withDiscrCtorImp___rarg(x_1, x_11, x_12, x_16, x_5, x_6, x_7, x_8, x_9, x_10); +return x_17; +} +else +{ +lean_object* x_18; lean_object* x_19; +lean_dec(x_1); +x_18 = lean_ctor_get(x_2, 0); +lean_inc(x_18); +x_19 = l_Lean_Compiler_LCNF_Simp_simp(x_18, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_19) == 0) +{ +uint8_t x_20; +x_20 = !lean_is_exclusive(x_19); +if (x_20 == 0) +{ +lean_object* x_21; lean_object* x_22; +x_21 = lean_ctor_get(x_19, 0); +x_22 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_2, x_21); +lean_ctor_set(x_19, 0, x_22); +return x_19; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_23 = lean_ctor_get(x_19, 0); +x_24 = lean_ctor_get(x_19, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_19); +x_25 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_2, x_23); +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; +} +} +else +{ +uint8_t x_27; +lean_dec(x_2); +x_27 = !lean_is_exclusive(x_19); +if (x_27 == 0) +{ +return x_19; +} +else +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_19, 0); +x_29 = lean_ctor_get(x_19, 1); +lean_inc(x_29); +lean_inc(x_28); +lean_dec(x_19); +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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp(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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; +x_10 = lean_ctor_get(x_7, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_7, 1); +lean_inc(x_11); +x_12 = lean_ctor_get(x_7, 2); +lean_inc(x_12); +x_13 = lean_ctor_get(x_7, 3); +lean_inc(x_13); +x_14 = lean_ctor_get(x_7, 4); +lean_inc(x_14); +x_15 = lean_ctor_get(x_7, 5); +lean_inc(x_15); +x_16 = lean_ctor_get(x_7, 6); +lean_inc(x_16); +x_17 = lean_ctor_get(x_7, 7); +lean_inc(x_17); +x_18 = lean_ctor_get(x_7, 8); +lean_inc(x_18); +x_19 = lean_ctor_get(x_7, 9); +lean_inc(x_19); +x_20 = lean_ctor_get(x_7, 10); +lean_inc(x_20); +x_21 = lean_nat_dec_eq(x_13, x_14); +if (x_21 == 0) +{ +uint8_t x_22; +x_22 = !lean_is_exclusive(x_7); +if (x_22 == 0) +{ +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; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_23 = lean_ctor_get(x_7, 10); +lean_dec(x_23); +x_24 = lean_ctor_get(x_7, 9); +lean_dec(x_24); +x_25 = lean_ctor_get(x_7, 8); +lean_dec(x_25); +x_26 = lean_ctor_get(x_7, 7); +lean_dec(x_26); +x_27 = lean_ctor_get(x_7, 6); +lean_dec(x_27); +x_28 = lean_ctor_get(x_7, 5); +lean_dec(x_28); +x_29 = lean_ctor_get(x_7, 4); +lean_dec(x_29); +x_30 = lean_ctor_get(x_7, 3); +lean_dec(x_30); +x_31 = lean_ctor_get(x_7, 2); +lean_dec(x_31); +x_32 = lean_ctor_get(x_7, 1); +lean_dec(x_32); +x_33 = lean_ctor_get(x_7, 0); +lean_dec(x_33); +x_34 = lean_unsigned_to_nat(1u); +x_35 = lean_nat_add(x_13, x_34); +lean_dec(x_13); +lean_ctor_set(x_7, 3, x_35); +x_36 = l_Lean_Compiler_LCNF_Simp_incVisited___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_9); switch (lean_obj_tag(x_1)) { case 0: { -lean_object* x_402; lean_object* x_403; lean_object* x_404; uint8_t x_405; lean_object* x_406; lean_object* x_407; lean_object* x_408; lean_object* x_409; lean_object* x_410; -x_402 = lean_ctor_get(x_401, 1); -lean_inc(x_402); -lean_dec(x_401); -x_403 = lean_ctor_get(x_1, 0); -lean_inc(x_403); -x_404 = lean_ctor_get(x_1, 1); -lean_inc(x_404); -x_405 = 0; -lean_inc(x_403); -x_406 = l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___spec__1(x_405, x_403, x_2, x_3, x_4, x_5, x_400, x_7, x_402); -x_407 = lean_ctor_get(x_406, 0); -lean_inc(x_407); -x_408 = lean_ctor_get(x_406, 1); -lean_inc(x_408); -lean_dec(x_406); -x_409 = lean_ctor_get(x_407, 3); -lean_inc(x_409); +lean_object* x_37; lean_object* x_38; lean_object* x_39; uint8_t x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_37 = lean_ctor_get(x_36, 1); +lean_inc(x_37); +lean_dec(x_36); +x_38 = lean_ctor_get(x_1, 0); +lean_inc(x_38); +x_39 = lean_ctor_get(x_1, 1); +lean_inc(x_39); +x_40 = 0; +lean_inc(x_38); +x_41 = l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___spec__1(x_40, x_38, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_37); +x_42 = lean_ctor_get(x_41, 0); +lean_inc(x_42); +x_43 = lean_ctor_get(x_41, 1); +lean_inc(x_43); +lean_dec(x_41); +x_44 = lean_ctor_get(x_42, 3); +lean_inc(x_44); +lean_inc(x_8); lean_inc(x_7); -lean_inc(x_400); +lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -lean_inc(x_2); -x_410 = l_Lean_Compiler_LCNF_Simp_simpValue_x3f(x_409, x_2, x_3, x_4, x_5, x_400, x_7, x_408); -if (lean_obj_tag(x_410) == 0) +x_45 = l_Lean_Compiler_LCNF_Simp_simpValue_x3f(x_44, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_43); +if (lean_obj_tag(x_45) == 0) { -lean_object* x_411; -x_411 = lean_ctor_get(x_410, 0); -lean_inc(x_411); -if (lean_obj_tag(x_411) == 0) +lean_object* x_46; +x_46 = lean_ctor_get(x_45, 0); +lean_inc(x_46); +if (lean_obj_tag(x_46) == 0) { -lean_object* x_412; lean_object* x_413; lean_object* x_414; -x_412 = lean_ctor_get(x_410, 1); -lean_inc(x_412); -lean_dec(x_410); -x_413 = lean_box(0); -x_414 = l_Lean_Compiler_LCNF_Simp_simp___lambda__1(x_404, x_403, x_1, x_407, x_413, x_2, x_3, x_4, x_5, x_400, x_7, x_412); -return x_414; +lean_object* x_47; lean_object* x_48; lean_object* x_49; +x_47 = lean_ctor_get(x_45, 1); +lean_inc(x_47); +lean_dec(x_45); +x_48 = lean_box(0); +x_49 = l_Lean_Compiler_LCNF_Simp_simp___lambda__1(x_39, x_38, x_1, x_42, x_48, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_47); +return x_49; } else { -lean_object* x_415; lean_object* x_416; lean_object* x_417; lean_object* x_418; lean_object* x_419; lean_object* x_420; lean_object* x_421; -x_415 = lean_ctor_get(x_410, 1); -lean_inc(x_415); -lean_dec(x_410); -x_416 = lean_ctor_get(x_411, 0); -lean_inc(x_416); -lean_dec(x_411); -x_417 = l_Lean_Compiler_LCNF_LetDecl_updateValue(x_407, x_416, x_4, x_5, x_400, x_7, x_415); -x_418 = lean_ctor_get(x_417, 0); -lean_inc(x_418); -x_419 = lean_ctor_get(x_417, 1); -lean_inc(x_419); -lean_dec(x_417); -x_420 = lean_box(0); -x_421 = l_Lean_Compiler_LCNF_Simp_simp___lambda__1(x_404, x_403, x_1, x_418, x_420, x_2, x_3, x_4, x_5, x_400, x_7, x_419); -return x_421; +lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; +x_50 = lean_ctor_get(x_45, 1); +lean_inc(x_50); +lean_dec(x_45); +x_51 = lean_ctor_get(x_46, 0); +lean_inc(x_51); +lean_dec(x_46); +x_52 = l_Lean_Compiler_LCNF_LetDecl_updateValue(x_42, x_51, x_5, x_6, x_7, x_8, x_50); +x_53 = lean_ctor_get(x_52, 0); +lean_inc(x_53); +x_54 = lean_ctor_get(x_52, 1); +lean_inc(x_54); +lean_dec(x_52); +x_55 = lean_box(0); +x_56 = l_Lean_Compiler_LCNF_Simp_simp___lambda__1(x_39, x_38, x_1, x_53, x_55, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_54); +return x_56; } } else { -lean_object* x_422; lean_object* x_423; lean_object* x_424; lean_object* x_425; -lean_dec(x_407); -lean_dec(x_404); -lean_dec(x_403); -lean_dec(x_400); +uint8_t x_57; +lean_dec(x_42); +lean_dec(x_39); +lean_dec(x_38); lean_dec(x_7); +lean_dec(x_8); +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_422 = lean_ctor_get(x_410, 0); -lean_inc(x_422); -x_423 = lean_ctor_get(x_410, 1); -lean_inc(x_423); -if (lean_is_exclusive(x_410)) { - lean_ctor_release(x_410, 0); - lean_ctor_release(x_410, 1); - x_424 = x_410; -} else { - lean_dec_ref(x_410); - x_424 = lean_box(0); +x_57 = !lean_is_exclusive(x_45); +if (x_57 == 0) +{ +return x_45; } -if (lean_is_scalar(x_424)) { - x_425 = lean_alloc_ctor(1, 2, 0); -} else { - x_425 = x_424; +else +{ +lean_object* x_58; lean_object* x_59; lean_object* x_60; +x_58 = lean_ctor_get(x_45, 0); +x_59 = lean_ctor_get(x_45, 1); +lean_inc(x_59); +lean_inc(x_58); +lean_dec(x_45); +x_60 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_60, 0, x_58); +lean_ctor_set(x_60, 1, x_59); +return x_60; } -lean_ctor_set(x_425, 0, x_422); -lean_ctor_set(x_425, 1, x_423); -return x_425; } } case 1: { -lean_object* x_426; lean_object* x_427; lean_object* x_428; lean_object* x_429; lean_object* x_430; lean_object* x_431; uint8_t x_432; -x_426 = lean_ctor_get(x_401, 1); -lean_inc(x_426); -lean_dec(x_401); -x_427 = lean_ctor_get(x_1, 0); -lean_inc(x_427); -x_428 = lean_ctor_get(x_1, 1); -lean_inc(x_428); -x_429 = lean_ctor_get(x_427, 0); -lean_inc(x_429); -x_430 = l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(x_429, x_2, x_3, x_4, x_5, x_400, x_7, x_426); -x_431 = lean_ctor_get(x_430, 0); -lean_inc(x_431); -x_432 = lean_unbox(x_431); -if (x_432 == 0) +lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; uint8_t x_67; +x_61 = lean_ctor_get(x_36, 1); +lean_inc(x_61); +lean_dec(x_36); +x_62 = lean_ctor_get(x_1, 0); +lean_inc(x_62); +x_63 = lean_ctor_get(x_1, 1); +lean_inc(x_63); +x_64 = lean_ctor_get(x_62, 0); +lean_inc(x_64); +x_65 = l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(x_64, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_61); +x_66 = lean_ctor_get(x_65, 0); +lean_inc(x_66); +x_67 = lean_unbox(x_66); +if (x_67 == 0) { -lean_object* x_433; lean_object* x_434; uint8_t x_435; -x_433 = lean_ctor_get(x_430, 1); -lean_inc(x_433); -lean_dec(x_430); +lean_object* x_68; lean_object* x_69; uint8_t x_70; +x_68 = lean_ctor_get(x_65, 1); +lean_inc(x_68); +lean_dec(x_65); lean_inc(x_1); -lean_inc(x_427); -x_434 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__3___boxed), 13, 4); -lean_closure_set(x_434, 0, x_428); -lean_closure_set(x_434, 1, x_427); -lean_closure_set(x_434, 2, x_1); -lean_closure_set(x_434, 3, x_431); -x_435 = l_Lean_Compiler_LCNF_Code_isFun(x_1); +lean_inc(x_62); +x_69 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__3___boxed), 14, 4); +lean_closure_set(x_69, 0, x_63); +lean_closure_set(x_69, 1, x_62); +lean_closure_set(x_69, 2, x_1); +lean_closure_set(x_69, 3, x_66); +x_70 = l_Lean_Compiler_LCNF_Code_isFun(x_1); lean_dec(x_1); -if (x_435 == 0) +if (x_70 == 0) { -lean_object* x_436; lean_object* x_437; -x_436 = lean_box(0); -x_437 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_434, x_427, x_436, x_2, x_3, x_4, x_5, x_400, x_7, x_433); -return x_437; +lean_object* x_71; lean_object* x_72; +x_71 = lean_box(0); +x_72 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_69, x_62, x_71, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_68); +return x_72; } else { -lean_object* x_438; lean_object* x_439; uint8_t x_440; -x_438 = lean_ctor_get(x_427, 3); -lean_inc(x_438); -x_439 = lean_ctor_get(x_427, 2); -lean_inc(x_439); -x_440 = l_Lean_Compiler_LCNF_isEtaExpandCandidateCore(x_438, x_439); -lean_dec(x_439); -if (x_440 == 0) +lean_object* x_73; lean_object* x_74; uint8_t x_75; +x_73 = lean_ctor_get(x_62, 3); +lean_inc(x_73); +x_74 = lean_ctor_get(x_62, 2); +lean_inc(x_74); +x_75 = l_Lean_Compiler_LCNF_isEtaExpandCandidateCore(x_73, x_74); +lean_dec(x_74); +if (x_75 == 0) { -lean_object* x_441; lean_object* x_442; -x_441 = lean_box(0); -x_442 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_434, x_427, x_441, x_2, x_3, x_4, x_5, x_400, x_7, x_433); -return x_442; +lean_object* x_76; lean_object* x_77; +x_76 = lean_box(0); +x_77 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_69, x_62, x_76, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_68); +return x_77; } else { -lean_object* x_443; lean_object* x_444; lean_object* x_445; lean_object* x_446; lean_object* x_447; lean_object* x_448; uint8_t x_449; lean_object* x_450; -x_443 = lean_st_ref_get(x_7, x_433); -x_444 = lean_ctor_get(x_443, 1); -lean_inc(x_444); -lean_dec(x_443); -x_445 = lean_st_ref_get(x_3, x_444); -x_446 = lean_ctor_get(x_445, 0); -lean_inc(x_446); -x_447 = lean_ctor_get(x_445, 1); -lean_inc(x_447); -lean_dec(x_445); -x_448 = lean_ctor_get(x_446, 0); -lean_inc(x_448); -lean_dec(x_446); -x_449 = 0; +lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; uint8_t x_84; lean_object* x_85; +x_78 = lean_st_ref_get(x_8, x_68); +x_79 = lean_ctor_get(x_78, 1); +lean_inc(x_79); +lean_dec(x_78); +x_80 = lean_st_ref_get(x_3, x_79); +x_81 = lean_ctor_get(x_80, 0); +lean_inc(x_81); +x_82 = lean_ctor_get(x_80, 1); +lean_inc(x_82); +lean_dec(x_80); +x_83 = lean_ctor_get(x_81, 0); +lean_inc(x_83); +lean_dec(x_81); +x_84 = 0; +lean_inc(x_8); lean_inc(x_7); -lean_inc(x_400); +lean_inc(x_6); lean_inc(x_5); -lean_inc(x_4); -x_450 = l_Lean_Compiler_LCNF_normFunDeclImp(x_449, x_427, x_448, x_4, x_5, x_400, x_7, x_447); -if (lean_obj_tag(x_450) == 0) +x_85 = l_Lean_Compiler_LCNF_normFunDeclImp(x_84, x_62, x_83, x_5, x_6, x_7, x_8, x_82); +if (lean_obj_tag(x_85) == 0) { -lean_object* x_451; lean_object* x_452; lean_object* x_453; -x_451 = lean_ctor_get(x_450, 0); -lean_inc(x_451); -x_452 = lean_ctor_get(x_450, 1); -lean_inc(x_452); -lean_dec(x_450); +lean_object* x_86; lean_object* x_87; lean_object* x_88; +x_86 = lean_ctor_get(x_85, 0); +lean_inc(x_86); +x_87 = lean_ctor_get(x_85, 1); +lean_inc(x_87); +lean_dec(x_85); +lean_inc(x_8); lean_inc(x_7); -lean_inc(x_400); +lean_inc(x_6); lean_inc(x_5); -lean_inc(x_4); -x_453 = l_Lean_Compiler_LCNF_FunDeclCore_etaExpand(x_451, x_4, x_5, x_400, x_7, x_452); -if (lean_obj_tag(x_453) == 0) +x_88 = l_Lean_Compiler_LCNF_FunDeclCore_etaExpand(x_86, x_5, x_6, x_7, x_8, x_87); +if (lean_obj_tag(x_88) == 0) { -lean_object* x_454; lean_object* x_455; lean_object* x_456; lean_object* x_457; lean_object* x_458; lean_object* x_459; -x_454 = lean_ctor_get(x_453, 0); -lean_inc(x_454); -x_455 = lean_ctor_get(x_453, 1); -lean_inc(x_455); -lean_dec(x_453); -x_456 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_400, x_7, x_455); -x_457 = lean_ctor_get(x_456, 0); -lean_inc(x_457); -x_458 = lean_ctor_get(x_456, 1); -lean_inc(x_458); -lean_dec(x_456); -x_459 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_434, x_454, x_457, x_2, x_3, x_4, x_5, x_400, x_7, x_458); -lean_dec(x_457); -return x_459; +lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; +x_89 = lean_ctor_get(x_88, 0); +lean_inc(x_89); +x_90 = lean_ctor_get(x_88, 1); +lean_inc(x_90); +lean_dec(x_88); +x_91 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_90); +x_92 = lean_ctor_get(x_91, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_91, 1); +lean_inc(x_93); +lean_dec(x_91); +x_94 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_69, x_89, x_92, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_93); +lean_dec(x_92); +return x_94; } else { -lean_object* x_460; lean_object* x_461; lean_object* x_462; lean_object* x_463; -lean_dec(x_434); -lean_dec(x_400); +uint8_t x_95; +lean_dec(x_69); lean_dec(x_7); +lean_dec(x_8); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_460 = lean_ctor_get(x_453, 0); -lean_inc(x_460); -x_461 = lean_ctor_get(x_453, 1); -lean_inc(x_461); -if (lean_is_exclusive(x_453)) { - lean_ctor_release(x_453, 0); - lean_ctor_release(x_453, 1); - x_462 = x_453; -} else { - lean_dec_ref(x_453); - x_462 = lean_box(0); +x_95 = !lean_is_exclusive(x_88); +if (x_95 == 0) +{ +return x_88; } -if (lean_is_scalar(x_462)) { - x_463 = lean_alloc_ctor(1, 2, 0); -} else { - x_463 = x_462; +else +{ +lean_object* x_96; lean_object* x_97; lean_object* x_98; +x_96 = lean_ctor_get(x_88, 0); +x_97 = lean_ctor_get(x_88, 1); +lean_inc(x_97); +lean_inc(x_96); +lean_dec(x_88); +x_98 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_98, 0, x_96); +lean_ctor_set(x_98, 1, x_97); +return x_98; } -lean_ctor_set(x_463, 0, x_460); -lean_ctor_set(x_463, 1, x_461); -return x_463; } } else { -lean_object* x_464; lean_object* x_465; lean_object* x_466; lean_object* x_467; -lean_dec(x_434); -lean_dec(x_400); +uint8_t x_99; +lean_dec(x_69); lean_dec(x_7); +lean_dec(x_8); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_464 = lean_ctor_get(x_450, 0); -lean_inc(x_464); -x_465 = lean_ctor_get(x_450, 1); -lean_inc(x_465); -if (lean_is_exclusive(x_450)) { - lean_ctor_release(x_450, 0); - lean_ctor_release(x_450, 1); - x_466 = x_450; -} else { - lean_dec_ref(x_450); - x_466 = lean_box(0); +x_99 = !lean_is_exclusive(x_85); +if (x_99 == 0) +{ +return x_85; } -if (lean_is_scalar(x_466)) { - x_467 = lean_alloc_ctor(1, 2, 0); -} else { - x_467 = x_466; +else +{ +lean_object* x_100; lean_object* x_101; lean_object* x_102; +x_100 = lean_ctor_get(x_85, 0); +x_101 = lean_ctor_get(x_85, 1); +lean_inc(x_101); +lean_inc(x_100); +lean_dec(x_85); +x_102 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_102, 0, x_100); +lean_ctor_set(x_102, 1, x_101); +return x_102; } -lean_ctor_set(x_467, 0, x_464); -lean_ctor_set(x_467, 1, x_465); -return x_467; } } } } else { -lean_object* x_468; lean_object* x_469; lean_object* x_470; lean_object* x_471; lean_object* x_472; lean_object* x_473; lean_object* x_474; uint8_t x_475; lean_object* x_476; -x_468 = lean_ctor_get(x_430, 1); -lean_inc(x_468); -lean_dec(x_430); -x_469 = lean_st_ref_get(x_7, x_468); -x_470 = lean_ctor_get(x_469, 1); -lean_inc(x_470); -lean_dec(x_469); -x_471 = lean_st_ref_get(x_3, x_470); -x_472 = lean_ctor_get(x_471, 0); -lean_inc(x_472); -x_473 = lean_ctor_get(x_471, 1); -lean_inc(x_473); -lean_dec(x_471); -x_474 = lean_ctor_get(x_472, 0); -lean_inc(x_474); -lean_dec(x_472); -x_475 = 0; +lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; uint8_t x_110; lean_object* x_111; +x_103 = lean_ctor_get(x_65, 1); +lean_inc(x_103); +lean_dec(x_65); +x_104 = lean_st_ref_get(x_8, x_103); +x_105 = lean_ctor_get(x_104, 1); +lean_inc(x_105); +lean_dec(x_104); +x_106 = lean_st_ref_get(x_3, x_105); +x_107 = lean_ctor_get(x_106, 0); +lean_inc(x_107); +x_108 = lean_ctor_get(x_106, 1); +lean_inc(x_108); +lean_dec(x_106); +x_109 = lean_ctor_get(x_107, 0); +lean_inc(x_109); +lean_dec(x_107); +x_110 = 0; +lean_inc(x_8); lean_inc(x_7); -lean_inc(x_400); +lean_inc(x_6); lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_427); -x_476 = l_Lean_Compiler_LCNF_normFunDeclImp(x_475, x_427, x_474, x_4, x_5, x_400, x_7, x_473); -if (lean_obj_tag(x_476) == 0) +lean_inc(x_62); +x_111 = l_Lean_Compiler_LCNF_normFunDeclImp(x_110, x_62, x_109, x_5, x_6, x_7, x_8, x_108); +if (lean_obj_tag(x_111) == 0) { -lean_object* x_477; lean_object* x_478; lean_object* x_479; uint8_t x_480; lean_object* x_481; -x_477 = lean_ctor_get(x_476, 0); -lean_inc(x_477); -x_478 = lean_ctor_get(x_476, 1); -lean_inc(x_478); -lean_dec(x_476); -x_479 = lean_box(0); -x_480 = lean_unbox(x_431); -lean_dec(x_431); -x_481 = l_Lean_Compiler_LCNF_Simp_simp___lambda__3(x_428, x_427, x_1, x_480, x_477, x_479, x_2, x_3, x_4, x_5, x_400, x_7, x_478); -return x_481; +lean_object* x_112; lean_object* x_113; lean_object* x_114; uint8_t x_115; lean_object* x_116; +x_112 = lean_ctor_get(x_111, 0); +lean_inc(x_112); +x_113 = lean_ctor_get(x_111, 1); +lean_inc(x_113); +lean_dec(x_111); +x_114 = lean_box(0); +x_115 = lean_unbox(x_66); +lean_dec(x_66); +x_116 = l_Lean_Compiler_LCNF_Simp_simp___lambda__3(x_63, x_62, x_1, x_115, x_112, x_114, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_113); +return x_116; } else { -lean_object* x_482; lean_object* x_483; lean_object* x_484; lean_object* x_485; -lean_dec(x_431); -lean_dec(x_428); -lean_dec(x_427); -lean_dec(x_400); +uint8_t x_117; +lean_dec(x_66); +lean_dec(x_63); +lean_dec(x_62); lean_dec(x_7); +lean_dec(x_8); +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_482 = lean_ctor_get(x_476, 0); -lean_inc(x_482); -x_483 = lean_ctor_get(x_476, 1); -lean_inc(x_483); -if (lean_is_exclusive(x_476)) { - lean_ctor_release(x_476, 0); - lean_ctor_release(x_476, 1); - x_484 = x_476; -} else { - lean_dec_ref(x_476); - x_484 = lean_box(0); +x_117 = !lean_is_exclusive(x_111); +if (x_117 == 0) +{ +return x_111; } -if (lean_is_scalar(x_484)) { - x_485 = lean_alloc_ctor(1, 2, 0); -} else { - x_485 = x_484; +else +{ +lean_object* x_118; lean_object* x_119; lean_object* x_120; +x_118 = lean_ctor_get(x_111, 0); +x_119 = lean_ctor_get(x_111, 1); +lean_inc(x_119); +lean_inc(x_118); +lean_dec(x_111); +x_120 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_120, 0, x_118); +lean_ctor_set(x_120, 1, x_119); +return x_120; } -lean_ctor_set(x_485, 0, x_482); -lean_ctor_set(x_485, 1, x_483); -return x_485; } } } case 2: { -lean_object* x_486; lean_object* x_487; lean_object* x_488; lean_object* x_489; lean_object* x_490; lean_object* x_491; uint8_t x_492; -x_486 = lean_ctor_get(x_401, 1); -lean_inc(x_486); -lean_dec(x_401); -x_487 = lean_ctor_get(x_1, 0); -lean_inc(x_487); -x_488 = lean_ctor_get(x_1, 1); -lean_inc(x_488); -x_489 = lean_ctor_get(x_487, 0); -lean_inc(x_489); -x_490 = l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(x_489, x_2, x_3, x_4, x_5, x_400, x_7, x_486); -x_491 = lean_ctor_get(x_490, 0); -lean_inc(x_491); -x_492 = lean_unbox(x_491); -if (x_492 == 0) +lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; uint8_t x_127; +x_121 = lean_ctor_get(x_36, 1); +lean_inc(x_121); +lean_dec(x_36); +x_122 = lean_ctor_get(x_1, 0); +lean_inc(x_122); +x_123 = lean_ctor_get(x_1, 1); +lean_inc(x_123); +x_124 = lean_ctor_get(x_122, 0); +lean_inc(x_124); +x_125 = l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(x_124, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_121); +x_126 = lean_ctor_get(x_125, 0); +lean_inc(x_126); +x_127 = lean_unbox(x_126); +if (x_127 == 0) { -lean_object* x_493; lean_object* x_494; uint8_t x_495; -x_493 = lean_ctor_get(x_490, 1); -lean_inc(x_493); -lean_dec(x_490); +lean_object* x_128; lean_object* x_129; uint8_t x_130; +x_128 = lean_ctor_get(x_125, 1); +lean_inc(x_128); +lean_dec(x_125); lean_inc(x_1); -lean_inc(x_487); -x_494 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__6___boxed), 13, 4); -lean_closure_set(x_494, 0, x_488); -lean_closure_set(x_494, 1, x_487); -lean_closure_set(x_494, 2, x_1); -lean_closure_set(x_494, 3, x_491); -x_495 = l_Lean_Compiler_LCNF_Code_isFun(x_1); +lean_inc(x_122); +x_129 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__6___boxed), 14, 4); +lean_closure_set(x_129, 0, x_123); +lean_closure_set(x_129, 1, x_122); +lean_closure_set(x_129, 2, x_1); +lean_closure_set(x_129, 3, x_126); +x_130 = l_Lean_Compiler_LCNF_Code_isFun(x_1); lean_dec(x_1); -if (x_495 == 0) +if (x_130 == 0) { -lean_object* x_496; lean_object* x_497; -x_496 = lean_box(0); -x_497 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_494, x_487, x_496, x_2, x_3, x_4, x_5, x_400, x_7, x_493); -return x_497; +lean_object* x_131; lean_object* x_132; +x_131 = lean_box(0); +x_132 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_129, x_122, x_131, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_128); +return x_132; } else { -lean_object* x_498; lean_object* x_499; uint8_t x_500; -x_498 = lean_ctor_get(x_487, 3); -lean_inc(x_498); -x_499 = lean_ctor_get(x_487, 2); -lean_inc(x_499); -x_500 = l_Lean_Compiler_LCNF_isEtaExpandCandidateCore(x_498, x_499); -lean_dec(x_499); -if (x_500 == 0) +lean_object* x_133; lean_object* x_134; uint8_t x_135; +x_133 = lean_ctor_get(x_122, 3); +lean_inc(x_133); +x_134 = lean_ctor_get(x_122, 2); +lean_inc(x_134); +x_135 = l_Lean_Compiler_LCNF_isEtaExpandCandidateCore(x_133, x_134); +lean_dec(x_134); +if (x_135 == 0) { -lean_object* x_501; lean_object* x_502; -x_501 = lean_box(0); -x_502 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_494, x_487, x_501, x_2, x_3, x_4, x_5, x_400, x_7, x_493); -return x_502; +lean_object* x_136; lean_object* x_137; +x_136 = lean_box(0); +x_137 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_129, x_122, x_136, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_128); +return x_137; } else { -lean_object* x_503; lean_object* x_504; lean_object* x_505; lean_object* x_506; lean_object* x_507; lean_object* x_508; uint8_t x_509; lean_object* x_510; -x_503 = lean_st_ref_get(x_7, x_493); -x_504 = lean_ctor_get(x_503, 1); -lean_inc(x_504); -lean_dec(x_503); -x_505 = lean_st_ref_get(x_3, x_504); -x_506 = lean_ctor_get(x_505, 0); -lean_inc(x_506); -x_507 = lean_ctor_get(x_505, 1); -lean_inc(x_507); -lean_dec(x_505); -x_508 = lean_ctor_get(x_506, 0); -lean_inc(x_508); -lean_dec(x_506); -x_509 = 0; +lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; uint8_t x_144; lean_object* x_145; +x_138 = lean_st_ref_get(x_8, x_128); +x_139 = lean_ctor_get(x_138, 1); +lean_inc(x_139); +lean_dec(x_138); +x_140 = lean_st_ref_get(x_3, x_139); +x_141 = lean_ctor_get(x_140, 0); +lean_inc(x_141); +x_142 = lean_ctor_get(x_140, 1); +lean_inc(x_142); +lean_dec(x_140); +x_143 = lean_ctor_get(x_141, 0); +lean_inc(x_143); +lean_dec(x_141); +x_144 = 0; +lean_inc(x_8); lean_inc(x_7); -lean_inc(x_400); +lean_inc(x_6); lean_inc(x_5); -lean_inc(x_4); -x_510 = l_Lean_Compiler_LCNF_normFunDeclImp(x_509, x_487, x_508, x_4, x_5, x_400, x_7, x_507); -if (lean_obj_tag(x_510) == 0) +x_145 = l_Lean_Compiler_LCNF_normFunDeclImp(x_144, x_122, x_143, x_5, x_6, x_7, x_8, x_142); +if (lean_obj_tag(x_145) == 0) { -lean_object* x_511; lean_object* x_512; lean_object* x_513; -x_511 = lean_ctor_get(x_510, 0); -lean_inc(x_511); -x_512 = lean_ctor_get(x_510, 1); -lean_inc(x_512); -lean_dec(x_510); +lean_object* x_146; lean_object* x_147; lean_object* x_148; +x_146 = lean_ctor_get(x_145, 0); +lean_inc(x_146); +x_147 = lean_ctor_get(x_145, 1); +lean_inc(x_147); +lean_dec(x_145); +lean_inc(x_8); lean_inc(x_7); -lean_inc(x_400); +lean_inc(x_6); lean_inc(x_5); -lean_inc(x_4); -x_513 = l_Lean_Compiler_LCNF_FunDeclCore_etaExpand(x_511, x_4, x_5, x_400, x_7, x_512); -if (lean_obj_tag(x_513) == 0) +x_148 = l_Lean_Compiler_LCNF_FunDeclCore_etaExpand(x_146, x_5, x_6, x_7, x_8, x_147); +if (lean_obj_tag(x_148) == 0) { -lean_object* x_514; lean_object* x_515; lean_object* x_516; lean_object* x_517; lean_object* x_518; lean_object* x_519; -x_514 = lean_ctor_get(x_513, 0); -lean_inc(x_514); -x_515 = lean_ctor_get(x_513, 1); -lean_inc(x_515); -lean_dec(x_513); -x_516 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_400, x_7, x_515); -x_517 = lean_ctor_get(x_516, 0); -lean_inc(x_517); -x_518 = lean_ctor_get(x_516, 1); -lean_inc(x_518); -lean_dec(x_516); -x_519 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_494, x_514, x_517, x_2, x_3, x_4, x_5, x_400, x_7, x_518); -lean_dec(x_517); -return x_519; +lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; +x_149 = lean_ctor_get(x_148, 0); +lean_inc(x_149); +x_150 = lean_ctor_get(x_148, 1); +lean_inc(x_150); +lean_dec(x_148); +x_151 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_150); +x_152 = lean_ctor_get(x_151, 0); +lean_inc(x_152); +x_153 = lean_ctor_get(x_151, 1); +lean_inc(x_153); +lean_dec(x_151); +x_154 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_129, x_149, x_152, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_153); +lean_dec(x_152); +return x_154; } else { -lean_object* x_520; lean_object* x_521; lean_object* x_522; lean_object* x_523; -lean_dec(x_494); -lean_dec(x_400); +uint8_t x_155; +lean_dec(x_129); lean_dec(x_7); +lean_dec(x_8); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_520 = lean_ctor_get(x_513, 0); -lean_inc(x_520); -x_521 = lean_ctor_get(x_513, 1); -lean_inc(x_521); -if (lean_is_exclusive(x_513)) { - lean_ctor_release(x_513, 0); - lean_ctor_release(x_513, 1); - x_522 = x_513; -} else { - lean_dec_ref(x_513); - x_522 = lean_box(0); +x_155 = !lean_is_exclusive(x_148); +if (x_155 == 0) +{ +return x_148; } -if (lean_is_scalar(x_522)) { - x_523 = lean_alloc_ctor(1, 2, 0); -} else { - x_523 = x_522; +else +{ +lean_object* x_156; lean_object* x_157; lean_object* x_158; +x_156 = lean_ctor_get(x_148, 0); +x_157 = lean_ctor_get(x_148, 1); +lean_inc(x_157); +lean_inc(x_156); +lean_dec(x_148); +x_158 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_158, 0, x_156); +lean_ctor_set(x_158, 1, x_157); +return x_158; } -lean_ctor_set(x_523, 0, x_520); -lean_ctor_set(x_523, 1, x_521); -return x_523; } } else { -lean_object* x_524; lean_object* x_525; lean_object* x_526; lean_object* x_527; -lean_dec(x_494); -lean_dec(x_400); +uint8_t x_159; +lean_dec(x_129); lean_dec(x_7); +lean_dec(x_8); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_524 = lean_ctor_get(x_510, 0); -lean_inc(x_524); -x_525 = lean_ctor_get(x_510, 1); -lean_inc(x_525); -if (lean_is_exclusive(x_510)) { - lean_ctor_release(x_510, 0); - lean_ctor_release(x_510, 1); - x_526 = x_510; -} else { - lean_dec_ref(x_510); - x_526 = lean_box(0); +x_159 = !lean_is_exclusive(x_145); +if (x_159 == 0) +{ +return x_145; } -if (lean_is_scalar(x_526)) { - x_527 = lean_alloc_ctor(1, 2, 0); -} else { - x_527 = x_526; +else +{ +lean_object* x_160; lean_object* x_161; lean_object* x_162; +x_160 = lean_ctor_get(x_145, 0); +x_161 = lean_ctor_get(x_145, 1); +lean_inc(x_161); +lean_inc(x_160); +lean_dec(x_145); +x_162 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_162, 0, x_160); +lean_ctor_set(x_162, 1, x_161); +return x_162; } -lean_ctor_set(x_527, 0, x_524); -lean_ctor_set(x_527, 1, x_525); -return x_527; } } } } else { -lean_object* x_528; lean_object* x_529; lean_object* x_530; lean_object* x_531; lean_object* x_532; lean_object* x_533; lean_object* x_534; uint8_t x_535; lean_object* x_536; -x_528 = lean_ctor_get(x_490, 1); -lean_inc(x_528); -lean_dec(x_490); -x_529 = lean_st_ref_get(x_7, x_528); -x_530 = lean_ctor_get(x_529, 1); -lean_inc(x_530); -lean_dec(x_529); -x_531 = lean_st_ref_get(x_3, x_530); -x_532 = lean_ctor_get(x_531, 0); -lean_inc(x_532); -x_533 = lean_ctor_get(x_531, 1); -lean_inc(x_533); -lean_dec(x_531); -x_534 = lean_ctor_get(x_532, 0); -lean_inc(x_534); -lean_dec(x_532); -x_535 = 0; +lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; lean_object* x_168; lean_object* x_169; uint8_t x_170; lean_object* x_171; +x_163 = lean_ctor_get(x_125, 1); +lean_inc(x_163); +lean_dec(x_125); +x_164 = lean_st_ref_get(x_8, x_163); +x_165 = lean_ctor_get(x_164, 1); +lean_inc(x_165); +lean_dec(x_164); +x_166 = lean_st_ref_get(x_3, x_165); +x_167 = lean_ctor_get(x_166, 0); +lean_inc(x_167); +x_168 = lean_ctor_get(x_166, 1); +lean_inc(x_168); +lean_dec(x_166); +x_169 = lean_ctor_get(x_167, 0); +lean_inc(x_169); +lean_dec(x_167); +x_170 = 0; +lean_inc(x_8); lean_inc(x_7); -lean_inc(x_400); +lean_inc(x_6); lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_487); -x_536 = l_Lean_Compiler_LCNF_normFunDeclImp(x_535, x_487, x_534, x_4, x_5, x_400, x_7, x_533); -if (lean_obj_tag(x_536) == 0) +lean_inc(x_122); +x_171 = l_Lean_Compiler_LCNF_normFunDeclImp(x_170, x_122, x_169, x_5, x_6, x_7, x_8, x_168); +if (lean_obj_tag(x_171) == 0) { -lean_object* x_537; lean_object* x_538; lean_object* x_539; uint8_t x_540; lean_object* x_541; -x_537 = lean_ctor_get(x_536, 0); -lean_inc(x_537); -x_538 = lean_ctor_get(x_536, 1); -lean_inc(x_538); -lean_dec(x_536); -x_539 = lean_box(0); -x_540 = lean_unbox(x_491); -lean_dec(x_491); -x_541 = l_Lean_Compiler_LCNF_Simp_simp___lambda__6(x_488, x_487, x_1, x_540, x_537, x_539, x_2, x_3, x_4, x_5, x_400, x_7, x_538); -return x_541; +lean_object* x_172; lean_object* x_173; lean_object* x_174; uint8_t x_175; lean_object* x_176; +x_172 = lean_ctor_get(x_171, 0); +lean_inc(x_172); +x_173 = lean_ctor_get(x_171, 1); +lean_inc(x_173); +lean_dec(x_171); +x_174 = lean_box(0); +x_175 = lean_unbox(x_126); +lean_dec(x_126); +x_176 = l_Lean_Compiler_LCNF_Simp_simp___lambda__6(x_123, x_122, x_1, x_175, x_172, x_174, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_173); +return x_176; } else { -lean_object* x_542; lean_object* x_543; lean_object* x_544; lean_object* x_545; -lean_dec(x_491); -lean_dec(x_488); -lean_dec(x_487); -lean_dec(x_400); +uint8_t x_177; +lean_dec(x_126); +lean_dec(x_123); +lean_dec(x_122); lean_dec(x_7); +lean_dec(x_8); +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_542 = lean_ctor_get(x_536, 0); -lean_inc(x_542); -x_543 = lean_ctor_get(x_536, 1); -lean_inc(x_543); -if (lean_is_exclusive(x_536)) { - lean_ctor_release(x_536, 0); - lean_ctor_release(x_536, 1); - x_544 = x_536; -} else { - lean_dec_ref(x_536); - x_544 = lean_box(0); +x_177 = !lean_is_exclusive(x_171); +if (x_177 == 0) +{ +return x_171; } -if (lean_is_scalar(x_544)) { - x_545 = lean_alloc_ctor(1, 2, 0); -} else { - x_545 = x_544; +else +{ +lean_object* x_178; lean_object* x_179; lean_object* x_180; +x_178 = lean_ctor_get(x_171, 0); +x_179 = lean_ctor_get(x_171, 1); +lean_inc(x_179); +lean_inc(x_178); +lean_dec(x_171); +x_180 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_180, 0, x_178); +lean_ctor_set(x_180, 1, x_179); +return x_180; } -lean_ctor_set(x_545, 0, x_542); -lean_ctor_set(x_545, 1, x_543); -return x_545; } } } case 3: { -lean_object* x_546; lean_object* x_547; lean_object* x_548; lean_object* x_549; lean_object* x_550; lean_object* x_551; lean_object* x_552; lean_object* x_553; lean_object* x_554; uint8_t x_555; lean_object* x_556; lean_object* x_557; -x_546 = lean_ctor_get(x_401, 1); -lean_inc(x_546); -lean_dec(x_401); -x_547 = lean_ctor_get(x_1, 0); -lean_inc(x_547); -x_548 = lean_ctor_get(x_1, 1); -lean_inc(x_548); -x_549 = lean_st_ref_get(x_7, x_546); -x_550 = lean_ctor_get(x_549, 1); -lean_inc(x_550); -lean_dec(x_549); -x_551 = lean_st_ref_get(x_3, x_550); -x_552 = lean_ctor_get(x_551, 0); -lean_inc(x_552); -x_553 = lean_ctor_get(x_551, 1); -lean_inc(x_553); -lean_dec(x_551); -x_554 = lean_ctor_get(x_552, 0); -lean_inc(x_554); -lean_dec(x_552); -x_555 = 0; -lean_inc(x_547); -x_556 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_554, x_547, x_555); +lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; uint8_t x_190; lean_object* x_191; lean_object* x_192; +x_181 = lean_ctor_get(x_36, 1); +lean_inc(x_181); +lean_dec(x_36); +x_182 = lean_ctor_get(x_1, 0); +lean_inc(x_182); +x_183 = lean_ctor_get(x_1, 1); +lean_inc(x_183); +x_184 = lean_st_ref_get(x_8, x_181); +x_185 = lean_ctor_get(x_184, 1); +lean_inc(x_185); +lean_dec(x_184); +x_186 = lean_st_ref_get(x_3, x_185); +x_187 = lean_ctor_get(x_186, 0); +lean_inc(x_187); +x_188 = lean_ctor_get(x_186, 1); +lean_inc(x_188); +lean_dec(x_186); +x_189 = lean_ctor_get(x_187, 0); +lean_inc(x_189); +lean_dec(x_187); +x_190 = 0; +lean_inc(x_182); +x_191 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_189, x_182, x_190); +lean_inc(x_8); lean_inc(x_7); -lean_inc(x_400); +lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -lean_inc(x_548); -x_557 = l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__2(x_555, x_548, x_2, x_3, x_4, x_5, x_400, x_7, x_553); -if (lean_obj_tag(x_557) == 0) +lean_inc(x_183); +x_192 = l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__2(x_190, x_183, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_188); +if (lean_obj_tag(x_192) == 0) { -lean_object* x_558; lean_object* x_559; lean_object* x_560; lean_object* x_561; lean_object* x_574; -x_558 = lean_ctor_get(x_557, 0); -lean_inc(x_558); -x_559 = lean_ctor_get(x_557, 1); -lean_inc(x_559); -if (lean_is_exclusive(x_557)) { - lean_ctor_release(x_557, 0); - lean_ctor_release(x_557, 1); - x_560 = x_557; +lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_215; +x_193 = lean_ctor_get(x_192, 0); +lean_inc(x_193); +x_194 = lean_ctor_get(x_192, 1); +lean_inc(x_194); +if (lean_is_exclusive(x_192)) { + lean_ctor_release(x_192, 0); + lean_ctor_release(x_192, 1); + x_195 = x_192; } else { - lean_dec_ref(x_557); - x_560 = lean_box(0); + lean_dec_ref(x_192); + x_195 = lean_box(0); } +lean_inc(x_8); lean_inc(x_7); -lean_inc(x_400); +lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -lean_inc(x_558); -lean_inc(x_556); -x_574 = l_Lean_Compiler_LCNF_Simp_inlineJp_x3f(x_556, x_558, x_2, x_3, x_4, x_5, x_400, x_7, x_559); -if (lean_obj_tag(x_574) == 0) +lean_inc(x_193); +lean_inc(x_191); +x_215 = l_Lean_Compiler_LCNF_Simp_inlineJp_x3f(x_191, x_193, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_194); +if (lean_obj_tag(x_215) == 0) { -lean_object* x_575; -x_575 = lean_ctor_get(x_574, 0); -lean_inc(x_575); -if (lean_obj_tag(x_575) == 0) +lean_object* x_216; +x_216 = lean_ctor_get(x_215, 0); +lean_inc(x_216); +if (lean_obj_tag(x_216) == 0) { -lean_object* x_576; lean_object* x_577; lean_object* x_578; lean_object* x_579; lean_object* x_580; uint8_t x_581; -x_576 = lean_ctor_get(x_574, 1); -lean_inc(x_576); -lean_dec(x_574); -lean_inc(x_556); -x_577 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_556, x_2, x_3, x_4, x_5, x_400, x_7, x_576); -x_578 = lean_ctor_get(x_577, 1); -lean_inc(x_578); -lean_dec(x_577); -x_579 = lean_array_get_size(x_558); -x_580 = lean_unsigned_to_nat(0u); -x_581 = lean_nat_dec_lt(x_580, x_579); -if (x_581 == 0) +lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; uint8_t x_222; +x_217 = lean_ctor_get(x_215, 1); +lean_inc(x_217); +lean_dec(x_215); +lean_inc(x_191); +x_218 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_191, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_217); +x_219 = lean_ctor_get(x_218, 1); +lean_inc(x_219); +lean_dec(x_218); +x_220 = lean_array_get_size(x_193); +x_221 = lean_unsigned_to_nat(0u); +x_222 = lean_nat_dec_lt(x_221, x_220); +if (x_222 == 0) { -lean_dec(x_579); -lean_dec(x_400); +lean_dec(x_220); lean_dec(x_7); +lean_dec(x_8); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_561 = x_578; -goto block_573; +x_196 = x_219; +goto block_214; } else { -uint8_t x_582; -x_582 = lean_nat_dec_le(x_579, x_579); -if (x_582 == 0) +uint8_t x_223; +x_223 = lean_nat_dec_le(x_220, x_220); +if (x_223 == 0) { -lean_dec(x_579); -lean_dec(x_400); +lean_dec(x_220); lean_dec(x_7); +lean_dec(x_8); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_561 = x_578; -goto block_573; +x_196 = x_219; +goto block_214; } else { -size_t x_583; size_t x_584; lean_object* x_585; lean_object* x_586; lean_object* x_587; -x_583 = 0; -x_584 = lean_usize_of_nat(x_579); -lean_dec(x_579); -x_585 = lean_box(0); -x_586 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(x_558, x_583, x_584, x_585, x_2, x_3, x_4, x_5, x_400, x_7, x_578); +size_t x_224; size_t x_225; lean_object* x_226; lean_object* x_227; lean_object* x_228; +x_224 = 0; +x_225 = lean_usize_of_nat(x_220); +lean_dec(x_220); +x_226 = lean_box(0); +x_227 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(x_193, x_224, x_225, x_226, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_219); +lean_dec(x_8); lean_dec(x_7); -lean_dec(x_400); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_587 = lean_ctor_get(x_586, 1); -lean_inc(x_587); -lean_dec(x_586); -x_561 = x_587; -goto block_573; +x_228 = lean_ctor_get(x_227, 1); +lean_inc(x_228); +lean_dec(x_227); +x_196 = x_228; +goto block_214; } } } else { -lean_object* x_588; lean_object* x_589; -lean_dec(x_560); -lean_dec(x_558); -lean_dec(x_556); -lean_dec(x_548); -lean_dec(x_547); +lean_object* x_229; lean_object* x_230; +lean_dec(x_195); +lean_dec(x_193); +lean_dec(x_191); +lean_dec(x_183); +lean_dec(x_182); lean_dec(x_1); -x_588 = lean_ctor_get(x_574, 1); -lean_inc(x_588); -lean_dec(x_574); -x_589 = lean_ctor_get(x_575, 0); -lean_inc(x_589); -lean_dec(x_575); -x_1 = x_589; -x_6 = x_400; -x_8 = x_588; +x_229 = lean_ctor_get(x_215, 1); +lean_inc(x_229); +lean_dec(x_215); +x_230 = lean_ctor_get(x_216, 0); +lean_inc(x_230); +lean_dec(x_216); +x_1 = x_230; +x_9 = x_229; goto _start; } } else { -lean_object* x_591; lean_object* x_592; lean_object* x_593; lean_object* x_594; -lean_dec(x_560); -lean_dec(x_558); -lean_dec(x_556); -lean_dec(x_548); -lean_dec(x_547); -lean_dec(x_400); +uint8_t x_232; +lean_dec(x_195); +lean_dec(x_193); +lean_dec(x_191); +lean_dec(x_183); +lean_dec(x_182); lean_dec(x_7); +lean_dec(x_8); +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_591 = lean_ctor_get(x_574, 0); -lean_inc(x_591); -x_592 = lean_ctor_get(x_574, 1); -lean_inc(x_592); -if (lean_is_exclusive(x_574)) { - lean_ctor_release(x_574, 0); - lean_ctor_release(x_574, 1); - x_593 = x_574; -} else { - lean_dec_ref(x_574); - x_593 = lean_box(0); -} -if (lean_is_scalar(x_593)) { - x_594 = lean_alloc_ctor(1, 2, 0); -} else { - x_594 = x_593; -} -lean_ctor_set(x_594, 0, x_591); -lean_ctor_set(x_594, 1, x_592); -return x_594; -} -block_573: +x_232 = !lean_is_exclusive(x_215); +if (x_232 == 0) { -uint8_t x_562; -x_562 = lean_name_eq(x_547, x_556); -lean_dec(x_547); -if (x_562 == 0) -{ -lean_object* x_563; lean_object* x_564; lean_object* x_565; -lean_dec(x_548); -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - lean_ctor_release(x_1, 1); - x_563 = x_1; -} else { - lean_dec_ref(x_1); - x_563 = lean_box(0); -} -if (lean_is_scalar(x_563)) { - x_564 = lean_alloc_ctor(3, 2, 0); -} else { - x_564 = x_563; -} -lean_ctor_set(x_564, 0, x_556); -lean_ctor_set(x_564, 1, x_558); -if (lean_is_scalar(x_560)) { - x_565 = lean_alloc_ctor(0, 2, 0); -} else { - x_565 = x_560; -} -lean_ctor_set(x_565, 0, x_564); -lean_ctor_set(x_565, 1, x_561); -return x_565; +return x_215; } else { -size_t x_566; size_t x_567; uint8_t x_568; -x_566 = lean_ptr_addr(x_548); -lean_dec(x_548); -x_567 = lean_ptr_addr(x_558); -x_568 = lean_usize_dec_eq(x_566, x_567); -if (x_568 == 0) +lean_object* x_233; lean_object* x_234; lean_object* x_235; +x_233 = lean_ctor_get(x_215, 0); +x_234 = lean_ctor_get(x_215, 1); +lean_inc(x_234); +lean_inc(x_233); +lean_dec(x_215); +x_235 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_235, 0, x_233); +lean_ctor_set(x_235, 1, x_234); +return x_235; +} +} +block_214: { -lean_object* x_569; lean_object* x_570; lean_object* x_571; -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - lean_ctor_release(x_1, 1); - x_569 = x_1; +uint8_t x_197; +x_197 = lean_name_eq(x_182, x_191); +lean_dec(x_182); +if (x_197 == 0) +{ +uint8_t x_198; +lean_dec(x_183); +x_198 = !lean_is_exclusive(x_1); +if (x_198 == 0) +{ +lean_object* x_199; lean_object* x_200; lean_object* x_201; +x_199 = lean_ctor_get(x_1, 1); +lean_dec(x_199); +x_200 = lean_ctor_get(x_1, 0); +lean_dec(x_200); +lean_ctor_set(x_1, 1, x_193); +lean_ctor_set(x_1, 0, x_191); +if (lean_is_scalar(x_195)) { + x_201 = lean_alloc_ctor(0, 2, 0); } else { - lean_dec_ref(x_1); - x_569 = lean_box(0); + x_201 = x_195; } -if (lean_is_scalar(x_569)) { - x_570 = lean_alloc_ctor(3, 2, 0); -} else { - x_570 = x_569; -} -lean_ctor_set(x_570, 0, x_556); -lean_ctor_set(x_570, 1, x_558); -if (lean_is_scalar(x_560)) { - x_571 = lean_alloc_ctor(0, 2, 0); -} else { - x_571 = x_560; -} -lean_ctor_set(x_571, 0, x_570); -lean_ctor_set(x_571, 1, x_561); -return x_571; +lean_ctor_set(x_201, 0, x_1); +lean_ctor_set(x_201, 1, x_196); +return x_201; } else { -lean_object* x_572; -lean_dec(x_558); -lean_dec(x_556); -if (lean_is_scalar(x_560)) { - x_572 = lean_alloc_ctor(0, 2, 0); +lean_object* x_202; lean_object* x_203; +lean_dec(x_1); +x_202 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_202, 0, x_191); +lean_ctor_set(x_202, 1, x_193); +if (lean_is_scalar(x_195)) { + x_203 = lean_alloc_ctor(0, 2, 0); } else { - x_572 = x_560; + x_203 = x_195; } -lean_ctor_set(x_572, 0, x_1); -lean_ctor_set(x_572, 1, x_561); -return x_572; +lean_ctor_set(x_203, 0, x_202); +lean_ctor_set(x_203, 1, x_196); +return x_203; +} +} +else +{ +size_t x_204; size_t x_205; uint8_t x_206; +x_204 = lean_ptr_addr(x_183); +lean_dec(x_183); +x_205 = lean_ptr_addr(x_193); +x_206 = lean_usize_dec_eq(x_204, x_205); +if (x_206 == 0) +{ +uint8_t x_207; +x_207 = !lean_is_exclusive(x_1); +if (x_207 == 0) +{ +lean_object* x_208; lean_object* x_209; lean_object* x_210; +x_208 = lean_ctor_get(x_1, 1); +lean_dec(x_208); +x_209 = lean_ctor_get(x_1, 0); +lean_dec(x_209); +lean_ctor_set(x_1, 1, x_193); +lean_ctor_set(x_1, 0, x_191); +if (lean_is_scalar(x_195)) { + x_210 = lean_alloc_ctor(0, 2, 0); +} else { + x_210 = x_195; +} +lean_ctor_set(x_210, 0, x_1); +lean_ctor_set(x_210, 1, x_196); +return x_210; +} +else +{ +lean_object* x_211; lean_object* x_212; +lean_dec(x_1); +x_211 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_211, 0, x_191); +lean_ctor_set(x_211, 1, x_193); +if (lean_is_scalar(x_195)) { + x_212 = lean_alloc_ctor(0, 2, 0); +} else { + x_212 = x_195; +} +lean_ctor_set(x_212, 0, x_211); +lean_ctor_set(x_212, 1, x_196); +return x_212; +} +} +else +{ +lean_object* x_213; +lean_dec(x_193); +lean_dec(x_191); +if (lean_is_scalar(x_195)) { + x_213 = lean_alloc_ctor(0, 2, 0); +} else { + x_213 = x_195; +} +lean_ctor_set(x_213, 0, x_1); +lean_ctor_set(x_213, 1, x_196); +return x_213; } } } } else { -lean_object* x_595; lean_object* x_596; lean_object* x_597; lean_object* x_598; -lean_dec(x_556); -lean_dec(x_548); -lean_dec(x_547); -lean_dec(x_400); +uint8_t x_236; +lean_dec(x_191); +lean_dec(x_183); +lean_dec(x_182); lean_dec(x_7); +lean_dec(x_8); +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_595 = lean_ctor_get(x_557, 0); -lean_inc(x_595); -x_596 = lean_ctor_get(x_557, 1); -lean_inc(x_596); -if (lean_is_exclusive(x_557)) { - lean_ctor_release(x_557, 0); - lean_ctor_release(x_557, 1); - x_597 = x_557; -} else { - lean_dec_ref(x_557); - x_597 = lean_box(0); +x_236 = !lean_is_exclusive(x_192); +if (x_236 == 0) +{ +return x_192; } -if (lean_is_scalar(x_597)) { - x_598 = lean_alloc_ctor(1, 2, 0); -} else { - x_598 = x_597; +else +{ +lean_object* x_237; lean_object* x_238; lean_object* x_239; +x_237 = lean_ctor_get(x_192, 0); +x_238 = lean_ctor_get(x_192, 1); +lean_inc(x_238); +lean_inc(x_237); +lean_dec(x_192); +x_239 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_239, 0, x_237); +lean_ctor_set(x_239, 1, x_238); +return x_239; } -lean_ctor_set(x_598, 0, x_595); -lean_ctor_set(x_598, 1, x_596); -return x_598; } } case 4: { -lean_object* x_599; lean_object* x_600; lean_object* x_601; -x_599 = lean_ctor_get(x_401, 1); -lean_inc(x_599); -lean_dec(x_401); -x_600 = lean_ctor_get(x_1, 0); -lean_inc(x_600); +lean_object* x_240; lean_object* x_241; lean_object* x_242; +x_240 = lean_ctor_get(x_36, 1); +lean_inc(x_240); +lean_dec(x_36); +x_241 = lean_ctor_get(x_1, 0); +lean_inc(x_241); +lean_inc(x_8); lean_inc(x_7); -lean_inc(x_400); +lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -lean_inc(x_600); -x_601 = l_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f(x_600, x_2, x_3, x_4, x_5, x_400, x_7, x_599); -if (lean_obj_tag(x_601) == 0) +lean_inc(x_241); +x_242 = l_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f(x_241, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_240); +if (lean_obj_tag(x_242) == 0) { -lean_object* x_602; -x_602 = lean_ctor_get(x_601, 0); -lean_inc(x_602); -if (lean_obj_tag(x_602) == 0) +lean_object* x_243; +x_243 = lean_ctor_get(x_242, 0); +lean_inc(x_243); +if (lean_obj_tag(x_243) == 0) { -lean_object* x_603; lean_object* x_604; lean_object* x_605; lean_object* x_606; lean_object* x_607; lean_object* x_608; lean_object* x_609; lean_object* x_610; lean_object* x_611; lean_object* x_612; lean_object* x_613; lean_object* x_614; uint8_t x_615; lean_object* x_616; lean_object* x_617; lean_object* x_618; lean_object* x_619; lean_object* x_620; lean_object* x_621; lean_object* x_622; lean_object* x_623; lean_object* x_624; lean_object* x_625; lean_object* x_626; lean_object* x_627; -x_603 = lean_ctor_get(x_601, 1); -lean_inc(x_603); -lean_dec(x_601); -x_604 = lean_ctor_get(x_600, 0); -lean_inc(x_604); -x_605 = lean_ctor_get(x_600, 1); -lean_inc(x_605); -x_606 = lean_ctor_get(x_600, 2); -lean_inc(x_606); -x_607 = lean_ctor_get(x_600, 3); -lean_inc(x_607); -if (lean_is_exclusive(x_600)) { - lean_ctor_release(x_600, 0); - lean_ctor_release(x_600, 1); - lean_ctor_release(x_600, 2); - lean_ctor_release(x_600, 3); - x_608 = x_600; +lean_object* x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; lean_object* x_249; lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; lean_object* x_255; uint8_t x_256; lean_object* x_257; lean_object* x_258; lean_object* x_259; lean_object* x_260; lean_object* x_261; lean_object* x_262; lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; lean_object* x_267; lean_object* x_268; +x_244 = lean_ctor_get(x_242, 1); +lean_inc(x_244); +lean_dec(x_242); +x_245 = lean_ctor_get(x_241, 0); +lean_inc(x_245); +x_246 = lean_ctor_get(x_241, 1); +lean_inc(x_246); +x_247 = lean_ctor_get(x_241, 2); +lean_inc(x_247); +x_248 = lean_ctor_get(x_241, 3); +lean_inc(x_248); +if (lean_is_exclusive(x_241)) { + lean_ctor_release(x_241, 0); + lean_ctor_release(x_241, 1); + lean_ctor_release(x_241, 2); + lean_ctor_release(x_241, 3); + x_249 = x_241; } else { - lean_dec_ref(x_600); - x_608 = lean_box(0); + lean_dec_ref(x_241); + x_249 = lean_box(0); } -x_609 = lean_st_ref_get(x_7, x_603); -x_610 = lean_ctor_get(x_609, 1); -lean_inc(x_610); -lean_dec(x_609); -x_611 = lean_st_ref_get(x_3, x_610); -x_612 = lean_ctor_get(x_611, 0); -lean_inc(x_612); -x_613 = lean_ctor_get(x_611, 1); -lean_inc(x_613); -lean_dec(x_611); -x_614 = lean_ctor_get(x_612, 0); -lean_inc(x_614); -lean_dec(x_612); -x_615 = 0; -lean_inc(x_606); -x_616 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_614, x_606, x_615); -x_617 = lean_st_ref_get(x_7, x_613); -x_618 = lean_ctor_get(x_617, 1); -lean_inc(x_618); -lean_dec(x_617); -x_619 = lean_st_ref_get(x_3, x_618); -x_620 = lean_ctor_get(x_619, 0); -lean_inc(x_620); -x_621 = lean_ctor_get(x_619, 1); -lean_inc(x_621); -lean_dec(x_619); -x_622 = lean_ctor_get(x_620, 0); -lean_inc(x_622); -lean_dec(x_620); -lean_inc(x_605); -x_623 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_622, x_615, x_605); -lean_inc(x_616); -x_624 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_616, x_2, x_3, x_4, x_5, x_400, x_7, x_621); -x_625 = lean_ctor_get(x_624, 1); -lean_inc(x_625); -lean_dec(x_624); -lean_inc(x_616); -x_626 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__8), 9, 1); -lean_closure_set(x_626, 0, x_616); +x_250 = lean_st_ref_get(x_8, x_244); +x_251 = lean_ctor_get(x_250, 1); +lean_inc(x_251); +lean_dec(x_250); +x_252 = lean_st_ref_get(x_3, x_251); +x_253 = lean_ctor_get(x_252, 0); +lean_inc(x_253); +x_254 = lean_ctor_get(x_252, 1); +lean_inc(x_254); +lean_dec(x_252); +x_255 = lean_ctor_get(x_253, 0); +lean_inc(x_255); +lean_dec(x_253); +x_256 = 0; +lean_inc(x_247); +x_257 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_255, x_247, x_256); +x_258 = lean_st_ref_get(x_8, x_254); +x_259 = lean_ctor_get(x_258, 1); +lean_inc(x_259); +lean_dec(x_258); +x_260 = lean_st_ref_get(x_3, x_259); +x_261 = lean_ctor_get(x_260, 0); +lean_inc(x_261); +x_262 = lean_ctor_get(x_260, 1); +lean_inc(x_262); +lean_dec(x_260); +x_263 = lean_ctor_get(x_261, 0); +lean_inc(x_263); +lean_dec(x_261); +lean_inc(x_246); +x_264 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_263, x_256, x_246); +lean_inc(x_257); +x_265 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_257, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_262); +x_266 = lean_ctor_get(x_265, 1); +lean_inc(x_266); +lean_dec(x_265); +lean_inc(x_257); +x_267 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__8), 10, 1); +lean_closure_set(x_267, 0, x_257); +lean_inc(x_8); lean_inc(x_7); -lean_inc(x_400); +lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -lean_inc(x_607); -x_627 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__6(x_607, x_626, x_2, x_3, x_4, x_5, x_400, x_7, x_625); -if (lean_obj_tag(x_627) == 0) +lean_inc(x_248); +x_268 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__6(x_248, x_267, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_266); +if (lean_obj_tag(x_268) == 0) { -lean_object* x_628; lean_object* x_629; lean_object* x_630; lean_object* x_631; -x_628 = lean_ctor_get(x_627, 0); -lean_inc(x_628); -x_629 = lean_ctor_get(x_627, 1); -lean_inc(x_629); -if (lean_is_exclusive(x_627)) { - lean_ctor_release(x_627, 0); - lean_ctor_release(x_627, 1); - x_630 = x_627; +lean_object* x_269; lean_object* x_270; lean_object* x_271; lean_object* x_272; +x_269 = lean_ctor_get(x_268, 0); +lean_inc(x_269); +x_270 = lean_ctor_get(x_268, 1); +lean_inc(x_270); +if (lean_is_exclusive(x_268)) { + lean_ctor_release(x_268, 0); + lean_ctor_release(x_268, 1); + x_271 = x_268; } else { - lean_dec_ref(x_627); - x_630 = lean_box(0); + lean_dec_ref(x_268); + x_271 = lean_box(0); } -x_631 = l_Lean_Compiler_LCNF_Simp_addDefaultAlt(x_628, x_2, x_3, x_4, x_5, x_400, x_7, x_629); -if (lean_obj_tag(x_631) == 0) +x_272 = l_Lean_Compiler_LCNF_Simp_addDefaultAlt(x_269, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_270); +if (lean_obj_tag(x_272) == 0) { -lean_object* x_632; lean_object* x_633; lean_object* x_634; lean_object* x_635; lean_object* x_657; lean_object* x_658; uint8_t x_669; -x_632 = lean_ctor_get(x_631, 0); -lean_inc(x_632); -x_633 = lean_ctor_get(x_631, 1); -lean_inc(x_633); -if (lean_is_exclusive(x_631)) { - lean_ctor_release(x_631, 0); - lean_ctor_release(x_631, 1); - x_634 = x_631; +lean_object* x_273; lean_object* x_274; lean_object* x_275; lean_object* x_276; lean_object* x_307; lean_object* x_308; uint8_t x_319; +x_273 = lean_ctor_get(x_272, 0); +lean_inc(x_273); +x_274 = lean_ctor_get(x_272, 1); +lean_inc(x_274); +if (lean_is_exclusive(x_272)) { + lean_ctor_release(x_272, 0); + lean_ctor_release(x_272, 1); + x_275 = x_272; } else { - lean_dec_ref(x_631); - x_634 = lean_box(0); + lean_dec_ref(x_272); + x_275 = lean_box(0); } -x_657 = lean_array_get_size(x_632); -x_669 = lean_nat_dec_eq(x_657, x_398); -if (x_669 == 0) +x_307 = lean_array_get_size(x_273); +x_319 = lean_nat_dec_eq(x_307, x_34); +if (x_319 == 0) { -lean_object* x_670; -lean_dec(x_657); -lean_dec(x_630); -x_670 = lean_box(0); -x_635 = x_670; -goto block_656; +lean_object* x_320; +lean_dec(x_307); +lean_dec(x_271); +x_320 = lean_box(0); +x_276 = x_320; +goto block_306; } else { -lean_object* x_671; uint8_t x_672; -x_671 = lean_unsigned_to_nat(0u); -x_672 = lean_nat_dec_lt(x_671, x_657); -if (x_672 == 0) +lean_object* x_321; uint8_t x_322; +x_321 = lean_unsigned_to_nat(0u); +x_322 = lean_nat_dec_lt(x_321, x_307); +if (x_322 == 0) { -lean_object* x_673; lean_object* x_674; -x_673 = l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___closed__4; -x_674 = l_panic___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___spec__1(x_673); -if (lean_obj_tag(x_674) == 0) +lean_object* x_323; lean_object* x_324; +x_323 = l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___closed__4; +x_324 = l_panic___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___spec__1(x_323); +if (lean_obj_tag(x_324) == 0) { -lean_object* x_675; -lean_dec(x_674); -lean_dec(x_657); -lean_dec(x_630); -x_675 = lean_box(0); -x_635 = x_675; -goto block_656; +lean_object* x_325; +lean_dec(x_324); +lean_dec(x_307); +lean_dec(x_271); +x_325 = lean_box(0); +x_276 = x_325; +goto block_306; } else { -lean_object* x_676; -lean_dec(x_674); -lean_dec(x_634); -lean_dec(x_623); -lean_dec(x_616); -lean_dec(x_608); -lean_dec(x_607); -lean_dec(x_606); -lean_dec(x_605); -lean_dec(x_604); +lean_object* x_326; +lean_dec(x_324); +lean_dec(x_275); +lean_dec(x_264); +lean_dec(x_257); +lean_dec(x_249); +lean_dec(x_248); +lean_dec(x_247); +lean_dec(x_246); +lean_dec(x_245); lean_dec(x_1); -x_676 = lean_box(0); -x_658 = x_676; -goto block_668; +x_326 = lean_box(0); +x_308 = x_326; +goto block_318; } } else { -lean_object* x_677; -x_677 = lean_array_fget(x_632, x_671); -if (lean_obj_tag(x_677) == 0) +lean_object* x_327; +x_327 = lean_array_fget(x_273, x_321); +if (lean_obj_tag(x_327) == 0) { -lean_object* x_678; -lean_dec(x_677); -lean_dec(x_657); -lean_dec(x_630); -x_678 = lean_box(0); -x_635 = x_678; -goto block_656; +lean_object* x_328; +lean_dec(x_327); +lean_dec(x_307); +lean_dec(x_271); +x_328 = lean_box(0); +x_276 = x_328; +goto block_306; } else { -lean_object* x_679; -lean_dec(x_677); -lean_dec(x_634); -lean_dec(x_623); -lean_dec(x_616); -lean_dec(x_608); -lean_dec(x_607); -lean_dec(x_606); -lean_dec(x_605); -lean_dec(x_604); +lean_object* x_329; +lean_dec(x_327); +lean_dec(x_275); +lean_dec(x_264); +lean_dec(x_257); +lean_dec(x_249); +lean_dec(x_248); +lean_dec(x_247); +lean_dec(x_246); +lean_dec(x_245); lean_dec(x_1); -x_679 = lean_box(0); -x_658 = x_679; -goto block_668; +x_329 = lean_box(0); +x_308 = x_329; +goto block_318; } } } -block_656: +block_306: { -size_t x_636; size_t x_637; uint8_t x_638; -lean_dec(x_635); -x_636 = lean_ptr_addr(x_607); -lean_dec(x_607); -x_637 = lean_ptr_addr(x_632); -x_638 = lean_usize_dec_eq(x_636, x_637); -if (x_638 == 0) +size_t x_277; size_t x_278; uint8_t x_279; +lean_dec(x_276); +x_277 = lean_ptr_addr(x_248); +lean_dec(x_248); +x_278 = lean_ptr_addr(x_273); +x_279 = lean_usize_dec_eq(x_277, x_278); +if (x_279 == 0) { -lean_object* x_639; lean_object* x_640; lean_object* x_641; lean_object* x_642; -lean_dec(x_606); -lean_dec(x_605); -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - x_639 = x_1; +uint8_t x_280; +lean_dec(x_247); +lean_dec(x_246); +x_280 = !lean_is_exclusive(x_1); +if (x_280 == 0) +{ +lean_object* x_281; lean_object* x_282; lean_object* x_283; +x_281 = lean_ctor_get(x_1, 0); +lean_dec(x_281); +if (lean_is_scalar(x_249)) { + x_282 = lean_alloc_ctor(0, 4, 0); } else { - lean_dec_ref(x_1); - x_639 = lean_box(0); + x_282 = x_249; } -if (lean_is_scalar(x_608)) { - x_640 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_282, 0, x_245); +lean_ctor_set(x_282, 1, x_264); +lean_ctor_set(x_282, 2, x_257); +lean_ctor_set(x_282, 3, x_273); +lean_ctor_set(x_1, 0, x_282); +if (lean_is_scalar(x_275)) { + x_283 = lean_alloc_ctor(0, 2, 0); } else { - x_640 = x_608; + x_283 = x_275; } -lean_ctor_set(x_640, 0, x_604); -lean_ctor_set(x_640, 1, x_623); -lean_ctor_set(x_640, 2, x_616); -lean_ctor_set(x_640, 3, x_632); -if (lean_is_scalar(x_639)) { - x_641 = lean_alloc_ctor(4, 1, 0); -} else { - x_641 = x_639; -} -lean_ctor_set(x_641, 0, x_640); -if (lean_is_scalar(x_634)) { - x_642 = lean_alloc_ctor(0, 2, 0); -} else { - x_642 = x_634; -} -lean_ctor_set(x_642, 0, x_641); -lean_ctor_set(x_642, 1, x_633); -return x_642; +lean_ctor_set(x_283, 0, x_1); +lean_ctor_set(x_283, 1, x_274); +return x_283; } else { -size_t x_643; size_t x_644; uint8_t x_645; -x_643 = lean_ptr_addr(x_605); -lean_dec(x_605); -x_644 = lean_ptr_addr(x_623); -x_645 = lean_usize_dec_eq(x_643, x_644); -if (x_645 == 0) -{ -lean_object* x_646; lean_object* x_647; lean_object* x_648; lean_object* x_649; -lean_dec(x_606); -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - x_646 = x_1; -} else { - lean_dec_ref(x_1); - x_646 = lean_box(0); -} -if (lean_is_scalar(x_608)) { - x_647 = lean_alloc_ctor(0, 4, 0); -} else { - x_647 = x_608; -} -lean_ctor_set(x_647, 0, x_604); -lean_ctor_set(x_647, 1, x_623); -lean_ctor_set(x_647, 2, x_616); -lean_ctor_set(x_647, 3, x_632); -if (lean_is_scalar(x_646)) { - x_648 = lean_alloc_ctor(4, 1, 0); -} else { - x_648 = x_646; -} -lean_ctor_set(x_648, 0, x_647); -if (lean_is_scalar(x_634)) { - x_649 = lean_alloc_ctor(0, 2, 0); -} else { - x_649 = x_634; -} -lean_ctor_set(x_649, 0, x_648); -lean_ctor_set(x_649, 1, x_633); -return x_649; -} -else -{ -uint8_t x_650; -x_650 = lean_name_eq(x_606, x_616); -lean_dec(x_606); -if (x_650 == 0) -{ -lean_object* x_651; lean_object* x_652; lean_object* x_653; lean_object* x_654; -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - x_651 = x_1; -} else { - lean_dec_ref(x_1); - x_651 = lean_box(0); -} -if (lean_is_scalar(x_608)) { - x_652 = lean_alloc_ctor(0, 4, 0); -} else { - x_652 = x_608; -} -lean_ctor_set(x_652, 0, x_604); -lean_ctor_set(x_652, 1, x_623); -lean_ctor_set(x_652, 2, x_616); -lean_ctor_set(x_652, 3, x_632); -if (lean_is_scalar(x_651)) { - x_653 = lean_alloc_ctor(4, 1, 0); -} else { - x_653 = x_651; -} -lean_ctor_set(x_653, 0, x_652); -if (lean_is_scalar(x_634)) { - x_654 = lean_alloc_ctor(0, 2, 0); -} else { - x_654 = x_634; -} -lean_ctor_set(x_654, 0, x_653); -lean_ctor_set(x_654, 1, x_633); -return x_654; -} -else -{ -lean_object* x_655; -lean_dec(x_632); -lean_dec(x_623); -lean_dec(x_616); -lean_dec(x_608); -lean_dec(x_604); -if (lean_is_scalar(x_634)) { - x_655 = lean_alloc_ctor(0, 2, 0); -} else { - x_655 = x_634; -} -lean_ctor_set(x_655, 0, x_1); -lean_ctor_set(x_655, 1, x_633); -return x_655; -} -} -} -} -block_668: -{ -lean_object* x_659; uint8_t x_660; -lean_dec(x_658); -x_659 = lean_unsigned_to_nat(0u); -x_660 = lean_nat_dec_lt(x_659, x_657); -lean_dec(x_657); -if (x_660 == 0) -{ -lean_object* x_661; lean_object* x_662; lean_object* x_663; lean_object* x_664; -lean_dec(x_632); -x_661 = l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___closed__4; -x_662 = l_panic___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___spec__1(x_661); -x_663 = l_Lean_Compiler_LCNF_AltCore_getCode(x_662); -lean_dec(x_662); -if (lean_is_scalar(x_630)) { - x_664 = lean_alloc_ctor(0, 2, 0); -} else { - x_664 = x_630; -} -lean_ctor_set(x_664, 0, x_663); -lean_ctor_set(x_664, 1, x_633); -return x_664; -} -else -{ -lean_object* x_665; lean_object* x_666; lean_object* x_667; -x_665 = lean_array_fget(x_632, x_659); -lean_dec(x_632); -x_666 = l_Lean_Compiler_LCNF_AltCore_getCode(x_665); -lean_dec(x_665); -if (lean_is_scalar(x_630)) { - x_667 = lean_alloc_ctor(0, 2, 0); -} else { - x_667 = x_630; -} -lean_ctor_set(x_667, 0, x_666); -lean_ctor_set(x_667, 1, x_633); -return x_667; -} -} -} -else -{ -lean_object* x_680; lean_object* x_681; lean_object* x_682; lean_object* x_683; -lean_dec(x_630); -lean_dec(x_623); -lean_dec(x_616); -lean_dec(x_608); -lean_dec(x_607); -lean_dec(x_606); -lean_dec(x_605); -lean_dec(x_604); +lean_object* x_284; lean_object* x_285; lean_object* x_286; lean_dec(x_1); -x_680 = lean_ctor_get(x_631, 0); -lean_inc(x_680); -x_681 = lean_ctor_get(x_631, 1); -lean_inc(x_681); -if (lean_is_exclusive(x_631)) { - lean_ctor_release(x_631, 0); - lean_ctor_release(x_631, 1); - x_682 = x_631; +if (lean_is_scalar(x_249)) { + x_284 = lean_alloc_ctor(0, 4, 0); } else { - lean_dec_ref(x_631); - x_682 = lean_box(0); + x_284 = x_249; } -if (lean_is_scalar(x_682)) { - x_683 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_284, 0, x_245); +lean_ctor_set(x_284, 1, x_264); +lean_ctor_set(x_284, 2, x_257); +lean_ctor_set(x_284, 3, x_273); +x_285 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_285, 0, x_284); +if (lean_is_scalar(x_275)) { + x_286 = lean_alloc_ctor(0, 2, 0); } else { - x_683 = x_682; + x_286 = x_275; } -lean_ctor_set(x_683, 0, x_680); -lean_ctor_set(x_683, 1, x_681); -return x_683; +lean_ctor_set(x_286, 0, x_285); +lean_ctor_set(x_286, 1, x_274); +return x_286; } } else { -lean_object* x_684; lean_object* x_685; lean_object* x_686; lean_object* x_687; -lean_dec(x_623); -lean_dec(x_616); -lean_dec(x_608); -lean_dec(x_607); -lean_dec(x_606); -lean_dec(x_605); -lean_dec(x_604); -lean_dec(x_400); +size_t x_287; size_t x_288; uint8_t x_289; +x_287 = lean_ptr_addr(x_246); +lean_dec(x_246); +x_288 = lean_ptr_addr(x_264); +x_289 = lean_usize_dec_eq(x_287, x_288); +if (x_289 == 0) +{ +uint8_t x_290; +lean_dec(x_247); +x_290 = !lean_is_exclusive(x_1); +if (x_290 == 0) +{ +lean_object* x_291; lean_object* x_292; lean_object* x_293; +x_291 = lean_ctor_get(x_1, 0); +lean_dec(x_291); +if (lean_is_scalar(x_249)) { + x_292 = lean_alloc_ctor(0, 4, 0); +} else { + x_292 = x_249; +} +lean_ctor_set(x_292, 0, x_245); +lean_ctor_set(x_292, 1, x_264); +lean_ctor_set(x_292, 2, x_257); +lean_ctor_set(x_292, 3, x_273); +lean_ctor_set(x_1, 0, x_292); +if (lean_is_scalar(x_275)) { + x_293 = lean_alloc_ctor(0, 2, 0); +} else { + x_293 = x_275; +} +lean_ctor_set(x_293, 0, x_1); +lean_ctor_set(x_293, 1, x_274); +return x_293; +} +else +{ +lean_object* x_294; lean_object* x_295; lean_object* x_296; +lean_dec(x_1); +if (lean_is_scalar(x_249)) { + x_294 = lean_alloc_ctor(0, 4, 0); +} else { + x_294 = x_249; +} +lean_ctor_set(x_294, 0, x_245); +lean_ctor_set(x_294, 1, x_264); +lean_ctor_set(x_294, 2, x_257); +lean_ctor_set(x_294, 3, x_273); +x_295 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_295, 0, x_294); +if (lean_is_scalar(x_275)) { + x_296 = lean_alloc_ctor(0, 2, 0); +} else { + x_296 = x_275; +} +lean_ctor_set(x_296, 0, x_295); +lean_ctor_set(x_296, 1, x_274); +return x_296; +} +} +else +{ +uint8_t x_297; +x_297 = lean_name_eq(x_247, x_257); +lean_dec(x_247); +if (x_297 == 0) +{ +uint8_t x_298; +x_298 = !lean_is_exclusive(x_1); +if (x_298 == 0) +{ +lean_object* x_299; lean_object* x_300; lean_object* x_301; +x_299 = lean_ctor_get(x_1, 0); +lean_dec(x_299); +if (lean_is_scalar(x_249)) { + x_300 = lean_alloc_ctor(0, 4, 0); +} else { + x_300 = x_249; +} +lean_ctor_set(x_300, 0, x_245); +lean_ctor_set(x_300, 1, x_264); +lean_ctor_set(x_300, 2, x_257); +lean_ctor_set(x_300, 3, x_273); +lean_ctor_set(x_1, 0, x_300); +if (lean_is_scalar(x_275)) { + x_301 = lean_alloc_ctor(0, 2, 0); +} else { + x_301 = x_275; +} +lean_ctor_set(x_301, 0, x_1); +lean_ctor_set(x_301, 1, x_274); +return x_301; +} +else +{ +lean_object* x_302; lean_object* x_303; lean_object* x_304; +lean_dec(x_1); +if (lean_is_scalar(x_249)) { + x_302 = lean_alloc_ctor(0, 4, 0); +} else { + x_302 = x_249; +} +lean_ctor_set(x_302, 0, x_245); +lean_ctor_set(x_302, 1, x_264); +lean_ctor_set(x_302, 2, x_257); +lean_ctor_set(x_302, 3, x_273); +x_303 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_303, 0, x_302); +if (lean_is_scalar(x_275)) { + x_304 = lean_alloc_ctor(0, 2, 0); +} else { + x_304 = x_275; +} +lean_ctor_set(x_304, 0, x_303); +lean_ctor_set(x_304, 1, x_274); +return x_304; +} +} +else +{ +lean_object* x_305; +lean_dec(x_273); +lean_dec(x_264); +lean_dec(x_257); +lean_dec(x_249); +lean_dec(x_245); +if (lean_is_scalar(x_275)) { + x_305 = lean_alloc_ctor(0, 2, 0); +} else { + x_305 = x_275; +} +lean_ctor_set(x_305, 0, x_1); +lean_ctor_set(x_305, 1, x_274); +return x_305; +} +} +} +} +block_318: +{ +lean_object* x_309; uint8_t x_310; +lean_dec(x_308); +x_309 = lean_unsigned_to_nat(0u); +x_310 = lean_nat_dec_lt(x_309, x_307); +lean_dec(x_307); +if (x_310 == 0) +{ +lean_object* x_311; lean_object* x_312; lean_object* x_313; lean_object* x_314; +lean_dec(x_273); +x_311 = l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___closed__4; +x_312 = l_panic___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___spec__1(x_311); +x_313 = l_Lean_Compiler_LCNF_AltCore_getCode(x_312); +lean_dec(x_312); +if (lean_is_scalar(x_271)) { + x_314 = lean_alloc_ctor(0, 2, 0); +} else { + x_314 = x_271; +} +lean_ctor_set(x_314, 0, x_313); +lean_ctor_set(x_314, 1, x_274); +return x_314; +} +else +{ +lean_object* x_315; lean_object* x_316; lean_object* x_317; +x_315 = lean_array_fget(x_273, x_309); +lean_dec(x_273); +x_316 = l_Lean_Compiler_LCNF_AltCore_getCode(x_315); +lean_dec(x_315); +if (lean_is_scalar(x_271)) { + x_317 = lean_alloc_ctor(0, 2, 0); +} else { + x_317 = x_271; +} +lean_ctor_set(x_317, 0, x_316); +lean_ctor_set(x_317, 1, x_274); +return x_317; +} +} +} +else +{ +uint8_t x_330; +lean_dec(x_271); +lean_dec(x_264); +lean_dec(x_257); +lean_dec(x_249); +lean_dec(x_248); +lean_dec(x_247); +lean_dec(x_246); +lean_dec(x_245); +lean_dec(x_1); +x_330 = !lean_is_exclusive(x_272); +if (x_330 == 0) +{ +return x_272; +} +else +{ +lean_object* x_331; lean_object* x_332; lean_object* x_333; +x_331 = lean_ctor_get(x_272, 0); +x_332 = lean_ctor_get(x_272, 1); +lean_inc(x_332); +lean_inc(x_331); +lean_dec(x_272); +x_333 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_333, 0, x_331); +lean_ctor_set(x_333, 1, x_332); +return x_333; +} +} +} +else +{ +uint8_t x_334; +lean_dec(x_264); +lean_dec(x_257); +lean_dec(x_249); +lean_dec(x_248); +lean_dec(x_247); +lean_dec(x_246); +lean_dec(x_245); lean_dec(x_7); +lean_dec(x_8); +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_684 = lean_ctor_get(x_627, 0); -lean_inc(x_684); -x_685 = lean_ctor_get(x_627, 1); -lean_inc(x_685); -if (lean_is_exclusive(x_627)) { - lean_ctor_release(x_627, 0); - lean_ctor_release(x_627, 1); - x_686 = x_627; -} else { - lean_dec_ref(x_627); - x_686 = lean_box(0); +x_334 = !lean_is_exclusive(x_268); +if (x_334 == 0) +{ +return x_268; } -if (lean_is_scalar(x_686)) { - x_687 = lean_alloc_ctor(1, 2, 0); -} else { - x_687 = x_686; +else +{ +lean_object* x_335; lean_object* x_336; lean_object* x_337; +x_335 = lean_ctor_get(x_268, 0); +x_336 = lean_ctor_get(x_268, 1); +lean_inc(x_336); +lean_inc(x_335); +lean_dec(x_268); +x_337 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_337, 0, x_335); +lean_ctor_set(x_337, 1, x_336); +return x_337; } -lean_ctor_set(x_687, 0, x_684); -lean_ctor_set(x_687, 1, x_685); -return x_687; } } else { -lean_object* x_688; lean_object* x_689; lean_object* x_690; lean_object* x_691; -lean_dec(x_600); -lean_dec(x_400); +uint8_t x_338; +lean_dec(x_241); lean_dec(x_7); +lean_dec(x_8); +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_688 = lean_ctor_get(x_601, 1); -lean_inc(x_688); -if (lean_is_exclusive(x_601)) { - lean_ctor_release(x_601, 0); - lean_ctor_release(x_601, 1); - x_689 = x_601; -} else { - lean_dec_ref(x_601); - x_689 = lean_box(0); +x_338 = !lean_is_exclusive(x_242); +if (x_338 == 0) +{ +lean_object* x_339; lean_object* x_340; +x_339 = lean_ctor_get(x_242, 0); +lean_dec(x_339); +x_340 = lean_ctor_get(x_243, 0); +lean_inc(x_340); +lean_dec(x_243); +lean_ctor_set(x_242, 0, x_340); +return x_242; } -x_690 = lean_ctor_get(x_602, 0); -lean_inc(x_690); -lean_dec(x_602); -if (lean_is_scalar(x_689)) { - x_691 = lean_alloc_ctor(0, 2, 0); -} else { - x_691 = x_689; +else +{ +lean_object* x_341; lean_object* x_342; lean_object* x_343; +x_341 = lean_ctor_get(x_242, 1); +lean_inc(x_341); +lean_dec(x_242); +x_342 = lean_ctor_get(x_243, 0); +lean_inc(x_342); +lean_dec(x_243); +x_343 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_343, 0, x_342); +lean_ctor_set(x_343, 1, x_341); +return x_343; } -lean_ctor_set(x_691, 0, x_690); -lean_ctor_set(x_691, 1, x_688); -return x_691; } } else { -lean_object* x_692; lean_object* x_693; lean_object* x_694; lean_object* x_695; -lean_dec(x_600); -lean_dec(x_400); +uint8_t x_344; +lean_dec(x_241); lean_dec(x_7); +lean_dec(x_8); +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_692 = lean_ctor_get(x_601, 0); -lean_inc(x_692); -x_693 = lean_ctor_get(x_601, 1); -lean_inc(x_693); -if (lean_is_exclusive(x_601)) { - lean_ctor_release(x_601, 0); - lean_ctor_release(x_601, 1); - x_694 = x_601; -} else { - lean_dec_ref(x_601); - x_694 = lean_box(0); +x_344 = !lean_is_exclusive(x_242); +if (x_344 == 0) +{ +return x_242; } -if (lean_is_scalar(x_694)) { - x_695 = lean_alloc_ctor(1, 2, 0); -} else { - x_695 = x_694; +else +{ +lean_object* x_345; lean_object* x_346; lean_object* x_347; +x_345 = lean_ctor_get(x_242, 0); +x_346 = lean_ctor_get(x_242, 1); +lean_inc(x_346); +lean_inc(x_345); +lean_dec(x_242); +x_347 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_347, 0, x_345); +lean_ctor_set(x_347, 1, x_346); +return x_347; } -lean_ctor_set(x_695, 0, x_692); -lean_ctor_set(x_695, 1, x_693); -return x_695; } } case 5: { -lean_object* x_696; lean_object* x_697; lean_object* x_698; lean_object* x_699; lean_object* x_700; lean_object* x_701; lean_object* x_702; lean_object* x_703; uint8_t x_704; lean_object* x_705; lean_object* x_706; lean_object* x_707; lean_object* x_708; uint8_t x_709; -x_696 = lean_ctor_get(x_401, 1); -lean_inc(x_696); -lean_dec(x_401); -x_697 = lean_ctor_get(x_1, 0); -lean_inc(x_697); -x_698 = lean_st_ref_get(x_7, x_696); -x_699 = lean_ctor_get(x_698, 1); -lean_inc(x_699); -lean_dec(x_698); -x_700 = lean_st_ref_get(x_3, x_699); -x_701 = lean_ctor_get(x_700, 0); -lean_inc(x_701); -x_702 = lean_ctor_get(x_700, 1); -lean_inc(x_702); -lean_dec(x_700); -x_703 = lean_ctor_get(x_701, 0); -lean_inc(x_703); -lean_dec(x_701); -x_704 = 0; -lean_inc(x_697); -x_705 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_703, x_697, x_704); -lean_inc(x_705); -x_706 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_705, x_2, x_3, x_4, x_5, x_400, x_7, x_702); +lean_object* x_348; lean_object* x_349; lean_object* x_350; lean_object* x_351; lean_object* x_352; lean_object* x_353; lean_object* x_354; lean_object* x_355; uint8_t x_356; lean_object* x_357; lean_object* x_358; uint8_t x_359; +x_348 = lean_ctor_get(x_36, 1); +lean_inc(x_348); +lean_dec(x_36); +x_349 = lean_ctor_get(x_1, 0); +lean_inc(x_349); +x_350 = lean_st_ref_get(x_8, x_348); +x_351 = lean_ctor_get(x_350, 1); +lean_inc(x_351); +lean_dec(x_350); +x_352 = lean_st_ref_get(x_3, x_351); +x_353 = lean_ctor_get(x_352, 0); +lean_inc(x_353); +x_354 = lean_ctor_get(x_352, 1); +lean_inc(x_354); +lean_dec(x_352); +x_355 = lean_ctor_get(x_353, 0); +lean_inc(x_355); +lean_dec(x_353); +x_356 = 0; +lean_inc(x_349); +x_357 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_355, x_349, x_356); +lean_inc(x_357); +x_358 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_357, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_354); +lean_dec(x_8); lean_dec(x_7); -lean_dec(x_400); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_707 = lean_ctor_get(x_706, 1); -lean_inc(x_707); -if (lean_is_exclusive(x_706)) { - lean_ctor_release(x_706, 0); - lean_ctor_release(x_706, 1); - x_708 = x_706; -} else { - lean_dec_ref(x_706); - x_708 = lean_box(0); -} -x_709 = lean_name_eq(x_697, x_705); -lean_dec(x_697); -if (x_709 == 0) +x_359 = !lean_is_exclusive(x_358); +if (x_359 == 0) { -lean_object* x_710; lean_object* x_711; lean_object* x_712; -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - x_710 = x_1; -} else { - lean_dec_ref(x_1); - x_710 = lean_box(0); -} -if (lean_is_scalar(x_710)) { - x_711 = lean_alloc_ctor(5, 1, 0); -} else { - x_711 = x_710; -} -lean_ctor_set(x_711, 0, x_705); -if (lean_is_scalar(x_708)) { - x_712 = lean_alloc_ctor(0, 2, 0); -} else { - x_712 = x_708; -} -lean_ctor_set(x_712, 0, x_711); -lean_ctor_set(x_712, 1, x_707); -return x_712; +lean_object* x_360; uint8_t x_361; +x_360 = lean_ctor_get(x_358, 0); +lean_dec(x_360); +x_361 = lean_name_eq(x_349, x_357); +lean_dec(x_349); +if (x_361 == 0) +{ +uint8_t x_362; +x_362 = !lean_is_exclusive(x_1); +if (x_362 == 0) +{ +lean_object* x_363; +x_363 = lean_ctor_get(x_1, 0); +lean_dec(x_363); +lean_ctor_set(x_1, 0, x_357); +lean_ctor_set(x_358, 0, x_1); +return x_358; } else { -lean_object* x_713; -lean_dec(x_705); -if (lean_is_scalar(x_708)) { - x_713 = lean_alloc_ctor(0, 2, 0); -} else { - x_713 = x_708; +lean_object* x_364; +lean_dec(x_1); +x_364 = lean_alloc_ctor(5, 1, 0); +lean_ctor_set(x_364, 0, x_357); +lean_ctor_set(x_358, 0, x_364); +return x_358; +} +} +else +{ +lean_dec(x_357); +lean_ctor_set(x_358, 0, x_1); +return x_358; +} +} +else +{ +lean_object* x_365; uint8_t x_366; +x_365 = lean_ctor_get(x_358, 1); +lean_inc(x_365); +lean_dec(x_358); +x_366 = lean_name_eq(x_349, x_357); +lean_dec(x_349); +if (x_366 == 0) +{ +lean_object* x_367; lean_object* x_368; lean_object* x_369; +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_367 = x_1; +} else { + lean_dec_ref(x_1); + x_367 = lean_box(0); +} +if (lean_is_scalar(x_367)) { + x_368 = lean_alloc_ctor(5, 1, 0); +} else { + x_368 = x_367; +} +lean_ctor_set(x_368, 0, x_357); +x_369 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_369, 0, x_368); +lean_ctor_set(x_369, 1, x_365); +return x_369; +} +else +{ +lean_object* x_370; +lean_dec(x_357); +x_370 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_370, 0, x_1); +lean_ctor_set(x_370, 1, x_365); +return x_370; } -lean_ctor_set(x_713, 0, x_1); -lean_ctor_set(x_713, 1, x_707); -return x_713; } } default: { -lean_object* x_714; lean_object* x_715; lean_object* x_716; lean_object* x_717; lean_object* x_718; lean_object* x_719; lean_object* x_720; lean_object* x_721; lean_object* x_722; uint8_t x_723; lean_object* x_724; size_t x_725; size_t x_726; uint8_t x_727; -lean_dec(x_400); +lean_object* x_371; lean_object* x_372; lean_object* x_373; lean_object* x_374; lean_object* x_375; uint8_t x_376; +lean_dec(x_7); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); -x_714 = lean_ctor_get(x_401, 1); -lean_inc(x_714); -lean_dec(x_401); -x_715 = lean_ctor_get(x_1, 0); -lean_inc(x_715); -x_716 = lean_st_ref_get(x_7, x_714); -lean_dec(x_7); -x_717 = lean_ctor_get(x_716, 1); -lean_inc(x_717); -lean_dec(x_716); -x_718 = lean_st_ref_get(x_3, x_717); +x_371 = lean_ctor_get(x_36, 1); +lean_inc(x_371); +lean_dec(x_36); +x_372 = lean_ctor_get(x_1, 0); +lean_inc(x_372); +x_373 = lean_st_ref_get(x_8, x_371); +lean_dec(x_8); +x_374 = lean_ctor_get(x_373, 1); +lean_inc(x_374); +lean_dec(x_373); +x_375 = lean_st_ref_get(x_3, x_374); lean_dec(x_3); -x_719 = lean_ctor_get(x_718, 0); -lean_inc(x_719); -x_720 = lean_ctor_get(x_718, 1); -lean_inc(x_720); -if (lean_is_exclusive(x_718)) { - lean_ctor_release(x_718, 0); - lean_ctor_release(x_718, 1); - x_721 = x_718; -} else { - lean_dec_ref(x_718); - x_721 = lean_box(0); -} -x_722 = lean_ctor_get(x_719, 0); -lean_inc(x_722); -lean_dec(x_719); -x_723 = 0; -lean_inc(x_715); -x_724 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_722, x_723, x_715); -x_725 = lean_ptr_addr(x_715); -lean_dec(x_715); -x_726 = lean_ptr_addr(x_724); -x_727 = lean_usize_dec_eq(x_725, x_726); -if (x_727 == 0) +x_376 = !lean_is_exclusive(x_375); +if (x_376 == 0) { -lean_object* x_728; lean_object* x_729; lean_object* x_730; -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - x_728 = x_1; -} else { - lean_dec_ref(x_1); - x_728 = lean_box(0); -} -if (lean_is_scalar(x_728)) { - x_729 = lean_alloc_ctor(6, 1, 0); -} else { - x_729 = x_728; -} -lean_ctor_set(x_729, 0, x_724); -if (lean_is_scalar(x_721)) { - x_730 = lean_alloc_ctor(0, 2, 0); -} else { - x_730 = x_721; -} -lean_ctor_set(x_730, 0, x_729); -lean_ctor_set(x_730, 1, x_720); -return x_730; +lean_object* x_377; lean_object* x_378; uint8_t x_379; lean_object* x_380; size_t x_381; size_t x_382; uint8_t x_383; +x_377 = lean_ctor_get(x_375, 0); +x_378 = lean_ctor_get(x_377, 0); +lean_inc(x_378); +lean_dec(x_377); +x_379 = 0; +lean_inc(x_372); +x_380 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_378, x_379, x_372); +x_381 = lean_ptr_addr(x_372); +lean_dec(x_372); +x_382 = lean_ptr_addr(x_380); +x_383 = lean_usize_dec_eq(x_381, x_382); +if (x_383 == 0) +{ +uint8_t x_384; +x_384 = !lean_is_exclusive(x_1); +if (x_384 == 0) +{ +lean_object* x_385; +x_385 = lean_ctor_get(x_1, 0); +lean_dec(x_385); +lean_ctor_set(x_1, 0, x_380); +lean_ctor_set(x_375, 0, x_1); +return x_375; } else { -lean_object* x_731; -lean_dec(x_724); -if (lean_is_scalar(x_721)) { +lean_object* x_386; +lean_dec(x_1); +x_386 = lean_alloc_ctor(6, 1, 0); +lean_ctor_set(x_386, 0, x_380); +lean_ctor_set(x_375, 0, x_386); +return x_375; +} +} +else +{ +lean_dec(x_380); +lean_ctor_set(x_375, 0, x_1); +return x_375; +} +} +else +{ +lean_object* x_387; lean_object* x_388; lean_object* x_389; uint8_t x_390; lean_object* x_391; size_t x_392; size_t x_393; uint8_t x_394; +x_387 = lean_ctor_get(x_375, 0); +x_388 = lean_ctor_get(x_375, 1); +lean_inc(x_388); +lean_inc(x_387); +lean_dec(x_375); +x_389 = lean_ctor_get(x_387, 0); +lean_inc(x_389); +lean_dec(x_387); +x_390 = 0; +lean_inc(x_372); +x_391 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_389, x_390, x_372); +x_392 = lean_ptr_addr(x_372); +lean_dec(x_372); +x_393 = lean_ptr_addr(x_391); +x_394 = lean_usize_dec_eq(x_392, x_393); +if (x_394 == 0) +{ +lean_object* x_395; lean_object* x_396; lean_object* x_397; +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_395 = x_1; +} else { + lean_dec_ref(x_1); + x_395 = lean_box(0); +} +if (lean_is_scalar(x_395)) { + x_396 = lean_alloc_ctor(6, 1, 0); +} else { + x_396 = x_395; +} +lean_ctor_set(x_396, 0, x_391); +x_397 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_397, 0, x_396); +lean_ctor_set(x_397, 1, x_388); +return x_397; +} +else +{ +lean_object* x_398; +lean_dec(x_391); +x_398 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_398, 0, x_1); +lean_ctor_set(x_398, 1, x_388); +return x_398; +} +} +} +} +} +else +{ +lean_object* x_399; lean_object* x_400; lean_object* x_401; lean_object* x_402; +lean_dec(x_7); +x_399 = lean_unsigned_to_nat(1u); +x_400 = lean_nat_add(x_13, x_399); +lean_dec(x_13); +x_401 = lean_alloc_ctor(0, 11, 0); +lean_ctor_set(x_401, 0, x_10); +lean_ctor_set(x_401, 1, x_11); +lean_ctor_set(x_401, 2, x_12); +lean_ctor_set(x_401, 3, x_400); +lean_ctor_set(x_401, 4, x_14); +lean_ctor_set(x_401, 5, x_15); +lean_ctor_set(x_401, 6, x_16); +lean_ctor_set(x_401, 7, x_17); +lean_ctor_set(x_401, 8, x_18); +lean_ctor_set(x_401, 9, x_19); +lean_ctor_set(x_401, 10, x_20); +x_402 = l_Lean_Compiler_LCNF_Simp_incVisited___rarg(x_3, x_4, x_5, x_6, x_401, x_8, x_9); +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_403; lean_object* x_404; lean_object* x_405; uint8_t x_406; lean_object* x_407; lean_object* x_408; lean_object* x_409; lean_object* x_410; lean_object* x_411; +x_403 = lean_ctor_get(x_402, 1); +lean_inc(x_403); +lean_dec(x_402); +x_404 = lean_ctor_get(x_1, 0); +lean_inc(x_404); +x_405 = lean_ctor_get(x_1, 1); +lean_inc(x_405); +x_406 = 0; +lean_inc(x_404); +x_407 = l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___spec__1(x_406, x_404, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_403); +x_408 = lean_ctor_get(x_407, 0); +lean_inc(x_408); +x_409 = lean_ctor_get(x_407, 1); +lean_inc(x_409); +lean_dec(x_407); +x_410 = lean_ctor_get(x_408, 3); +lean_inc(x_410); +lean_inc(x_8); +lean_inc(x_401); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +x_411 = l_Lean_Compiler_LCNF_Simp_simpValue_x3f(x_410, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_409); +if (lean_obj_tag(x_411) == 0) +{ +lean_object* x_412; +x_412 = lean_ctor_get(x_411, 0); +lean_inc(x_412); +if (lean_obj_tag(x_412) == 0) +{ +lean_object* x_413; lean_object* x_414; lean_object* x_415; +x_413 = lean_ctor_get(x_411, 1); +lean_inc(x_413); +lean_dec(x_411); +x_414 = lean_box(0); +x_415 = l_Lean_Compiler_LCNF_Simp_simp___lambda__1(x_405, x_404, x_1, x_408, x_414, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_413); +return x_415; +} +else +{ +lean_object* x_416; lean_object* x_417; lean_object* x_418; lean_object* x_419; lean_object* x_420; lean_object* x_421; lean_object* x_422; +x_416 = lean_ctor_get(x_411, 1); +lean_inc(x_416); +lean_dec(x_411); +x_417 = lean_ctor_get(x_412, 0); +lean_inc(x_417); +lean_dec(x_412); +x_418 = l_Lean_Compiler_LCNF_LetDecl_updateValue(x_408, x_417, x_5, x_6, x_401, x_8, x_416); +x_419 = lean_ctor_get(x_418, 0); +lean_inc(x_419); +x_420 = lean_ctor_get(x_418, 1); +lean_inc(x_420); +lean_dec(x_418); +x_421 = lean_box(0); +x_422 = l_Lean_Compiler_LCNF_Simp_simp___lambda__1(x_405, x_404, x_1, x_419, x_421, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_420); +return x_422; +} +} +else +{ +lean_object* x_423; lean_object* x_424; lean_object* x_425; lean_object* x_426; +lean_dec(x_408); +lean_dec(x_405); +lean_dec(x_404); +lean_dec(x_401); +lean_dec(x_8); +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_423 = lean_ctor_get(x_411, 0); +lean_inc(x_423); +x_424 = lean_ctor_get(x_411, 1); +lean_inc(x_424); +if (lean_is_exclusive(x_411)) { + lean_ctor_release(x_411, 0); + lean_ctor_release(x_411, 1); + x_425 = x_411; +} else { + lean_dec_ref(x_411); + x_425 = lean_box(0); +} +if (lean_is_scalar(x_425)) { + x_426 = lean_alloc_ctor(1, 2, 0); +} else { + x_426 = x_425; +} +lean_ctor_set(x_426, 0, x_423); +lean_ctor_set(x_426, 1, x_424); +return x_426; +} +} +case 1: +{ +lean_object* x_427; lean_object* x_428; lean_object* x_429; lean_object* x_430; lean_object* x_431; lean_object* x_432; uint8_t x_433; +x_427 = lean_ctor_get(x_402, 1); +lean_inc(x_427); +lean_dec(x_402); +x_428 = lean_ctor_get(x_1, 0); +lean_inc(x_428); +x_429 = lean_ctor_get(x_1, 1); +lean_inc(x_429); +x_430 = lean_ctor_get(x_428, 0); +lean_inc(x_430); +x_431 = l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(x_430, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_427); +x_432 = lean_ctor_get(x_431, 0); +lean_inc(x_432); +x_433 = lean_unbox(x_432); +if (x_433 == 0) +{ +lean_object* x_434; lean_object* x_435; uint8_t x_436; +x_434 = lean_ctor_get(x_431, 1); +lean_inc(x_434); +lean_dec(x_431); +lean_inc(x_1); +lean_inc(x_428); +x_435 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__3___boxed), 14, 4); +lean_closure_set(x_435, 0, x_429); +lean_closure_set(x_435, 1, x_428); +lean_closure_set(x_435, 2, x_1); +lean_closure_set(x_435, 3, x_432); +x_436 = l_Lean_Compiler_LCNF_Code_isFun(x_1); +lean_dec(x_1); +if (x_436 == 0) +{ +lean_object* x_437; lean_object* x_438; +x_437 = lean_box(0); +x_438 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_435, x_428, x_437, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_434); +return x_438; +} +else +{ +lean_object* x_439; lean_object* x_440; uint8_t x_441; +x_439 = lean_ctor_get(x_428, 3); +lean_inc(x_439); +x_440 = lean_ctor_get(x_428, 2); +lean_inc(x_440); +x_441 = l_Lean_Compiler_LCNF_isEtaExpandCandidateCore(x_439, x_440); +lean_dec(x_440); +if (x_441 == 0) +{ +lean_object* x_442; lean_object* x_443; +x_442 = lean_box(0); +x_443 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_435, x_428, x_442, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_434); +return x_443; +} +else +{ +lean_object* x_444; lean_object* x_445; lean_object* x_446; lean_object* x_447; lean_object* x_448; lean_object* x_449; uint8_t x_450; lean_object* x_451; +x_444 = lean_st_ref_get(x_8, x_434); +x_445 = lean_ctor_get(x_444, 1); +lean_inc(x_445); +lean_dec(x_444); +x_446 = lean_st_ref_get(x_3, x_445); +x_447 = lean_ctor_get(x_446, 0); +lean_inc(x_447); +x_448 = lean_ctor_get(x_446, 1); +lean_inc(x_448); +lean_dec(x_446); +x_449 = lean_ctor_get(x_447, 0); +lean_inc(x_449); +lean_dec(x_447); +x_450 = 0; +lean_inc(x_8); +lean_inc(x_401); +lean_inc(x_6); +lean_inc(x_5); +x_451 = l_Lean_Compiler_LCNF_normFunDeclImp(x_450, x_428, x_449, x_5, x_6, x_401, x_8, x_448); +if (lean_obj_tag(x_451) == 0) +{ +lean_object* x_452; lean_object* x_453; lean_object* x_454; +x_452 = lean_ctor_get(x_451, 0); +lean_inc(x_452); +x_453 = lean_ctor_get(x_451, 1); +lean_inc(x_453); +lean_dec(x_451); +lean_inc(x_8); +lean_inc(x_401); +lean_inc(x_6); +lean_inc(x_5); +x_454 = l_Lean_Compiler_LCNF_FunDeclCore_etaExpand(x_452, x_5, x_6, x_401, x_8, x_453); +if (lean_obj_tag(x_454) == 0) +{ +lean_object* x_455; lean_object* x_456; lean_object* x_457; lean_object* x_458; lean_object* x_459; lean_object* x_460; +x_455 = lean_ctor_get(x_454, 0); +lean_inc(x_455); +x_456 = lean_ctor_get(x_454, 1); +lean_inc(x_456); +lean_dec(x_454); +x_457 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_401, x_8, x_456); +x_458 = lean_ctor_get(x_457, 0); +lean_inc(x_458); +x_459 = lean_ctor_get(x_457, 1); +lean_inc(x_459); +lean_dec(x_457); +x_460 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_435, x_455, x_458, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_459); +lean_dec(x_458); +return x_460; +} +else +{ +lean_object* x_461; lean_object* x_462; lean_object* x_463; lean_object* x_464; +lean_dec(x_435); +lean_dec(x_401); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_461 = lean_ctor_get(x_454, 0); +lean_inc(x_461); +x_462 = lean_ctor_get(x_454, 1); +lean_inc(x_462); +if (lean_is_exclusive(x_454)) { + lean_ctor_release(x_454, 0); + lean_ctor_release(x_454, 1); + x_463 = x_454; +} else { + lean_dec_ref(x_454); + x_463 = lean_box(0); +} +if (lean_is_scalar(x_463)) { + x_464 = lean_alloc_ctor(1, 2, 0); +} else { + x_464 = x_463; +} +lean_ctor_set(x_464, 0, x_461); +lean_ctor_set(x_464, 1, x_462); +return x_464; +} +} +else +{ +lean_object* x_465; lean_object* x_466; lean_object* x_467; lean_object* x_468; +lean_dec(x_435); +lean_dec(x_401); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_465 = lean_ctor_get(x_451, 0); +lean_inc(x_465); +x_466 = lean_ctor_get(x_451, 1); +lean_inc(x_466); +if (lean_is_exclusive(x_451)) { + lean_ctor_release(x_451, 0); + lean_ctor_release(x_451, 1); + x_467 = x_451; +} else { + lean_dec_ref(x_451); + x_467 = lean_box(0); +} +if (lean_is_scalar(x_467)) { + x_468 = lean_alloc_ctor(1, 2, 0); +} else { + x_468 = x_467; +} +lean_ctor_set(x_468, 0, x_465); +lean_ctor_set(x_468, 1, x_466); +return x_468; +} +} +} +} +else +{ +lean_object* x_469; lean_object* x_470; lean_object* x_471; lean_object* x_472; lean_object* x_473; lean_object* x_474; lean_object* x_475; uint8_t x_476; lean_object* x_477; +x_469 = lean_ctor_get(x_431, 1); +lean_inc(x_469); +lean_dec(x_431); +x_470 = lean_st_ref_get(x_8, x_469); +x_471 = lean_ctor_get(x_470, 1); +lean_inc(x_471); +lean_dec(x_470); +x_472 = lean_st_ref_get(x_3, x_471); +x_473 = lean_ctor_get(x_472, 0); +lean_inc(x_473); +x_474 = lean_ctor_get(x_472, 1); +lean_inc(x_474); +lean_dec(x_472); +x_475 = lean_ctor_get(x_473, 0); +lean_inc(x_475); +lean_dec(x_473); +x_476 = 0; +lean_inc(x_8); +lean_inc(x_401); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_428); +x_477 = l_Lean_Compiler_LCNF_normFunDeclImp(x_476, x_428, x_475, x_5, x_6, x_401, x_8, x_474); +if (lean_obj_tag(x_477) == 0) +{ +lean_object* x_478; lean_object* x_479; lean_object* x_480; uint8_t x_481; lean_object* x_482; +x_478 = lean_ctor_get(x_477, 0); +lean_inc(x_478); +x_479 = lean_ctor_get(x_477, 1); +lean_inc(x_479); +lean_dec(x_477); +x_480 = lean_box(0); +x_481 = lean_unbox(x_432); +lean_dec(x_432); +x_482 = l_Lean_Compiler_LCNF_Simp_simp___lambda__3(x_429, x_428, x_1, x_481, x_478, x_480, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_479); +return x_482; +} +else +{ +lean_object* x_483; lean_object* x_484; lean_object* x_485; lean_object* x_486; +lean_dec(x_432); +lean_dec(x_429); +lean_dec(x_428); +lean_dec(x_401); +lean_dec(x_8); +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_483 = lean_ctor_get(x_477, 0); +lean_inc(x_483); +x_484 = lean_ctor_get(x_477, 1); +lean_inc(x_484); +if (lean_is_exclusive(x_477)) { + lean_ctor_release(x_477, 0); + lean_ctor_release(x_477, 1); + x_485 = x_477; +} else { + lean_dec_ref(x_477); + x_485 = lean_box(0); +} +if (lean_is_scalar(x_485)) { + x_486 = lean_alloc_ctor(1, 2, 0); +} else { + x_486 = x_485; +} +lean_ctor_set(x_486, 0, x_483); +lean_ctor_set(x_486, 1, x_484); +return x_486; +} +} +} +case 2: +{ +lean_object* x_487; lean_object* x_488; lean_object* x_489; lean_object* x_490; lean_object* x_491; lean_object* x_492; uint8_t x_493; +x_487 = lean_ctor_get(x_402, 1); +lean_inc(x_487); +lean_dec(x_402); +x_488 = lean_ctor_get(x_1, 0); +lean_inc(x_488); +x_489 = lean_ctor_get(x_1, 1); +lean_inc(x_489); +x_490 = lean_ctor_get(x_488, 0); +lean_inc(x_490); +x_491 = l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(x_490, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_487); +x_492 = lean_ctor_get(x_491, 0); +lean_inc(x_492); +x_493 = lean_unbox(x_492); +if (x_493 == 0) +{ +lean_object* x_494; lean_object* x_495; uint8_t x_496; +x_494 = lean_ctor_get(x_491, 1); +lean_inc(x_494); +lean_dec(x_491); +lean_inc(x_1); +lean_inc(x_488); +x_495 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__6___boxed), 14, 4); +lean_closure_set(x_495, 0, x_489); +lean_closure_set(x_495, 1, x_488); +lean_closure_set(x_495, 2, x_1); +lean_closure_set(x_495, 3, x_492); +x_496 = l_Lean_Compiler_LCNF_Code_isFun(x_1); +lean_dec(x_1); +if (x_496 == 0) +{ +lean_object* x_497; lean_object* x_498; +x_497 = lean_box(0); +x_498 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_495, x_488, x_497, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_494); +return x_498; +} +else +{ +lean_object* x_499; lean_object* x_500; uint8_t x_501; +x_499 = lean_ctor_get(x_488, 3); +lean_inc(x_499); +x_500 = lean_ctor_get(x_488, 2); +lean_inc(x_500); +x_501 = l_Lean_Compiler_LCNF_isEtaExpandCandidateCore(x_499, x_500); +lean_dec(x_500); +if (x_501 == 0) +{ +lean_object* x_502; lean_object* x_503; +x_502 = lean_box(0); +x_503 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_495, x_488, x_502, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_494); +return x_503; +} +else +{ +lean_object* x_504; lean_object* x_505; lean_object* x_506; lean_object* x_507; lean_object* x_508; lean_object* x_509; uint8_t x_510; lean_object* x_511; +x_504 = lean_st_ref_get(x_8, x_494); +x_505 = lean_ctor_get(x_504, 1); +lean_inc(x_505); +lean_dec(x_504); +x_506 = lean_st_ref_get(x_3, x_505); +x_507 = lean_ctor_get(x_506, 0); +lean_inc(x_507); +x_508 = lean_ctor_get(x_506, 1); +lean_inc(x_508); +lean_dec(x_506); +x_509 = lean_ctor_get(x_507, 0); +lean_inc(x_509); +lean_dec(x_507); +x_510 = 0; +lean_inc(x_8); +lean_inc(x_401); +lean_inc(x_6); +lean_inc(x_5); +x_511 = l_Lean_Compiler_LCNF_normFunDeclImp(x_510, x_488, x_509, x_5, x_6, x_401, x_8, x_508); +if (lean_obj_tag(x_511) == 0) +{ +lean_object* x_512; lean_object* x_513; lean_object* x_514; +x_512 = lean_ctor_get(x_511, 0); +lean_inc(x_512); +x_513 = lean_ctor_get(x_511, 1); +lean_inc(x_513); +lean_dec(x_511); +lean_inc(x_8); +lean_inc(x_401); +lean_inc(x_6); +lean_inc(x_5); +x_514 = l_Lean_Compiler_LCNF_FunDeclCore_etaExpand(x_512, x_5, x_6, x_401, x_8, x_513); +if (lean_obj_tag(x_514) == 0) +{ +lean_object* x_515; lean_object* x_516; lean_object* x_517; lean_object* x_518; lean_object* x_519; lean_object* x_520; +x_515 = lean_ctor_get(x_514, 0); +lean_inc(x_515); +x_516 = lean_ctor_get(x_514, 1); +lean_inc(x_516); +lean_dec(x_514); +x_517 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_401, x_8, x_516); +x_518 = lean_ctor_get(x_517, 0); +lean_inc(x_518); +x_519 = lean_ctor_get(x_517, 1); +lean_inc(x_519); +lean_dec(x_517); +x_520 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_495, x_515, x_518, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_519); +lean_dec(x_518); +return x_520; +} +else +{ +lean_object* x_521; lean_object* x_522; lean_object* x_523; lean_object* x_524; +lean_dec(x_495); +lean_dec(x_401); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_521 = lean_ctor_get(x_514, 0); +lean_inc(x_521); +x_522 = lean_ctor_get(x_514, 1); +lean_inc(x_522); +if (lean_is_exclusive(x_514)) { + lean_ctor_release(x_514, 0); + lean_ctor_release(x_514, 1); + x_523 = x_514; +} else { + lean_dec_ref(x_514); + x_523 = lean_box(0); +} +if (lean_is_scalar(x_523)) { + x_524 = lean_alloc_ctor(1, 2, 0); +} else { + x_524 = x_523; +} +lean_ctor_set(x_524, 0, x_521); +lean_ctor_set(x_524, 1, x_522); +return x_524; +} +} +else +{ +lean_object* x_525; lean_object* x_526; lean_object* x_527; lean_object* x_528; +lean_dec(x_495); +lean_dec(x_401); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_525 = lean_ctor_get(x_511, 0); +lean_inc(x_525); +x_526 = lean_ctor_get(x_511, 1); +lean_inc(x_526); +if (lean_is_exclusive(x_511)) { + lean_ctor_release(x_511, 0); + lean_ctor_release(x_511, 1); + x_527 = x_511; +} else { + lean_dec_ref(x_511); + x_527 = lean_box(0); +} +if (lean_is_scalar(x_527)) { + x_528 = lean_alloc_ctor(1, 2, 0); +} else { + x_528 = x_527; +} +lean_ctor_set(x_528, 0, x_525); +lean_ctor_set(x_528, 1, x_526); +return x_528; +} +} +} +} +else +{ +lean_object* x_529; lean_object* x_530; lean_object* x_531; lean_object* x_532; lean_object* x_533; lean_object* x_534; lean_object* x_535; uint8_t x_536; lean_object* x_537; +x_529 = lean_ctor_get(x_491, 1); +lean_inc(x_529); +lean_dec(x_491); +x_530 = lean_st_ref_get(x_8, x_529); +x_531 = lean_ctor_get(x_530, 1); +lean_inc(x_531); +lean_dec(x_530); +x_532 = lean_st_ref_get(x_3, x_531); +x_533 = lean_ctor_get(x_532, 0); +lean_inc(x_533); +x_534 = lean_ctor_get(x_532, 1); +lean_inc(x_534); +lean_dec(x_532); +x_535 = lean_ctor_get(x_533, 0); +lean_inc(x_535); +lean_dec(x_533); +x_536 = 0; +lean_inc(x_8); +lean_inc(x_401); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_488); +x_537 = l_Lean_Compiler_LCNF_normFunDeclImp(x_536, x_488, x_535, x_5, x_6, x_401, x_8, x_534); +if (lean_obj_tag(x_537) == 0) +{ +lean_object* x_538; lean_object* x_539; lean_object* x_540; uint8_t x_541; lean_object* x_542; +x_538 = lean_ctor_get(x_537, 0); +lean_inc(x_538); +x_539 = lean_ctor_get(x_537, 1); +lean_inc(x_539); +lean_dec(x_537); +x_540 = lean_box(0); +x_541 = lean_unbox(x_492); +lean_dec(x_492); +x_542 = l_Lean_Compiler_LCNF_Simp_simp___lambda__6(x_489, x_488, x_1, x_541, x_538, x_540, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_539); +return x_542; +} +else +{ +lean_object* x_543; lean_object* x_544; lean_object* x_545; lean_object* x_546; +lean_dec(x_492); +lean_dec(x_489); +lean_dec(x_488); +lean_dec(x_401); +lean_dec(x_8); +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_543 = lean_ctor_get(x_537, 0); +lean_inc(x_543); +x_544 = lean_ctor_get(x_537, 1); +lean_inc(x_544); +if (lean_is_exclusive(x_537)) { + lean_ctor_release(x_537, 0); + lean_ctor_release(x_537, 1); + x_545 = x_537; +} else { + lean_dec_ref(x_537); + x_545 = lean_box(0); +} +if (lean_is_scalar(x_545)) { + x_546 = lean_alloc_ctor(1, 2, 0); +} else { + x_546 = x_545; +} +lean_ctor_set(x_546, 0, x_543); +lean_ctor_set(x_546, 1, x_544); +return x_546; +} +} +} +case 3: +{ +lean_object* x_547; lean_object* x_548; lean_object* x_549; lean_object* x_550; lean_object* x_551; lean_object* x_552; lean_object* x_553; lean_object* x_554; lean_object* x_555; uint8_t x_556; lean_object* x_557; lean_object* x_558; +x_547 = lean_ctor_get(x_402, 1); +lean_inc(x_547); +lean_dec(x_402); +x_548 = lean_ctor_get(x_1, 0); +lean_inc(x_548); +x_549 = lean_ctor_get(x_1, 1); +lean_inc(x_549); +x_550 = lean_st_ref_get(x_8, x_547); +x_551 = lean_ctor_get(x_550, 1); +lean_inc(x_551); +lean_dec(x_550); +x_552 = lean_st_ref_get(x_3, x_551); +x_553 = lean_ctor_get(x_552, 0); +lean_inc(x_553); +x_554 = lean_ctor_get(x_552, 1); +lean_inc(x_554); +lean_dec(x_552); +x_555 = lean_ctor_get(x_553, 0); +lean_inc(x_555); +lean_dec(x_553); +x_556 = 0; +lean_inc(x_548); +x_557 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_555, x_548, x_556); +lean_inc(x_8); +lean_inc(x_401); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +lean_inc(x_549); +x_558 = l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__2(x_556, x_549, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_554); +if (lean_obj_tag(x_558) == 0) +{ +lean_object* x_559; lean_object* x_560; lean_object* x_561; lean_object* x_562; lean_object* x_575; +x_559 = lean_ctor_get(x_558, 0); +lean_inc(x_559); +x_560 = lean_ctor_get(x_558, 1); +lean_inc(x_560); +if (lean_is_exclusive(x_558)) { + lean_ctor_release(x_558, 0); + lean_ctor_release(x_558, 1); + x_561 = x_558; +} else { + lean_dec_ref(x_558); + x_561 = lean_box(0); +} +lean_inc(x_8); +lean_inc(x_401); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +lean_inc(x_559); +lean_inc(x_557); +x_575 = l_Lean_Compiler_LCNF_Simp_inlineJp_x3f(x_557, x_559, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_560); +if (lean_obj_tag(x_575) == 0) +{ +lean_object* x_576; +x_576 = lean_ctor_get(x_575, 0); +lean_inc(x_576); +if (lean_obj_tag(x_576) == 0) +{ +lean_object* x_577; lean_object* x_578; lean_object* x_579; lean_object* x_580; lean_object* x_581; uint8_t x_582; +x_577 = lean_ctor_get(x_575, 1); +lean_inc(x_577); +lean_dec(x_575); +lean_inc(x_557); +x_578 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_557, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_577); +x_579 = lean_ctor_get(x_578, 1); +lean_inc(x_579); +lean_dec(x_578); +x_580 = lean_array_get_size(x_559); +x_581 = lean_unsigned_to_nat(0u); +x_582 = lean_nat_dec_lt(x_581, x_580); +if (x_582 == 0) +{ +lean_dec(x_580); +lean_dec(x_401); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_562 = x_579; +goto block_574; +} +else +{ +uint8_t x_583; +x_583 = lean_nat_dec_le(x_580, x_580); +if (x_583 == 0) +{ +lean_dec(x_580); +lean_dec(x_401); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_562 = x_579; +goto block_574; +} +else +{ +size_t x_584; size_t x_585; lean_object* x_586; lean_object* x_587; lean_object* x_588; +x_584 = 0; +x_585 = lean_usize_of_nat(x_580); +lean_dec(x_580); +x_586 = lean_box(0); +x_587 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(x_559, x_584, x_585, x_586, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_579); +lean_dec(x_8); +lean_dec(x_401); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_588 = lean_ctor_get(x_587, 1); +lean_inc(x_588); +lean_dec(x_587); +x_562 = x_588; +goto block_574; +} +} +} +else +{ +lean_object* x_589; lean_object* x_590; +lean_dec(x_561); +lean_dec(x_559); +lean_dec(x_557); +lean_dec(x_549); +lean_dec(x_548); +lean_dec(x_1); +x_589 = lean_ctor_get(x_575, 1); +lean_inc(x_589); +lean_dec(x_575); +x_590 = lean_ctor_get(x_576, 0); +lean_inc(x_590); +lean_dec(x_576); +x_1 = x_590; +x_7 = x_401; +x_9 = x_589; +goto _start; +} +} +else +{ +lean_object* x_592; lean_object* x_593; lean_object* x_594; lean_object* x_595; +lean_dec(x_561); +lean_dec(x_559); +lean_dec(x_557); +lean_dec(x_549); +lean_dec(x_548); +lean_dec(x_401); +lean_dec(x_8); +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_592 = lean_ctor_get(x_575, 0); +lean_inc(x_592); +x_593 = lean_ctor_get(x_575, 1); +lean_inc(x_593); +if (lean_is_exclusive(x_575)) { + lean_ctor_release(x_575, 0); + lean_ctor_release(x_575, 1); + x_594 = x_575; +} else { + lean_dec_ref(x_575); + x_594 = lean_box(0); +} +if (lean_is_scalar(x_594)) { + x_595 = lean_alloc_ctor(1, 2, 0); +} else { + x_595 = x_594; +} +lean_ctor_set(x_595, 0, x_592); +lean_ctor_set(x_595, 1, x_593); +return x_595; +} +block_574: +{ +uint8_t x_563; +x_563 = lean_name_eq(x_548, x_557); +lean_dec(x_548); +if (x_563 == 0) +{ +lean_object* x_564; lean_object* x_565; lean_object* x_566; +lean_dec(x_549); +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + lean_ctor_release(x_1, 1); + x_564 = x_1; +} else { + lean_dec_ref(x_1); + x_564 = lean_box(0); +} +if (lean_is_scalar(x_564)) { + x_565 = lean_alloc_ctor(3, 2, 0); +} else { + x_565 = x_564; +} +lean_ctor_set(x_565, 0, x_557); +lean_ctor_set(x_565, 1, x_559); +if (lean_is_scalar(x_561)) { + x_566 = lean_alloc_ctor(0, 2, 0); +} else { + x_566 = x_561; +} +lean_ctor_set(x_566, 0, x_565); +lean_ctor_set(x_566, 1, x_562); +return x_566; +} +else +{ +size_t x_567; size_t x_568; uint8_t x_569; +x_567 = lean_ptr_addr(x_549); +lean_dec(x_549); +x_568 = lean_ptr_addr(x_559); +x_569 = lean_usize_dec_eq(x_567, x_568); +if (x_569 == 0) +{ +lean_object* x_570; lean_object* x_571; lean_object* x_572; +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + lean_ctor_release(x_1, 1); + x_570 = x_1; +} else { + lean_dec_ref(x_1); + x_570 = lean_box(0); +} +if (lean_is_scalar(x_570)) { + x_571 = lean_alloc_ctor(3, 2, 0); +} else { + x_571 = x_570; +} +lean_ctor_set(x_571, 0, x_557); +lean_ctor_set(x_571, 1, x_559); +if (lean_is_scalar(x_561)) { + x_572 = lean_alloc_ctor(0, 2, 0); +} else { + x_572 = x_561; +} +lean_ctor_set(x_572, 0, x_571); +lean_ctor_set(x_572, 1, x_562); +return x_572; +} +else +{ +lean_object* x_573; +lean_dec(x_559); +lean_dec(x_557); +if (lean_is_scalar(x_561)) { + x_573 = lean_alloc_ctor(0, 2, 0); +} else { + x_573 = x_561; +} +lean_ctor_set(x_573, 0, x_1); +lean_ctor_set(x_573, 1, x_562); +return x_573; +} +} +} +} +else +{ +lean_object* x_596; lean_object* x_597; lean_object* x_598; lean_object* x_599; +lean_dec(x_557); +lean_dec(x_549); +lean_dec(x_548); +lean_dec(x_401); +lean_dec(x_8); +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_596 = lean_ctor_get(x_558, 0); +lean_inc(x_596); +x_597 = lean_ctor_get(x_558, 1); +lean_inc(x_597); +if (lean_is_exclusive(x_558)) { + lean_ctor_release(x_558, 0); + lean_ctor_release(x_558, 1); + x_598 = x_558; +} else { + lean_dec_ref(x_558); + x_598 = lean_box(0); +} +if (lean_is_scalar(x_598)) { + x_599 = lean_alloc_ctor(1, 2, 0); +} else { + x_599 = x_598; +} +lean_ctor_set(x_599, 0, x_596); +lean_ctor_set(x_599, 1, x_597); +return x_599; +} +} +case 4: +{ +lean_object* x_600; lean_object* x_601; lean_object* x_602; +x_600 = lean_ctor_get(x_402, 1); +lean_inc(x_600); +lean_dec(x_402); +x_601 = lean_ctor_get(x_1, 0); +lean_inc(x_601); +lean_inc(x_8); +lean_inc(x_401); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +lean_inc(x_601); +x_602 = l_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f(x_601, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_600); +if (lean_obj_tag(x_602) == 0) +{ +lean_object* x_603; +x_603 = lean_ctor_get(x_602, 0); +lean_inc(x_603); +if (lean_obj_tag(x_603) == 0) +{ +lean_object* x_604; lean_object* x_605; lean_object* x_606; lean_object* x_607; lean_object* x_608; lean_object* x_609; lean_object* x_610; lean_object* x_611; lean_object* x_612; lean_object* x_613; lean_object* x_614; lean_object* x_615; uint8_t x_616; lean_object* x_617; lean_object* x_618; lean_object* x_619; lean_object* x_620; lean_object* x_621; lean_object* x_622; lean_object* x_623; lean_object* x_624; lean_object* x_625; lean_object* x_626; lean_object* x_627; lean_object* x_628; +x_604 = lean_ctor_get(x_602, 1); +lean_inc(x_604); +lean_dec(x_602); +x_605 = lean_ctor_get(x_601, 0); +lean_inc(x_605); +x_606 = lean_ctor_get(x_601, 1); +lean_inc(x_606); +x_607 = lean_ctor_get(x_601, 2); +lean_inc(x_607); +x_608 = lean_ctor_get(x_601, 3); +lean_inc(x_608); +if (lean_is_exclusive(x_601)) { + lean_ctor_release(x_601, 0); + lean_ctor_release(x_601, 1); + lean_ctor_release(x_601, 2); + lean_ctor_release(x_601, 3); + x_609 = x_601; +} else { + lean_dec_ref(x_601); + x_609 = lean_box(0); +} +x_610 = lean_st_ref_get(x_8, x_604); +x_611 = lean_ctor_get(x_610, 1); +lean_inc(x_611); +lean_dec(x_610); +x_612 = lean_st_ref_get(x_3, x_611); +x_613 = lean_ctor_get(x_612, 0); +lean_inc(x_613); +x_614 = lean_ctor_get(x_612, 1); +lean_inc(x_614); +lean_dec(x_612); +x_615 = lean_ctor_get(x_613, 0); +lean_inc(x_615); +lean_dec(x_613); +x_616 = 0; +lean_inc(x_607); +x_617 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_615, x_607, x_616); +x_618 = lean_st_ref_get(x_8, x_614); +x_619 = lean_ctor_get(x_618, 1); +lean_inc(x_619); +lean_dec(x_618); +x_620 = lean_st_ref_get(x_3, x_619); +x_621 = lean_ctor_get(x_620, 0); +lean_inc(x_621); +x_622 = lean_ctor_get(x_620, 1); +lean_inc(x_622); +lean_dec(x_620); +x_623 = lean_ctor_get(x_621, 0); +lean_inc(x_623); +lean_dec(x_621); +lean_inc(x_606); +x_624 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_623, x_616, x_606); +lean_inc(x_617); +x_625 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_617, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_622); +x_626 = lean_ctor_get(x_625, 1); +lean_inc(x_626); +lean_dec(x_625); +lean_inc(x_617); +x_627 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_simp___lambda__8), 10, 1); +lean_closure_set(x_627, 0, x_617); +lean_inc(x_8); +lean_inc(x_401); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +lean_inc(x_608); +x_628 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simp___spec__6(x_608, x_627, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_626); +if (lean_obj_tag(x_628) == 0) +{ +lean_object* x_629; lean_object* x_630; lean_object* x_631; lean_object* x_632; +x_629 = lean_ctor_get(x_628, 0); +lean_inc(x_629); +x_630 = lean_ctor_get(x_628, 1); +lean_inc(x_630); +if (lean_is_exclusive(x_628)) { + lean_ctor_release(x_628, 0); + lean_ctor_release(x_628, 1); + x_631 = x_628; +} else { + lean_dec_ref(x_628); + x_631 = lean_box(0); +} +x_632 = l_Lean_Compiler_LCNF_Simp_addDefaultAlt(x_629, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_630); +if (lean_obj_tag(x_632) == 0) +{ +lean_object* x_633; lean_object* x_634; lean_object* x_635; lean_object* x_636; lean_object* x_658; lean_object* x_659; uint8_t x_670; +x_633 = lean_ctor_get(x_632, 0); +lean_inc(x_633); +x_634 = lean_ctor_get(x_632, 1); +lean_inc(x_634); +if (lean_is_exclusive(x_632)) { + lean_ctor_release(x_632, 0); + lean_ctor_release(x_632, 1); + x_635 = x_632; +} else { + lean_dec_ref(x_632); + x_635 = lean_box(0); +} +x_658 = lean_array_get_size(x_633); +x_670 = lean_nat_dec_eq(x_658, x_399); +if (x_670 == 0) +{ +lean_object* x_671; +lean_dec(x_658); +lean_dec(x_631); +x_671 = lean_box(0); +x_636 = x_671; +goto block_657; +} +else +{ +lean_object* x_672; uint8_t x_673; +x_672 = lean_unsigned_to_nat(0u); +x_673 = lean_nat_dec_lt(x_672, x_658); +if (x_673 == 0) +{ +lean_object* x_674; lean_object* x_675; +x_674 = l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___closed__4; +x_675 = l_panic___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___spec__1(x_674); +if (lean_obj_tag(x_675) == 0) +{ +lean_object* x_676; +lean_dec(x_675); +lean_dec(x_658); +lean_dec(x_631); +x_676 = lean_box(0); +x_636 = x_676; +goto block_657; +} +else +{ +lean_object* x_677; +lean_dec(x_675); +lean_dec(x_635); +lean_dec(x_624); +lean_dec(x_617); +lean_dec(x_609); +lean_dec(x_608); +lean_dec(x_607); +lean_dec(x_606); +lean_dec(x_605); +lean_dec(x_1); +x_677 = lean_box(0); +x_659 = x_677; +goto block_669; +} +} +else +{ +lean_object* x_678; +x_678 = lean_array_fget(x_633, x_672); +if (lean_obj_tag(x_678) == 0) +{ +lean_object* x_679; +lean_dec(x_678); +lean_dec(x_658); +lean_dec(x_631); +x_679 = lean_box(0); +x_636 = x_679; +goto block_657; +} +else +{ +lean_object* x_680; +lean_dec(x_678); +lean_dec(x_635); +lean_dec(x_624); +lean_dec(x_617); +lean_dec(x_609); +lean_dec(x_608); +lean_dec(x_607); +lean_dec(x_606); +lean_dec(x_605); +lean_dec(x_1); +x_680 = lean_box(0); +x_659 = x_680; +goto block_669; +} +} +} +block_657: +{ +size_t x_637; size_t x_638; uint8_t x_639; +lean_dec(x_636); +x_637 = lean_ptr_addr(x_608); +lean_dec(x_608); +x_638 = lean_ptr_addr(x_633); +x_639 = lean_usize_dec_eq(x_637, x_638); +if (x_639 == 0) +{ +lean_object* x_640; lean_object* x_641; lean_object* x_642; lean_object* x_643; +lean_dec(x_607); +lean_dec(x_606); +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_640 = x_1; +} else { + lean_dec_ref(x_1); + x_640 = lean_box(0); +} +if (lean_is_scalar(x_609)) { + x_641 = lean_alloc_ctor(0, 4, 0); +} else { + x_641 = x_609; +} +lean_ctor_set(x_641, 0, x_605); +lean_ctor_set(x_641, 1, x_624); +lean_ctor_set(x_641, 2, x_617); +lean_ctor_set(x_641, 3, x_633); +if (lean_is_scalar(x_640)) { + x_642 = lean_alloc_ctor(4, 1, 0); +} else { + x_642 = x_640; +} +lean_ctor_set(x_642, 0, x_641); +if (lean_is_scalar(x_635)) { + x_643 = lean_alloc_ctor(0, 2, 0); +} else { + x_643 = x_635; +} +lean_ctor_set(x_643, 0, x_642); +lean_ctor_set(x_643, 1, x_634); +return x_643; +} +else +{ +size_t x_644; size_t x_645; uint8_t x_646; +x_644 = lean_ptr_addr(x_606); +lean_dec(x_606); +x_645 = lean_ptr_addr(x_624); +x_646 = lean_usize_dec_eq(x_644, x_645); +if (x_646 == 0) +{ +lean_object* x_647; lean_object* x_648; lean_object* x_649; lean_object* x_650; +lean_dec(x_607); +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_647 = x_1; +} else { + lean_dec_ref(x_1); + x_647 = lean_box(0); +} +if (lean_is_scalar(x_609)) { + x_648 = lean_alloc_ctor(0, 4, 0); +} else { + x_648 = x_609; +} +lean_ctor_set(x_648, 0, x_605); +lean_ctor_set(x_648, 1, x_624); +lean_ctor_set(x_648, 2, x_617); +lean_ctor_set(x_648, 3, x_633); +if (lean_is_scalar(x_647)) { + x_649 = lean_alloc_ctor(4, 1, 0); +} else { + x_649 = x_647; +} +lean_ctor_set(x_649, 0, x_648); +if (lean_is_scalar(x_635)) { + x_650 = lean_alloc_ctor(0, 2, 0); +} else { + x_650 = x_635; +} +lean_ctor_set(x_650, 0, x_649); +lean_ctor_set(x_650, 1, x_634); +return x_650; +} +else +{ +uint8_t x_651; +x_651 = lean_name_eq(x_607, x_617); +lean_dec(x_607); +if (x_651 == 0) +{ +lean_object* x_652; lean_object* x_653; lean_object* x_654; lean_object* x_655; +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_652 = x_1; +} else { + lean_dec_ref(x_1); + x_652 = lean_box(0); +} +if (lean_is_scalar(x_609)) { + x_653 = lean_alloc_ctor(0, 4, 0); +} else { + x_653 = x_609; +} +lean_ctor_set(x_653, 0, x_605); +lean_ctor_set(x_653, 1, x_624); +lean_ctor_set(x_653, 2, x_617); +lean_ctor_set(x_653, 3, x_633); +if (lean_is_scalar(x_652)) { + x_654 = lean_alloc_ctor(4, 1, 0); +} else { + x_654 = x_652; +} +lean_ctor_set(x_654, 0, x_653); +if (lean_is_scalar(x_635)) { + x_655 = lean_alloc_ctor(0, 2, 0); +} else { + x_655 = x_635; +} +lean_ctor_set(x_655, 0, x_654); +lean_ctor_set(x_655, 1, x_634); +return x_655; +} +else +{ +lean_object* x_656; +lean_dec(x_633); +lean_dec(x_624); +lean_dec(x_617); +lean_dec(x_609); +lean_dec(x_605); +if (lean_is_scalar(x_635)) { + x_656 = lean_alloc_ctor(0, 2, 0); +} else { + x_656 = x_635; +} +lean_ctor_set(x_656, 0, x_1); +lean_ctor_set(x_656, 1, x_634); +return x_656; +} +} +} +} +block_669: +{ +lean_object* x_660; uint8_t x_661; +lean_dec(x_659); +x_660 = lean_unsigned_to_nat(0u); +x_661 = lean_nat_dec_lt(x_660, x_658); +lean_dec(x_658); +if (x_661 == 0) +{ +lean_object* x_662; lean_object* x_663; lean_object* x_664; lean_object* x_665; +lean_dec(x_633); +x_662 = l___private_Lean_Compiler_LCNF_Simp_Main_0__Lean_Compiler_LCNF_Simp_oneExitPointQuick_go___closed__4; +x_663 = l_panic___at___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltImp___spec__1(x_662); +x_664 = l_Lean_Compiler_LCNF_AltCore_getCode(x_663); +lean_dec(x_663); +if (lean_is_scalar(x_631)) { + x_665 = lean_alloc_ctor(0, 2, 0); +} else { + x_665 = x_631; +} +lean_ctor_set(x_665, 0, x_664); +lean_ctor_set(x_665, 1, x_634); +return x_665; +} +else +{ +lean_object* x_666; lean_object* x_667; lean_object* x_668; +x_666 = lean_array_fget(x_633, x_660); +lean_dec(x_633); +x_667 = l_Lean_Compiler_LCNF_AltCore_getCode(x_666); +lean_dec(x_666); +if (lean_is_scalar(x_631)) { + x_668 = lean_alloc_ctor(0, 2, 0); +} else { + x_668 = x_631; +} +lean_ctor_set(x_668, 0, x_667); +lean_ctor_set(x_668, 1, x_634); +return x_668; +} +} +} +else +{ +lean_object* x_681; lean_object* x_682; lean_object* x_683; lean_object* x_684; +lean_dec(x_631); +lean_dec(x_624); +lean_dec(x_617); +lean_dec(x_609); +lean_dec(x_608); +lean_dec(x_607); +lean_dec(x_606); +lean_dec(x_605); +lean_dec(x_1); +x_681 = lean_ctor_get(x_632, 0); +lean_inc(x_681); +x_682 = lean_ctor_get(x_632, 1); +lean_inc(x_682); +if (lean_is_exclusive(x_632)) { + lean_ctor_release(x_632, 0); + lean_ctor_release(x_632, 1); + x_683 = x_632; +} else { + lean_dec_ref(x_632); + x_683 = lean_box(0); +} +if (lean_is_scalar(x_683)) { + x_684 = lean_alloc_ctor(1, 2, 0); +} else { + x_684 = x_683; +} +lean_ctor_set(x_684, 0, x_681); +lean_ctor_set(x_684, 1, x_682); +return x_684; +} +} +else +{ +lean_object* x_685; lean_object* x_686; lean_object* x_687; lean_object* x_688; +lean_dec(x_624); +lean_dec(x_617); +lean_dec(x_609); +lean_dec(x_608); +lean_dec(x_607); +lean_dec(x_606); +lean_dec(x_605); +lean_dec(x_401); +lean_dec(x_8); +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_685 = lean_ctor_get(x_628, 0); +lean_inc(x_685); +x_686 = lean_ctor_get(x_628, 1); +lean_inc(x_686); +if (lean_is_exclusive(x_628)) { + lean_ctor_release(x_628, 0); + lean_ctor_release(x_628, 1); + x_687 = x_628; +} else { + lean_dec_ref(x_628); + x_687 = lean_box(0); +} +if (lean_is_scalar(x_687)) { + x_688 = lean_alloc_ctor(1, 2, 0); +} else { + x_688 = x_687; +} +lean_ctor_set(x_688, 0, x_685); +lean_ctor_set(x_688, 1, x_686); +return x_688; +} +} +else +{ +lean_object* x_689; lean_object* x_690; lean_object* x_691; lean_object* x_692; +lean_dec(x_601); +lean_dec(x_401); +lean_dec(x_8); +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_689 = lean_ctor_get(x_602, 1); +lean_inc(x_689); +if (lean_is_exclusive(x_602)) { + lean_ctor_release(x_602, 0); + lean_ctor_release(x_602, 1); + x_690 = x_602; +} else { + lean_dec_ref(x_602); + x_690 = lean_box(0); +} +x_691 = lean_ctor_get(x_603, 0); +lean_inc(x_691); +lean_dec(x_603); +if (lean_is_scalar(x_690)) { + x_692 = lean_alloc_ctor(0, 2, 0); +} else { + x_692 = x_690; +} +lean_ctor_set(x_692, 0, x_691); +lean_ctor_set(x_692, 1, x_689); +return x_692; +} +} +else +{ +lean_object* x_693; lean_object* x_694; lean_object* x_695; lean_object* x_696; +lean_dec(x_601); +lean_dec(x_401); +lean_dec(x_8); +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_693 = lean_ctor_get(x_602, 0); +lean_inc(x_693); +x_694 = lean_ctor_get(x_602, 1); +lean_inc(x_694); +if (lean_is_exclusive(x_602)) { + lean_ctor_release(x_602, 0); + lean_ctor_release(x_602, 1); + x_695 = x_602; +} else { + lean_dec_ref(x_602); + x_695 = lean_box(0); +} +if (lean_is_scalar(x_695)) { + x_696 = lean_alloc_ctor(1, 2, 0); +} else { + x_696 = x_695; +} +lean_ctor_set(x_696, 0, x_693); +lean_ctor_set(x_696, 1, x_694); +return x_696; +} +} +case 5: +{ +lean_object* x_697; lean_object* x_698; lean_object* x_699; lean_object* x_700; lean_object* x_701; lean_object* x_702; lean_object* x_703; lean_object* x_704; uint8_t x_705; lean_object* x_706; lean_object* x_707; lean_object* x_708; lean_object* x_709; uint8_t x_710; +x_697 = lean_ctor_get(x_402, 1); +lean_inc(x_697); +lean_dec(x_402); +x_698 = lean_ctor_get(x_1, 0); +lean_inc(x_698); +x_699 = lean_st_ref_get(x_8, x_697); +x_700 = lean_ctor_get(x_699, 1); +lean_inc(x_700); +lean_dec(x_699); +x_701 = lean_st_ref_get(x_3, x_700); +x_702 = lean_ctor_get(x_701, 0); +lean_inc(x_702); +x_703 = lean_ctor_get(x_701, 1); +lean_inc(x_703); +lean_dec(x_701); +x_704 = lean_ctor_get(x_702, 0); +lean_inc(x_704); +lean_dec(x_702); +x_705 = 0; +lean_inc(x_698); +x_706 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_704, x_698, x_705); +lean_inc(x_706); +x_707 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_706, x_2, x_3, x_4, x_5, x_6, x_401, x_8, x_703); +lean_dec(x_8); +lean_dec(x_401); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_708 = lean_ctor_get(x_707, 1); +lean_inc(x_708); +if (lean_is_exclusive(x_707)) { + lean_ctor_release(x_707, 0); + lean_ctor_release(x_707, 1); + x_709 = x_707; +} else { + lean_dec_ref(x_707); + x_709 = lean_box(0); +} +x_710 = lean_name_eq(x_698, x_706); +lean_dec(x_698); +if (x_710 == 0) +{ +lean_object* x_711; lean_object* x_712; lean_object* x_713; +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_711 = x_1; +} else { + lean_dec_ref(x_1); + x_711 = lean_box(0); +} +if (lean_is_scalar(x_711)) { + x_712 = lean_alloc_ctor(5, 1, 0); +} else { + x_712 = x_711; +} +lean_ctor_set(x_712, 0, x_706); +if (lean_is_scalar(x_709)) { + x_713 = lean_alloc_ctor(0, 2, 0); +} else { + x_713 = x_709; +} +lean_ctor_set(x_713, 0, x_712); +lean_ctor_set(x_713, 1, x_708); +return x_713; +} +else +{ +lean_object* x_714; +lean_dec(x_706); +if (lean_is_scalar(x_709)) { + x_714 = lean_alloc_ctor(0, 2, 0); +} else { + x_714 = x_709; +} +lean_ctor_set(x_714, 0, x_1); +lean_ctor_set(x_714, 1, x_708); +return x_714; +} +} +default: +{ +lean_object* x_715; lean_object* x_716; lean_object* x_717; lean_object* x_718; lean_object* x_719; lean_object* x_720; lean_object* x_721; lean_object* x_722; lean_object* x_723; uint8_t x_724; lean_object* x_725; size_t x_726; size_t x_727; uint8_t x_728; +lean_dec(x_401); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_715 = lean_ctor_get(x_402, 1); +lean_inc(x_715); +lean_dec(x_402); +x_716 = lean_ctor_get(x_1, 0); +lean_inc(x_716); +x_717 = lean_st_ref_get(x_8, x_715); +lean_dec(x_8); +x_718 = lean_ctor_get(x_717, 1); +lean_inc(x_718); +lean_dec(x_717); +x_719 = lean_st_ref_get(x_3, x_718); +lean_dec(x_3); +x_720 = lean_ctor_get(x_719, 0); +lean_inc(x_720); +x_721 = lean_ctor_get(x_719, 1); +lean_inc(x_721); +if (lean_is_exclusive(x_719)) { + lean_ctor_release(x_719, 0); + lean_ctor_release(x_719, 1); + x_722 = x_719; +} else { + lean_dec_ref(x_719); + x_722 = lean_box(0); +} +x_723 = lean_ctor_get(x_720, 0); +lean_inc(x_723); +lean_dec(x_720); +x_724 = 0; +lean_inc(x_716); +x_725 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_723, x_724, x_716); +x_726 = lean_ptr_addr(x_716); +lean_dec(x_716); +x_727 = lean_ptr_addr(x_725); +x_728 = lean_usize_dec_eq(x_726, x_727); +if (x_728 == 0) +{ +lean_object* x_729; lean_object* x_730; lean_object* x_731; +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + x_729 = x_1; +} else { + lean_dec_ref(x_1); + x_729 = lean_box(0); +} +if (lean_is_scalar(x_729)) { + x_730 = lean_alloc_ctor(6, 1, 0); +} else { + x_730 = x_729; +} +lean_ctor_set(x_730, 0, x_725); +if (lean_is_scalar(x_722)) { x_731 = lean_alloc_ctor(0, 2, 0); } else { - x_731 = x_721; + x_731 = x_722; } -lean_ctor_set(x_731, 0, x_1); -lean_ctor_set(x_731, 1, x_720); +lean_ctor_set(x_731, 0, x_730); +lean_ctor_set(x_731, 1, x_721); return x_731; } -} -} -} -} else { lean_object* x_732; +lean_dec(x_725); +if (lean_is_scalar(x_722)) { + x_732 = lean_alloc_ctor(0, 2, 0); +} else { + x_732 = x_722; +} +lean_ctor_set(x_732, 0, x_1); +lean_ctor_set(x_732, 1, x_721); +return x_732; +} +} +} +} +} +else +{ +lean_object* x_733; +lean_dec(x_20); lean_dec(x_19); lean_dec(x_18); lean_dec(x_17); @@ -8515,403 +8699,402 @@ lean_dec(x_13); lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); -lean_dec(x_9); lean_dec(x_1); -x_732 = l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg(x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_732; +x_733 = l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_733; } } } -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__1(lean_object* x_1, size_t x_2, size_t 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_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__1(lean_object* x_1, size_t x_2, size_t 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: { -uint8_t x_12; -x_12 = lean_usize_dec_lt(x_3, x_2); -if (x_12 == 0) +uint8_t x_13; +x_13 = lean_usize_dec_lt(x_3, x_2); +if (x_13 == 0) { -lean_object* x_13; +lean_object* x_14; +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_4); -lean_ctor_set(x_13, 1, x_11); -return x_13; +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_4); +lean_ctor_set(x_14, 1, x_12); +return x_14; } else { -lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_24; -x_14 = lean_array_uget(x_1, x_3); -x_24 = !lean_is_exclusive(x_4); -if (x_24 == 0) +lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_25; +x_15 = lean_array_uget(x_1, x_3); +x_25 = !lean_is_exclusive(x_4); +if (x_25 == 0) { -lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; uint8_t x_30; -x_25 = lean_ctor_get(x_4, 0); -x_26 = lean_ctor_get(x_4, 1); -x_27 = lean_ctor_get(x_25, 0); -lean_inc(x_27); -x_28 = lean_ctor_get(x_25, 1); +lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; uint8_t x_31; +x_26 = lean_ctor_get(x_4, 0); +x_27 = lean_ctor_get(x_4, 1); +x_28 = lean_ctor_get(x_26, 0); lean_inc(x_28); -x_29 = lean_ctor_get(x_25, 2); +x_29 = lean_ctor_get(x_26, 1); lean_inc(x_29); -x_30 = lean_nat_dec_lt(x_28, x_29); -if (x_30 == 0) +x_30 = lean_ctor_get(x_26, 2); +lean_inc(x_30); +x_31 = lean_nat_dec_lt(x_29, x_30); +if (x_31 == 0) { -lean_object* x_31; +lean_object* x_32; +lean_dec(x_30); lean_dec(x_29); lean_dec(x_28); -lean_dec(x_27); -lean_dec(x_14); -x_31 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_31, 0, x_4); -x_15 = x_31; -x_16 = x_11; -goto block_23; +lean_dec(x_15); +x_32 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_32, 0, x_4); +x_16 = x_32; +x_17 = x_12; +goto block_24; } else { -uint8_t x_32; -x_32 = !lean_is_exclusive(x_25); -if (x_32 == 0) +uint8_t x_33; +x_33 = !lean_is_exclusive(x_26); +if (x_33 == 0) { -lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; uint8_t x_39; -x_33 = lean_ctor_get(x_25, 2); -lean_dec(x_33); -x_34 = lean_ctor_get(x_25, 1); +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; uint8_t x_40; +x_34 = lean_ctor_get(x_26, 2); lean_dec(x_34); -x_35 = lean_ctor_get(x_25, 0); +x_35 = lean_ctor_get(x_26, 1); lean_dec(x_35); -x_36 = lean_array_fget(x_27, x_28); -x_37 = lean_unsigned_to_nat(1u); -x_38 = lean_nat_add(x_28, x_37); -lean_dec(x_28); -lean_ctor_set(x_25, 1, x_38); -x_39 = l_Lean_Expr_isFVar(x_36); -if (x_39 == 0) +x_36 = lean_ctor_get(x_26, 0); +lean_dec(x_36); +x_37 = lean_array_fget(x_28, x_29); +x_38 = lean_unsigned_to_nat(1u); +x_39 = lean_nat_add(x_29, x_38); +lean_dec(x_29); +lean_ctor_set(x_26, 1, x_39); +x_40 = l_Lean_Expr_isFVar(x_37); +if (x_40 == 0) { -lean_object* x_40; lean_object* x_41; -x_40 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; +lean_object* x_41; lean_object* x_42; +x_41 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -x_41 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_36, x_40, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_41) == 0) +x_42 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_37, x_41, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_42) == 0) { -lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_42 = lean_ctor_get(x_41, 0); -lean_inc(x_42); -x_43 = lean_ctor_get(x_41, 1); +lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; +x_43 = lean_ctor_get(x_42, 0); lean_inc(x_43); -lean_dec(x_41); -lean_inc(x_42); -x_44 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_44, 0, x_42); -x_45 = lean_array_push(x_26, x_44); -x_46 = lean_ctor_get(x_14, 0); -lean_inc(x_46); -lean_dec(x_14); -x_47 = lean_ctor_get(x_42, 0); -lean_inc(x_47); +x_44 = lean_ctor_get(x_42, 1); +lean_inc(x_44); lean_dec(x_42); -x_48 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_46, x_47, x_5, x_6, x_7, x_8, x_9, x_10, x_43); -if (lean_obj_tag(x_48) == 0) +lean_inc(x_43); +x_45 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_45, 0, x_43); +x_46 = lean_array_push(x_27, x_45); +x_47 = lean_ctor_get(x_15, 0); +lean_inc(x_47); +lean_dec(x_15); +x_48 = lean_ctor_get(x_43, 0); +lean_inc(x_48); +lean_dec(x_43); +x_49 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_47, x_48, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_44); +if (lean_obj_tag(x_49) == 0) { -lean_object* x_49; lean_object* x_50; -x_49 = lean_ctor_get(x_48, 1); -lean_inc(x_49); -lean_dec(x_48); -lean_ctor_set(x_4, 1, x_45); -x_50 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_50, 0, x_4); -x_15 = x_50; -x_16 = x_49; -goto block_23; +lean_object* x_50; lean_object* x_51; +x_50 = lean_ctor_get(x_49, 1); +lean_inc(x_50); +lean_dec(x_49); +lean_ctor_set(x_4, 1, x_46); +x_51 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_51, 0, x_4); +x_16 = x_51; +x_17 = x_50; +goto block_24; } else { -uint8_t x_51; -lean_dec(x_45); -lean_dec(x_25); +uint8_t x_52; +lean_dec(x_46); +lean_dec(x_26); lean_free_object(x_4); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_51 = !lean_is_exclusive(x_48); -if (x_51 == 0) +x_52 = !lean_is_exclusive(x_49); +if (x_52 == 0) { -return x_48; +return x_49; } else { -lean_object* x_52; lean_object* x_53; lean_object* x_54; -x_52 = lean_ctor_get(x_48, 0); -x_53 = lean_ctor_get(x_48, 1); +lean_object* x_53; lean_object* x_54; lean_object* x_55; +x_53 = lean_ctor_get(x_49, 0); +x_54 = lean_ctor_get(x_49, 1); +lean_inc(x_54); lean_inc(x_53); -lean_inc(x_52); -lean_dec(x_48); -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; +lean_dec(x_49); +x_55 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_55, 0, x_53); +lean_ctor_set(x_55, 1, x_54); +return x_55; } } } else { -uint8_t x_55; -lean_dec(x_25); -lean_free_object(x_4); +uint8_t x_56; lean_dec(x_26); -lean_dec(x_14); +lean_free_object(x_4); +lean_dec(x_27); +lean_dec(x_15); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_55 = !lean_is_exclusive(x_41); -if (x_55 == 0) +x_56 = !lean_is_exclusive(x_42); +if (x_56 == 0) { -return x_41; +return x_42; } else { -lean_object* x_56; lean_object* x_57; lean_object* x_58; -x_56 = lean_ctor_get(x_41, 0); -x_57 = lean_ctor_get(x_41, 1); +lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_57 = lean_ctor_get(x_42, 0); +x_58 = lean_ctor_get(x_42, 1); +lean_inc(x_58); lean_inc(x_57); -lean_inc(x_56); -lean_dec(x_41); -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; +lean_dec(x_42); +x_59 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_59, 0, x_57); +lean_ctor_set(x_59, 1, x_58); +return x_59; } } } else { -lean_object* x_59; lean_object* x_60; lean_object* x_61; -x_59 = lean_ctor_get(x_14, 0); -lean_inc(x_59); -lean_dec(x_14); -x_60 = l_Lean_Expr_fvarId_x21(x_36); -x_61 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_59, x_60, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_61) == 0) +lean_object* x_60; lean_object* x_61; lean_object* x_62; +x_60 = lean_ctor_get(x_15, 0); +lean_inc(x_60); +lean_dec(x_15); +x_61 = l_Lean_Expr_fvarId_x21(x_37); +x_62 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_60, x_61, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_62) == 0) { -lean_object* x_62; lean_object* x_63; -x_62 = lean_ctor_get(x_61, 1); -lean_inc(x_62); -lean_dec(x_61); -x_63 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_63, 0, x_4); -x_15 = x_63; -x_16 = x_62; -goto block_23; +lean_object* x_63; lean_object* x_64; +x_63 = lean_ctor_get(x_62, 1); +lean_inc(x_63); +lean_dec(x_62); +x_64 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_64, 0, x_4); +x_16 = x_64; +x_17 = x_63; +goto block_24; } else { -uint8_t x_64; -lean_dec(x_25); -lean_free_object(x_4); +uint8_t x_65; lean_dec(x_26); +lean_free_object(x_4); +lean_dec(x_27); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_64 = !lean_is_exclusive(x_61); -if (x_64 == 0) +x_65 = !lean_is_exclusive(x_62); +if (x_65 == 0) { -return x_61; +return x_62; } else { -lean_object* x_65; lean_object* x_66; lean_object* x_67; -x_65 = lean_ctor_get(x_61, 0); -x_66 = lean_ctor_get(x_61, 1); +lean_object* x_66; lean_object* x_67; lean_object* x_68; +x_66 = lean_ctor_get(x_62, 0); +x_67 = lean_ctor_get(x_62, 1); +lean_inc(x_67); lean_inc(x_66); -lean_inc(x_65); -lean_dec(x_61); -x_67 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_67, 0, x_65); -lean_ctor_set(x_67, 1, x_66); -return x_67; +lean_dec(x_62); +x_68 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_68, 0, x_66); +lean_ctor_set(x_68, 1, x_67); +return x_68; } } } } else { -lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; uint8_t x_72; -lean_dec(x_25); -x_68 = lean_array_fget(x_27, x_28); -x_69 = lean_unsigned_to_nat(1u); -x_70 = lean_nat_add(x_28, x_69); -lean_dec(x_28); -x_71 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_71, 0, x_27); -lean_ctor_set(x_71, 1, x_70); -lean_ctor_set(x_71, 2, x_29); -x_72 = l_Lean_Expr_isFVar(x_68); -if (x_72 == 0) +lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; uint8_t x_73; +lean_dec(x_26); +x_69 = lean_array_fget(x_28, x_29); +x_70 = lean_unsigned_to_nat(1u); +x_71 = lean_nat_add(x_29, x_70); +lean_dec(x_29); +x_72 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_72, 0, x_28); +lean_ctor_set(x_72, 1, x_71); +lean_ctor_set(x_72, 2, x_30); +x_73 = l_Lean_Expr_isFVar(x_69); +if (x_73 == 0) { -lean_object* x_73; lean_object* x_74; -x_73 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; +lean_object* x_74; lean_object* x_75; +x_74 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -x_74 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_68, x_73, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_74) == 0) +x_75 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_69, x_74, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_75) == 0) { -lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_75 = lean_ctor_get(x_74, 0); -lean_inc(x_75); -x_76 = lean_ctor_get(x_74, 1); +lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; +x_76 = lean_ctor_get(x_75, 0); lean_inc(x_76); -lean_dec(x_74); -lean_inc(x_75); -x_77 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_77, 0, x_75); -x_78 = lean_array_push(x_26, x_77); -x_79 = lean_ctor_get(x_14, 0); -lean_inc(x_79); -lean_dec(x_14); -x_80 = lean_ctor_get(x_75, 0); -lean_inc(x_80); +x_77 = lean_ctor_get(x_75, 1); +lean_inc(x_77); lean_dec(x_75); -x_81 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_79, x_80, x_5, x_6, x_7, x_8, x_9, x_10, x_76); -if (lean_obj_tag(x_81) == 0) +lean_inc(x_76); +x_78 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_78, 0, x_76); +x_79 = lean_array_push(x_27, x_78); +x_80 = lean_ctor_get(x_15, 0); +lean_inc(x_80); +lean_dec(x_15); +x_81 = lean_ctor_get(x_76, 0); +lean_inc(x_81); +lean_dec(x_76); +x_82 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_80, x_81, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_77); +if (lean_obj_tag(x_82) == 0) { -lean_object* x_82; lean_object* x_83; -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -lean_dec(x_81); -lean_ctor_set(x_4, 1, x_78); -lean_ctor_set(x_4, 0, x_71); -x_83 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_83, 0, x_4); -x_15 = x_83; -x_16 = x_82; -goto block_23; +lean_object* x_83; lean_object* x_84; +x_83 = lean_ctor_get(x_82, 1); +lean_inc(x_83); +lean_dec(x_82); +lean_ctor_set(x_4, 1, x_79); +lean_ctor_set(x_4, 0, x_72); +x_84 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_84, 0, x_4); +x_16 = x_84; +x_17 = x_83; +goto block_24; } else { -lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; -lean_dec(x_78); -lean_dec(x_71); +lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; +lean_dec(x_79); +lean_dec(x_72); lean_free_object(x_4); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_84 = lean_ctor_get(x_81, 0); -lean_inc(x_84); -x_85 = lean_ctor_get(x_81, 1); +x_85 = lean_ctor_get(x_82, 0); lean_inc(x_85); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_86 = x_81; +x_86 = lean_ctor_get(x_82, 1); +lean_inc(x_86); +if (lean_is_exclusive(x_82)) { + lean_ctor_release(x_82, 0); + lean_ctor_release(x_82, 1); + x_87 = x_82; } else { - lean_dec_ref(x_81); - x_86 = lean_box(0); + lean_dec_ref(x_82); + x_87 = lean_box(0); } -if (lean_is_scalar(x_86)) { - x_87 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_87)) { + x_88 = lean_alloc_ctor(1, 2, 0); } else { - x_87 = x_86; + x_88 = x_87; } -lean_ctor_set(x_87, 0, x_84); -lean_ctor_set(x_87, 1, x_85); -return x_87; +lean_ctor_set(x_88, 0, x_85); +lean_ctor_set(x_88, 1, x_86); +return x_88; } } else { -lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; -lean_dec(x_71); +lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; +lean_dec(x_72); lean_free_object(x_4); -lean_dec(x_26); -lean_dec(x_14); +lean_dec(x_27); +lean_dec(x_15); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_88 = lean_ctor_get(x_74, 0); -lean_inc(x_88); -x_89 = lean_ctor_get(x_74, 1); +x_89 = lean_ctor_get(x_75, 0); lean_inc(x_89); -if (lean_is_exclusive(x_74)) { - lean_ctor_release(x_74, 0); - lean_ctor_release(x_74, 1); - x_90 = x_74; +x_90 = lean_ctor_get(x_75, 1); +lean_inc(x_90); +if (lean_is_exclusive(x_75)) { + lean_ctor_release(x_75, 0); + lean_ctor_release(x_75, 1); + x_91 = x_75; } else { - lean_dec_ref(x_74); - x_90 = lean_box(0); + lean_dec_ref(x_75); + x_91 = lean_box(0); } -if (lean_is_scalar(x_90)) { - x_91 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_91)) { + x_92 = lean_alloc_ctor(1, 2, 0); } else { - x_91 = x_90; + x_92 = x_91; } -lean_ctor_set(x_91, 0, x_88); -lean_ctor_set(x_91, 1, x_89); -return x_91; +lean_ctor_set(x_92, 0, x_89); +lean_ctor_set(x_92, 1, x_90); +return x_92; } } else { -lean_object* x_92; lean_object* x_93; lean_object* x_94; -x_92 = lean_ctor_get(x_14, 0); -lean_inc(x_92); -lean_dec(x_14); -x_93 = l_Lean_Expr_fvarId_x21(x_68); -x_94 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_92, x_93, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_94) == 0) +lean_object* x_93; lean_object* x_94; lean_object* x_95; +x_93 = lean_ctor_get(x_15, 0); +lean_inc(x_93); +lean_dec(x_15); +x_94 = l_Lean_Expr_fvarId_x21(x_69); +x_95 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_93, x_94, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_95) == 0) { -lean_object* x_95; lean_object* x_96; -x_95 = lean_ctor_get(x_94, 1); -lean_inc(x_95); -lean_dec(x_94); -lean_ctor_set(x_4, 0, x_71); -x_96 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_96, 0, x_4); -x_15 = x_96; -x_16 = x_95; -goto block_23; +lean_object* x_96; lean_object* x_97; +x_96 = lean_ctor_get(x_95, 1); +lean_inc(x_96); +lean_dec(x_95); +lean_ctor_set(x_4, 0, x_72); +x_97 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_97, 0, x_4); +x_16 = x_97; +x_17 = x_96; +goto block_24; } else { -lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; -lean_dec(x_71); +lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; +lean_dec(x_72); lean_free_object(x_4); -lean_dec(x_26); +lean_dec(x_27); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_97 = lean_ctor_get(x_94, 0); -lean_inc(x_97); -x_98 = lean_ctor_get(x_94, 1); +x_98 = lean_ctor_get(x_95, 0); lean_inc(x_98); -if (lean_is_exclusive(x_94)) { - lean_ctor_release(x_94, 0); - lean_ctor_release(x_94, 1); - x_99 = x_94; +x_99 = lean_ctor_get(x_95, 1); +lean_inc(x_99); +if (lean_is_exclusive(x_95)) { + lean_ctor_release(x_95, 0); + lean_ctor_release(x_95, 1); + x_100 = x_95; } else { - lean_dec_ref(x_94); - x_99 = lean_box(0); + lean_dec_ref(x_95); + x_100 = lean_box(0); } -if (lean_is_scalar(x_99)) { - x_100 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_100)) { + x_101 = lean_alloc_ctor(1, 2, 0); } else { - x_100 = x_99; + x_101 = x_100; } -lean_ctor_set(x_100, 0, x_97); -lean_ctor_set(x_100, 1, x_98); -return x_100; +lean_ctor_set(x_101, 0, x_98); +lean_ctor_set(x_101, 1, x_99); +return x_101; } } } @@ -8919,1106 +9102,267 @@ return x_100; } else { -lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; uint8_t x_106; -x_101 = lean_ctor_get(x_4, 0); -x_102 = lean_ctor_get(x_4, 1); -lean_inc(x_102); -lean_inc(x_101); -lean_dec(x_4); -x_103 = lean_ctor_get(x_101, 0); +lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; uint8_t x_107; +x_102 = lean_ctor_get(x_4, 0); +x_103 = lean_ctor_get(x_4, 1); lean_inc(x_103); -x_104 = lean_ctor_get(x_101, 1); +lean_inc(x_102); +lean_dec(x_4); +x_104 = lean_ctor_get(x_102, 0); lean_inc(x_104); -x_105 = lean_ctor_get(x_101, 2); +x_105 = lean_ctor_get(x_102, 1); lean_inc(x_105); -x_106 = lean_nat_dec_lt(x_104, x_105); -if (x_106 == 0) +x_106 = lean_ctor_get(x_102, 2); +lean_inc(x_106); +x_107 = lean_nat_dec_lt(x_105, x_106); +if (x_107 == 0) { -lean_object* x_107; lean_object* x_108; +lean_object* x_108; lean_object* x_109; +lean_dec(x_106); lean_dec(x_105); lean_dec(x_104); -lean_dec(x_103); -lean_dec(x_14); -x_107 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_107, 0, x_101); -lean_ctor_set(x_107, 1, x_102); -x_108 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_108, 0, x_107); -x_15 = x_108; -x_16 = x_11; -goto block_23; +lean_dec(x_15); +x_108 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_108, 0, x_102); +lean_ctor_set(x_108, 1, x_103); +x_109 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_109, 0, x_108); +x_16 = x_109; +x_17 = x_12; +goto block_24; } else { -lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; uint8_t x_114; -if (lean_is_exclusive(x_101)) { - lean_ctor_release(x_101, 0); - lean_ctor_release(x_101, 1); - lean_ctor_release(x_101, 2); - x_109 = x_101; +lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; uint8_t x_115; +if (lean_is_exclusive(x_102)) { + lean_ctor_release(x_102, 0); + lean_ctor_release(x_102, 1); + lean_ctor_release(x_102, 2); + x_110 = x_102; } else { - lean_dec_ref(x_101); - x_109 = lean_box(0); + lean_dec_ref(x_102); + x_110 = lean_box(0); } -x_110 = lean_array_fget(x_103, x_104); -x_111 = lean_unsigned_to_nat(1u); -x_112 = lean_nat_add(x_104, x_111); -lean_dec(x_104); -if (lean_is_scalar(x_109)) { - x_113 = lean_alloc_ctor(0, 3, 0); +x_111 = lean_array_fget(x_104, x_105); +x_112 = lean_unsigned_to_nat(1u); +x_113 = lean_nat_add(x_105, x_112); +lean_dec(x_105); +if (lean_is_scalar(x_110)) { + x_114 = lean_alloc_ctor(0, 3, 0); } else { - x_113 = x_109; + x_114 = x_110; } -lean_ctor_set(x_113, 0, x_103); -lean_ctor_set(x_113, 1, x_112); -lean_ctor_set(x_113, 2, x_105); -x_114 = l_Lean_Expr_isFVar(x_110); -if (x_114 == 0) +lean_ctor_set(x_114, 0, x_104); +lean_ctor_set(x_114, 1, x_113); +lean_ctor_set(x_114, 2, x_106); +x_115 = l_Lean_Expr_isFVar(x_111); +if (x_115 == 0) { -lean_object* x_115; lean_object* x_116; -x_115 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; +lean_object* x_116; lean_object* x_117; +x_116 = l_Lean_Compiler_LCNF_Simp_etaPolyApp_x3f___closed__2; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -x_116 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_110, x_115, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_116) == 0) +x_117 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_111, x_116, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_117) == 0) { -lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; -x_117 = lean_ctor_get(x_116, 0); -lean_inc(x_117); -x_118 = lean_ctor_get(x_116, 1); +lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; +x_118 = lean_ctor_get(x_117, 0); lean_inc(x_118); -lean_dec(x_116); -lean_inc(x_117); -x_119 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_119, 0, x_117); -x_120 = lean_array_push(x_102, x_119); -x_121 = lean_ctor_get(x_14, 0); -lean_inc(x_121); -lean_dec(x_14); -x_122 = lean_ctor_get(x_117, 0); -lean_inc(x_122); +x_119 = lean_ctor_get(x_117, 1); +lean_inc(x_119); lean_dec(x_117); -x_123 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_121, x_122, x_5, x_6, x_7, x_8, x_9, x_10, x_118); -if (lean_obj_tag(x_123) == 0) +lean_inc(x_118); +x_120 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_120, 0, x_118); +x_121 = lean_array_push(x_103, x_120); +x_122 = lean_ctor_get(x_15, 0); +lean_inc(x_122); +lean_dec(x_15); +x_123 = lean_ctor_get(x_118, 0); +lean_inc(x_123); +lean_dec(x_118); +x_124 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_122, x_123, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_119); +if (lean_obj_tag(x_124) == 0) { -lean_object* x_124; lean_object* x_125; lean_object* x_126; -x_124 = lean_ctor_get(x_123, 1); -lean_inc(x_124); -lean_dec(x_123); -x_125 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_125, 0, x_113); -lean_ctor_set(x_125, 1, x_120); -x_126 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_126, 0, x_125); -x_15 = x_126; -x_16 = x_124; -goto block_23; +lean_object* x_125; lean_object* x_126; lean_object* x_127; +x_125 = lean_ctor_get(x_124, 1); +lean_inc(x_125); +lean_dec(x_124); +x_126 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_126, 0, x_114); +lean_ctor_set(x_126, 1, x_121); +x_127 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_127, 0, x_126); +x_16 = x_127; +x_17 = x_125; +goto block_24; } else { -lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; -lean_dec(x_120); -lean_dec(x_113); +lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; +lean_dec(x_121); +lean_dec(x_114); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_127 = lean_ctor_get(x_123, 0); -lean_inc(x_127); -x_128 = lean_ctor_get(x_123, 1); +x_128 = lean_ctor_get(x_124, 0); lean_inc(x_128); -if (lean_is_exclusive(x_123)) { - lean_ctor_release(x_123, 0); - lean_ctor_release(x_123, 1); - x_129 = x_123; +x_129 = lean_ctor_get(x_124, 1); +lean_inc(x_129); +if (lean_is_exclusive(x_124)) { + lean_ctor_release(x_124, 0); + lean_ctor_release(x_124, 1); + x_130 = x_124; } else { - lean_dec_ref(x_123); - x_129 = lean_box(0); + lean_dec_ref(x_124); + x_130 = lean_box(0); } -if (lean_is_scalar(x_129)) { - x_130 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_130)) { + x_131 = lean_alloc_ctor(1, 2, 0); } else { - x_130 = x_129; + x_131 = x_130; } -lean_ctor_set(x_130, 0, x_127); -lean_ctor_set(x_130, 1, x_128); -return x_130; +lean_ctor_set(x_131, 0, x_128); +lean_ctor_set(x_131, 1, x_129); +return x_131; } } else { -lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; -lean_dec(x_113); -lean_dec(x_102); -lean_dec(x_14); +lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; +lean_dec(x_114); +lean_dec(x_103); +lean_dec(x_15); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_131 = lean_ctor_get(x_116, 0); -lean_inc(x_131); -x_132 = lean_ctor_get(x_116, 1); +x_132 = lean_ctor_get(x_117, 0); lean_inc(x_132); -if (lean_is_exclusive(x_116)) { - lean_ctor_release(x_116, 0); - lean_ctor_release(x_116, 1); - x_133 = x_116; +x_133 = lean_ctor_get(x_117, 1); +lean_inc(x_133); +if (lean_is_exclusive(x_117)) { + lean_ctor_release(x_117, 0); + lean_ctor_release(x_117, 1); + x_134 = x_117; } else { - lean_dec_ref(x_116); - x_133 = lean_box(0); + lean_dec_ref(x_117); + x_134 = lean_box(0); } -if (lean_is_scalar(x_133)) { - x_134 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_134)) { + x_135 = lean_alloc_ctor(1, 2, 0); } else { - x_134 = x_133; + x_135 = x_134; } -lean_ctor_set(x_134, 0, x_131); -lean_ctor_set(x_134, 1, x_132); -return x_134; +lean_ctor_set(x_135, 0, x_132); +lean_ctor_set(x_135, 1, x_133); +return x_135; } } else { -lean_object* x_135; lean_object* x_136; lean_object* x_137; -x_135 = lean_ctor_get(x_14, 0); -lean_inc(x_135); -lean_dec(x_14); -x_136 = l_Lean_Expr_fvarId_x21(x_110); -x_137 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_135, x_136, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_137) == 0) +lean_object* x_136; lean_object* x_137; lean_object* x_138; +x_136 = lean_ctor_get(x_15, 0); +lean_inc(x_136); +lean_dec(x_15); +x_137 = l_Lean_Expr_fvarId_x21(x_111); +x_138 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_136, x_137, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_138) == 0) { -lean_object* x_138; lean_object* x_139; lean_object* x_140; -x_138 = lean_ctor_get(x_137, 1); -lean_inc(x_138); -lean_dec(x_137); -x_139 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_139, 0, x_113); -lean_ctor_set(x_139, 1, x_102); -x_140 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_140, 0, x_139); -x_15 = x_140; -x_16 = x_138; -goto block_23; +lean_object* x_139; lean_object* x_140; lean_object* x_141; +x_139 = lean_ctor_get(x_138, 1); +lean_inc(x_139); +lean_dec(x_138); +x_140 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_140, 0, x_114); +lean_ctor_set(x_140, 1, x_103); +x_141 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_141, 0, x_140); +x_16 = x_141; +x_17 = x_139; +goto block_24; } else { -lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; -lean_dec(x_113); -lean_dec(x_102); +lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; +lean_dec(x_114); +lean_dec(x_103); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_141 = lean_ctor_get(x_137, 0); -lean_inc(x_141); -x_142 = lean_ctor_get(x_137, 1); +x_142 = lean_ctor_get(x_138, 0); lean_inc(x_142); -if (lean_is_exclusive(x_137)) { - lean_ctor_release(x_137, 0); - lean_ctor_release(x_137, 1); - x_143 = x_137; +x_143 = lean_ctor_get(x_138, 1); +lean_inc(x_143); +if (lean_is_exclusive(x_138)) { + lean_ctor_release(x_138, 0); + lean_ctor_release(x_138, 1); + x_144 = x_138; } else { - lean_dec_ref(x_137); - x_143 = lean_box(0); + lean_dec_ref(x_138); + x_144 = lean_box(0); } -if (lean_is_scalar(x_143)) { - x_144 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_144)) { + x_145 = lean_alloc_ctor(1, 2, 0); } else { - x_144 = x_143; + x_145 = x_144; } -lean_ctor_set(x_144, 0, x_141); -lean_ctor_set(x_144, 1, x_142); -return x_144; +lean_ctor_set(x_145, 0, x_142); +lean_ctor_set(x_145, 1, x_143); +return x_145; } } } } -block_23: +block_24: { -if (lean_obj_tag(x_15) == 0) +if (lean_obj_tag(x_16) == 0) { -lean_object* x_17; lean_object* x_18; +lean_object* x_18; lean_object* x_19; +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_17 = lean_ctor_get(x_15, 0); -lean_inc(x_17); -lean_dec(x_15); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_17); -lean_ctor_set(x_18, 1, x_16); -return x_18; +x_18 = lean_ctor_get(x_16, 0); +lean_inc(x_18); +lean_dec(x_16); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_17); +return x_19; } else { -lean_object* x_19; size_t x_20; size_t x_21; -x_19 = lean_ctor_get(x_15, 0); -lean_inc(x_19); -lean_dec(x_15); -x_20 = 1; -x_21 = lean_usize_add(x_3, x_20); -x_3 = x_21; -x_4 = x_19; -x_11 = x_16; +lean_object* x_20; size_t x_21; size_t x_22; +x_20 = lean_ctor_get(x_16, 0); +lean_inc(x_20); +lean_dec(x_16); +x_21 = 1; +x_22 = lean_usize_add(x_3, x_21); +x_3 = x_22; +x_4 = x_20; +x_12 = x_17; goto _start; } } } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f(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_Compiler_LCNF_Simp_simpCasesOnCtor_x3f(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_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t 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; uint8_t x_23; -x_9 = lean_ctor_get(x_1, 2); -lean_inc(x_9); -x_10 = lean_st_ref_get(x_7, x_8); -x_11 = lean_ctor_get(x_10, 1); -lean_inc(x_11); -lean_dec(x_10); -x_12 = lean_st_ref_get(x_3, x_11); -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -x_14 = lean_ctor_get(x_12, 1); -lean_inc(x_14); -lean_dec(x_12); -x_15 = lean_ctor_get(x_13, 0); -lean_inc(x_15); -lean_dec(x_13); -x_16 = 0; -x_17 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_15, x_9, x_16); -x_18 = l_Lean_Expr_fvar___override(x_17); -x_19 = l_Lean_Compiler_LCNF_Simp_findCtor(x_18, x_2, x_3, x_4, x_5, x_6, x_7, x_14); -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_19, 1); -lean_inc(x_21); -lean_dec(x_19); -x_22 = lean_st_ref_get(x_7, x_21); -x_23 = !lean_is_exclusive(x_22); -if (x_23 == 0) -{ -lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; lean_object* x_28; -x_24 = lean_ctor_get(x_22, 0); -x_25 = lean_ctor_get(x_22, 1); -x_26 = lean_ctor_get(x_24, 0); -lean_inc(x_26); -lean_dec(x_24); -x_27 = 1; -x_28 = l_Lean_Expr_constructorApp_x3f(x_26, x_20, x_27); -if (lean_obj_tag(x_28) == 0) -{ -lean_object* x_29; -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_29 = lean_box(0); -lean_ctor_set(x_22, 0, x_29); -return x_22; -} -else -{ -uint8_t x_30; -lean_free_object(x_22); -x_30 = !lean_is_exclusive(x_28); -if (x_30 == 0) -{ -lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_31 = lean_ctor_get(x_28, 0); -x_32 = lean_ctor_get(x_31, 0); -lean_inc(x_32); -x_33 = lean_ctor_get(x_31, 1); -lean_inc(x_33); -lean_dec(x_31); -x_34 = lean_ctor_get(x_32, 0); -lean_inc(x_34); -x_35 = lean_ctor_get(x_34, 0); -lean_inc(x_35); -lean_dec(x_34); -x_36 = l_Lean_Compiler_LCNF_CasesCore_extractAlt_x21(x_1, x_35); -x_37 = lean_ctor_get(x_36, 0); -lean_inc(x_37); -x_38 = lean_ctor_get(x_36, 1); -lean_inc(x_38); -lean_dec(x_36); -x_39 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_39, 0, x_38); -x_40 = l_Lean_Compiler_LCNF_eraseCode(x_39, x_4, x_5, x_6, x_7, x_25); -x_41 = lean_ctor_get(x_40, 1); -lean_inc(x_41); -lean_dec(x_40); -x_42 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_41); -if (lean_obj_tag(x_37) == 0) -{ -lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; size_t x_52; size_t x_53; lean_object* x_54; -x_43 = lean_ctor_get(x_42, 1); -lean_inc(x_43); -lean_dec(x_42); -x_44 = lean_ctor_get(x_37, 1); -lean_inc(x_44); -x_45 = lean_ctor_get(x_37, 2); -lean_inc(x_45); -lean_dec(x_37); -x_46 = lean_ctor_get(x_32, 3); -lean_inc(x_46); -lean_dec(x_32); -x_47 = lean_array_get_size(x_33); -x_48 = l_Array_toSubarray___rarg(x_33, x_46, x_47); -x_49 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__2; -x_50 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_50, 0, x_48); -lean_ctor_set(x_50, 1, x_49); -x_51 = lean_array_get_size(x_44); -x_52 = lean_usize_of_nat(x_51); -lean_dec(x_51); -x_53 = 0; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_54 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__1(x_44, x_52, x_53, x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_43); -if (lean_obj_tag(x_54) == 0) -{ -lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; -x_55 = lean_ctor_get(x_54, 0); -lean_inc(x_55); -x_56 = lean_ctor_get(x_54, 1); -lean_inc(x_56); -lean_dec(x_54); -x_57 = lean_ctor_get(x_55, 1); -lean_inc(x_57); -lean_dec(x_55); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -lean_inc(x_2); -x_58 = l_Lean_Compiler_LCNF_Simp_simp(x_45, x_2, x_3, x_4, x_5, x_6, x_7, x_56); -if (lean_obj_tag(x_58) == 0) -{ -lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_59 = lean_ctor_get(x_58, 0); -lean_inc(x_59); -x_60 = lean_ctor_get(x_58, 1); -lean_inc(x_60); -lean_dec(x_58); -x_61 = l_Lean_Compiler_LCNF_eraseParams(x_44, x_4, x_5, x_6, x_7, x_60); -lean_dec(x_44); -x_62 = lean_ctor_get(x_61, 1); -lean_inc(x_62); -lean_dec(x_61); -x_63 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls(x_57, x_59, x_2, x_3, x_4, x_5, x_6, x_7, x_62); -lean_dec(x_57); -x_64 = !lean_is_exclusive(x_63); -if (x_64 == 0) -{ -lean_object* x_65; -x_65 = lean_ctor_get(x_63, 0); -lean_ctor_set(x_28, 0, x_65); -lean_ctor_set(x_63, 0, x_28); -return x_63; -} -else -{ -lean_object* x_66; lean_object* x_67; lean_object* x_68; -x_66 = lean_ctor_get(x_63, 0); -x_67 = lean_ctor_get(x_63, 1); -lean_inc(x_67); -lean_inc(x_66); -lean_dec(x_63); -lean_ctor_set(x_28, 0, x_66); -x_68 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_68, 0, x_28); -lean_ctor_set(x_68, 1, x_67); -return x_68; -} -} -else -{ -uint8_t x_69; -lean_dec(x_57); -lean_dec(x_44); -lean_free_object(x_28); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_69 = !lean_is_exclusive(x_58); -if (x_69 == 0) -{ -return x_58; -} -else -{ -lean_object* x_70; lean_object* x_71; lean_object* x_72; -x_70 = lean_ctor_get(x_58, 0); -x_71 = lean_ctor_get(x_58, 1); -lean_inc(x_71); -lean_inc(x_70); -lean_dec(x_58); -x_72 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_72, 0, x_70); -lean_ctor_set(x_72, 1, x_71); -return x_72; -} -} -} -else -{ -uint8_t x_73; -lean_dec(x_45); -lean_dec(x_44); -lean_free_object(x_28); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_73 = !lean_is_exclusive(x_54); -if (x_73 == 0) -{ -return x_54; -} -else -{ -lean_object* x_74; lean_object* x_75; lean_object* x_76; -x_74 = lean_ctor_get(x_54, 0); -x_75 = lean_ctor_get(x_54, 1); -lean_inc(x_75); -lean_inc(x_74); -lean_dec(x_54); -x_76 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_76, 0, x_74); -lean_ctor_set(x_76, 1, x_75); -return x_76; -} -} -} -else -{ -lean_object* x_77; lean_object* x_78; lean_object* x_79; -lean_dec(x_33); -lean_dec(x_32); -x_77 = lean_ctor_get(x_42, 1); -lean_inc(x_77); -lean_dec(x_42); -x_78 = lean_ctor_get(x_37, 0); -lean_inc(x_78); -lean_dec(x_37); -x_79 = l_Lean_Compiler_LCNF_Simp_simp(x_78, x_2, x_3, x_4, x_5, x_6, x_7, x_77); -if (lean_obj_tag(x_79) == 0) -{ -uint8_t x_80; -x_80 = !lean_is_exclusive(x_79); -if (x_80 == 0) -{ -lean_object* x_81; -x_81 = lean_ctor_get(x_79, 0); -lean_ctor_set(x_28, 0, x_81); -lean_ctor_set(x_79, 0, x_28); -return x_79; -} -else -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; -x_82 = lean_ctor_get(x_79, 0); -x_83 = lean_ctor_get(x_79, 1); -lean_inc(x_83); -lean_inc(x_82); -lean_dec(x_79); -lean_ctor_set(x_28, 0, x_82); -x_84 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_84, 0, x_28); -lean_ctor_set(x_84, 1, x_83); -return x_84; -} -} -else -{ -uint8_t x_85; -lean_free_object(x_28); -x_85 = !lean_is_exclusive(x_79); -if (x_85 == 0) -{ -return x_79; -} -else -{ -lean_object* x_86; lean_object* x_87; lean_object* x_88; -x_86 = lean_ctor_get(x_79, 0); -x_87 = lean_ctor_get(x_79, 1); -lean_inc(x_87); -lean_inc(x_86); -lean_dec(x_79); -x_88 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_88, 0, x_86); -lean_ctor_set(x_88, 1, x_87); -return x_88; -} -} -} -} -else -{ -lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; -x_89 = lean_ctor_get(x_28, 0); -lean_inc(x_89); -lean_dec(x_28); -x_90 = lean_ctor_get(x_89, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_89, 1); -lean_inc(x_91); -lean_dec(x_89); -x_92 = lean_ctor_get(x_90, 0); -lean_inc(x_92); -x_93 = lean_ctor_get(x_92, 0); -lean_inc(x_93); -lean_dec(x_92); -x_94 = l_Lean_Compiler_LCNF_CasesCore_extractAlt_x21(x_1, x_93); -x_95 = lean_ctor_get(x_94, 0); -lean_inc(x_95); -x_96 = lean_ctor_get(x_94, 1); -lean_inc(x_96); -lean_dec(x_94); -x_97 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_97, 0, x_96); -x_98 = l_Lean_Compiler_LCNF_eraseCode(x_97, x_4, x_5, x_6, x_7, x_25); -x_99 = lean_ctor_get(x_98, 1); -lean_inc(x_99); -lean_dec(x_98); -x_100 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_99); -if (lean_obj_tag(x_95) == 0) -{ -lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; size_t x_110; size_t x_111; lean_object* x_112; -x_101 = lean_ctor_get(x_100, 1); -lean_inc(x_101); -lean_dec(x_100); -x_102 = lean_ctor_get(x_95, 1); -lean_inc(x_102); -x_103 = lean_ctor_get(x_95, 2); -lean_inc(x_103); -lean_dec(x_95); -x_104 = lean_ctor_get(x_90, 3); -lean_inc(x_104); -lean_dec(x_90); -x_105 = lean_array_get_size(x_91); -x_106 = l_Array_toSubarray___rarg(x_91, x_104, x_105); -x_107 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__2; -x_108 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_108, 0, x_106); -lean_ctor_set(x_108, 1, x_107); -x_109 = lean_array_get_size(x_102); -x_110 = lean_usize_of_nat(x_109); -lean_dec(x_109); -x_111 = 0; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_112 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__1(x_102, x_110, x_111, x_108, x_2, x_3, x_4, x_5, x_6, x_7, x_101); -if (lean_obj_tag(x_112) == 0) -{ -lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; -x_113 = lean_ctor_get(x_112, 0); -lean_inc(x_113); -x_114 = lean_ctor_get(x_112, 1); -lean_inc(x_114); -lean_dec(x_112); -x_115 = lean_ctor_get(x_113, 1); -lean_inc(x_115); -lean_dec(x_113); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -lean_inc(x_2); -x_116 = l_Lean_Compiler_LCNF_Simp_simp(x_103, x_2, x_3, x_4, x_5, x_6, x_7, x_114); -if (lean_obj_tag(x_116) == 0) -{ -lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; -x_117 = lean_ctor_get(x_116, 0); -lean_inc(x_117); -x_118 = lean_ctor_get(x_116, 1); -lean_inc(x_118); -lean_dec(x_116); -x_119 = l_Lean_Compiler_LCNF_eraseParams(x_102, x_4, x_5, x_6, x_7, x_118); -lean_dec(x_102); -x_120 = lean_ctor_get(x_119, 1); -lean_inc(x_120); -lean_dec(x_119); -x_121 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls(x_115, x_117, x_2, x_3, x_4, x_5, x_6, x_7, x_120); -lean_dec(x_115); -x_122 = lean_ctor_get(x_121, 0); -lean_inc(x_122); -x_123 = lean_ctor_get(x_121, 1); -lean_inc(x_123); -if (lean_is_exclusive(x_121)) { - lean_ctor_release(x_121, 0); - lean_ctor_release(x_121, 1); - x_124 = x_121; -} else { - lean_dec_ref(x_121); - x_124 = lean_box(0); -} -x_125 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_125, 0, x_122); -if (lean_is_scalar(x_124)) { - x_126 = lean_alloc_ctor(0, 2, 0); -} else { - x_126 = x_124; -} -lean_ctor_set(x_126, 0, x_125); -lean_ctor_set(x_126, 1, x_123); -return x_126; -} -else -{ -lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; -lean_dec(x_115); -lean_dec(x_102); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_127 = lean_ctor_get(x_116, 0); -lean_inc(x_127); -x_128 = lean_ctor_get(x_116, 1); -lean_inc(x_128); -if (lean_is_exclusive(x_116)) { - lean_ctor_release(x_116, 0); - lean_ctor_release(x_116, 1); - x_129 = x_116; -} else { - lean_dec_ref(x_116); - x_129 = lean_box(0); -} -if (lean_is_scalar(x_129)) { - x_130 = lean_alloc_ctor(1, 2, 0); -} else { - x_130 = x_129; -} -lean_ctor_set(x_130, 0, x_127); -lean_ctor_set(x_130, 1, x_128); -return x_130; -} -} -else -{ -lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; -lean_dec(x_103); -lean_dec(x_102); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_131 = lean_ctor_get(x_112, 0); -lean_inc(x_131); -x_132 = lean_ctor_get(x_112, 1); -lean_inc(x_132); -if (lean_is_exclusive(x_112)) { - lean_ctor_release(x_112, 0); - lean_ctor_release(x_112, 1); - x_133 = x_112; -} else { - lean_dec_ref(x_112); - x_133 = lean_box(0); -} -if (lean_is_scalar(x_133)) { - x_134 = lean_alloc_ctor(1, 2, 0); -} else { - x_134 = x_133; -} -lean_ctor_set(x_134, 0, x_131); -lean_ctor_set(x_134, 1, x_132); -return x_134; -} -} -else -{ -lean_object* x_135; lean_object* x_136; lean_object* x_137; -lean_dec(x_91); -lean_dec(x_90); -x_135 = lean_ctor_get(x_100, 1); -lean_inc(x_135); -lean_dec(x_100); -x_136 = lean_ctor_get(x_95, 0); -lean_inc(x_136); -lean_dec(x_95); -x_137 = l_Lean_Compiler_LCNF_Simp_simp(x_136, x_2, x_3, x_4, x_5, x_6, x_7, x_135); -if (lean_obj_tag(x_137) == 0) -{ -lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; -x_138 = lean_ctor_get(x_137, 0); -lean_inc(x_138); -x_139 = lean_ctor_get(x_137, 1); -lean_inc(x_139); -if (lean_is_exclusive(x_137)) { - lean_ctor_release(x_137, 0); - lean_ctor_release(x_137, 1); - x_140 = x_137; -} else { - lean_dec_ref(x_137); - x_140 = lean_box(0); -} -x_141 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_141, 0, x_138); -if (lean_is_scalar(x_140)) { - x_142 = lean_alloc_ctor(0, 2, 0); -} else { - x_142 = x_140; -} -lean_ctor_set(x_142, 0, x_141); -lean_ctor_set(x_142, 1, x_139); -return x_142; -} -else -{ -lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; -x_143 = lean_ctor_get(x_137, 0); -lean_inc(x_143); -x_144 = lean_ctor_get(x_137, 1); -lean_inc(x_144); -if (lean_is_exclusive(x_137)) { - lean_ctor_release(x_137, 0); - lean_ctor_release(x_137, 1); - x_145 = x_137; -} else { - lean_dec_ref(x_137); - x_145 = lean_box(0); -} -if (lean_is_scalar(x_145)) { - x_146 = lean_alloc_ctor(1, 2, 0); -} else { - x_146 = x_145; -} -lean_ctor_set(x_146, 0, x_143); -lean_ctor_set(x_146, 1, x_144); -return x_146; -} -} -} -} -} -else -{ -lean_object* x_147; lean_object* x_148; lean_object* x_149; uint8_t x_150; lean_object* x_151; -x_147 = lean_ctor_get(x_22, 0); -x_148 = lean_ctor_get(x_22, 1); -lean_inc(x_148); -lean_inc(x_147); -lean_dec(x_22); -x_149 = lean_ctor_get(x_147, 0); -lean_inc(x_149); -lean_dec(x_147); -x_150 = 1; -x_151 = l_Lean_Expr_constructorApp_x3f(x_149, x_20, x_150); -if (lean_obj_tag(x_151) == 0) -{ -lean_object* x_152; lean_object* x_153; -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_152 = lean_box(0); -x_153 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_153, 0, x_152); -lean_ctor_set(x_153, 1, x_148); -return x_153; -} -else -{ -lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; -x_154 = lean_ctor_get(x_151, 0); -lean_inc(x_154); -if (lean_is_exclusive(x_151)) { - lean_ctor_release(x_151, 0); - x_155 = x_151; -} else { - lean_dec_ref(x_151); - x_155 = lean_box(0); -} -x_156 = lean_ctor_get(x_154, 0); -lean_inc(x_156); -x_157 = lean_ctor_get(x_154, 1); -lean_inc(x_157); -lean_dec(x_154); -x_158 = lean_ctor_get(x_156, 0); -lean_inc(x_158); -x_159 = lean_ctor_get(x_158, 0); -lean_inc(x_159); -lean_dec(x_158); -x_160 = l_Lean_Compiler_LCNF_CasesCore_extractAlt_x21(x_1, x_159); -x_161 = lean_ctor_get(x_160, 0); -lean_inc(x_161); -x_162 = lean_ctor_get(x_160, 1); -lean_inc(x_162); -lean_dec(x_160); -x_163 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_163, 0, x_162); -x_164 = l_Lean_Compiler_LCNF_eraseCode(x_163, x_4, x_5, x_6, x_7, x_148); -x_165 = lean_ctor_get(x_164, 1); -lean_inc(x_165); -lean_dec(x_164); -x_166 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_165); -if (lean_obj_tag(x_161) == 0) -{ -lean_object* x_167; lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; size_t x_176; size_t x_177; lean_object* x_178; -x_167 = lean_ctor_get(x_166, 1); -lean_inc(x_167); -lean_dec(x_166); -x_168 = lean_ctor_get(x_161, 1); -lean_inc(x_168); -x_169 = lean_ctor_get(x_161, 2); -lean_inc(x_169); -lean_dec(x_161); -x_170 = lean_ctor_get(x_156, 3); -lean_inc(x_170); -lean_dec(x_156); -x_171 = lean_array_get_size(x_157); -x_172 = l_Array_toSubarray___rarg(x_157, x_170, x_171); -x_173 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__2; -x_174 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_174, 0, x_172); -lean_ctor_set(x_174, 1, x_173); -x_175 = lean_array_get_size(x_168); -x_176 = lean_usize_of_nat(x_175); -lean_dec(x_175); -x_177 = 0; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_178 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__1(x_168, x_176, x_177, x_174, x_2, x_3, x_4, x_5, x_6, x_7, x_167); -if (lean_obj_tag(x_178) == 0) -{ -lean_object* x_179; lean_object* x_180; lean_object* x_181; lean_object* x_182; -x_179 = lean_ctor_get(x_178, 0); -lean_inc(x_179); -x_180 = lean_ctor_get(x_178, 1); -lean_inc(x_180); -lean_dec(x_178); -x_181 = lean_ctor_get(x_179, 1); -lean_inc(x_181); -lean_dec(x_179); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -lean_inc(x_2); -x_182 = l_Lean_Compiler_LCNF_Simp_simp(x_169, x_2, x_3, x_4, x_5, x_6, x_7, x_180); -if (lean_obj_tag(x_182) == 0) -{ -lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; lean_object* x_191; lean_object* x_192; -x_183 = lean_ctor_get(x_182, 0); -lean_inc(x_183); -x_184 = lean_ctor_get(x_182, 1); -lean_inc(x_184); -lean_dec(x_182); -x_185 = l_Lean_Compiler_LCNF_eraseParams(x_168, x_4, x_5, x_6, x_7, x_184); -lean_dec(x_168); -x_186 = lean_ctor_get(x_185, 1); -lean_inc(x_186); -lean_dec(x_185); -x_187 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls(x_181, x_183, x_2, x_3, x_4, x_5, x_6, x_7, x_186); -lean_dec(x_181); -x_188 = lean_ctor_get(x_187, 0); -lean_inc(x_188); -x_189 = lean_ctor_get(x_187, 1); -lean_inc(x_189); -if (lean_is_exclusive(x_187)) { - lean_ctor_release(x_187, 0); - lean_ctor_release(x_187, 1); - x_190 = x_187; -} else { - lean_dec_ref(x_187); - x_190 = lean_box(0); -} -if (lean_is_scalar(x_155)) { - x_191 = lean_alloc_ctor(1, 1, 0); -} else { - x_191 = x_155; -} -lean_ctor_set(x_191, 0, x_188); -if (lean_is_scalar(x_190)) { - x_192 = lean_alloc_ctor(0, 2, 0); -} else { - x_192 = x_190; -} -lean_ctor_set(x_192, 0, x_191); -lean_ctor_set(x_192, 1, x_189); -return x_192; -} -else -{ -lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; -lean_dec(x_181); -lean_dec(x_168); -lean_dec(x_155); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_193 = lean_ctor_get(x_182, 0); -lean_inc(x_193); -x_194 = lean_ctor_get(x_182, 1); -lean_inc(x_194); -if (lean_is_exclusive(x_182)) { - lean_ctor_release(x_182, 0); - lean_ctor_release(x_182, 1); - x_195 = x_182; -} else { - lean_dec_ref(x_182); - x_195 = lean_box(0); -} -if (lean_is_scalar(x_195)) { - x_196 = lean_alloc_ctor(1, 2, 0); -} else { - x_196 = x_195; -} -lean_ctor_set(x_196, 0, x_193); -lean_ctor_set(x_196, 1, x_194); -return x_196; -} -} -else -{ -lean_object* x_197; lean_object* x_198; lean_object* x_199; lean_object* x_200; -lean_dec(x_169); -lean_dec(x_168); -lean_dec(x_155); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_197 = lean_ctor_get(x_178, 0); -lean_inc(x_197); -x_198 = lean_ctor_get(x_178, 1); -lean_inc(x_198); -if (lean_is_exclusive(x_178)) { - lean_ctor_release(x_178, 0); - lean_ctor_release(x_178, 1); - x_199 = x_178; -} else { - lean_dec_ref(x_178); - x_199 = lean_box(0); -} -if (lean_is_scalar(x_199)) { - x_200 = lean_alloc_ctor(1, 2, 0); -} else { - x_200 = x_199; -} -lean_ctor_set(x_200, 0, x_197); -lean_ctor_set(x_200, 1, x_198); -return x_200; -} -} -else -{ -lean_object* x_201; lean_object* x_202; lean_object* x_203; -lean_dec(x_157); -lean_dec(x_156); -x_201 = lean_ctor_get(x_166, 1); -lean_inc(x_201); -lean_dec(x_166); -x_202 = lean_ctor_get(x_161, 0); -lean_inc(x_202); -lean_dec(x_161); -x_203 = l_Lean_Compiler_LCNF_Simp_simp(x_202, x_2, x_3, x_4, x_5, x_6, x_7, x_201); -if (lean_obj_tag(x_203) == 0) -{ -lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_object* x_207; lean_object* x_208; -x_204 = lean_ctor_get(x_203, 0); -lean_inc(x_204); -x_205 = lean_ctor_get(x_203, 1); -lean_inc(x_205); -if (lean_is_exclusive(x_203)) { - lean_ctor_release(x_203, 0); - lean_ctor_release(x_203, 1); - x_206 = x_203; -} else { - lean_dec_ref(x_203); - x_206 = lean_box(0); -} -if (lean_is_scalar(x_155)) { - x_207 = lean_alloc_ctor(1, 1, 0); -} else { - x_207 = x_155; -} -lean_ctor_set(x_207, 0, x_204); -if (lean_is_scalar(x_206)) { - x_208 = lean_alloc_ctor(0, 2, 0); -} else { - x_208 = x_206; -} -lean_ctor_set(x_208, 0, x_207); -lean_ctor_set(x_208, 1, x_205); -return x_208; -} -else -{ -lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; -lean_dec(x_155); -x_209 = lean_ctor_get(x_203, 0); -lean_inc(x_209); -x_210 = lean_ctor_get(x_203, 1); -lean_inc(x_210); -if (lean_is_exclusive(x_203)) { - lean_ctor_release(x_203, 0); - lean_ctor_release(x_203, 1); - x_211 = x_203; -} else { - lean_dec_ref(x_203); - x_211 = lean_box(0); -} -if (lean_is_scalar(x_211)) { - x_212 = lean_alloc_ctor(1, 2, 0); -} else { - x_212 = x_211; -} -lean_ctor_set(x_212, 0, x_209); -lean_ctor_set(x_212, 1, x_210); -return x_212; -} -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__2(uint8_t 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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; -x_10 = lean_ctor_get(x_2, 2); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; +x_10 = lean_ctor_get(x_1, 2); lean_inc(x_10); x_11 = lean_st_ref_get(x_8, x_9); x_12 = lean_ctor_get(x_11, 1); lean_inc(x_12); lean_dec(x_11); -x_13 = lean_st_ref_get(x_4, x_12); +x_13 = lean_st_ref_get(x_3, x_12); x_14 = lean_ctor_get(x_13, 0); lean_inc(x_14); x_15 = lean_ctor_get(x_13, 1); @@ -10027,21 +9371,872 @@ lean_dec(x_13); x_16 = lean_ctor_get(x_14, 0); lean_inc(x_16); lean_dec(x_14); -x_17 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_16, x_1, x_10); -x_18 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateParamImp(x_2, x_17, x_5, x_6, x_7, x_8, x_15); -return x_18; +x_17 = 0; +x_18 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normFVarImp(x_16, x_10, x_17); +x_19 = l_Lean_Expr_fvar___override(x_18); +x_20 = l_Lean_Compiler_LCNF_Simp_findCtor(x_19, x_4, x_5, x_6, x_7, x_8, x_15); +x_21 = lean_ctor_get(x_20, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +x_23 = lean_st_ref_get(x_8, x_22); +x_24 = !lean_is_exclusive(x_23); +if (x_24 == 0) +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; lean_object* x_29; +x_25 = lean_ctor_get(x_23, 0); +x_26 = lean_ctor_get(x_23, 1); +x_27 = lean_ctor_get(x_25, 0); +lean_inc(x_27); +lean_dec(x_25); +x_28 = 1; +x_29 = l_Lean_Expr_constructorApp_x3f(x_27, x_21, x_28); +if (lean_obj_tag(x_29) == 0) +{ +lean_object* x_30; +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_30 = lean_box(0); +lean_ctor_set(x_23, 0, x_30); +return x_23; +} +else +{ +uint8_t x_31; +lean_free_object(x_23); +x_31 = !lean_is_exclusive(x_29); +if (x_31 == 0) +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_32 = lean_ctor_get(x_29, 0); +x_33 = lean_ctor_get(x_32, 0); +lean_inc(x_33); +x_34 = lean_ctor_get(x_32, 1); +lean_inc(x_34); +lean_dec(x_32); +x_35 = lean_ctor_get(x_33, 0); +lean_inc(x_35); +x_36 = lean_ctor_get(x_35, 0); +lean_inc(x_36); +lean_dec(x_35); +x_37 = l_Lean_Compiler_LCNF_CasesCore_extractAlt_x21(x_1, x_36); +x_38 = lean_ctor_get(x_37, 0); +lean_inc(x_38); +x_39 = lean_ctor_get(x_37, 1); +lean_inc(x_39); +lean_dec(x_37); +x_40 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_40, 0, x_39); +x_41 = l_Lean_Compiler_LCNF_eraseCode(x_40, x_5, x_6, x_7, x_8, x_26); +x_42 = lean_ctor_get(x_41, 1); +lean_inc(x_42); +lean_dec(x_41); +x_43 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_42); +if (lean_obj_tag(x_38) == 0) +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; size_t x_53; size_t x_54; lean_object* x_55; +x_44 = lean_ctor_get(x_43, 1); +lean_inc(x_44); +lean_dec(x_43); +x_45 = lean_ctor_get(x_38, 1); +lean_inc(x_45); +x_46 = lean_ctor_get(x_38, 2); +lean_inc(x_46); +lean_dec(x_38); +x_47 = lean_ctor_get(x_33, 3); +lean_inc(x_47); +lean_dec(x_33); +x_48 = lean_array_get_size(x_34); +x_49 = l_Array_toSubarray___rarg(x_34, x_47, x_48); +x_50 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__2; +x_51 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_51, 0, x_49); +lean_ctor_set(x_51, 1, x_50); +x_52 = lean_array_get_size(x_45); +x_53 = lean_usize_of_nat(x_52); +lean_dec(x_52); +x_54 = 0; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +x_55 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__1(x_45, x_53, x_54, x_51, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_44); +if (lean_obj_tag(x_55) == 0) +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_56 = lean_ctor_get(x_55, 0); +lean_inc(x_56); +x_57 = lean_ctor_get(x_55, 1); +lean_inc(x_57); +lean_dec(x_55); +x_58 = lean_ctor_get(x_56, 1); +lean_inc(x_58); +lean_dec(x_56); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +x_59 = l_Lean_Compiler_LCNF_Simp_simp(x_46, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_57); +if (lean_obj_tag(x_59) == 0) +{ +lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; +x_60 = lean_ctor_get(x_59, 0); +lean_inc(x_60); +x_61 = lean_ctor_get(x_59, 1); +lean_inc(x_61); +lean_dec(x_59); +x_62 = l_Lean_Compiler_LCNF_eraseParams(x_45, x_5, x_6, x_7, x_8, x_61); +lean_dec(x_45); +x_63 = lean_ctor_get(x_62, 1); +lean_inc(x_63); +lean_dec(x_62); +x_64 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls(x_58, x_60, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_63); +lean_dec(x_58); +x_65 = !lean_is_exclusive(x_64); +if (x_65 == 0) +{ +lean_object* x_66; +x_66 = lean_ctor_get(x_64, 0); +lean_ctor_set(x_29, 0, x_66); +lean_ctor_set(x_64, 0, x_29); +return x_64; +} +else +{ +lean_object* x_67; lean_object* x_68; lean_object* x_69; +x_67 = lean_ctor_get(x_64, 0); +x_68 = lean_ctor_get(x_64, 1); +lean_inc(x_68); +lean_inc(x_67); +lean_dec(x_64); +lean_ctor_set(x_29, 0, x_67); +x_69 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_69, 0, x_29); +lean_ctor_set(x_69, 1, x_68); +return x_69; } } -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__4(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) { +else +{ +uint8_t x_70; +lean_dec(x_58); +lean_dec(x_45); +lean_free_object(x_29); +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); +x_70 = !lean_is_exclusive(x_59); +if (x_70 == 0) +{ +return x_59; +} +else +{ +lean_object* x_71; lean_object* x_72; lean_object* x_73; +x_71 = lean_ctor_get(x_59, 0); +x_72 = lean_ctor_get(x_59, 1); +lean_inc(x_72); +lean_inc(x_71); +lean_dec(x_59); +x_73 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_73, 0, x_71); +lean_ctor_set(x_73, 1, x_72); +return x_73; +} +} +} +else +{ +uint8_t x_74; +lean_dec(x_46); +lean_dec(x_45); +lean_free_object(x_29); +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); +x_74 = !lean_is_exclusive(x_55); +if (x_74 == 0) +{ +return x_55; +} +else +{ +lean_object* x_75; lean_object* x_76; lean_object* x_77; +x_75 = lean_ctor_get(x_55, 0); +x_76 = lean_ctor_get(x_55, 1); +lean_inc(x_76); +lean_inc(x_75); +lean_dec(x_55); +x_77 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_77, 0, x_75); +lean_ctor_set(x_77, 1, x_76); +return x_77; +} +} +} +else +{ +lean_object* x_78; lean_object* x_79; lean_object* x_80; +lean_dec(x_34); +lean_dec(x_33); +x_78 = lean_ctor_get(x_43, 1); +lean_inc(x_78); +lean_dec(x_43); +x_79 = lean_ctor_get(x_38, 0); +lean_inc(x_79); +lean_dec(x_38); +x_80 = l_Lean_Compiler_LCNF_Simp_simp(x_79, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_78); +if (lean_obj_tag(x_80) == 0) +{ +uint8_t x_81; +x_81 = !lean_is_exclusive(x_80); +if (x_81 == 0) +{ +lean_object* x_82; +x_82 = lean_ctor_get(x_80, 0); +lean_ctor_set(x_29, 0, x_82); +lean_ctor_set(x_80, 0, x_29); +return x_80; +} +else +{ +lean_object* x_83; lean_object* x_84; lean_object* x_85; +x_83 = lean_ctor_get(x_80, 0); +x_84 = lean_ctor_get(x_80, 1); +lean_inc(x_84); +lean_inc(x_83); +lean_dec(x_80); +lean_ctor_set(x_29, 0, x_83); +x_85 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_85, 0, x_29); +lean_ctor_set(x_85, 1, x_84); +return x_85; +} +} +else +{ +uint8_t x_86; +lean_free_object(x_29); +x_86 = !lean_is_exclusive(x_80); +if (x_86 == 0) +{ +return x_80; +} +else +{ +lean_object* x_87; lean_object* x_88; lean_object* x_89; +x_87 = lean_ctor_get(x_80, 0); +x_88 = lean_ctor_get(x_80, 1); +lean_inc(x_88); +lean_inc(x_87); +lean_dec(x_80); +x_89 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_89, 0, x_87); +lean_ctor_set(x_89, 1, x_88); +return x_89; +} +} +} +} +else +{ +lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; +x_90 = lean_ctor_get(x_29, 0); +lean_inc(x_90); +lean_dec(x_29); +x_91 = lean_ctor_get(x_90, 0); +lean_inc(x_91); +x_92 = lean_ctor_get(x_90, 1); +lean_inc(x_92); +lean_dec(x_90); +x_93 = lean_ctor_get(x_91, 0); +lean_inc(x_93); +x_94 = lean_ctor_get(x_93, 0); +lean_inc(x_94); +lean_dec(x_93); +x_95 = l_Lean_Compiler_LCNF_CasesCore_extractAlt_x21(x_1, x_94); +x_96 = lean_ctor_get(x_95, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_95, 1); +lean_inc(x_97); +lean_dec(x_95); +x_98 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_98, 0, x_97); +x_99 = l_Lean_Compiler_LCNF_eraseCode(x_98, x_5, x_6, x_7, x_8, x_26); +x_100 = lean_ctor_get(x_99, 1); +lean_inc(x_100); +lean_dec(x_99); +x_101 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_100); +if (lean_obj_tag(x_96) == 0) +{ +lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; size_t x_111; size_t x_112; lean_object* x_113; +x_102 = lean_ctor_get(x_101, 1); +lean_inc(x_102); +lean_dec(x_101); +x_103 = lean_ctor_get(x_96, 1); +lean_inc(x_103); +x_104 = lean_ctor_get(x_96, 2); +lean_inc(x_104); +lean_dec(x_96); +x_105 = lean_ctor_get(x_91, 3); +lean_inc(x_105); +lean_dec(x_91); +x_106 = lean_array_get_size(x_92); +x_107 = l_Array_toSubarray___rarg(x_92, x_105, x_106); +x_108 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__2; +x_109 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_109, 0, x_107); +lean_ctor_set(x_109, 1, x_108); +x_110 = lean_array_get_size(x_103); +x_111 = lean_usize_of_nat(x_110); +lean_dec(x_110); +x_112 = 0; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +x_113 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__1(x_103, x_111, x_112, x_109, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_102); +if (lean_obj_tag(x_113) == 0) +{ +lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; +x_114 = lean_ctor_get(x_113, 0); +lean_inc(x_114); +x_115 = lean_ctor_get(x_113, 1); +lean_inc(x_115); +lean_dec(x_113); +x_116 = lean_ctor_get(x_114, 1); +lean_inc(x_116); +lean_dec(x_114); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +x_117 = l_Lean_Compiler_LCNF_Simp_simp(x_104, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_115); +if (lean_obj_tag(x_117) == 0) +{ +lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; +x_118 = lean_ctor_get(x_117, 0); +lean_inc(x_118); +x_119 = lean_ctor_get(x_117, 1); +lean_inc(x_119); +lean_dec(x_117); +x_120 = l_Lean_Compiler_LCNF_eraseParams(x_103, x_5, x_6, x_7, x_8, x_119); +lean_dec(x_103); +x_121 = lean_ctor_get(x_120, 1); +lean_inc(x_121); +lean_dec(x_120); +x_122 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls(x_116, x_118, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_121); +lean_dec(x_116); +x_123 = lean_ctor_get(x_122, 0); +lean_inc(x_123); +x_124 = lean_ctor_get(x_122, 1); +lean_inc(x_124); +if (lean_is_exclusive(x_122)) { + lean_ctor_release(x_122, 0); + lean_ctor_release(x_122, 1); + x_125 = x_122; +} else { + lean_dec_ref(x_122); + x_125 = lean_box(0); +} +x_126 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_126, 0, x_123); +if (lean_is_scalar(x_125)) { + x_127 = lean_alloc_ctor(0, 2, 0); +} else { + x_127 = x_125; +} +lean_ctor_set(x_127, 0, x_126); +lean_ctor_set(x_127, 1, x_124); +return x_127; +} +else +{ +lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; +lean_dec(x_116); +lean_dec(x_103); +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); +x_128 = lean_ctor_get(x_117, 0); +lean_inc(x_128); +x_129 = lean_ctor_get(x_117, 1); +lean_inc(x_129); +if (lean_is_exclusive(x_117)) { + lean_ctor_release(x_117, 0); + lean_ctor_release(x_117, 1); + x_130 = x_117; +} else { + lean_dec_ref(x_117); + x_130 = lean_box(0); +} +if (lean_is_scalar(x_130)) { + x_131 = lean_alloc_ctor(1, 2, 0); +} else { + x_131 = x_130; +} +lean_ctor_set(x_131, 0, x_128); +lean_ctor_set(x_131, 1, x_129); +return x_131; +} +} +else +{ +lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; +lean_dec(x_104); +lean_dec(x_103); +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); +x_132 = lean_ctor_get(x_113, 0); +lean_inc(x_132); +x_133 = lean_ctor_get(x_113, 1); +lean_inc(x_133); +if (lean_is_exclusive(x_113)) { + lean_ctor_release(x_113, 0); + lean_ctor_release(x_113, 1); + x_134 = x_113; +} else { + lean_dec_ref(x_113); + x_134 = lean_box(0); +} +if (lean_is_scalar(x_134)) { + x_135 = lean_alloc_ctor(1, 2, 0); +} else { + x_135 = x_134; +} +lean_ctor_set(x_135, 0, x_132); +lean_ctor_set(x_135, 1, x_133); +return x_135; +} +} +else +{ +lean_object* x_136; lean_object* x_137; lean_object* x_138; +lean_dec(x_92); +lean_dec(x_91); +x_136 = lean_ctor_get(x_101, 1); +lean_inc(x_136); +lean_dec(x_101); +x_137 = lean_ctor_get(x_96, 0); +lean_inc(x_137); +lean_dec(x_96); +x_138 = l_Lean_Compiler_LCNF_Simp_simp(x_137, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_136); +if (lean_obj_tag(x_138) == 0) +{ +lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; +x_139 = lean_ctor_get(x_138, 0); +lean_inc(x_139); +x_140 = lean_ctor_get(x_138, 1); +lean_inc(x_140); +if (lean_is_exclusive(x_138)) { + lean_ctor_release(x_138, 0); + lean_ctor_release(x_138, 1); + x_141 = x_138; +} else { + lean_dec_ref(x_138); + x_141 = lean_box(0); +} +x_142 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_142, 0, x_139); +if (lean_is_scalar(x_141)) { + x_143 = lean_alloc_ctor(0, 2, 0); +} else { + x_143 = x_141; +} +lean_ctor_set(x_143, 0, x_142); +lean_ctor_set(x_143, 1, x_140); +return x_143; +} +else +{ +lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; +x_144 = lean_ctor_get(x_138, 0); +lean_inc(x_144); +x_145 = lean_ctor_get(x_138, 1); +lean_inc(x_145); +if (lean_is_exclusive(x_138)) { + lean_ctor_release(x_138, 0); + lean_ctor_release(x_138, 1); + x_146 = x_138; +} else { + lean_dec_ref(x_138); + x_146 = lean_box(0); +} +if (lean_is_scalar(x_146)) { + x_147 = lean_alloc_ctor(1, 2, 0); +} else { + x_147 = x_146; +} +lean_ctor_set(x_147, 0, x_144); +lean_ctor_set(x_147, 1, x_145); +return x_147; +} +} +} +} +} +else +{ +lean_object* x_148; lean_object* x_149; lean_object* x_150; uint8_t x_151; lean_object* x_152; +x_148 = lean_ctor_get(x_23, 0); +x_149 = lean_ctor_get(x_23, 1); +lean_inc(x_149); +lean_inc(x_148); +lean_dec(x_23); +x_150 = lean_ctor_get(x_148, 0); +lean_inc(x_150); +lean_dec(x_148); +x_151 = 1; +x_152 = l_Lean_Expr_constructorApp_x3f(x_150, x_21, x_151); +if (lean_obj_tag(x_152) == 0) +{ +lean_object* x_153; lean_object* x_154; +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_153 = lean_box(0); +x_154 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_154, 0, x_153); +lean_ctor_set(x_154, 1, x_149); +return x_154; +} +else +{ +lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; +x_155 = lean_ctor_get(x_152, 0); +lean_inc(x_155); +if (lean_is_exclusive(x_152)) { + lean_ctor_release(x_152, 0); + x_156 = x_152; +} else { + lean_dec_ref(x_152); + x_156 = lean_box(0); +} +x_157 = lean_ctor_get(x_155, 0); +lean_inc(x_157); +x_158 = lean_ctor_get(x_155, 1); +lean_inc(x_158); +lean_dec(x_155); +x_159 = lean_ctor_get(x_157, 0); +lean_inc(x_159); +x_160 = lean_ctor_get(x_159, 0); +lean_inc(x_160); +lean_dec(x_159); +x_161 = l_Lean_Compiler_LCNF_CasesCore_extractAlt_x21(x_1, x_160); +x_162 = lean_ctor_get(x_161, 0); +lean_inc(x_162); +x_163 = lean_ctor_get(x_161, 1); +lean_inc(x_163); +lean_dec(x_161); +x_164 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_164, 0, x_163); +x_165 = l_Lean_Compiler_LCNF_eraseCode(x_164, x_5, x_6, x_7, x_8, x_149); +x_166 = lean_ctor_get(x_165, 1); +lean_inc(x_166); +lean_dec(x_165); +x_167 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_166); +if (lean_obj_tag(x_162) == 0) +{ +lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; size_t x_177; size_t x_178; lean_object* x_179; +x_168 = lean_ctor_get(x_167, 1); +lean_inc(x_168); +lean_dec(x_167); +x_169 = lean_ctor_get(x_162, 1); +lean_inc(x_169); +x_170 = lean_ctor_get(x_162, 2); +lean_inc(x_170); +lean_dec(x_162); +x_171 = lean_ctor_get(x_157, 3); +lean_inc(x_171); +lean_dec(x_157); +x_172 = lean_array_get_size(x_158); +x_173 = l_Array_toSubarray___rarg(x_158, x_171, x_172); +x_174 = l_Lean_Compiler_LCNF_Simp_specializePartialApp___closed__2; +x_175 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_175, 0, x_173); +lean_ctor_set(x_175, 1, x_174); +x_176 = lean_array_get_size(x_169); +x_177 = lean_usize_of_nat(x_176); +lean_dec(x_176); +x_178 = 0; +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +x_179 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__1(x_169, x_177, x_178, x_175, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_168); +if (lean_obj_tag(x_179) == 0) +{ +lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; +x_180 = lean_ctor_get(x_179, 0); +lean_inc(x_180); +x_181 = lean_ctor_get(x_179, 1); +lean_inc(x_181); +lean_dec(x_179); +x_182 = lean_ctor_get(x_180, 1); +lean_inc(x_182); +lean_dec(x_180); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +x_183 = l_Lean_Compiler_LCNF_Simp_simp(x_170, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_181); +if (lean_obj_tag(x_183) == 0) +{ +lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; lean_object* x_191; lean_object* x_192; lean_object* x_193; +x_184 = lean_ctor_get(x_183, 0); +lean_inc(x_184); +x_185 = lean_ctor_get(x_183, 1); +lean_inc(x_185); +lean_dec(x_183); +x_186 = l_Lean_Compiler_LCNF_eraseParams(x_169, x_5, x_6, x_7, x_8, x_185); +lean_dec(x_169); +x_187 = lean_ctor_get(x_186, 1); +lean_inc(x_187); +lean_dec(x_186); +x_188 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls(x_182, x_184, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_187); +lean_dec(x_182); +x_189 = lean_ctor_get(x_188, 0); +lean_inc(x_189); +x_190 = lean_ctor_get(x_188, 1); +lean_inc(x_190); +if (lean_is_exclusive(x_188)) { + lean_ctor_release(x_188, 0); + lean_ctor_release(x_188, 1); + x_191 = x_188; +} else { + lean_dec_ref(x_188); + x_191 = lean_box(0); +} +if (lean_is_scalar(x_156)) { + x_192 = lean_alloc_ctor(1, 1, 0); +} else { + x_192 = x_156; +} +lean_ctor_set(x_192, 0, x_189); +if (lean_is_scalar(x_191)) { + x_193 = lean_alloc_ctor(0, 2, 0); +} else { + x_193 = x_191; +} +lean_ctor_set(x_193, 0, x_192); +lean_ctor_set(x_193, 1, x_190); +return x_193; +} +else +{ +lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; +lean_dec(x_182); +lean_dec(x_169); +lean_dec(x_156); +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); +x_194 = lean_ctor_get(x_183, 0); +lean_inc(x_194); +x_195 = lean_ctor_get(x_183, 1); +lean_inc(x_195); +if (lean_is_exclusive(x_183)) { + lean_ctor_release(x_183, 0); + lean_ctor_release(x_183, 1); + x_196 = x_183; +} else { + lean_dec_ref(x_183); + x_196 = lean_box(0); +} +if (lean_is_scalar(x_196)) { + x_197 = lean_alloc_ctor(1, 2, 0); +} else { + x_197 = x_196; +} +lean_ctor_set(x_197, 0, x_194); +lean_ctor_set(x_197, 1, x_195); +return x_197; +} +} +else +{ +lean_object* x_198; lean_object* x_199; lean_object* x_200; lean_object* x_201; +lean_dec(x_170); +lean_dec(x_169); +lean_dec(x_156); +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); +x_198 = lean_ctor_get(x_179, 0); +lean_inc(x_198); +x_199 = lean_ctor_get(x_179, 1); +lean_inc(x_199); +if (lean_is_exclusive(x_179)) { + lean_ctor_release(x_179, 0); + lean_ctor_release(x_179, 1); + x_200 = x_179; +} else { + lean_dec_ref(x_179); + x_200 = lean_box(0); +} +if (lean_is_scalar(x_200)) { + x_201 = lean_alloc_ctor(1, 2, 0); +} else { + x_201 = x_200; +} +lean_ctor_set(x_201, 0, x_198); +lean_ctor_set(x_201, 1, x_199); +return x_201; +} +} +else +{ +lean_object* x_202; lean_object* x_203; lean_object* x_204; +lean_dec(x_158); +lean_dec(x_157); +x_202 = lean_ctor_get(x_167, 1); +lean_inc(x_202); +lean_dec(x_167); +x_203 = lean_ctor_get(x_162, 0); +lean_inc(x_203); +lean_dec(x_162); +x_204 = l_Lean_Compiler_LCNF_Simp_simp(x_203, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_202); +if (lean_obj_tag(x_204) == 0) +{ +lean_object* x_205; lean_object* x_206; lean_object* x_207; lean_object* x_208; lean_object* x_209; +x_205 = lean_ctor_get(x_204, 0); +lean_inc(x_205); +x_206 = lean_ctor_get(x_204, 1); +lean_inc(x_206); +if (lean_is_exclusive(x_204)) { + lean_ctor_release(x_204, 0); + lean_ctor_release(x_204, 1); + x_207 = x_204; +} else { + lean_dec_ref(x_204); + x_207 = lean_box(0); +} +if (lean_is_scalar(x_156)) { + x_208 = lean_alloc_ctor(1, 1, 0); +} else { + x_208 = x_156; +} +lean_ctor_set(x_208, 0, x_205); +if (lean_is_scalar(x_207)) { + x_209 = lean_alloc_ctor(0, 2, 0); +} else { + x_209 = x_207; +} +lean_ctor_set(x_209, 0, x_208); +lean_ctor_set(x_209, 1, x_206); +return x_209; +} +else +{ +lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; +lean_dec(x_156); +x_210 = lean_ctor_get(x_204, 0); +lean_inc(x_210); +x_211 = lean_ctor_get(x_204, 1); +lean_inc(x_211); +if (lean_is_exclusive(x_204)) { + lean_ctor_release(x_204, 0); + lean_ctor_release(x_204, 1); + x_212 = x_204; +} else { + lean_dec_ref(x_204); + x_212 = lean_box(0); +} +if (lean_is_scalar(x_212)) { + x_213 = lean_alloc_ctor(1, 2, 0); +} else { + x_213 = x_212; +} +lean_ctor_set(x_213, 0, x_210); +lean_ctor_set(x_213, 1, x_211); +return x_213; +} +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__2(uint8_t 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; uint8_t x_12; -x_11 = lean_array_get_size(x_3); -x_12 = lean_nat_dec_lt(x_2, x_11); -lean_dec(x_11); -if (x_12 == 0) +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; +x_11 = lean_ctor_get(x_2, 2); +lean_inc(x_11); +x_12 = lean_st_ref_get(x_9, x_10); +x_13 = lean_ctor_get(x_12, 1); +lean_inc(x_13); +lean_dec(x_12); +x_14 = lean_st_ref_get(x_4, x_13); +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +x_16 = lean_ctor_get(x_14, 1); +lean_inc(x_16); +lean_dec(x_14); +x_17 = lean_ctor_get(x_15, 0); +lean_inc(x_17); +lean_dec(x_15); +x_18 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_17, x_1, x_11); +x_19 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateParamImp(x_2, x_18, x_6, x_7, x_8, x_9, x_16); +return x_19; +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__4(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) { +_start: { -lean_object* x_13; +lean_object* x_12; uint8_t x_13; +x_12 = lean_array_get_size(x_3); +x_13 = lean_nat_dec_lt(x_2, x_12); +lean_dec(x_12); +if (x_13 == 0) +{ +lean_object* x_14; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -10050,64 +10245,66 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_3); -lean_ctor_set(x_13, 1, x_10); -return x_13; +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_11); +return x_14; } else { -lean_object* x_14; lean_object* x_15; -x_14 = lean_array_fget(x_3, x_2); +lean_object* x_15; lean_object* x_16; +x_15 = lean_array_fget(x_3, x_2); lean_inc(x_1); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -lean_inc(x_14); -x_15 = lean_apply_8(x_1, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -if (lean_obj_tag(x_15) == 0) +lean_inc(x_15); +x_16 = lean_apply_9(x_1, x_15, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +if (lean_obj_tag(x_16) == 0) { -lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; uint8_t x_20; -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); +lean_object* x_17; lean_object* x_18; size_t x_19; size_t x_20; uint8_t x_21; +x_17 = lean_ctor_get(x_16, 0); lean_inc(x_17); -lean_dec(x_15); -x_18 = lean_ptr_addr(x_14); -lean_dec(x_14); -x_19 = lean_ptr_addr(x_16); -x_20 = lean_usize_dec_eq(x_18, x_19); -if (x_20 == 0) -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_unsigned_to_nat(1u); -x_22 = lean_nat_add(x_2, x_21); -x_23 = lean_array_fset(x_3, x_2, x_16); -lean_dec(x_2); -x_2 = x_22; -x_3 = x_23; -x_10 = x_17; -goto _start; -} -else -{ -lean_object* x_25; lean_object* x_26; +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); lean_dec(x_16); -x_25 = lean_unsigned_to_nat(1u); -x_26 = lean_nat_add(x_2, x_25); +x_19 = lean_ptr_addr(x_15); +lean_dec(x_15); +x_20 = lean_ptr_addr(x_17); +x_21 = lean_usize_dec_eq(x_19, x_20); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_unsigned_to_nat(1u); +x_23 = lean_nat_add(x_2, x_22); +x_24 = lean_array_fset(x_3, x_2, x_17); lean_dec(x_2); -x_2 = x_26; -x_10 = x_17; +x_2 = x_23; +x_3 = x_24; +x_11 = x_18; +goto _start; +} +else +{ +lean_object* x_26; lean_object* x_27; +lean_dec(x_17); +x_26 = lean_unsigned_to_nat(1u); +x_27 = lean_nat_add(x_2, x_26); +lean_dec(x_2); +x_2 = x_27; +x_11 = x_18; goto _start; } } else { -uint8_t x_28; -lean_dec(x_14); +uint8_t x_29; +lean_dec(x_15); +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -10117,19 +10314,132 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_28 = !lean_is_exclusive(x_15); +x_29 = !lean_is_exclusive(x_16); +if (x_29 == 0) +{ +return x_16; +} +else +{ +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; +} +} +} +} +} +LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__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, lean_object* x_10) { +_start: +{ +lean_object* x_11; lean_object* x_12; +x_11 = lean_unsigned_to_nat(0u); +x_12 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__4(x_2, x_11, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__1(uint8_t 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; lean_object* x_12; lean_object* x_13; +x_11 = lean_box(x_1); +x_12 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__2___boxed), 10, 1); +lean_closure_set(x_12, 0, x_11); +x_13 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__3(x_2, x_12, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_13; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpFunDecl(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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_10 = lean_ctor_get(x_1, 3); +lean_inc(x_10); +x_11 = lean_st_ref_get(x_8, x_9); +x_12 = lean_ctor_get(x_11, 1); +lean_inc(x_12); +lean_dec(x_11); +x_13 = lean_st_ref_get(x_3, x_12); +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 = lean_ctor_get(x_14, 0); +lean_inc(x_16); +lean_dec(x_14); +x_17 = 0; +x_18 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_16, x_17, x_10); +x_19 = lean_ctor_get(x_1, 2); +lean_inc(x_19); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +lean_inc(x_2); +x_20 = l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__1(x_17, x_19, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_15); +if (lean_obj_tag(x_20) == 0) +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_21 = lean_ctor_get(x_20, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_20, 1); +lean_inc(x_22); +lean_dec(x_20); +x_23 = lean_ctor_get(x_1, 4); +lean_inc(x_23); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +x_24 = l_Lean_Compiler_LCNF_Simp_simp(x_23, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_22); +if (lean_obj_tag(x_24) == 0) +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_24, 0); +lean_inc(x_25); +x_26 = lean_ctor_get(x_24, 1); +lean_inc(x_26); +lean_dec(x_24); +x_27 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_1, x_18, x_21, x_25, x_5, x_6, x_7, x_8, x_26); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +return x_27; +} +else +{ +uint8_t x_28; +lean_dec(x_21); +lean_dec(x_18); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_28 = !lean_is_exclusive(x_24); if (x_28 == 0) { -return x_15; +return x_24; } else { lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_29 = lean_ctor_get(x_15, 0); -x_30 = lean_ctor_get(x_15, 1); +x_29 = lean_ctor_get(x_24, 0); +x_30 = lean_ctor_get(x_24, 1); lean_inc(x_30); lean_inc(x_29); -lean_dec(x_15); +lean_dec(x_24); x_31 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_31, 0, x_29); lean_ctor_set(x_31, 1, x_30); @@ -10137,122 +10447,11 @@ return x_31; } } } -} -} -LEAN_EXPORT lean_object* l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__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_10; lean_object* x_11; -x_10 = lean_unsigned_to_nat(0u); -x_11 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp_go___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__4(x_2, x_10, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_11; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__1(uint8_t 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_10; lean_object* x_11; lean_object* x_12; -x_10 = lean_box(x_1); -x_11 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__2___boxed), 9, 1); -lean_closure_set(x_11, 0, x_10); -x_12 = l___private_Init_Data_Array_BasicAux_0__mapMonoMImp___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__3(x_2, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_12; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpFunDecl(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_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_9 = lean_ctor_get(x_1, 3); -lean_inc(x_9); -x_10 = lean_st_ref_get(x_7, x_8); -x_11 = lean_ctor_get(x_10, 1); -lean_inc(x_11); -lean_dec(x_10); -x_12 = lean_st_ref_get(x_3, x_11); -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -x_14 = lean_ctor_get(x_12, 1); -lean_inc(x_14); -lean_dec(x_12); -x_15 = lean_ctor_get(x_13, 0); -lean_inc(x_15); -lean_dec(x_13); -x_16 = 0; -x_17 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_15, x_16, x_9); -x_18 = lean_ctor_get(x_1, 2); -lean_inc(x_18); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -lean_inc(x_2); -x_19 = l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__1(x_16, x_18, x_2, x_3, x_4, x_5, x_6, x_7, x_14); -if (lean_obj_tag(x_19) == 0) -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_19, 1); -lean_inc(x_21); -lean_dec(x_19); -x_22 = lean_ctor_get(x_1, 4); -lean_inc(x_22); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_23 = l_Lean_Compiler_LCNF_Simp_simp(x_22, x_2, x_3, x_4, x_5, x_6, x_7, x_21); -if (lean_obj_tag(x_23) == 0) -{ -lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_24 = lean_ctor_get(x_23, 0); -lean_inc(x_24); -x_25 = lean_ctor_get(x_23, 1); -lean_inc(x_25); -lean_dec(x_23); -x_26 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_1, x_17, x_20, x_24, x_4, x_5, x_6, x_7, x_25); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -return x_26; -} else { -uint8_t x_27; -lean_dec(x_20); -lean_dec(x_17); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_27 = !lean_is_exclusive(x_23); -if (x_27 == 0) -{ -return x_23; -} -else -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; -x_28 = lean_ctor_get(x_23, 0); -x_29 = lean_ctor_get(x_23, 1); -lean_inc(x_29); -lean_inc(x_28); -lean_dec(x_23); -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; -} -} -} -else -{ -uint8_t x_31; -lean_dec(x_17); +uint8_t x_32; +lean_dec(x_18); +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -10260,23 +10459,23 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_31 = !lean_is_exclusive(x_19); -if (x_31 == 0) +x_32 = !lean_is_exclusive(x_20); +if (x_32 == 0) { -return x_19; +return x_20; } else { -lean_object* x_32; lean_object* x_33; lean_object* x_34; -x_32 = lean_ctor_get(x_19, 0); -x_33 = lean_ctor_get(x_19, 1); +lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_33 = lean_ctor_get(x_20, 0); +x_34 = lean_ctor_get(x_20, 1); +lean_inc(x_34); lean_inc(x_33); -lean_inc(x_32); -lean_dec(x_19); -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_20); +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; } } } @@ -10294,63 +10493,67 @@ lean_dec(x_1); return x_9; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___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) { _start: { -lean_object* x_11; -x_11 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_object* x_12; +x_12 = l_Lean_Compiler_LCNF_Simp_inlineApp_x3f___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); -return x_11; +return x_12; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___spec__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_EXPORT lean_object* l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___spec__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) { _start: { -uint8_t x_10; lean_object* x_11; -x_10 = lean_unbox(x_1); +uint8_t x_11; lean_object* x_12; +x_11 = lean_unbox(x_1); lean_dec(x_1); -x_11 = l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___spec__1(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_12 = l_Lean_Compiler_LCNF_normLetDecl___at_Lean_Compiler_LCNF_Simp_simp___spec__1(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -return x_11; +return x_12; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Simp_simp___spec__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_EXPORT lean_object* l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Simp_simp___spec__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) { _start: { -uint8_t x_10; lean_object* x_11; -x_10 = lean_unbox(x_1); +uint8_t x_11; lean_object* x_12; +x_11 = lean_unbox(x_1); lean_dec(x_1); -x_11 = l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Simp_simp___spec__3(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_12 = l_Lean_Compiler_LCNF_normExpr___at_Lean_Compiler_LCNF_Simp_simp___spec__3(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -return x_11; +return x_12; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__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_EXPORT lean_object* l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__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) { _start: { -uint8_t x_10; lean_object* x_11; -x_10 = lean_unbox(x_1); +uint8_t x_11; lean_object* x_12; +x_11 = lean_unbox(x_1); lean_dec(x_1); -x_11 = l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__2(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_11; +x_12 = l_Lean_Compiler_LCNF_normExprs___at_Lean_Compiler_LCNF_Simp_simp___spec__2(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_12; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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_object* x_13) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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_object* x_13, lean_object* x_14) { _start: { -lean_object* x_14; -x_14 = l_Lean_Compiler_LCNF_Simp_simp___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +lean_object* x_15; +x_15 = l_Lean_Compiler_LCNF_Simp_simp___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14); +lean_dec(x_13); lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); @@ -10360,33 +10563,34 @@ lean_dec(x_7); lean_dec(x_6); lean_dec(x_4); lean_dec(x_1); -return x_14; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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, lean_object* x_13) { -_start: -{ -uint8_t x_14; lean_object* x_15; -x_14 = lean_unbox(x_4); -lean_dec(x_4); -x_15 = l_Lean_Compiler_LCNF_Simp_simp___lambda__3(x_1, x_2, x_3, x_14, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); return x_15; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__4___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___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, lean_object* x_13, lean_object* x_14) { _start: { -lean_object* x_11; -x_11 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +uint8_t x_15; lean_object* x_16; +x_15 = lean_unbox(x_4); +lean_dec(x_4); +x_16 = l_Lean_Compiler_LCNF_Simp_simp___lambda__3(x_1, x_2, x_3, x_15, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14); +return x_16; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__4___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) { +_start: +{ +lean_object* x_12; +x_12 = l_Lean_Compiler_LCNF_Simp_simp___lambda__4(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); lean_dec(x_3); -return x_11; +return x_12; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__5___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_object* x_13) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__5___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_object* x_13, lean_object* x_14) { _start: { -lean_object* x_14; -x_14 = l_Lean_Compiler_LCNF_Simp_simp___lambda__5(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +lean_object* x_15; +x_15 = l_Lean_Compiler_LCNF_Simp_simp___lambda__5(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14); +lean_dec(x_13); lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); @@ -10396,72 +10600,73 @@ lean_dec(x_7); lean_dec(x_6); lean_dec(x_4); lean_dec(x_1); -return x_14; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__6___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_object* x_13) { -_start: -{ -uint8_t x_14; lean_object* x_15; -x_14 = lean_unbox(x_4); -lean_dec(x_4); -x_15 = l_Lean_Compiler_LCNF_Simp_simp___lambda__6(x_1, x_2, x_3, x_14, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); return x_15; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__7___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__6___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_object* x_13, lean_object* x_14) { _start: { -lean_object* x_10; -x_10 = l_Lean_Compiler_LCNF_Simp_simp___lambda__7(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -lean_dec(x_8); +uint8_t x_15; lean_object* x_16; +x_15 = lean_unbox(x_4); +lean_dec(x_4); +x_16 = l_Lean_Compiler_LCNF_Simp_simp___lambda__6(x_1, x_2, x_3, x_15, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14); +return x_16; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simp___lambda__7___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) { +_start: +{ +lean_object* x_9; +x_9 = l_Lean_Compiler_LCNF_Simp_simp___lambda__7(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -return x_10; +return x_9; } } -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__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_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__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) { _start: { -size_t x_12; size_t x_13; lean_object* x_14; -x_12 = lean_unbox_usize(x_2); +size_t x_13; size_t x_14; lean_object* x_15; +x_13 = lean_unbox_usize(x_2); lean_dec(x_2); -x_13 = lean_unbox_usize(x_3); +x_14 = lean_unbox_usize(x_3); lean_dec(x_3); -x_14 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__1(x_1, x_12, x_13, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +x_15 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_simpCasesOnCtor_x3f___spec__1(x_1, x_13, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_1); -return x_14; +return x_15; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__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_EXPORT lean_object* l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__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) { _start: { -uint8_t x_10; lean_object* x_11; -x_10 = lean_unbox(x_1); +uint8_t x_11; lean_object* x_12; +x_11 = lean_unbox(x_1); lean_dec(x_1); -x_11 = l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__2(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_12 = l_Lean_Compiler_LCNF_normParam___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__2(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -return x_11; +return x_12; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__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_EXPORT lean_object* l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__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) { _start: { -uint8_t x_10; lean_object* x_11; -x_10 = lean_unbox(x_1); +uint8_t x_11; lean_object* x_12; +x_11 = lean_unbox(x_1); lean_dec(x_1); -x_11 = l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__1(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_11; +x_12 = l_Lean_Compiler_LCNF_normParams___at_Lean_Compiler_LCNF_Simp_simpFunDecl___spec__1(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_12; } } lean_object* initialize_Init(uint8_t builtin, lean_object*); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Simp/SimpM.c b/stage0/stdlib/Lean/Compiler/LCNF/Simp/SimpM.c index 94f68babf1..7ff259fb61 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Simp/SimpM.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Simp/SimpM.c @@ -1,6 +1,6 @@ // Lean compiler output // Module: Lean.Compiler.LCNF.Simp.SimpM -// Imports: Init Lean.Compiler.ImplementedByAttr Lean.Compiler.LCNF.Renaming Lean.Compiler.LCNF.ElimDead Lean.Compiler.LCNF.AlphaEqv Lean.Compiler.LCNF.PrettyPrinter Lean.Compiler.LCNF.Bind Lean.Compiler.LCNF.Simp.JpCases Lean.Compiler.LCNF.Simp.FunDeclInfo Lean.Compiler.LCNF.Simp.Config +// Imports: Init Lean.Compiler.ImplementedByAttr Lean.Compiler.LCNF.Renaming Lean.Compiler.LCNF.ElimDead Lean.Compiler.LCNF.AlphaEqv Lean.Compiler.LCNF.PrettyPrinter Lean.Compiler.LCNF.Bind Lean.Compiler.LCNF.Internalize Lean.Compiler.LCNF.Simp.JpCases Lean.Compiler.LCNF.Simp.DiscrM Lean.Compiler.LCNF.Simp.FunDeclInfo Lean.Compiler.LCNF.Simp.Config #include #if defined(__clang__) #pragma clang diagnostic ignored "-Wunused-parameter" @@ -13,10 +13,8 @@ #ifdef __cplusplus extern "C" { #endif -static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__1; lean_object* l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_restore(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3(lean_object*, size_t, lean_object*); -static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_State_subst___default; static lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__5; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___boxed(lean_object*); @@ -26,18 +24,15 @@ static lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___closed__6; LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_Simp_withInlining___spec__2(lean_object*, lean_object*); lean_object* l_Lean_stringToMessageData(lean_object*); -extern lean_object* l_Lean_Compiler_LCNF_anyTypeExpr; -static lean_object* l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseLetDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseLetDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_mk_empty_array_with_capacity(lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce___closed__1; lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce___boxed(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_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__3; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstStateSimpM___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__6(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce___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_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__3; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstStateSimpM___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static size_t l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3___closed__2; lean_object* lean_array_uget(lean_object*, size_t); lean_object* l_Lean_Compiler_LCNF_mkLcCast(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified(lean_object*); @@ -45,233 +40,181 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDe extern lean_object* l_Lean_maxRecDepthErrorMessage; lean_object* l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incVisited(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__9___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static size_t l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3___closed__1; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_Simp_withInlining___spec__5(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunOcc(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunOcc(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_Lean_Expr_isErased(lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withInlining___spec__7(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_sub(size_t, size_t); -lean_object* lean_environment_find(lean_object*, lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); uint8_t lean_name_eq(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__3; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo___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_Compiler_LCNF_Simp_State_visited___default; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_findCtor___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_toSubarray___rarg(lean_object*, lean_object*, lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); lean_object* l_Lean_Name_mkStr3(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__3; -lean_object* l_Lean_getConstInfo___at___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_isValidMacroInline___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withInlining___spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withAddMustInline___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withAddMustInline___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_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg___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_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__5; size_t lean_usize_shift_right(size_t, size_t); lean_object* l_Lean_Compiler_LCNF_eraseLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal___boxed(lean_object*); -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1(lean_object*, size_t, size_t, 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_Compiler_LCNF_Simp_betaReduce___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_usize_dec_lt(size_t, size_t); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__10(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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_Lean_mkHashSetImp___rarg(lean_object*); -static lean_object* l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__2; lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add___spec__1(lean_object*, lean_object*); -extern lean_object* l_Lean_levelZero; lean_object* lean_nat_add(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__2; static lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10___closed__1; -LEAN_EXPORT lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtor(lean_object*); -LEAN_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10___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_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_mkAppN(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_uint64_to_usize(uint64_t); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incVisited___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incVisited___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incVisited___boxed(lean_object*); -static lean_object* l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1___closed__1; lean_object* l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); extern lean_object* l_Lean_Compiler_LCNF_erasedExpr; lean_object* l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_addHo(lean_object*, lean_object*); -lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_eraseFunDecl(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstStateSimpM(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstStateSimpM(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint64_t l_Lean_Name_hash___override(lean_object*); -LEAN_EXPORT lean_object* l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_inheritedTraceOptions; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(lean_object*, uint8_t, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_attachCodeDecls(lean_object*, lean_object*); lean_object* l_Lean_mkHashMapImp___rarg(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_findCtor(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__7; -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_shouldInlineLocal(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_shouldInlineLocal(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_take(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_Context_discrCtorMap___default; -lean_object* lean_nat_sub(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_State_inline___default; static lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline___boxed(lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___closed__1; -lean_object* l_Lean_RBNode_setBlack___rarg(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___closed__2; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFVarSubst(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1___closed__2; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Expr_headBeta(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFVarSubst(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_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__2; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_State_used___default___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withAddMustInline(lean_object*); -LEAN_EXPORT lean_object* l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_toString(lean_object*, uint8_t); lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_inferType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___closed__3; lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___closed__5; uint8_t l_Lean_Name_isInternal(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_shouldInlineLocal___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__9(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_shouldInlineLocal___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_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__8(lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l_Lean_Name_quickCmp(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse; -lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*); lean_object* l_Nat_repr(lean_object*); lean_object* l_Lean_Compiler_LCNF_Code_internalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_findExpr(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtor___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint64_t l_Lean_Expr_hash(lean_object*); -lean_object* l_Lean_Expr_sort___override(lean_object*); +static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__1; lean_object* l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add___spec__3(lean_object*, lean_object*, uint8_t); size_t lean_usize_shift_left(size_t, size_t); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunOcc___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__7(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__3; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__2(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_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunOcc___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_Compiler_LCNF_Simp_isOnceOrMustInline___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__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_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_mul(size_t, size_t); LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1(lean_object*); -LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1___boxed(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addMustInline(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default; -LEAN_EXPORT lean_object* l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__5(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addMustInline(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_Context_inlineStack___default; lean_object* l_Lean_Compiler_LCNF_getBinderName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___closed__2; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFVarSubst___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_Compiler_LCNF_Simp_addFVarSubst___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_of_nat(lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__6; size_t lean_usize_land(size_t, size_t); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_mkAuxLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___closed__1; lean_object* l_Lean_PersistentArray_push___rarg(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__2; -static lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___closed__1; static lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___closed__4; static lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__4; -static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__2; -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_fvar___override(lean_object*); -LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_Context_config___default___closed__1; lean_object* l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_update(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_State_binderRenaming___default; -lean_object* l_Lean_Expr_const___override(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incVisited___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t lean_expr_eqv(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incVisited___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3(lean_object*); -uint8_t lean_nat_dec_le(lean_object*, lean_object*); uint8_t lean_usize_dec_le(size_t, size_t); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l___private_Lean_Util_Trace_0__Lean_checkTraceOption(lean_object*, lean_object*, lean_object*); -uint8_t l_Lean_RBNode_isRed___rarg(lean_object*); lean_object* l_Lean_Compiler_LCNF_LCtx_toLocalContext(lean_object*); lean_object* l_Lean_Compiler_LCNF_getConfig(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_RBNode_insert___at_Lean_Elab_Term_withAuxDecl___spec__1(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__3; LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_Simp_State_simplified___default; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default; uint8_t l_Lean_Compiler_LCNF_Code_sizeLe(lean_object*, lean_object*); -lean_object* l_Array_ofSubarray___rarg(lean_object*); -lean_object* l_Lean_Compiler_LCNF_getType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l_Lean_Expr_isAnyType(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); -static lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__1; +static lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__6___closed__1; lean_object* l_Lean_PersistentHashMap_mkEmptyEntries(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_State_funDeclInfoMap___default; LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__6(lean_object*, size_t, size_t, lean_object*, lean_object*); -lean_object* lean_mk_array(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__6; static lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1___closed__2; -static lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__4; -static lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__2; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8(lean_object*, size_t, size_t, lean_object*, lean_object*); static lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(size_t, size_t, lean_object*); -LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunHoOcc___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isSmall(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__2___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_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__2; +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunHoOcc___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_Compiler_LCNF_Simp_withInlining___rarg___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_Lean_Compiler_LCNF_Simp_isSmall(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__2___closed__2; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseFunDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseFunDecl___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_Compiler_LCNF_Simp_incInlineLocal___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_State_used___default; static lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__4; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunHoOcc(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunHoOcc(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_State_subst___default___closed__1; lean_object* l_Lean_Expr_getAppFn(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___boxed(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_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___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_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1___closed__1; lean_object* lean_usize_to_nat(size_t); -LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isSmall___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(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_Compiler_LCNF_Simp_isSmall___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_Compiler_LCNF_Simp_State_inlineLocal___default; -LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__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_EXPORT lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__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_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__2___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__1; -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__3; -static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3; -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addMustInline___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addMustInline___boxed(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*); -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_Context_config___default; LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline(lean_object*); @@ -295,52 +238,6 @@ x_1 = l_Lean_Compiler_LCNF_Simp_Context_config___default___closed__1; return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_Context_discrCtorMap___default() { -_start: -{ -lean_object* x_1; -x_1 = lean_box(0); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_box(0), lean_box(0)); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__1; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__3; -return x_1; -} -} static lean_object* _init_l_Lean_Compiler_LCNF_Simp_Context_inlineStack___default() { _start: { @@ -352,8 +249,26 @@ return x_1; static lean_object* _init_l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__1() { _start: { +lean_object* x_1; +x_1 = l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_box(0), lean_box(0)); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__1; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__3() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__2; +x_1 = l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__2; x_2 = lean_unsigned_to_nat(0u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -365,7 +280,7 @@ static lean_object* _init_l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___de _start: { lean_object* x_1; -x_1 = l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__1; +x_1 = l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__3; return x_1; } } @@ -451,31 +366,33 @@ x_1 = lean_unsigned_to_nat(0u); return x_1; } } -LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg(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_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg(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; +lean_inc(x_9); 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_10 = lean_apply_7(x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -if (lean_obj_tag(x_10) == 0) +x_11 = lean_apply_8(x_1, 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_11; lean_object* x_12; lean_object* x_13; -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_10, 1); +lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_12 = lean_ctor_get(x_11, 0); lean_inc(x_12); -lean_dec(x_10); -x_13 = lean_apply_8(x_2, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_12); -return x_13; +x_13 = lean_ctor_get(x_11, 1); +lean_inc(x_13); +lean_dec(x_11); +x_14 = lean_apply_9(x_2, x_12, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_13); +return x_14; } else { -uint8_t x_14; +uint8_t x_15; +lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -483,23 +400,23 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_14 = !lean_is_exclusive(x_10); -if (x_14 == 0) +x_15 = !lean_is_exclusive(x_11); +if (x_15 == 0) { -return x_10; +return x_11; } else { -lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_15 = lean_ctor_get(x_10, 0); -x_16 = lean_ctor_get(x_10, 1); +lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_16 = lean_ctor_get(x_11, 0); +x_17 = lean_ctor_get(x_11, 1); +lean_inc(x_17); lean_inc(x_16); -lean_inc(x_15); -lean_dec(x_10); -x_17 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_17, 0, x_15); -lean_ctor_set(x_17, 1, x_16); -return x_17; +lean_dec(x_11); +x_18 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_18, 0, x_16); +lean_ctor_set(x_18, 1, x_17); +return x_18; } } } @@ -508,56 +425,56 @@ LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFV _start: { lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg), 9, 0); +x_3 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg), 10, 0); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___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) { _start: { -lean_object* x_8; lean_object* x_9; lean_object* x_10; uint8_t x_11; -x_8 = lean_st_ref_get(x_6, x_7); -x_9 = lean_ctor_get(x_8, 1); -lean_inc(x_9); -lean_dec(x_8); -x_10 = lean_st_ref_get(x_2, x_9); -x_11 = !lean_is_exclusive(x_10); -if (x_11 == 0) +lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; +x_9 = lean_st_ref_get(x_7, x_8); +x_10 = lean_ctor_get(x_9, 1); +lean_inc(x_10); +lean_dec(x_9); +x_11 = lean_st_ref_get(x_2, x_10); +x_12 = !lean_is_exclusive(x_11); +if (x_12 == 0) { -return x_10; +return x_11; } else { -lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_12 = lean_ctor_get(x_10, 0); -x_13 = lean_ctor_get(x_10, 1); +lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_13 = lean_ctor_get(x_11, 0); +x_14 = lean_ctor_get(x_11, 1); +lean_inc(x_14); lean_inc(x_13); -lean_inc(x_12); -lean_dec(x_10); -x_14 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_14, 0, x_12); -lean_ctor_set(x_14, 1, x_13); -return x_14; +lean_dec(x_11); +x_15 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_15, 0, x_13); +lean_ctor_set(x_15, 1, x_14); +return x_15; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___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) { _start: { -lean_object* x_9; lean_object* x_10; -x_9 = lean_ctor_get(x_1, 0); -lean_inc(x_9); -x_10 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_10, 0, x_9); -lean_ctor_set(x_10, 1, x_8); -return x_10; +lean_object* x_10; lean_object* x_11; +x_10 = lean_ctor_get(x_1, 0); +lean_inc(x_10); +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_10); +lean_ctor_set(x_11, 1, x_9); +return x_11; } } static lean_object* _init_l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__1___boxed), 7, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__1___boxed), 8, 0); return x_1; } } @@ -565,7 +482,7 @@ static lean_object* _init_l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__2___boxed), 8, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__2___boxed), 9, 0); return x_1; } } @@ -575,31 +492,17 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___closed__1; x_2 = l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___closed__2; -x_3 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg), 9, 2); +x_3 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___spec__1___rarg), 10, 2); lean_closure_set(x_3, 0, x_1); lean_closure_set(x_3, 1, x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___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_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___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_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___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) { _start: { lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +x_9 = l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -610,4780 +513,44 @@ lean_dec(x_1); return x_9; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstStateSimpM(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_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___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) { _start: { -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_take(x_3, x_10); -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 = !lean_is_exclusive(x_12); -if (x_14 == 0) -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; -x_15 = lean_ctor_get(x_12, 0); -x_16 = lean_apply_1(x_1, x_15); -lean_ctor_set(x_12, 0, x_16); -x_17 = lean_st_ref_set(x_3, x_12, x_13); -x_18 = !lean_is_exclusive(x_17); -if (x_18 == 0) -{ -lean_object* x_19; lean_object* x_20; -x_19 = lean_ctor_get(x_17, 0); -lean_dec(x_19); -x_20 = lean_box(0); -lean_ctor_set(x_17, 0, x_20); -return x_17; -} -else -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_17, 1); -lean_inc(x_21); -lean_dec(x_17); -x_22 = lean_box(0); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_21); -return x_23; -} -} -else -{ -lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_24 = lean_ctor_get(x_12, 0); -x_25 = lean_ctor_get(x_12, 1); -x_26 = lean_ctor_get(x_12, 2); -x_27 = lean_ctor_get(x_12, 3); -x_28 = lean_ctor_get_uint8(x_12, sizeof(void*)*7); -x_29 = lean_ctor_get(x_12, 4); -x_30 = lean_ctor_get(x_12, 5); -x_31 = lean_ctor_get(x_12, 6); -lean_inc(x_31); -lean_inc(x_30); -lean_inc(x_29); -lean_inc(x_27); -lean_inc(x_26); -lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_12); -x_32 = lean_apply_1(x_1, x_24); -x_33 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_25); -lean_ctor_set(x_33, 2, x_26); -lean_ctor_set(x_33, 3, x_27); -lean_ctor_set(x_33, 4, x_29); -lean_ctor_set(x_33, 5, x_30); -lean_ctor_set(x_33, 6, x_31); -lean_ctor_set_uint8(x_33, sizeof(void*)*7, x_28); -x_34 = lean_st_ref_set(x_3, x_33, x_13); -x_35 = lean_ctor_get(x_34, 1); -lean_inc(x_35); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - lean_ctor_release(x_34, 1); - x_36 = x_34; -} else { - lean_dec_ref(x_34); - x_36 = lean_box(0); -} -x_37 = lean_box(0); -if (lean_is_scalar(x_36)) { - x_38 = lean_alloc_ctor(0, 2, 0); -} else { - x_38 = x_36; -} -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_35); -return x_38; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstStateSimpM___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstStateSimpM(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_3; -x_3 = lean_box(0); -return x_3; -} -else -{ -lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; -x_4 = lean_ctor_get(x_1, 0); -x_5 = lean_ctor_get(x_1, 1); -x_6 = lean_ctor_get(x_1, 2); -x_7 = lean_ctor_get(x_1, 3); -x_8 = l_Lean_Name_quickCmp(x_2, x_5); -switch (x_8) { -case 0: -{ -x_1 = x_4; -goto _start; -} -case 1: -{ lean_object* x_10; -lean_inc(x_6); -x_10 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_10, 0, x_6); -return x_10; -} -default: -{ -x_1 = x_7; -goto _start; -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_findCtor(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: -{ -uint8_t x_9; lean_object* x_10; lean_object* x_11; -x_9 = 1; -x_10 = l_Lean_Compiler_LCNF_Simp_findExpr(x_1, x_9, x_4, x_5, x_6, x_7, x_8); -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -if (lean_obj_tag(x_11) == 1) -{ -uint8_t x_12; -x_12 = !lean_is_exclusive(x_10); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; -x_13 = lean_ctor_get(x_10, 0); -lean_dec(x_13); -x_14 = lean_ctor_get(x_11, 0); -lean_inc(x_14); -x_15 = lean_ctor_get(x_2, 2); -x_16 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1(x_15, x_14); -lean_dec(x_14); -if (lean_obj_tag(x_16) == 0) -{ -return x_10; -} -else -{ -lean_object* x_17; -lean_dec(x_11); -x_17 = lean_ctor_get(x_16, 0); -lean_inc(x_17); -lean_dec(x_16); -lean_ctor_set(x_10, 0, x_17); -return x_10; -} -} -else -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_18 = lean_ctor_get(x_10, 1); -lean_inc(x_18); -lean_dec(x_10); -x_19 = lean_ctor_get(x_11, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_2, 2); -x_21 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1(x_20, x_19); -lean_dec(x_19); -if (lean_obj_tag(x_21) == 0) -{ -lean_object* x_22; -x_22 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_22, 0, x_11); -lean_ctor_set(x_22, 1, x_18); -return x_22; -} -else -{ -lean_object* x_23; lean_object* x_24; -lean_dec(x_11); -x_23 = lean_ctor_get(x_21, 0); -lean_inc(x_23); -lean_dec(x_21); -x_24 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_24, 0, x_23); -lean_ctor_set(x_24, 1, x_18); -return x_24; -} -} -} -else -{ -uint8_t x_25; -x_25 = !lean_is_exclusive(x_10); -if (x_25 == 0) -{ -lean_object* x_26; -x_26 = lean_ctor_get(x_10, 0); -lean_dec(x_26); -return x_10; -} -else -{ -lean_object* x_27; lean_object* x_28; -x_27 = lean_ctor_get(x_10, 1); -lean_inc(x_27); -lean_dec(x_10); -x_28 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_28, 0, x_11); -lean_ctor_set(x_28, 1, x_27); -return x_28; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_Simp_findCtor___spec__1(x_1, x_2); -lean_dec(x_2); -lean_dec(x_1); -return x_3; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_findCtor___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_findCtor(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +x_10 = l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); -return x_9; +lean_dec(x_1); +return x_10; } } -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___closed__1() { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstStateSimpM(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_1; lean_object* x_2; -x_1 = l_Lean_levelZero; -x_2 = l_Lean_Expr_sort___override(x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___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: -{ -lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_8 = lean_unsigned_to_nat(0u); -x_9 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_8); -x_10 = l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___closed__1; -lean_inc(x_9); -x_11 = lean_mk_array(x_9, x_10); -x_12 = lean_unsigned_to_nat(1u); -x_13 = lean_nat_sub(x_9, x_12); -lean_dec(x_9); -x_14 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_11, x_13); -x_15 = lean_ctor_get(x_2, 1); -lean_inc(x_15); -lean_dec(x_2); -x_16 = l_Array_toSubarray___rarg(x_14, x_8, x_15); -x_17 = l_Array_ofSubarray___rarg(x_16); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_3); -lean_ctor_set(x_18, 1, x_17); -x_19 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_19, 0, x_18); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_19); -lean_ctor_set(x_20, 1, x_7); -return x_20; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_Expr_headBeta(x_1); -x_6 = l_Lean_Expr_getAppFn(x_5); -if (lean_obj_tag(x_6) == 4) -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; -x_7 = lean_ctor_get(x_6, 0); -lean_inc(x_7); -x_8 = lean_ctor_get(x_6, 1); -lean_inc(x_8); -lean_dec(x_6); -x_9 = l_Lean_getConstInfo___at___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_isValidMacroInline___spec__1(x_7, x_2, x_3, x_4); -if (lean_obj_tag(x_9) == 0) -{ -lean_object* x_10; -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -if (lean_obj_tag(x_10) == 5) -{ -uint8_t x_11; -x_11 = !lean_is_exclusive(x_9); -if (x_11 == 0) -{ -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; -x_12 = lean_ctor_get(x_9, 1); -x_13 = lean_ctor_get(x_9, 0); -lean_dec(x_13); -x_14 = lean_ctor_get(x_10, 0); -lean_inc(x_14); -lean_dec(x_10); -x_15 = lean_ctor_get(x_14, 1); -lean_inc(x_15); -x_16 = lean_unsigned_to_nat(0u); -x_17 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_5, x_16); -x_18 = lean_nat_dec_le(x_15, x_17); -lean_dec(x_17); -lean_dec(x_15); -if (x_18 == 0) -{ -lean_object* x_19; -lean_dec(x_14); -lean_dec(x_8); -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -x_19 = lean_box(0); -lean_ctor_set(x_9, 0, x_19); -return x_9; -} -else -{ -lean_object* x_20; lean_object* x_21; -lean_free_object(x_9); -x_20 = lean_box(0); -x_21 = l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1(x_5, x_14, x_8, x_20, x_2, x_3, x_12); -lean_dec(x_3); -lean_dec(x_2); -return x_21; -} -} -else -{ -lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; -x_22 = lean_ctor_get(x_9, 1); -lean_inc(x_22); -lean_dec(x_9); -x_23 = lean_ctor_get(x_10, 0); -lean_inc(x_23); -lean_dec(x_10); -x_24 = lean_ctor_get(x_23, 1); -lean_inc(x_24); -x_25 = lean_unsigned_to_nat(0u); -x_26 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_5, x_25); -x_27 = lean_nat_dec_le(x_24, x_26); -lean_dec(x_26); -lean_dec(x_24); -if (x_27 == 0) -{ -lean_object* x_28; lean_object* x_29; -lean_dec(x_23); -lean_dec(x_8); -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -x_28 = lean_box(0); -x_29 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_29, 0, x_28); -lean_ctor_set(x_29, 1, x_22); -return x_29; -} -else -{ -lean_object* x_30; lean_object* x_31; -x_30 = lean_box(0); -x_31 = l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1(x_5, x_23, x_8, x_30, x_2, x_3, x_22); -lean_dec(x_3); -lean_dec(x_2); -return x_31; -} -} -} -else -{ -uint8_t x_32; -lean_dec(x_10); -lean_dec(x_8); -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -x_32 = !lean_is_exclusive(x_9); -if (x_32 == 0) -{ -lean_object* x_33; lean_object* x_34; -x_33 = lean_ctor_get(x_9, 0); -lean_dec(x_33); -x_34 = lean_box(0); -lean_ctor_set(x_9, 0, x_34); -return x_9; -} -else -{ -lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_35 = lean_ctor_get(x_9, 1); -lean_inc(x_35); -lean_dec(x_9); -x_36 = lean_box(0); -x_37 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_37, 0, x_36); -lean_ctor_set(x_37, 1, x_35); -return x_37; -} -} -} -else -{ -uint8_t x_38; -lean_dec(x_8); -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -x_38 = !lean_is_exclusive(x_9); -if (x_38 == 0) -{ -return x_9; -} -else -{ -lean_object* x_39; lean_object* x_40; lean_object* x_41; -x_39 = lean_ctor_get(x_9, 0); -x_40 = lean_ctor_get(x_9, 1); -lean_inc(x_40); -lean_inc(x_39); -lean_dec(x_9); -x_41 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_41, 0, x_39); -lean_ctor_set(x_41, 1, x_40); -return x_41; -} -} -} -else -{ -lean_object* x_42; lean_object* x_43; -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -x_42 = lean_box(0); -x_43 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_43, 0, x_42); -lean_ctor_set(x_43, 1, x_4); -return x_43; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___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_Compiler_LCNF_Simp_getIndInfo_x3f___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); -return x_8; -} -} -static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_1 = lean_unsigned_to_nat(0u); -x_2 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__1; -x_3 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__2; -x_4 = l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__1; -x_5 = lean_alloc_ctor(0, 8, 0); -lean_ctor_set(x_5, 0, x_1); -lean_ctor_set(x_5, 1, x_1); -lean_ctor_set(x_5, 2, x_2); -lean_ctor_set(x_5, 3, x_3); -lean_ctor_set(x_5, 4, x_4); -lean_ctor_set(x_5, 5, x_2); -lean_ctor_set(x_5, 6, x_3); -lean_ctor_set(x_5, 7, x_3); -return x_5; -} -} -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__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) { -_start: -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; -x_9 = lean_ctor_get(x_6, 5); -x_10 = lean_st_ref_get(x_7, x_8); -x_11 = lean_ctor_get(x_10, 0); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_10 = lean_st_ref_get(x_8, x_9); +x_11 = lean_ctor_get(x_10, 1); lean_inc(x_11); -x_12 = lean_ctor_get(x_10, 1); -lean_inc(x_12); lean_dec(x_10); -x_13 = lean_ctor_get(x_11, 0); -lean_inc(x_13); -lean_dec(x_11); -x_14 = lean_st_ref_get(x_5, x_12); -x_15 = !lean_is_exclusive(x_14); -if (x_15 == 0) -{ -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_16 = lean_ctor_get(x_14, 0); -x_17 = lean_ctor_get(x_16, 0); -lean_inc(x_17); -lean_dec(x_16); -x_18 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_17); -x_19 = lean_ctor_get(x_6, 2); -x_20 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3; -lean_inc(x_19); -x_21 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_21, 0, x_13); -lean_ctor_set(x_21, 1, x_20); -lean_ctor_set(x_21, 2, x_18); -lean_ctor_set(x_21, 3, x_19); -x_22 = lean_alloc_ctor(6, 2, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_1); -lean_inc(x_9); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_9); -lean_ctor_set(x_23, 1, x_22); -lean_ctor_set_tag(x_14, 1); -lean_ctor_set(x_14, 0, x_23); -return x_14; -} -else -{ -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; lean_object* x_32; lean_object* x_33; -x_24 = lean_ctor_get(x_14, 0); -x_25 = lean_ctor_get(x_14, 1); -lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_14); -x_26 = lean_ctor_get(x_24, 0); -lean_inc(x_26); -lean_dec(x_24); -x_27 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_26); -x_28 = lean_ctor_get(x_6, 2); -x_29 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3; -lean_inc(x_28); -x_30 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_30, 0, x_13); -lean_ctor_set(x_30, 1, x_29); -lean_ctor_set(x_30, 2, x_27); -lean_ctor_set(x_30, 3, x_28); -x_31 = lean_alloc_ctor(6, 2, 0); -lean_ctor_set(x_31, 0, x_30); -lean_ctor_set(x_31, 1, x_1); -lean_inc(x_9); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_9); -lean_ctor_set(x_32, 1, x_31); -x_33 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_25); -return x_33; -} -} -} -static lean_object* _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("unknown constant '", 18); -return x_1; -} -} -static lean_object* _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__1; -x_2 = l_Lean_stringToMessageData(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("'", 1); -return x_1; -} -} -static lean_object* _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__3; -x_2 = l_Lean_stringToMessageData(x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__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) { -_start: -{ -lean_object* x_9; uint8_t x_10; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = !lean_is_exclusive(x_9); -if (x_10 == 0) -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_11 = lean_ctor_get(x_9, 0); -x_12 = lean_ctor_get(x_9, 1); -x_13 = lean_ctor_get(x_11, 0); -lean_inc(x_13); -lean_dec(x_11); -lean_inc(x_1); -x_14 = lean_environment_find(x_13, x_1); -if (lean_obj_tag(x_14) == 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; lean_object* x_22; -lean_free_object(x_9); -x_15 = lean_box(0); -x_16 = l_Lean_Expr_const___override(x_1, x_15); -x_17 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_17, 0, x_16); -x_18 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__2; -x_19 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_19, 0, x_18); -lean_ctor_set(x_19, 1, x_17); -x_20 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__4; -x_21 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_21, 0, x_19); -lean_ctor_set(x_21, 1, x_20); -x_22 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3(x_21, x_2, x_3, x_4, x_5, x_6, x_7, x_12); -return x_22; -} -else -{ -lean_object* x_23; -lean_dec(x_1); -x_23 = lean_ctor_get(x_14, 0); -lean_inc(x_23); -lean_dec(x_14); -lean_ctor_set(x_9, 0, x_23); -return x_9; -} -} -else -{ -lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_24 = lean_ctor_get(x_9, 0); -x_25 = lean_ctor_get(x_9, 1); -lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_9); -x_26 = lean_ctor_get(x_24, 0); -lean_inc(x_26); -lean_dec(x_24); -lean_inc(x_1); -x_27 = lean_environment_find(x_26, x_1); -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; lean_object* x_35; -x_28 = lean_box(0); -x_29 = l_Lean_Expr_const___override(x_1, x_28); -x_30 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_30, 0, x_29); -x_31 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__2; -x_32 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_32, 0, x_31); -lean_ctor_set(x_32, 1, x_30); -x_33 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__4; -x_34 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_34, 0, x_32); -lean_ctor_set(x_34, 1, x_33); -x_35 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3(x_34, x_2, x_3, x_4, x_5, x_6, x_7, x_25); -return x_35; -} -else -{ -lean_object* x_36; lean_object* x_37; -lean_dec(x_1); -x_36 = lean_ctor_get(x_27, 0); -lean_inc(x_36); -lean_dec(x_27); -x_37 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_37, 0, x_36); -lean_ctor_set(x_37, 1, x_25); -return x_37; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__4(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_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; -x_9 = lean_ctor_get(x_6, 5); -x_10 = lean_st_ref_get(x_7, x_8); -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_10, 1); -lean_inc(x_12); -lean_dec(x_10); -x_13 = lean_ctor_get(x_11, 0); -lean_inc(x_13); -lean_dec(x_11); -x_14 = lean_st_ref_get(x_5, x_12); -x_15 = !lean_is_exclusive(x_14); -if (x_15 == 0) -{ -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_16 = lean_ctor_get(x_14, 0); -x_17 = lean_ctor_get(x_16, 0); -lean_inc(x_17); -lean_dec(x_16); -x_18 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_17); -x_19 = lean_ctor_get(x_6, 2); -x_20 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3; -lean_inc(x_19); -x_21 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_21, 0, x_13); -lean_ctor_set(x_21, 1, x_20); -lean_ctor_set(x_21, 2, x_18); -lean_ctor_set(x_21, 3, x_19); -x_22 = lean_alloc_ctor(6, 2, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_1); -lean_inc(x_9); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_9); -lean_ctor_set(x_23, 1, x_22); -lean_ctor_set_tag(x_14, 1); -lean_ctor_set(x_14, 0, x_23); -return x_14; -} -else -{ -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; lean_object* x_32; lean_object* x_33; -x_24 = lean_ctor_get(x_14, 0); -x_25 = lean_ctor_get(x_14, 1); -lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_14); -x_26 = lean_ctor_get(x_24, 0); -lean_inc(x_26); -lean_dec(x_24); -x_27 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_26); -x_28 = lean_ctor_get(x_6, 2); -x_29 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3; -lean_inc(x_28); -x_30 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_30, 0, x_13); -lean_ctor_set(x_30, 1, x_29); -lean_ctor_set(x_30, 2, x_27); -lean_ctor_set(x_30, 3, x_28); -x_31 = lean_alloc_ctor(6, 2, 0); -lean_ctor_set(x_31, 0, x_30); -lean_ctor_set(x_31, 1, x_1); -lean_inc(x_9); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_9); -lean_ctor_set(x_32, 1, x_31); -x_33 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_25); -return x_33; -} -} -} -static lean_object* _init_l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("' is not a constructor", 22); -return x_1; -} -} -static lean_object* _init_l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1___closed__1; -x_2 = l_Lean_stringToMessageData(x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__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) { -_start: -{ -lean_object* x_9; -lean_inc(x_1); -x_9 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_9) == 0) -{ -lean_object* x_10; -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -if (lean_obj_tag(x_10) == 6) -{ -uint8_t x_11; -lean_dec(x_1); -x_11 = !lean_is_exclusive(x_9); -if (x_11 == 0) -{ -lean_object* x_12; lean_object* x_13; -x_12 = lean_ctor_get(x_9, 0); -lean_dec(x_12); -x_13 = lean_ctor_get(x_10, 0); -lean_inc(x_13); -lean_dec(x_10); -lean_ctor_set(x_9, 0, x_13); -return x_9; -} -else -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; -x_14 = lean_ctor_get(x_9, 1); -lean_inc(x_14); -lean_dec(x_9); -x_15 = lean_ctor_get(x_10, 0); -lean_inc(x_15); -lean_dec(x_10); -x_16 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_16, 0, x_15); -lean_ctor_set(x_16, 1, x_14); -return x_16; -} -} -else -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -lean_dec(x_10); -x_17 = lean_ctor_get(x_9, 1); -lean_inc(x_17); -lean_dec(x_9); -x_18 = lean_box(0); -x_19 = l_Lean_Expr_const___override(x_1, x_18); -x_20 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_20, 0, x_19); -x_21 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__4; -x_22 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_20); -x_23 = l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1___closed__2; -x_24 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_24, 0, x_22); -lean_ctor_set(x_24, 1, x_23); -x_25 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__4(x_24, x_2, x_3, x_4, x_5, x_6, x_7, x_17); -return x_25; -} -} -else -{ -uint8_t x_26; -lean_dec(x_1); -x_26 = !lean_is_exclusive(x_9); -if (x_26 == 0) -{ -return x_9; -} -else -{ -lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_27 = lean_ctor_get(x_9, 0); -x_28 = lean_ctor_get(x_9, 1); -lean_inc(x_28); -lean_inc(x_27); -lean_dec(x_9); -x_29 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_29, 0, x_27); -lean_ctor_set(x_29, 1, x_28); -return x_29; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_4; uint8_t x_5; lean_object* x_6; -x_4 = lean_box(0); -x_5 = 0; -x_6 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_6, 0, x_4); -lean_ctor_set(x_6, 1, x_2); -lean_ctor_set(x_6, 2, x_3); -lean_ctor_set(x_6, 3, x_4); -lean_ctor_set_uint8(x_6, sizeof(void*)*4, x_5); -return x_6; -} -else -{ -uint8_t x_7; -x_7 = lean_ctor_get_uint8(x_1, sizeof(void*)*4); -if (x_7 == 0) -{ -uint8_t x_8; -x_8 = !lean_is_exclusive(x_1); -if (x_8 == 0) -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; -x_9 = lean_ctor_get(x_1, 0); -x_10 = lean_ctor_get(x_1, 1); -x_11 = lean_ctor_get(x_1, 2); -x_12 = lean_ctor_get(x_1, 3); -x_13 = l_Lean_Name_quickCmp(x_2, x_10); -switch (x_13) { -case 0: -{ -lean_object* x_14; uint8_t x_15; -x_14 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__6(x_9, x_2, x_3); -x_15 = 0; -lean_ctor_set(x_1, 0, x_14); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_15); -return x_1; -} -case 1: -{ -uint8_t x_16; -lean_dec(x_11); -lean_dec(x_10); -x_16 = 0; -lean_ctor_set(x_1, 2, x_3); -lean_ctor_set(x_1, 1, x_2); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_16); -return x_1; -} -default: -{ -lean_object* x_17; uint8_t x_18; -x_17 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__6(x_12, x_2, x_3); -x_18 = 0; -lean_ctor_set(x_1, 3, x_17); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_18); -return x_1; -} -} -} -else -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; -x_19 = lean_ctor_get(x_1, 0); -x_20 = lean_ctor_get(x_1, 1); -x_21 = lean_ctor_get(x_1, 2); -x_22 = lean_ctor_get(x_1, 3); -lean_inc(x_22); -lean_inc(x_21); -lean_inc(x_20); -lean_inc(x_19); -lean_dec(x_1); -x_23 = l_Lean_Name_quickCmp(x_2, x_20); -switch (x_23) { -case 0: -{ -lean_object* x_24; uint8_t x_25; lean_object* x_26; -x_24 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__6(x_19, x_2, x_3); -x_25 = 0; -x_26 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_26, 0, x_24); -lean_ctor_set(x_26, 1, x_20); -lean_ctor_set(x_26, 2, x_21); -lean_ctor_set(x_26, 3, x_22); -lean_ctor_set_uint8(x_26, sizeof(void*)*4, x_25); -return x_26; -} -case 1: -{ -uint8_t x_27; lean_object* x_28; -lean_dec(x_21); -lean_dec(x_20); -x_27 = 0; -x_28 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_28, 0, x_19); -lean_ctor_set(x_28, 1, x_2); -lean_ctor_set(x_28, 2, x_3); -lean_ctor_set(x_28, 3, x_22); -lean_ctor_set_uint8(x_28, sizeof(void*)*4, x_27); -return x_28; -} -default: -{ -lean_object* x_29; uint8_t x_30; lean_object* x_31; -x_29 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__6(x_22, x_2, x_3); -x_30 = 0; -x_31 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_31, 0, x_19); -lean_ctor_set(x_31, 1, x_20); -lean_ctor_set(x_31, 2, x_21); -lean_ctor_set(x_31, 3, x_29); -lean_ctor_set_uint8(x_31, sizeof(void*)*4, x_30); -return x_31; -} -} -} -} -else -{ -uint8_t x_32; -x_32 = !lean_is_exclusive(x_1); -if (x_32 == 0) -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; uint8_t x_37; -x_33 = lean_ctor_get(x_1, 0); -x_34 = lean_ctor_get(x_1, 1); -x_35 = lean_ctor_get(x_1, 2); -x_36 = lean_ctor_get(x_1, 3); -x_37 = l_Lean_Name_quickCmp(x_2, x_34); -switch (x_37) { -case 0: -{ -lean_object* x_38; uint8_t x_39; -x_38 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__6(x_33, x_2, x_3); -x_39 = lean_ctor_get_uint8(x_38, sizeof(void*)*4); -if (x_39 == 0) -{ -lean_object* x_40; -x_40 = lean_ctor_get(x_38, 0); -lean_inc(x_40); -if (lean_obj_tag(x_40) == 0) -{ -lean_object* x_41; -x_41 = lean_ctor_get(x_38, 3); -lean_inc(x_41); -if (lean_obj_tag(x_41) == 0) -{ -uint8_t x_42; -x_42 = !lean_is_exclusive(x_38); -if (x_42 == 0) -{ -lean_object* x_43; lean_object* x_44; uint8_t x_45; -x_43 = lean_ctor_get(x_38, 3); -lean_dec(x_43); -x_44 = lean_ctor_get(x_38, 0); -lean_dec(x_44); -lean_ctor_set(x_38, 0, x_41); -x_45 = 1; -lean_ctor_set(x_1, 0, x_38); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_45); -return x_1; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; uint8_t x_49; -x_46 = lean_ctor_get(x_38, 1); -x_47 = lean_ctor_get(x_38, 2); -lean_inc(x_47); -lean_inc(x_46); -lean_dec(x_38); -x_48 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_48, 0, x_41); -lean_ctor_set(x_48, 1, x_46); -lean_ctor_set(x_48, 2, x_47); -lean_ctor_set(x_48, 3, x_41); -lean_ctor_set_uint8(x_48, sizeof(void*)*4, x_39); -x_49 = 1; -lean_ctor_set(x_1, 0, x_48); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_49); -return x_1; -} -} -else -{ -uint8_t x_50; -x_50 = lean_ctor_get_uint8(x_41, sizeof(void*)*4); -if (x_50 == 0) -{ -uint8_t x_51; -x_51 = !lean_is_exclusive(x_38); -if (x_51 == 0) -{ -lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; uint8_t x_56; -x_52 = lean_ctor_get(x_38, 1); -x_53 = lean_ctor_get(x_38, 2); -x_54 = lean_ctor_get(x_38, 3); -lean_dec(x_54); -x_55 = lean_ctor_get(x_38, 0); -lean_dec(x_55); -x_56 = !lean_is_exclusive(x_41); -if (x_56 == 0) -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; uint8_t x_61; uint8_t x_62; -x_57 = lean_ctor_get(x_41, 0); -x_58 = lean_ctor_get(x_41, 1); -x_59 = lean_ctor_get(x_41, 2); -x_60 = lean_ctor_get(x_41, 3); -x_61 = 1; -lean_ctor_set(x_41, 3, x_57); -lean_ctor_set(x_41, 2, x_53); -lean_ctor_set(x_41, 1, x_52); -lean_ctor_set(x_41, 0, x_40); -lean_ctor_set_uint8(x_41, sizeof(void*)*4, x_61); -lean_ctor_set(x_38, 3, x_36); -lean_ctor_set(x_38, 2, x_35); -lean_ctor_set(x_38, 1, x_34); -lean_ctor_set(x_38, 0, x_60); -lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_61); -x_62 = 0; -lean_ctor_set(x_1, 3, x_38); -lean_ctor_set(x_1, 2, x_59); -lean_ctor_set(x_1, 1, x_58); -lean_ctor_set(x_1, 0, x_41); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_62); -return x_1; -} -else -{ -lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; uint8_t x_67; lean_object* x_68; uint8_t x_69; -x_63 = lean_ctor_get(x_41, 0); -x_64 = lean_ctor_get(x_41, 1); -x_65 = lean_ctor_get(x_41, 2); -x_66 = lean_ctor_get(x_41, 3); -lean_inc(x_66); -lean_inc(x_65); -lean_inc(x_64); -lean_inc(x_63); -lean_dec(x_41); -x_67 = 1; -x_68 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_68, 0, x_40); -lean_ctor_set(x_68, 1, x_52); -lean_ctor_set(x_68, 2, x_53); -lean_ctor_set(x_68, 3, x_63); -lean_ctor_set_uint8(x_68, sizeof(void*)*4, x_67); -lean_ctor_set(x_38, 3, x_36); -lean_ctor_set(x_38, 2, x_35); -lean_ctor_set(x_38, 1, x_34); -lean_ctor_set(x_38, 0, x_66); -lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_67); -x_69 = 0; -lean_ctor_set(x_1, 3, x_38); -lean_ctor_set(x_1, 2, x_65); -lean_ctor_set(x_1, 1, x_64); -lean_ctor_set(x_1, 0, x_68); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_69); -return x_1; -} -} -else -{ -lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; uint8_t x_77; lean_object* x_78; lean_object* x_79; uint8_t x_80; -x_70 = lean_ctor_get(x_38, 1); -x_71 = lean_ctor_get(x_38, 2); -lean_inc(x_71); -lean_inc(x_70); -lean_dec(x_38); -x_72 = lean_ctor_get(x_41, 0); -lean_inc(x_72); -x_73 = lean_ctor_get(x_41, 1); -lean_inc(x_73); -x_74 = lean_ctor_get(x_41, 2); -lean_inc(x_74); -x_75 = lean_ctor_get(x_41, 3); -lean_inc(x_75); -if (lean_is_exclusive(x_41)) { - lean_ctor_release(x_41, 0); - lean_ctor_release(x_41, 1); - lean_ctor_release(x_41, 2); - lean_ctor_release(x_41, 3); - x_76 = x_41; -} else { - lean_dec_ref(x_41); - x_76 = lean_box(0); -} -x_77 = 1; -if (lean_is_scalar(x_76)) { - x_78 = lean_alloc_ctor(1, 4, 1); -} else { - x_78 = x_76; -} -lean_ctor_set(x_78, 0, x_40); -lean_ctor_set(x_78, 1, x_70); -lean_ctor_set(x_78, 2, x_71); -lean_ctor_set(x_78, 3, x_72); -lean_ctor_set_uint8(x_78, sizeof(void*)*4, x_77); -x_79 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_79, 0, x_75); -lean_ctor_set(x_79, 1, x_34); -lean_ctor_set(x_79, 2, x_35); -lean_ctor_set(x_79, 3, x_36); -lean_ctor_set_uint8(x_79, sizeof(void*)*4, x_77); -x_80 = 0; -lean_ctor_set(x_1, 3, x_79); -lean_ctor_set(x_1, 2, x_74); -lean_ctor_set(x_1, 1, x_73); -lean_ctor_set(x_1, 0, x_78); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_80); -return x_1; -} -} -else -{ -uint8_t x_81; -lean_free_object(x_1); -x_81 = !lean_is_exclusive(x_41); -if (x_81 == 0) -{ -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; uint8_t x_86; -x_82 = lean_ctor_get(x_41, 3); -lean_dec(x_82); -x_83 = lean_ctor_get(x_41, 2); -lean_dec(x_83); -x_84 = lean_ctor_get(x_41, 1); -lean_dec(x_84); -x_85 = lean_ctor_get(x_41, 0); -lean_dec(x_85); -x_86 = 1; -lean_ctor_set(x_41, 3, x_36); -lean_ctor_set(x_41, 2, x_35); -lean_ctor_set(x_41, 1, x_34); -lean_ctor_set(x_41, 0, x_38); -lean_ctor_set_uint8(x_41, sizeof(void*)*4, x_86); -return x_41; -} -else -{ -uint8_t x_87; lean_object* x_88; -lean_dec(x_41); -x_87 = 1; -x_88 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_88, 0, x_38); -lean_ctor_set(x_88, 1, x_34); -lean_ctor_set(x_88, 2, x_35); -lean_ctor_set(x_88, 3, x_36); -lean_ctor_set_uint8(x_88, sizeof(void*)*4, x_87); -return x_88; -} -} -} -} -else -{ -uint8_t x_89; -x_89 = lean_ctor_get_uint8(x_40, sizeof(void*)*4); -if (x_89 == 0) -{ -uint8_t x_90; -x_90 = !lean_is_exclusive(x_38); -if (x_90 == 0) -{ -lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; uint8_t x_95; -x_91 = lean_ctor_get(x_38, 1); -x_92 = lean_ctor_get(x_38, 2); -x_93 = lean_ctor_get(x_38, 3); -x_94 = lean_ctor_get(x_38, 0); -lean_dec(x_94); -x_95 = !lean_is_exclusive(x_40); -if (x_95 == 0) -{ -uint8_t x_96; uint8_t x_97; -x_96 = 1; -lean_ctor_set_uint8(x_40, sizeof(void*)*4, x_96); -lean_ctor_set(x_38, 3, x_36); -lean_ctor_set(x_38, 2, x_35); -lean_ctor_set(x_38, 1, x_34); -lean_ctor_set(x_38, 0, x_93); -lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_96); -x_97 = 0; -lean_ctor_set(x_1, 3, x_38); -lean_ctor_set(x_1, 2, x_92); -lean_ctor_set(x_1, 1, x_91); -lean_ctor_set(x_1, 0, x_40); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_97); -return x_1; -} -else -{ -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; uint8_t x_102; lean_object* x_103; uint8_t x_104; -x_98 = lean_ctor_get(x_40, 0); -x_99 = lean_ctor_get(x_40, 1); -x_100 = lean_ctor_get(x_40, 2); -x_101 = lean_ctor_get(x_40, 3); -lean_inc(x_101); -lean_inc(x_100); -lean_inc(x_99); -lean_inc(x_98); -lean_dec(x_40); -x_102 = 1; -x_103 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_103, 0, x_98); -lean_ctor_set(x_103, 1, x_99); -lean_ctor_set(x_103, 2, x_100); -lean_ctor_set(x_103, 3, x_101); -lean_ctor_set_uint8(x_103, sizeof(void*)*4, x_102); -lean_ctor_set(x_38, 3, x_36); -lean_ctor_set(x_38, 2, x_35); -lean_ctor_set(x_38, 1, x_34); -lean_ctor_set(x_38, 0, x_93); -lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_102); -x_104 = 0; -lean_ctor_set(x_1, 3, x_38); -lean_ctor_set(x_1, 2, x_92); -lean_ctor_set(x_1, 1, x_91); -lean_ctor_set(x_1, 0, x_103); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_104); -return x_1; -} -} -else -{ -lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; uint8_t x_113; lean_object* x_114; lean_object* x_115; uint8_t x_116; -x_105 = lean_ctor_get(x_38, 1); -x_106 = lean_ctor_get(x_38, 2); -x_107 = lean_ctor_get(x_38, 3); -lean_inc(x_107); -lean_inc(x_106); -lean_inc(x_105); -lean_dec(x_38); -x_108 = lean_ctor_get(x_40, 0); -lean_inc(x_108); -x_109 = lean_ctor_get(x_40, 1); -lean_inc(x_109); -x_110 = lean_ctor_get(x_40, 2); -lean_inc(x_110); -x_111 = lean_ctor_get(x_40, 3); -lean_inc(x_111); -if (lean_is_exclusive(x_40)) { - lean_ctor_release(x_40, 0); - lean_ctor_release(x_40, 1); - lean_ctor_release(x_40, 2); - lean_ctor_release(x_40, 3); - x_112 = x_40; -} else { - lean_dec_ref(x_40); - x_112 = lean_box(0); -} -x_113 = 1; -if (lean_is_scalar(x_112)) { - x_114 = lean_alloc_ctor(1, 4, 1); -} else { - x_114 = x_112; -} -lean_ctor_set(x_114, 0, x_108); -lean_ctor_set(x_114, 1, x_109); -lean_ctor_set(x_114, 2, x_110); -lean_ctor_set(x_114, 3, x_111); -lean_ctor_set_uint8(x_114, sizeof(void*)*4, x_113); -x_115 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_115, 0, x_107); -lean_ctor_set(x_115, 1, x_34); -lean_ctor_set(x_115, 2, x_35); -lean_ctor_set(x_115, 3, x_36); -lean_ctor_set_uint8(x_115, sizeof(void*)*4, x_113); -x_116 = 0; -lean_ctor_set(x_1, 3, x_115); -lean_ctor_set(x_1, 2, x_106); -lean_ctor_set(x_1, 1, x_105); -lean_ctor_set(x_1, 0, x_114); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_116); -return x_1; -} -} -else -{ -lean_object* x_117; -x_117 = lean_ctor_get(x_38, 3); -lean_inc(x_117); -if (lean_obj_tag(x_117) == 0) -{ -uint8_t x_118; -lean_free_object(x_1); -x_118 = !lean_is_exclusive(x_40); -if (x_118 == 0) -{ -lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; uint8_t x_123; -x_119 = lean_ctor_get(x_40, 3); -lean_dec(x_119); -x_120 = lean_ctor_get(x_40, 2); -lean_dec(x_120); -x_121 = lean_ctor_get(x_40, 1); -lean_dec(x_121); -x_122 = lean_ctor_get(x_40, 0); -lean_dec(x_122); -x_123 = 1; -lean_ctor_set(x_40, 3, x_36); -lean_ctor_set(x_40, 2, x_35); -lean_ctor_set(x_40, 1, x_34); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set_uint8(x_40, sizeof(void*)*4, x_123); -return x_40; -} -else -{ -uint8_t x_124; lean_object* x_125; -lean_dec(x_40); -x_124 = 1; -x_125 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_125, 0, x_38); -lean_ctor_set(x_125, 1, x_34); -lean_ctor_set(x_125, 2, x_35); -lean_ctor_set(x_125, 3, x_36); -lean_ctor_set_uint8(x_125, sizeof(void*)*4, x_124); -return x_125; -} -} -else -{ -uint8_t x_126; -x_126 = lean_ctor_get_uint8(x_117, sizeof(void*)*4); -if (x_126 == 0) -{ -uint8_t x_127; -lean_free_object(x_1); -x_127 = !lean_is_exclusive(x_38); -if (x_127 == 0) -{ -lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; uint8_t x_132; -x_128 = lean_ctor_get(x_38, 1); -x_129 = lean_ctor_get(x_38, 2); -x_130 = lean_ctor_get(x_38, 3); -lean_dec(x_130); -x_131 = lean_ctor_get(x_38, 0); -lean_dec(x_131); -x_132 = !lean_is_exclusive(x_117); -if (x_132 == 0) -{ -lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; uint8_t x_137; uint8_t x_138; -x_133 = lean_ctor_get(x_117, 0); -x_134 = lean_ctor_get(x_117, 1); -x_135 = lean_ctor_get(x_117, 2); -x_136 = lean_ctor_get(x_117, 3); -x_137 = 1; -lean_inc(x_40); -lean_ctor_set(x_117, 3, x_133); -lean_ctor_set(x_117, 2, x_129); -lean_ctor_set(x_117, 1, x_128); -lean_ctor_set(x_117, 0, x_40); -x_138 = !lean_is_exclusive(x_40); -if (x_138 == 0) -{ -lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; uint8_t x_143; -x_139 = lean_ctor_get(x_40, 3); -lean_dec(x_139); -x_140 = lean_ctor_get(x_40, 2); -lean_dec(x_140); -x_141 = lean_ctor_get(x_40, 1); -lean_dec(x_141); -x_142 = lean_ctor_get(x_40, 0); -lean_dec(x_142); -lean_ctor_set_uint8(x_117, sizeof(void*)*4, x_137); -lean_ctor_set(x_40, 3, x_36); -lean_ctor_set(x_40, 2, x_35); -lean_ctor_set(x_40, 1, x_34); -lean_ctor_set(x_40, 0, x_136); -lean_ctor_set_uint8(x_40, sizeof(void*)*4, x_137); -x_143 = 0; -lean_ctor_set(x_38, 3, x_40); -lean_ctor_set(x_38, 2, x_135); -lean_ctor_set(x_38, 1, x_134); -lean_ctor_set(x_38, 0, x_117); -lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_143); -return x_38; -} -else -{ -lean_object* x_144; uint8_t x_145; -lean_dec(x_40); -lean_ctor_set_uint8(x_117, sizeof(void*)*4, x_137); -x_144 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_144, 0, x_136); -lean_ctor_set(x_144, 1, x_34); -lean_ctor_set(x_144, 2, x_35); -lean_ctor_set(x_144, 3, x_36); -lean_ctor_set_uint8(x_144, sizeof(void*)*4, x_137); -x_145 = 0; -lean_ctor_set(x_38, 3, x_144); -lean_ctor_set(x_38, 2, x_135); -lean_ctor_set(x_38, 1, x_134); -lean_ctor_set(x_38, 0, x_117); -lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_145); -return x_38; -} -} -else -{ -lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; uint8_t x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; uint8_t x_154; -x_146 = lean_ctor_get(x_117, 0); -x_147 = lean_ctor_get(x_117, 1); -x_148 = lean_ctor_get(x_117, 2); -x_149 = lean_ctor_get(x_117, 3); -lean_inc(x_149); -lean_inc(x_148); -lean_inc(x_147); -lean_inc(x_146); -lean_dec(x_117); -x_150 = 1; -lean_inc(x_40); -x_151 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_151, 0, x_40); -lean_ctor_set(x_151, 1, x_128); -lean_ctor_set(x_151, 2, x_129); -lean_ctor_set(x_151, 3, x_146); -if (lean_is_exclusive(x_40)) { - lean_ctor_release(x_40, 0); - lean_ctor_release(x_40, 1); - lean_ctor_release(x_40, 2); - lean_ctor_release(x_40, 3); - x_152 = x_40; -} else { - lean_dec_ref(x_40); - x_152 = lean_box(0); -} -lean_ctor_set_uint8(x_151, sizeof(void*)*4, x_150); -if (lean_is_scalar(x_152)) { - x_153 = lean_alloc_ctor(1, 4, 1); -} else { - x_153 = x_152; -} -lean_ctor_set(x_153, 0, x_149); -lean_ctor_set(x_153, 1, x_34); -lean_ctor_set(x_153, 2, x_35); -lean_ctor_set(x_153, 3, x_36); -lean_ctor_set_uint8(x_153, sizeof(void*)*4, x_150); -x_154 = 0; -lean_ctor_set(x_38, 3, x_153); -lean_ctor_set(x_38, 2, x_148); -lean_ctor_set(x_38, 1, x_147); -lean_ctor_set(x_38, 0, x_151); -lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_154); -return x_38; -} -} -else -{ -lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; uint8_t x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; uint8_t x_166; lean_object* x_167; -x_155 = lean_ctor_get(x_38, 1); -x_156 = lean_ctor_get(x_38, 2); -lean_inc(x_156); -lean_inc(x_155); -lean_dec(x_38); -x_157 = lean_ctor_get(x_117, 0); -lean_inc(x_157); -x_158 = lean_ctor_get(x_117, 1); -lean_inc(x_158); -x_159 = lean_ctor_get(x_117, 2); -lean_inc(x_159); -x_160 = lean_ctor_get(x_117, 3); -lean_inc(x_160); -if (lean_is_exclusive(x_117)) { - lean_ctor_release(x_117, 0); - lean_ctor_release(x_117, 1); - lean_ctor_release(x_117, 2); - lean_ctor_release(x_117, 3); - x_161 = x_117; -} else { - lean_dec_ref(x_117); - x_161 = lean_box(0); -} -x_162 = 1; -lean_inc(x_40); -if (lean_is_scalar(x_161)) { - x_163 = lean_alloc_ctor(1, 4, 1); -} else { - x_163 = x_161; -} -lean_ctor_set(x_163, 0, x_40); -lean_ctor_set(x_163, 1, x_155); -lean_ctor_set(x_163, 2, x_156); -lean_ctor_set(x_163, 3, x_157); -if (lean_is_exclusive(x_40)) { - lean_ctor_release(x_40, 0); - lean_ctor_release(x_40, 1); - lean_ctor_release(x_40, 2); - lean_ctor_release(x_40, 3); - x_164 = x_40; -} else { - lean_dec_ref(x_40); - x_164 = lean_box(0); -} -lean_ctor_set_uint8(x_163, sizeof(void*)*4, x_162); -if (lean_is_scalar(x_164)) { - x_165 = lean_alloc_ctor(1, 4, 1); -} else { - x_165 = x_164; -} -lean_ctor_set(x_165, 0, x_160); -lean_ctor_set(x_165, 1, x_34); -lean_ctor_set(x_165, 2, x_35); -lean_ctor_set(x_165, 3, x_36); -lean_ctor_set_uint8(x_165, sizeof(void*)*4, x_162); -x_166 = 0; -x_167 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_167, 0, x_163); -lean_ctor_set(x_167, 1, x_158); -lean_ctor_set(x_167, 2, x_159); -lean_ctor_set(x_167, 3, x_165); -lean_ctor_set_uint8(x_167, sizeof(void*)*4, x_166); -return x_167; -} -} -else -{ -uint8_t x_168; -x_168 = !lean_is_exclusive(x_38); -if (x_168 == 0) -{ -lean_object* x_169; lean_object* x_170; uint8_t x_171; -x_169 = lean_ctor_get(x_38, 3); -lean_dec(x_169); -x_170 = lean_ctor_get(x_38, 0); -lean_dec(x_170); -x_171 = !lean_is_exclusive(x_40); -if (x_171 == 0) -{ -uint8_t x_172; -lean_ctor_set_uint8(x_40, sizeof(void*)*4, x_126); -x_172 = 1; -lean_ctor_set(x_1, 0, x_38); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_172); -return x_1; -} -else -{ -lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; uint8_t x_178; -x_173 = lean_ctor_get(x_40, 0); -x_174 = lean_ctor_get(x_40, 1); -x_175 = lean_ctor_get(x_40, 2); -x_176 = lean_ctor_get(x_40, 3); -lean_inc(x_176); -lean_inc(x_175); -lean_inc(x_174); -lean_inc(x_173); -lean_dec(x_40); -x_177 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_177, 0, x_173); -lean_ctor_set(x_177, 1, x_174); -lean_ctor_set(x_177, 2, x_175); -lean_ctor_set(x_177, 3, x_176); -lean_ctor_set_uint8(x_177, sizeof(void*)*4, x_126); -lean_ctor_set(x_38, 0, x_177); -x_178 = 1; -lean_ctor_set(x_1, 0, x_38); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_178); -return x_1; -} -} -else -{ -lean_object* x_179; lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; uint8_t x_188; -x_179 = lean_ctor_get(x_38, 1); -x_180 = lean_ctor_get(x_38, 2); -lean_inc(x_180); -lean_inc(x_179); -lean_dec(x_38); -x_181 = lean_ctor_get(x_40, 0); -lean_inc(x_181); -x_182 = lean_ctor_get(x_40, 1); -lean_inc(x_182); -x_183 = lean_ctor_get(x_40, 2); -lean_inc(x_183); -x_184 = lean_ctor_get(x_40, 3); -lean_inc(x_184); -if (lean_is_exclusive(x_40)) { - lean_ctor_release(x_40, 0); - lean_ctor_release(x_40, 1); - lean_ctor_release(x_40, 2); - lean_ctor_release(x_40, 3); - x_185 = x_40; -} else { - lean_dec_ref(x_40); - x_185 = lean_box(0); -} -if (lean_is_scalar(x_185)) { - x_186 = lean_alloc_ctor(1, 4, 1); -} else { - x_186 = x_185; -} -lean_ctor_set(x_186, 0, x_181); -lean_ctor_set(x_186, 1, x_182); -lean_ctor_set(x_186, 2, x_183); -lean_ctor_set(x_186, 3, x_184); -lean_ctor_set_uint8(x_186, sizeof(void*)*4, x_126); -x_187 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_187, 0, x_186); -lean_ctor_set(x_187, 1, x_179); -lean_ctor_set(x_187, 2, x_180); -lean_ctor_set(x_187, 3, x_117); -lean_ctor_set_uint8(x_187, sizeof(void*)*4, x_39); -x_188 = 1; -lean_ctor_set(x_1, 0, x_187); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_188); -return x_1; -} -} -} -} -} -} -else -{ -uint8_t x_189; -x_189 = 1; -lean_ctor_set(x_1, 0, x_38); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_189); -return x_1; -} -} -case 1: -{ -uint8_t x_190; -lean_dec(x_35); -lean_dec(x_34); -x_190 = 1; -lean_ctor_set(x_1, 2, x_3); -lean_ctor_set(x_1, 1, x_2); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_190); -return x_1; -} -default: -{ -lean_object* x_191; uint8_t x_192; -x_191 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__6(x_36, x_2, x_3); -x_192 = lean_ctor_get_uint8(x_191, sizeof(void*)*4); -if (x_192 == 0) -{ -lean_object* x_193; -x_193 = lean_ctor_get(x_191, 0); -lean_inc(x_193); -if (lean_obj_tag(x_193) == 0) -{ -lean_object* x_194; -x_194 = lean_ctor_get(x_191, 3); -lean_inc(x_194); -if (lean_obj_tag(x_194) == 0) -{ -uint8_t x_195; -x_195 = !lean_is_exclusive(x_191); -if (x_195 == 0) -{ -lean_object* x_196; lean_object* x_197; uint8_t x_198; -x_196 = lean_ctor_get(x_191, 3); -lean_dec(x_196); -x_197 = lean_ctor_get(x_191, 0); -lean_dec(x_197); -lean_ctor_set(x_191, 0, x_194); -x_198 = 1; -lean_ctor_set(x_1, 3, x_191); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_198); -return x_1; -} -else -{ -lean_object* x_199; lean_object* x_200; lean_object* x_201; uint8_t x_202; -x_199 = lean_ctor_get(x_191, 1); -x_200 = lean_ctor_get(x_191, 2); -lean_inc(x_200); -lean_inc(x_199); -lean_dec(x_191); -x_201 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_201, 0, x_194); -lean_ctor_set(x_201, 1, x_199); -lean_ctor_set(x_201, 2, x_200); -lean_ctor_set(x_201, 3, x_194); -lean_ctor_set_uint8(x_201, sizeof(void*)*4, x_192); -x_202 = 1; -lean_ctor_set(x_1, 3, x_201); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_202); -return x_1; -} -} -else -{ -uint8_t x_203; -x_203 = lean_ctor_get_uint8(x_194, sizeof(void*)*4); -if (x_203 == 0) -{ -uint8_t x_204; -x_204 = !lean_is_exclusive(x_191); -if (x_204 == 0) -{ -lean_object* x_205; lean_object* x_206; lean_object* x_207; lean_object* x_208; uint8_t x_209; -x_205 = lean_ctor_get(x_191, 1); -x_206 = lean_ctor_get(x_191, 2); -x_207 = lean_ctor_get(x_191, 3); -lean_dec(x_207); -x_208 = lean_ctor_get(x_191, 0); -lean_dec(x_208); -x_209 = !lean_is_exclusive(x_194); -if (x_209 == 0) -{ -lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; uint8_t x_214; uint8_t x_215; -x_210 = lean_ctor_get(x_194, 0); -x_211 = lean_ctor_get(x_194, 1); -x_212 = lean_ctor_get(x_194, 2); -x_213 = lean_ctor_get(x_194, 3); -x_214 = 1; -lean_ctor_set(x_194, 3, x_193); -lean_ctor_set(x_194, 2, x_35); -lean_ctor_set(x_194, 1, x_34); -lean_ctor_set(x_194, 0, x_33); -lean_ctor_set_uint8(x_194, sizeof(void*)*4, x_214); -lean_ctor_set(x_191, 3, x_213); -lean_ctor_set(x_191, 2, x_212); -lean_ctor_set(x_191, 1, x_211); -lean_ctor_set(x_191, 0, x_210); -lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_214); -x_215 = 0; -lean_ctor_set(x_1, 3, x_191); -lean_ctor_set(x_1, 2, x_206); -lean_ctor_set(x_1, 1, x_205); -lean_ctor_set(x_1, 0, x_194); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_215); -return x_1; -} -else -{ -lean_object* x_216; lean_object* x_217; lean_object* x_218; lean_object* x_219; uint8_t x_220; lean_object* x_221; uint8_t x_222; -x_216 = lean_ctor_get(x_194, 0); -x_217 = lean_ctor_get(x_194, 1); -x_218 = lean_ctor_get(x_194, 2); -x_219 = lean_ctor_get(x_194, 3); -lean_inc(x_219); -lean_inc(x_218); -lean_inc(x_217); -lean_inc(x_216); -lean_dec(x_194); -x_220 = 1; -x_221 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_221, 0, x_33); -lean_ctor_set(x_221, 1, x_34); -lean_ctor_set(x_221, 2, x_35); -lean_ctor_set(x_221, 3, x_193); -lean_ctor_set_uint8(x_221, sizeof(void*)*4, x_220); -lean_ctor_set(x_191, 3, x_219); -lean_ctor_set(x_191, 2, x_218); -lean_ctor_set(x_191, 1, x_217); -lean_ctor_set(x_191, 0, x_216); -lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_220); -x_222 = 0; -lean_ctor_set(x_1, 3, x_191); -lean_ctor_set(x_1, 2, x_206); -lean_ctor_set(x_1, 1, x_205); -lean_ctor_set(x_1, 0, x_221); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_222); -return x_1; -} -} -else -{ -lean_object* x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; uint8_t x_230; lean_object* x_231; lean_object* x_232; uint8_t x_233; -x_223 = lean_ctor_get(x_191, 1); -x_224 = lean_ctor_get(x_191, 2); -lean_inc(x_224); -lean_inc(x_223); -lean_dec(x_191); -x_225 = lean_ctor_get(x_194, 0); -lean_inc(x_225); -x_226 = lean_ctor_get(x_194, 1); -lean_inc(x_226); -x_227 = lean_ctor_get(x_194, 2); -lean_inc(x_227); -x_228 = lean_ctor_get(x_194, 3); -lean_inc(x_228); -if (lean_is_exclusive(x_194)) { - lean_ctor_release(x_194, 0); - lean_ctor_release(x_194, 1); - lean_ctor_release(x_194, 2); - lean_ctor_release(x_194, 3); - x_229 = x_194; -} else { - lean_dec_ref(x_194); - x_229 = lean_box(0); -} -x_230 = 1; -if (lean_is_scalar(x_229)) { - x_231 = lean_alloc_ctor(1, 4, 1); -} else { - x_231 = x_229; -} -lean_ctor_set(x_231, 0, x_33); -lean_ctor_set(x_231, 1, x_34); -lean_ctor_set(x_231, 2, x_35); -lean_ctor_set(x_231, 3, x_193); -lean_ctor_set_uint8(x_231, sizeof(void*)*4, x_230); -x_232 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_232, 0, x_225); -lean_ctor_set(x_232, 1, x_226); -lean_ctor_set(x_232, 2, x_227); -lean_ctor_set(x_232, 3, x_228); -lean_ctor_set_uint8(x_232, sizeof(void*)*4, x_230); -x_233 = 0; -lean_ctor_set(x_1, 3, x_232); -lean_ctor_set(x_1, 2, x_224); -lean_ctor_set(x_1, 1, x_223); -lean_ctor_set(x_1, 0, x_231); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_233); -return x_1; -} -} -else -{ -uint8_t x_234; -lean_free_object(x_1); -x_234 = !lean_is_exclusive(x_194); -if (x_234 == 0) -{ -lean_object* x_235; lean_object* x_236; lean_object* x_237; lean_object* x_238; uint8_t x_239; -x_235 = lean_ctor_get(x_194, 3); -lean_dec(x_235); -x_236 = lean_ctor_get(x_194, 2); -lean_dec(x_236); -x_237 = lean_ctor_get(x_194, 1); -lean_dec(x_237); -x_238 = lean_ctor_get(x_194, 0); -lean_dec(x_238); -x_239 = 1; -lean_ctor_set(x_194, 3, x_191); -lean_ctor_set(x_194, 2, x_35); -lean_ctor_set(x_194, 1, x_34); -lean_ctor_set(x_194, 0, x_33); -lean_ctor_set_uint8(x_194, sizeof(void*)*4, x_239); -return x_194; -} -else -{ -uint8_t x_240; lean_object* x_241; -lean_dec(x_194); -x_240 = 1; -x_241 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_241, 0, x_33); -lean_ctor_set(x_241, 1, x_34); -lean_ctor_set(x_241, 2, x_35); -lean_ctor_set(x_241, 3, x_191); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_240); -return x_241; -} -} -} -} -else -{ -uint8_t x_242; -x_242 = lean_ctor_get_uint8(x_193, sizeof(void*)*4); -if (x_242 == 0) -{ -uint8_t x_243; -x_243 = !lean_is_exclusive(x_191); -if (x_243 == 0) -{ -lean_object* x_244; uint8_t x_245; -x_244 = lean_ctor_get(x_191, 0); -lean_dec(x_244); -x_245 = !lean_is_exclusive(x_193); -if (x_245 == 0) -{ -lean_object* x_246; lean_object* x_247; lean_object* x_248; lean_object* x_249; uint8_t x_250; uint8_t x_251; -x_246 = lean_ctor_get(x_193, 0); -x_247 = lean_ctor_get(x_193, 1); -x_248 = lean_ctor_get(x_193, 2); -x_249 = lean_ctor_get(x_193, 3); -x_250 = 1; -lean_ctor_set(x_193, 3, x_246); -lean_ctor_set(x_193, 2, x_35); -lean_ctor_set(x_193, 1, x_34); -lean_ctor_set(x_193, 0, x_33); -lean_ctor_set_uint8(x_193, sizeof(void*)*4, x_250); -lean_ctor_set(x_191, 0, x_249); -lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_250); -x_251 = 0; -lean_ctor_set(x_1, 3, x_191); -lean_ctor_set(x_1, 2, x_248); -lean_ctor_set(x_1, 1, x_247); -lean_ctor_set(x_1, 0, x_193); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_251); -return x_1; -} -else -{ -lean_object* x_252; lean_object* x_253; lean_object* x_254; lean_object* x_255; uint8_t x_256; lean_object* x_257; uint8_t x_258; -x_252 = lean_ctor_get(x_193, 0); -x_253 = lean_ctor_get(x_193, 1); -x_254 = lean_ctor_get(x_193, 2); -x_255 = lean_ctor_get(x_193, 3); -lean_inc(x_255); -lean_inc(x_254); -lean_inc(x_253); -lean_inc(x_252); -lean_dec(x_193); -x_256 = 1; -x_257 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_257, 0, x_33); -lean_ctor_set(x_257, 1, x_34); -lean_ctor_set(x_257, 2, x_35); -lean_ctor_set(x_257, 3, x_252); -lean_ctor_set_uint8(x_257, sizeof(void*)*4, x_256); -lean_ctor_set(x_191, 0, x_255); -lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_256); -x_258 = 0; -lean_ctor_set(x_1, 3, x_191); -lean_ctor_set(x_1, 2, x_254); -lean_ctor_set(x_1, 1, x_253); -lean_ctor_set(x_1, 0, x_257); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_258); -return x_1; -} -} -else -{ -lean_object* x_259; lean_object* x_260; lean_object* x_261; lean_object* x_262; lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; uint8_t x_267; lean_object* x_268; lean_object* x_269; uint8_t x_270; -x_259 = lean_ctor_get(x_191, 1); -x_260 = lean_ctor_get(x_191, 2); -x_261 = lean_ctor_get(x_191, 3); -lean_inc(x_261); -lean_inc(x_260); -lean_inc(x_259); -lean_dec(x_191); -x_262 = lean_ctor_get(x_193, 0); -lean_inc(x_262); -x_263 = lean_ctor_get(x_193, 1); -lean_inc(x_263); -x_264 = lean_ctor_get(x_193, 2); -lean_inc(x_264); -x_265 = lean_ctor_get(x_193, 3); -lean_inc(x_265); -if (lean_is_exclusive(x_193)) { - lean_ctor_release(x_193, 0); - lean_ctor_release(x_193, 1); - lean_ctor_release(x_193, 2); - lean_ctor_release(x_193, 3); - x_266 = x_193; -} else { - lean_dec_ref(x_193); - x_266 = lean_box(0); -} -x_267 = 1; -if (lean_is_scalar(x_266)) { - x_268 = lean_alloc_ctor(1, 4, 1); -} else { - x_268 = x_266; -} -lean_ctor_set(x_268, 0, x_33); -lean_ctor_set(x_268, 1, x_34); -lean_ctor_set(x_268, 2, x_35); -lean_ctor_set(x_268, 3, x_262); -lean_ctor_set_uint8(x_268, sizeof(void*)*4, x_267); -x_269 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_269, 0, x_265); -lean_ctor_set(x_269, 1, x_259); -lean_ctor_set(x_269, 2, x_260); -lean_ctor_set(x_269, 3, x_261); -lean_ctor_set_uint8(x_269, sizeof(void*)*4, x_267); -x_270 = 0; -lean_ctor_set(x_1, 3, x_269); -lean_ctor_set(x_1, 2, x_264); -lean_ctor_set(x_1, 1, x_263); -lean_ctor_set(x_1, 0, x_268); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_270); -return x_1; -} -} -else -{ -lean_object* x_271; -x_271 = lean_ctor_get(x_191, 3); -lean_inc(x_271); -if (lean_obj_tag(x_271) == 0) -{ -uint8_t x_272; -lean_free_object(x_1); -x_272 = !lean_is_exclusive(x_193); -if (x_272 == 0) -{ -lean_object* x_273; lean_object* x_274; lean_object* x_275; lean_object* x_276; uint8_t x_277; -x_273 = lean_ctor_get(x_193, 3); -lean_dec(x_273); -x_274 = lean_ctor_get(x_193, 2); -lean_dec(x_274); -x_275 = lean_ctor_get(x_193, 1); -lean_dec(x_275); -x_276 = lean_ctor_get(x_193, 0); -lean_dec(x_276); -x_277 = 1; -lean_ctor_set(x_193, 3, x_191); -lean_ctor_set(x_193, 2, x_35); -lean_ctor_set(x_193, 1, x_34); -lean_ctor_set(x_193, 0, x_33); -lean_ctor_set_uint8(x_193, sizeof(void*)*4, x_277); -return x_193; -} -else -{ -uint8_t x_278; lean_object* x_279; -lean_dec(x_193); -x_278 = 1; -x_279 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_279, 0, x_33); -lean_ctor_set(x_279, 1, x_34); -lean_ctor_set(x_279, 2, x_35); -lean_ctor_set(x_279, 3, x_191); -lean_ctor_set_uint8(x_279, sizeof(void*)*4, x_278); -return x_279; -} -} -else -{ -uint8_t x_280; -x_280 = lean_ctor_get_uint8(x_271, sizeof(void*)*4); -if (x_280 == 0) -{ -uint8_t x_281; -lean_free_object(x_1); -x_281 = !lean_is_exclusive(x_191); -if (x_281 == 0) -{ -lean_object* x_282; lean_object* x_283; uint8_t x_284; -x_282 = lean_ctor_get(x_191, 3); -lean_dec(x_282); -x_283 = lean_ctor_get(x_191, 0); -lean_dec(x_283); -x_284 = !lean_is_exclusive(x_271); -if (x_284 == 0) -{ -lean_object* x_285; lean_object* x_286; lean_object* x_287; lean_object* x_288; uint8_t x_289; uint8_t x_290; -x_285 = lean_ctor_get(x_271, 0); -x_286 = lean_ctor_get(x_271, 1); -x_287 = lean_ctor_get(x_271, 2); -x_288 = lean_ctor_get(x_271, 3); -x_289 = 1; -lean_inc(x_193); -lean_ctor_set(x_271, 3, x_193); -lean_ctor_set(x_271, 2, x_35); -lean_ctor_set(x_271, 1, x_34); -lean_ctor_set(x_271, 0, x_33); -x_290 = !lean_is_exclusive(x_193); -if (x_290 == 0) -{ -lean_object* x_291; lean_object* x_292; lean_object* x_293; lean_object* x_294; uint8_t x_295; -x_291 = lean_ctor_get(x_193, 3); -lean_dec(x_291); -x_292 = lean_ctor_get(x_193, 2); -lean_dec(x_292); -x_293 = lean_ctor_get(x_193, 1); -lean_dec(x_293); -x_294 = lean_ctor_get(x_193, 0); -lean_dec(x_294); -lean_ctor_set_uint8(x_271, sizeof(void*)*4, x_289); -lean_ctor_set(x_193, 3, x_288); -lean_ctor_set(x_193, 2, x_287); -lean_ctor_set(x_193, 1, x_286); -lean_ctor_set(x_193, 0, x_285); -lean_ctor_set_uint8(x_193, sizeof(void*)*4, x_289); -x_295 = 0; -lean_ctor_set(x_191, 3, x_193); -lean_ctor_set(x_191, 0, x_271); -lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_295); -return x_191; -} -else -{ -lean_object* x_296; uint8_t x_297; -lean_dec(x_193); -lean_ctor_set_uint8(x_271, sizeof(void*)*4, x_289); -x_296 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_296, 0, x_285); -lean_ctor_set(x_296, 1, x_286); -lean_ctor_set(x_296, 2, x_287); -lean_ctor_set(x_296, 3, x_288); -lean_ctor_set_uint8(x_296, sizeof(void*)*4, x_289); -x_297 = 0; -lean_ctor_set(x_191, 3, x_296); -lean_ctor_set(x_191, 0, x_271); -lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_297); -return x_191; -} -} -else -{ -lean_object* x_298; lean_object* x_299; lean_object* x_300; lean_object* x_301; uint8_t x_302; lean_object* x_303; lean_object* x_304; lean_object* x_305; uint8_t x_306; -x_298 = lean_ctor_get(x_271, 0); -x_299 = lean_ctor_get(x_271, 1); -x_300 = lean_ctor_get(x_271, 2); -x_301 = lean_ctor_get(x_271, 3); -lean_inc(x_301); -lean_inc(x_300); -lean_inc(x_299); -lean_inc(x_298); -lean_dec(x_271); -x_302 = 1; -lean_inc(x_193); -x_303 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_303, 0, x_33); -lean_ctor_set(x_303, 1, x_34); -lean_ctor_set(x_303, 2, x_35); -lean_ctor_set(x_303, 3, x_193); -if (lean_is_exclusive(x_193)) { - lean_ctor_release(x_193, 0); - lean_ctor_release(x_193, 1); - lean_ctor_release(x_193, 2); - lean_ctor_release(x_193, 3); - x_304 = x_193; -} else { - lean_dec_ref(x_193); - x_304 = lean_box(0); -} -lean_ctor_set_uint8(x_303, sizeof(void*)*4, x_302); -if (lean_is_scalar(x_304)) { - x_305 = lean_alloc_ctor(1, 4, 1); -} else { - x_305 = x_304; -} -lean_ctor_set(x_305, 0, x_298); -lean_ctor_set(x_305, 1, x_299); -lean_ctor_set(x_305, 2, x_300); -lean_ctor_set(x_305, 3, x_301); -lean_ctor_set_uint8(x_305, sizeof(void*)*4, x_302); -x_306 = 0; -lean_ctor_set(x_191, 3, x_305); -lean_ctor_set(x_191, 0, x_303); -lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_306); -return x_191; -} -} -else -{ -lean_object* x_307; lean_object* x_308; lean_object* x_309; lean_object* x_310; lean_object* x_311; lean_object* x_312; lean_object* x_313; uint8_t x_314; lean_object* x_315; lean_object* x_316; lean_object* x_317; uint8_t x_318; lean_object* x_319; -x_307 = lean_ctor_get(x_191, 1); -x_308 = lean_ctor_get(x_191, 2); -lean_inc(x_308); -lean_inc(x_307); -lean_dec(x_191); -x_309 = lean_ctor_get(x_271, 0); -lean_inc(x_309); -x_310 = lean_ctor_get(x_271, 1); -lean_inc(x_310); -x_311 = lean_ctor_get(x_271, 2); -lean_inc(x_311); -x_312 = lean_ctor_get(x_271, 3); -lean_inc(x_312); -if (lean_is_exclusive(x_271)) { - lean_ctor_release(x_271, 0); - lean_ctor_release(x_271, 1); - lean_ctor_release(x_271, 2); - lean_ctor_release(x_271, 3); - x_313 = x_271; -} else { - lean_dec_ref(x_271); - x_313 = lean_box(0); -} -x_314 = 1; -lean_inc(x_193); -if (lean_is_scalar(x_313)) { - x_315 = lean_alloc_ctor(1, 4, 1); -} else { - x_315 = x_313; -} -lean_ctor_set(x_315, 0, x_33); -lean_ctor_set(x_315, 1, x_34); -lean_ctor_set(x_315, 2, x_35); -lean_ctor_set(x_315, 3, x_193); -if (lean_is_exclusive(x_193)) { - lean_ctor_release(x_193, 0); - lean_ctor_release(x_193, 1); - lean_ctor_release(x_193, 2); - lean_ctor_release(x_193, 3); - x_316 = x_193; -} else { - lean_dec_ref(x_193); - x_316 = lean_box(0); -} -lean_ctor_set_uint8(x_315, sizeof(void*)*4, x_314); -if (lean_is_scalar(x_316)) { - x_317 = lean_alloc_ctor(1, 4, 1); -} else { - x_317 = x_316; -} -lean_ctor_set(x_317, 0, x_309); -lean_ctor_set(x_317, 1, x_310); -lean_ctor_set(x_317, 2, x_311); -lean_ctor_set(x_317, 3, x_312); -lean_ctor_set_uint8(x_317, sizeof(void*)*4, x_314); -x_318 = 0; -x_319 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_319, 0, x_315); -lean_ctor_set(x_319, 1, x_307); -lean_ctor_set(x_319, 2, x_308); -lean_ctor_set(x_319, 3, x_317); -lean_ctor_set_uint8(x_319, sizeof(void*)*4, x_318); -return x_319; -} -} -else -{ -uint8_t x_320; -x_320 = !lean_is_exclusive(x_191); -if (x_320 == 0) -{ -lean_object* x_321; lean_object* x_322; uint8_t x_323; -x_321 = lean_ctor_get(x_191, 3); -lean_dec(x_321); -x_322 = lean_ctor_get(x_191, 0); -lean_dec(x_322); -x_323 = !lean_is_exclusive(x_193); -if (x_323 == 0) -{ -uint8_t x_324; -lean_ctor_set_uint8(x_193, sizeof(void*)*4, x_280); -x_324 = 1; -lean_ctor_set(x_1, 3, x_191); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_324); -return x_1; -} -else -{ -lean_object* x_325; lean_object* x_326; lean_object* x_327; lean_object* x_328; lean_object* x_329; uint8_t x_330; -x_325 = lean_ctor_get(x_193, 0); -x_326 = lean_ctor_get(x_193, 1); -x_327 = lean_ctor_get(x_193, 2); -x_328 = lean_ctor_get(x_193, 3); -lean_inc(x_328); -lean_inc(x_327); -lean_inc(x_326); -lean_inc(x_325); -lean_dec(x_193); -x_329 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_329, 0, x_325); -lean_ctor_set(x_329, 1, x_326); -lean_ctor_set(x_329, 2, x_327); -lean_ctor_set(x_329, 3, x_328); -lean_ctor_set_uint8(x_329, sizeof(void*)*4, x_280); -lean_ctor_set(x_191, 0, x_329); -x_330 = 1; -lean_ctor_set(x_1, 3, x_191); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_330); -return x_1; -} -} -else -{ -lean_object* x_331; lean_object* x_332; lean_object* x_333; lean_object* x_334; lean_object* x_335; lean_object* x_336; lean_object* x_337; lean_object* x_338; lean_object* x_339; uint8_t x_340; -x_331 = lean_ctor_get(x_191, 1); -x_332 = lean_ctor_get(x_191, 2); -lean_inc(x_332); -lean_inc(x_331); -lean_dec(x_191); -x_333 = lean_ctor_get(x_193, 0); -lean_inc(x_333); -x_334 = lean_ctor_get(x_193, 1); -lean_inc(x_334); -x_335 = lean_ctor_get(x_193, 2); -lean_inc(x_335); -x_336 = lean_ctor_get(x_193, 3); -lean_inc(x_336); -if (lean_is_exclusive(x_193)) { - lean_ctor_release(x_193, 0); - lean_ctor_release(x_193, 1); - lean_ctor_release(x_193, 2); - lean_ctor_release(x_193, 3); - x_337 = x_193; -} else { - lean_dec_ref(x_193); - x_337 = lean_box(0); -} -if (lean_is_scalar(x_337)) { - x_338 = lean_alloc_ctor(1, 4, 1); -} else { - x_338 = x_337; -} -lean_ctor_set(x_338, 0, x_333); -lean_ctor_set(x_338, 1, x_334); -lean_ctor_set(x_338, 2, x_335); -lean_ctor_set(x_338, 3, x_336); -lean_ctor_set_uint8(x_338, sizeof(void*)*4, x_280); -x_339 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_339, 0, x_338); -lean_ctor_set(x_339, 1, x_331); -lean_ctor_set(x_339, 2, x_332); -lean_ctor_set(x_339, 3, x_271); -lean_ctor_set_uint8(x_339, sizeof(void*)*4, x_192); -x_340 = 1; -lean_ctor_set(x_1, 3, x_339); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_340); -return x_1; -} -} -} -} -} -} -else -{ -uint8_t x_341; -x_341 = 1; -lean_ctor_set(x_1, 3, x_191); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_341); -return x_1; -} -} -} -} -else -{ -lean_object* x_342; lean_object* x_343; lean_object* x_344; lean_object* x_345; uint8_t x_346; -x_342 = lean_ctor_get(x_1, 0); -x_343 = lean_ctor_get(x_1, 1); -x_344 = lean_ctor_get(x_1, 2); -x_345 = lean_ctor_get(x_1, 3); -lean_inc(x_345); -lean_inc(x_344); -lean_inc(x_343); -lean_inc(x_342); -lean_dec(x_1); -x_346 = l_Lean_Name_quickCmp(x_2, x_343); -switch (x_346) { -case 0: -{ -lean_object* x_347; uint8_t x_348; -x_347 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__6(x_342, x_2, x_3); -x_348 = lean_ctor_get_uint8(x_347, sizeof(void*)*4); -if (x_348 == 0) -{ -lean_object* x_349; -x_349 = lean_ctor_get(x_347, 0); -lean_inc(x_349); -if (lean_obj_tag(x_349) == 0) -{ -lean_object* x_350; -x_350 = lean_ctor_get(x_347, 3); -lean_inc(x_350); -if (lean_obj_tag(x_350) == 0) -{ -lean_object* x_351; lean_object* x_352; lean_object* x_353; lean_object* x_354; uint8_t x_355; lean_object* x_356; -x_351 = lean_ctor_get(x_347, 1); -lean_inc(x_351); -x_352 = lean_ctor_get(x_347, 2); -lean_inc(x_352); -if (lean_is_exclusive(x_347)) { - lean_ctor_release(x_347, 0); - lean_ctor_release(x_347, 1); - lean_ctor_release(x_347, 2); - lean_ctor_release(x_347, 3); - x_353 = x_347; -} else { - lean_dec_ref(x_347); - x_353 = lean_box(0); -} -if (lean_is_scalar(x_353)) { - x_354 = lean_alloc_ctor(1, 4, 1); -} else { - x_354 = x_353; -} -lean_ctor_set(x_354, 0, x_350); -lean_ctor_set(x_354, 1, x_351); -lean_ctor_set(x_354, 2, x_352); -lean_ctor_set(x_354, 3, x_350); -lean_ctor_set_uint8(x_354, sizeof(void*)*4, x_348); -x_355 = 1; -x_356 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_356, 0, x_354); -lean_ctor_set(x_356, 1, x_343); -lean_ctor_set(x_356, 2, x_344); -lean_ctor_set(x_356, 3, x_345); -lean_ctor_set_uint8(x_356, sizeof(void*)*4, x_355); -return x_356; -} -else -{ -uint8_t x_357; -x_357 = lean_ctor_get_uint8(x_350, sizeof(void*)*4); -if (x_357 == 0) -{ -lean_object* x_358; lean_object* x_359; lean_object* x_360; lean_object* x_361; lean_object* x_362; lean_object* x_363; lean_object* x_364; lean_object* x_365; uint8_t x_366; lean_object* x_367; lean_object* x_368; uint8_t x_369; lean_object* x_370; -x_358 = lean_ctor_get(x_347, 1); -lean_inc(x_358); -x_359 = lean_ctor_get(x_347, 2); -lean_inc(x_359); -if (lean_is_exclusive(x_347)) { - lean_ctor_release(x_347, 0); - lean_ctor_release(x_347, 1); - lean_ctor_release(x_347, 2); - lean_ctor_release(x_347, 3); - x_360 = x_347; -} else { - lean_dec_ref(x_347); - x_360 = lean_box(0); -} -x_361 = lean_ctor_get(x_350, 0); -lean_inc(x_361); -x_362 = lean_ctor_get(x_350, 1); -lean_inc(x_362); -x_363 = lean_ctor_get(x_350, 2); -lean_inc(x_363); -x_364 = lean_ctor_get(x_350, 3); -lean_inc(x_364); -if (lean_is_exclusive(x_350)) { - lean_ctor_release(x_350, 0); - lean_ctor_release(x_350, 1); - lean_ctor_release(x_350, 2); - lean_ctor_release(x_350, 3); - x_365 = x_350; -} else { - lean_dec_ref(x_350); - x_365 = lean_box(0); -} -x_366 = 1; -if (lean_is_scalar(x_365)) { - x_367 = lean_alloc_ctor(1, 4, 1); -} else { - x_367 = x_365; -} -lean_ctor_set(x_367, 0, x_349); -lean_ctor_set(x_367, 1, x_358); -lean_ctor_set(x_367, 2, x_359); -lean_ctor_set(x_367, 3, x_361); -lean_ctor_set_uint8(x_367, sizeof(void*)*4, x_366); -if (lean_is_scalar(x_360)) { - x_368 = lean_alloc_ctor(1, 4, 1); -} else { - x_368 = x_360; -} -lean_ctor_set(x_368, 0, x_364); -lean_ctor_set(x_368, 1, x_343); -lean_ctor_set(x_368, 2, x_344); -lean_ctor_set(x_368, 3, x_345); -lean_ctor_set_uint8(x_368, sizeof(void*)*4, x_366); -x_369 = 0; -x_370 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_370, 0, x_367); -lean_ctor_set(x_370, 1, x_362); -lean_ctor_set(x_370, 2, x_363); -lean_ctor_set(x_370, 3, x_368); -lean_ctor_set_uint8(x_370, sizeof(void*)*4, x_369); -return x_370; -} -else -{ -lean_object* x_371; uint8_t x_372; lean_object* x_373; -if (lean_is_exclusive(x_350)) { - lean_ctor_release(x_350, 0); - lean_ctor_release(x_350, 1); - lean_ctor_release(x_350, 2); - lean_ctor_release(x_350, 3); - x_371 = x_350; -} else { - lean_dec_ref(x_350); - x_371 = lean_box(0); -} -x_372 = 1; -if (lean_is_scalar(x_371)) { - x_373 = lean_alloc_ctor(1, 4, 1); -} else { - x_373 = x_371; -} -lean_ctor_set(x_373, 0, x_347); -lean_ctor_set(x_373, 1, x_343); -lean_ctor_set(x_373, 2, x_344); -lean_ctor_set(x_373, 3, x_345); -lean_ctor_set_uint8(x_373, sizeof(void*)*4, x_372); -return x_373; -} -} -} -else -{ -uint8_t x_374; -x_374 = lean_ctor_get_uint8(x_349, sizeof(void*)*4); -if (x_374 == 0) -{ -lean_object* x_375; lean_object* x_376; lean_object* x_377; lean_object* x_378; lean_object* x_379; lean_object* x_380; lean_object* x_381; lean_object* x_382; lean_object* x_383; uint8_t x_384; lean_object* x_385; lean_object* x_386; uint8_t x_387; lean_object* x_388; -x_375 = lean_ctor_get(x_347, 1); -lean_inc(x_375); -x_376 = lean_ctor_get(x_347, 2); -lean_inc(x_376); -x_377 = lean_ctor_get(x_347, 3); -lean_inc(x_377); -if (lean_is_exclusive(x_347)) { - lean_ctor_release(x_347, 0); - lean_ctor_release(x_347, 1); - lean_ctor_release(x_347, 2); - lean_ctor_release(x_347, 3); - x_378 = x_347; -} else { - lean_dec_ref(x_347); - x_378 = lean_box(0); -} -x_379 = lean_ctor_get(x_349, 0); -lean_inc(x_379); -x_380 = lean_ctor_get(x_349, 1); -lean_inc(x_380); -x_381 = lean_ctor_get(x_349, 2); -lean_inc(x_381); -x_382 = lean_ctor_get(x_349, 3); -lean_inc(x_382); -if (lean_is_exclusive(x_349)) { - lean_ctor_release(x_349, 0); - lean_ctor_release(x_349, 1); - lean_ctor_release(x_349, 2); - lean_ctor_release(x_349, 3); - x_383 = x_349; -} else { - lean_dec_ref(x_349); - x_383 = lean_box(0); -} -x_384 = 1; -if (lean_is_scalar(x_383)) { - x_385 = lean_alloc_ctor(1, 4, 1); -} else { - x_385 = x_383; -} -lean_ctor_set(x_385, 0, x_379); -lean_ctor_set(x_385, 1, x_380); -lean_ctor_set(x_385, 2, x_381); -lean_ctor_set(x_385, 3, x_382); -lean_ctor_set_uint8(x_385, sizeof(void*)*4, x_384); -if (lean_is_scalar(x_378)) { - x_386 = lean_alloc_ctor(1, 4, 1); -} else { - x_386 = x_378; -} -lean_ctor_set(x_386, 0, x_377); -lean_ctor_set(x_386, 1, x_343); -lean_ctor_set(x_386, 2, x_344); -lean_ctor_set(x_386, 3, x_345); -lean_ctor_set_uint8(x_386, sizeof(void*)*4, x_384); -x_387 = 0; -x_388 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_388, 0, x_385); -lean_ctor_set(x_388, 1, x_375); -lean_ctor_set(x_388, 2, x_376); -lean_ctor_set(x_388, 3, x_386); -lean_ctor_set_uint8(x_388, sizeof(void*)*4, x_387); -return x_388; -} -else -{ -lean_object* x_389; -x_389 = lean_ctor_get(x_347, 3); -lean_inc(x_389); -if (lean_obj_tag(x_389) == 0) -{ -lean_object* x_390; uint8_t x_391; lean_object* x_392; -if (lean_is_exclusive(x_349)) { - lean_ctor_release(x_349, 0); - lean_ctor_release(x_349, 1); - lean_ctor_release(x_349, 2); - lean_ctor_release(x_349, 3); - x_390 = x_349; -} else { - lean_dec_ref(x_349); - x_390 = lean_box(0); -} -x_391 = 1; -if (lean_is_scalar(x_390)) { - x_392 = lean_alloc_ctor(1, 4, 1); -} else { - x_392 = x_390; -} -lean_ctor_set(x_392, 0, x_347); -lean_ctor_set(x_392, 1, x_343); -lean_ctor_set(x_392, 2, x_344); -lean_ctor_set(x_392, 3, x_345); -lean_ctor_set_uint8(x_392, sizeof(void*)*4, x_391); -return x_392; -} -else -{ -uint8_t x_393; -x_393 = lean_ctor_get_uint8(x_389, sizeof(void*)*4); -if (x_393 == 0) -{ -lean_object* x_394; lean_object* x_395; lean_object* x_396; lean_object* x_397; lean_object* x_398; lean_object* x_399; lean_object* x_400; lean_object* x_401; uint8_t x_402; lean_object* x_403; lean_object* x_404; lean_object* x_405; uint8_t x_406; lean_object* x_407; -x_394 = lean_ctor_get(x_347, 1); -lean_inc(x_394); -x_395 = lean_ctor_get(x_347, 2); -lean_inc(x_395); -if (lean_is_exclusive(x_347)) { - lean_ctor_release(x_347, 0); - lean_ctor_release(x_347, 1); - lean_ctor_release(x_347, 2); - lean_ctor_release(x_347, 3); - x_396 = x_347; -} else { - lean_dec_ref(x_347); - x_396 = lean_box(0); -} -x_397 = lean_ctor_get(x_389, 0); -lean_inc(x_397); -x_398 = lean_ctor_get(x_389, 1); -lean_inc(x_398); -x_399 = lean_ctor_get(x_389, 2); -lean_inc(x_399); -x_400 = lean_ctor_get(x_389, 3); -lean_inc(x_400); -if (lean_is_exclusive(x_389)) { - lean_ctor_release(x_389, 0); - lean_ctor_release(x_389, 1); - lean_ctor_release(x_389, 2); - lean_ctor_release(x_389, 3); - x_401 = x_389; -} else { - lean_dec_ref(x_389); - x_401 = lean_box(0); -} -x_402 = 1; -lean_inc(x_349); -if (lean_is_scalar(x_401)) { - x_403 = lean_alloc_ctor(1, 4, 1); -} else { - x_403 = x_401; -} -lean_ctor_set(x_403, 0, x_349); -lean_ctor_set(x_403, 1, x_394); -lean_ctor_set(x_403, 2, x_395); -lean_ctor_set(x_403, 3, x_397); -if (lean_is_exclusive(x_349)) { - lean_ctor_release(x_349, 0); - lean_ctor_release(x_349, 1); - lean_ctor_release(x_349, 2); - lean_ctor_release(x_349, 3); - x_404 = x_349; -} else { - lean_dec_ref(x_349); - x_404 = lean_box(0); -} -lean_ctor_set_uint8(x_403, sizeof(void*)*4, x_402); -if (lean_is_scalar(x_404)) { - x_405 = lean_alloc_ctor(1, 4, 1); -} else { - x_405 = x_404; -} -lean_ctor_set(x_405, 0, x_400); -lean_ctor_set(x_405, 1, x_343); -lean_ctor_set(x_405, 2, x_344); -lean_ctor_set(x_405, 3, x_345); -lean_ctor_set_uint8(x_405, sizeof(void*)*4, x_402); -x_406 = 0; -if (lean_is_scalar(x_396)) { - x_407 = lean_alloc_ctor(1, 4, 1); -} else { - x_407 = x_396; -} -lean_ctor_set(x_407, 0, x_403); -lean_ctor_set(x_407, 1, x_398); -lean_ctor_set(x_407, 2, x_399); -lean_ctor_set(x_407, 3, x_405); -lean_ctor_set_uint8(x_407, sizeof(void*)*4, x_406); -return x_407; -} -else -{ -lean_object* x_408; lean_object* x_409; lean_object* x_410; lean_object* x_411; lean_object* x_412; lean_object* x_413; lean_object* x_414; lean_object* x_415; lean_object* x_416; lean_object* x_417; uint8_t x_418; lean_object* x_419; -x_408 = lean_ctor_get(x_347, 1); -lean_inc(x_408); -x_409 = lean_ctor_get(x_347, 2); -lean_inc(x_409); -if (lean_is_exclusive(x_347)) { - lean_ctor_release(x_347, 0); - lean_ctor_release(x_347, 1); - lean_ctor_release(x_347, 2); - lean_ctor_release(x_347, 3); - x_410 = x_347; -} else { - lean_dec_ref(x_347); - x_410 = lean_box(0); -} -x_411 = lean_ctor_get(x_349, 0); -lean_inc(x_411); -x_412 = lean_ctor_get(x_349, 1); -lean_inc(x_412); -x_413 = lean_ctor_get(x_349, 2); -lean_inc(x_413); -x_414 = lean_ctor_get(x_349, 3); -lean_inc(x_414); -if (lean_is_exclusive(x_349)) { - lean_ctor_release(x_349, 0); - lean_ctor_release(x_349, 1); - lean_ctor_release(x_349, 2); - lean_ctor_release(x_349, 3); - x_415 = x_349; -} else { - lean_dec_ref(x_349); - x_415 = lean_box(0); -} -if (lean_is_scalar(x_415)) { - x_416 = lean_alloc_ctor(1, 4, 1); -} else { - x_416 = x_415; -} -lean_ctor_set(x_416, 0, x_411); -lean_ctor_set(x_416, 1, x_412); -lean_ctor_set(x_416, 2, x_413); -lean_ctor_set(x_416, 3, x_414); -lean_ctor_set_uint8(x_416, sizeof(void*)*4, x_393); -if (lean_is_scalar(x_410)) { - x_417 = lean_alloc_ctor(1, 4, 1); -} else { - x_417 = x_410; -} -lean_ctor_set(x_417, 0, x_416); -lean_ctor_set(x_417, 1, x_408); -lean_ctor_set(x_417, 2, x_409); -lean_ctor_set(x_417, 3, x_389); -lean_ctor_set_uint8(x_417, sizeof(void*)*4, x_348); -x_418 = 1; -x_419 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_419, 0, x_417); -lean_ctor_set(x_419, 1, x_343); -lean_ctor_set(x_419, 2, x_344); -lean_ctor_set(x_419, 3, x_345); -lean_ctor_set_uint8(x_419, sizeof(void*)*4, x_418); -return x_419; -} -} -} -} -} -else -{ -uint8_t x_420; lean_object* x_421; -x_420 = 1; -x_421 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_421, 0, x_347); -lean_ctor_set(x_421, 1, x_343); -lean_ctor_set(x_421, 2, x_344); -lean_ctor_set(x_421, 3, x_345); -lean_ctor_set_uint8(x_421, sizeof(void*)*4, x_420); -return x_421; -} -} -case 1: -{ -uint8_t x_422; lean_object* x_423; -lean_dec(x_344); -lean_dec(x_343); -x_422 = 1; -x_423 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_423, 0, x_342); -lean_ctor_set(x_423, 1, x_2); -lean_ctor_set(x_423, 2, x_3); -lean_ctor_set(x_423, 3, x_345); -lean_ctor_set_uint8(x_423, sizeof(void*)*4, x_422); -return x_423; -} -default: -{ -lean_object* x_424; uint8_t x_425; -x_424 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__6(x_345, x_2, x_3); -x_425 = lean_ctor_get_uint8(x_424, sizeof(void*)*4); -if (x_425 == 0) -{ -lean_object* x_426; -x_426 = lean_ctor_get(x_424, 0); -lean_inc(x_426); -if (lean_obj_tag(x_426) == 0) -{ -lean_object* x_427; -x_427 = lean_ctor_get(x_424, 3); -lean_inc(x_427); -if (lean_obj_tag(x_427) == 0) -{ -lean_object* x_428; lean_object* x_429; lean_object* x_430; lean_object* x_431; uint8_t x_432; lean_object* x_433; -x_428 = lean_ctor_get(x_424, 1); -lean_inc(x_428); -x_429 = lean_ctor_get(x_424, 2); -lean_inc(x_429); -if (lean_is_exclusive(x_424)) { - lean_ctor_release(x_424, 0); - lean_ctor_release(x_424, 1); - lean_ctor_release(x_424, 2); - lean_ctor_release(x_424, 3); - x_430 = x_424; -} else { - lean_dec_ref(x_424); - x_430 = lean_box(0); -} -if (lean_is_scalar(x_430)) { - x_431 = lean_alloc_ctor(1, 4, 1); -} else { - x_431 = x_430; -} -lean_ctor_set(x_431, 0, x_427); -lean_ctor_set(x_431, 1, x_428); -lean_ctor_set(x_431, 2, x_429); -lean_ctor_set(x_431, 3, x_427); -lean_ctor_set_uint8(x_431, sizeof(void*)*4, x_425); -x_432 = 1; -x_433 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_433, 0, x_342); -lean_ctor_set(x_433, 1, x_343); -lean_ctor_set(x_433, 2, x_344); -lean_ctor_set(x_433, 3, x_431); -lean_ctor_set_uint8(x_433, sizeof(void*)*4, x_432); -return x_433; -} -else -{ -uint8_t x_434; -x_434 = lean_ctor_get_uint8(x_427, sizeof(void*)*4); -if (x_434 == 0) -{ -lean_object* x_435; lean_object* x_436; lean_object* x_437; lean_object* x_438; lean_object* x_439; lean_object* x_440; lean_object* x_441; lean_object* x_442; uint8_t x_443; lean_object* x_444; lean_object* x_445; uint8_t x_446; lean_object* x_447; -x_435 = lean_ctor_get(x_424, 1); -lean_inc(x_435); -x_436 = lean_ctor_get(x_424, 2); -lean_inc(x_436); -if (lean_is_exclusive(x_424)) { - lean_ctor_release(x_424, 0); - lean_ctor_release(x_424, 1); - lean_ctor_release(x_424, 2); - lean_ctor_release(x_424, 3); - x_437 = x_424; -} else { - lean_dec_ref(x_424); - x_437 = lean_box(0); -} -x_438 = lean_ctor_get(x_427, 0); -lean_inc(x_438); -x_439 = lean_ctor_get(x_427, 1); -lean_inc(x_439); -x_440 = lean_ctor_get(x_427, 2); -lean_inc(x_440); -x_441 = lean_ctor_get(x_427, 3); -lean_inc(x_441); -if (lean_is_exclusive(x_427)) { - lean_ctor_release(x_427, 0); - lean_ctor_release(x_427, 1); - lean_ctor_release(x_427, 2); - lean_ctor_release(x_427, 3); - x_442 = x_427; -} else { - lean_dec_ref(x_427); - x_442 = lean_box(0); -} -x_443 = 1; -if (lean_is_scalar(x_442)) { - x_444 = lean_alloc_ctor(1, 4, 1); -} else { - x_444 = x_442; -} -lean_ctor_set(x_444, 0, x_342); -lean_ctor_set(x_444, 1, x_343); -lean_ctor_set(x_444, 2, x_344); -lean_ctor_set(x_444, 3, x_426); -lean_ctor_set_uint8(x_444, sizeof(void*)*4, x_443); -if (lean_is_scalar(x_437)) { - x_445 = lean_alloc_ctor(1, 4, 1); -} else { - x_445 = x_437; -} -lean_ctor_set(x_445, 0, x_438); -lean_ctor_set(x_445, 1, x_439); -lean_ctor_set(x_445, 2, x_440); -lean_ctor_set(x_445, 3, x_441); -lean_ctor_set_uint8(x_445, sizeof(void*)*4, x_443); -x_446 = 0; -x_447 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_447, 0, x_444); -lean_ctor_set(x_447, 1, x_435); -lean_ctor_set(x_447, 2, x_436); -lean_ctor_set(x_447, 3, x_445); -lean_ctor_set_uint8(x_447, sizeof(void*)*4, x_446); -return x_447; -} -else -{ -lean_object* x_448; uint8_t x_449; lean_object* x_450; -if (lean_is_exclusive(x_427)) { - lean_ctor_release(x_427, 0); - lean_ctor_release(x_427, 1); - lean_ctor_release(x_427, 2); - lean_ctor_release(x_427, 3); - x_448 = x_427; -} else { - lean_dec_ref(x_427); - x_448 = lean_box(0); -} -x_449 = 1; -if (lean_is_scalar(x_448)) { - x_450 = lean_alloc_ctor(1, 4, 1); -} else { - x_450 = x_448; -} -lean_ctor_set(x_450, 0, x_342); -lean_ctor_set(x_450, 1, x_343); -lean_ctor_set(x_450, 2, x_344); -lean_ctor_set(x_450, 3, x_424); -lean_ctor_set_uint8(x_450, sizeof(void*)*4, x_449); -return x_450; -} -} -} -else -{ -uint8_t x_451; -x_451 = lean_ctor_get_uint8(x_426, sizeof(void*)*4); -if (x_451 == 0) -{ -lean_object* x_452; lean_object* x_453; lean_object* x_454; lean_object* x_455; lean_object* x_456; lean_object* x_457; lean_object* x_458; lean_object* x_459; lean_object* x_460; uint8_t x_461; lean_object* x_462; lean_object* x_463; uint8_t x_464; lean_object* x_465; -x_452 = lean_ctor_get(x_424, 1); -lean_inc(x_452); -x_453 = lean_ctor_get(x_424, 2); -lean_inc(x_453); -x_454 = lean_ctor_get(x_424, 3); -lean_inc(x_454); -if (lean_is_exclusive(x_424)) { - lean_ctor_release(x_424, 0); - lean_ctor_release(x_424, 1); - lean_ctor_release(x_424, 2); - lean_ctor_release(x_424, 3); - x_455 = x_424; -} else { - lean_dec_ref(x_424); - x_455 = lean_box(0); -} -x_456 = lean_ctor_get(x_426, 0); -lean_inc(x_456); -x_457 = lean_ctor_get(x_426, 1); -lean_inc(x_457); -x_458 = lean_ctor_get(x_426, 2); -lean_inc(x_458); -x_459 = lean_ctor_get(x_426, 3); -lean_inc(x_459); -if (lean_is_exclusive(x_426)) { - lean_ctor_release(x_426, 0); - lean_ctor_release(x_426, 1); - lean_ctor_release(x_426, 2); - lean_ctor_release(x_426, 3); - x_460 = x_426; -} else { - lean_dec_ref(x_426); - x_460 = lean_box(0); -} -x_461 = 1; -if (lean_is_scalar(x_460)) { - x_462 = lean_alloc_ctor(1, 4, 1); -} else { - x_462 = x_460; -} -lean_ctor_set(x_462, 0, x_342); -lean_ctor_set(x_462, 1, x_343); -lean_ctor_set(x_462, 2, x_344); -lean_ctor_set(x_462, 3, x_456); -lean_ctor_set_uint8(x_462, sizeof(void*)*4, x_461); -if (lean_is_scalar(x_455)) { - x_463 = lean_alloc_ctor(1, 4, 1); -} else { - x_463 = x_455; -} -lean_ctor_set(x_463, 0, x_459); -lean_ctor_set(x_463, 1, x_452); -lean_ctor_set(x_463, 2, x_453); -lean_ctor_set(x_463, 3, x_454); -lean_ctor_set_uint8(x_463, sizeof(void*)*4, x_461); -x_464 = 0; -x_465 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_465, 0, x_462); -lean_ctor_set(x_465, 1, x_457); -lean_ctor_set(x_465, 2, x_458); -lean_ctor_set(x_465, 3, x_463); -lean_ctor_set_uint8(x_465, sizeof(void*)*4, x_464); -return x_465; -} -else -{ -lean_object* x_466; -x_466 = lean_ctor_get(x_424, 3); -lean_inc(x_466); -if (lean_obj_tag(x_466) == 0) -{ -lean_object* x_467; uint8_t x_468; lean_object* x_469; -if (lean_is_exclusive(x_426)) { - lean_ctor_release(x_426, 0); - lean_ctor_release(x_426, 1); - lean_ctor_release(x_426, 2); - lean_ctor_release(x_426, 3); - x_467 = x_426; -} else { - lean_dec_ref(x_426); - x_467 = lean_box(0); -} -x_468 = 1; -if (lean_is_scalar(x_467)) { - x_469 = lean_alloc_ctor(1, 4, 1); -} else { - x_469 = x_467; -} -lean_ctor_set(x_469, 0, x_342); -lean_ctor_set(x_469, 1, x_343); -lean_ctor_set(x_469, 2, x_344); -lean_ctor_set(x_469, 3, x_424); -lean_ctor_set_uint8(x_469, sizeof(void*)*4, x_468); -return x_469; -} -else -{ -uint8_t x_470; -x_470 = lean_ctor_get_uint8(x_466, sizeof(void*)*4); -if (x_470 == 0) -{ -lean_object* x_471; lean_object* x_472; lean_object* x_473; lean_object* x_474; lean_object* x_475; lean_object* x_476; lean_object* x_477; lean_object* x_478; uint8_t x_479; lean_object* x_480; lean_object* x_481; lean_object* x_482; uint8_t x_483; lean_object* x_484; -x_471 = lean_ctor_get(x_424, 1); -lean_inc(x_471); -x_472 = lean_ctor_get(x_424, 2); -lean_inc(x_472); -if (lean_is_exclusive(x_424)) { - lean_ctor_release(x_424, 0); - lean_ctor_release(x_424, 1); - lean_ctor_release(x_424, 2); - lean_ctor_release(x_424, 3); - x_473 = x_424; -} else { - lean_dec_ref(x_424); - x_473 = lean_box(0); -} -x_474 = lean_ctor_get(x_466, 0); -lean_inc(x_474); -x_475 = lean_ctor_get(x_466, 1); -lean_inc(x_475); -x_476 = lean_ctor_get(x_466, 2); -lean_inc(x_476); -x_477 = lean_ctor_get(x_466, 3); -lean_inc(x_477); -if (lean_is_exclusive(x_466)) { - lean_ctor_release(x_466, 0); - lean_ctor_release(x_466, 1); - lean_ctor_release(x_466, 2); - lean_ctor_release(x_466, 3); - x_478 = x_466; -} else { - lean_dec_ref(x_466); - x_478 = lean_box(0); -} -x_479 = 1; -lean_inc(x_426); -if (lean_is_scalar(x_478)) { - x_480 = lean_alloc_ctor(1, 4, 1); -} else { - x_480 = x_478; -} -lean_ctor_set(x_480, 0, x_342); -lean_ctor_set(x_480, 1, x_343); -lean_ctor_set(x_480, 2, x_344); -lean_ctor_set(x_480, 3, x_426); -if (lean_is_exclusive(x_426)) { - lean_ctor_release(x_426, 0); - lean_ctor_release(x_426, 1); - lean_ctor_release(x_426, 2); - lean_ctor_release(x_426, 3); - x_481 = x_426; -} else { - lean_dec_ref(x_426); - x_481 = lean_box(0); -} -lean_ctor_set_uint8(x_480, sizeof(void*)*4, x_479); -if (lean_is_scalar(x_481)) { - x_482 = lean_alloc_ctor(1, 4, 1); -} else { - x_482 = x_481; -} -lean_ctor_set(x_482, 0, x_474); -lean_ctor_set(x_482, 1, x_475); -lean_ctor_set(x_482, 2, x_476); -lean_ctor_set(x_482, 3, x_477); -lean_ctor_set_uint8(x_482, sizeof(void*)*4, x_479); -x_483 = 0; -if (lean_is_scalar(x_473)) { - x_484 = lean_alloc_ctor(1, 4, 1); -} else { - x_484 = x_473; -} -lean_ctor_set(x_484, 0, x_480); -lean_ctor_set(x_484, 1, x_471); -lean_ctor_set(x_484, 2, x_472); -lean_ctor_set(x_484, 3, x_482); -lean_ctor_set_uint8(x_484, sizeof(void*)*4, x_483); -return x_484; -} -else -{ -lean_object* x_485; lean_object* x_486; lean_object* x_487; lean_object* x_488; lean_object* x_489; lean_object* x_490; lean_object* x_491; lean_object* x_492; lean_object* x_493; lean_object* x_494; uint8_t x_495; lean_object* x_496; -x_485 = lean_ctor_get(x_424, 1); -lean_inc(x_485); -x_486 = lean_ctor_get(x_424, 2); -lean_inc(x_486); -if (lean_is_exclusive(x_424)) { - lean_ctor_release(x_424, 0); - lean_ctor_release(x_424, 1); - lean_ctor_release(x_424, 2); - lean_ctor_release(x_424, 3); - x_487 = x_424; -} else { - lean_dec_ref(x_424); - x_487 = lean_box(0); -} -x_488 = lean_ctor_get(x_426, 0); -lean_inc(x_488); -x_489 = lean_ctor_get(x_426, 1); -lean_inc(x_489); -x_490 = lean_ctor_get(x_426, 2); -lean_inc(x_490); -x_491 = lean_ctor_get(x_426, 3); -lean_inc(x_491); -if (lean_is_exclusive(x_426)) { - lean_ctor_release(x_426, 0); - lean_ctor_release(x_426, 1); - lean_ctor_release(x_426, 2); - lean_ctor_release(x_426, 3); - x_492 = x_426; -} else { - lean_dec_ref(x_426); - x_492 = lean_box(0); -} -if (lean_is_scalar(x_492)) { - x_493 = lean_alloc_ctor(1, 4, 1); -} else { - x_493 = x_492; -} -lean_ctor_set(x_493, 0, x_488); -lean_ctor_set(x_493, 1, x_489); -lean_ctor_set(x_493, 2, x_490); -lean_ctor_set(x_493, 3, x_491); -lean_ctor_set_uint8(x_493, sizeof(void*)*4, x_470); -if (lean_is_scalar(x_487)) { - x_494 = lean_alloc_ctor(1, 4, 1); -} else { - x_494 = x_487; -} -lean_ctor_set(x_494, 0, x_493); -lean_ctor_set(x_494, 1, x_485); -lean_ctor_set(x_494, 2, x_486); -lean_ctor_set(x_494, 3, x_466); -lean_ctor_set_uint8(x_494, sizeof(void*)*4, x_425); -x_495 = 1; -x_496 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_496, 0, x_342); -lean_ctor_set(x_496, 1, x_343); -lean_ctor_set(x_496, 2, x_344); -lean_ctor_set(x_496, 3, x_494); -lean_ctor_set_uint8(x_496, sizeof(void*)*4, x_495); -return x_496; -} -} -} -} -} -else -{ -uint8_t x_497; lean_object* x_498; -x_497 = 1; -x_498 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_498, 0, x_342); -lean_ctor_set(x_498, 1, x_343); -lean_ctor_set(x_498, 2, x_344); -lean_ctor_set(x_498, 3, x_424); -lean_ctor_set_uint8(x_498, sizeof(void*)*4, x_497); -return x_498; -} -} -} -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -uint8_t x_4; -x_4 = l_Lean_RBNode_isRed___rarg(x_1); -if (x_4 == 0) -{ -lean_object* x_5; -x_5 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__6(x_1, x_2, x_3); -return x_5; -} -else -{ -lean_object* x_6; lean_object* x_7; -x_6 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__6(x_1, x_2, x_3); -x_7 = l_Lean_RBNode_setBlack___rarg(x_6); -return x_7; -} -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__9(size_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { -_start: -{ -lean_object* x_7; uint8_t x_8; -x_7 = lean_array_get_size(x_2); -x_8 = lean_nat_dec_lt(x_5, x_7); -lean_dec(x_7); -if (x_8 == 0) -{ -lean_dec(x_5); -return x_6; -} -else -{ -lean_object* x_9; lean_object* x_10; uint64_t x_11; size_t x_12; size_t x_13; size_t x_14; size_t x_15; size_t x_16; size_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_9 = lean_array_fget(x_2, x_5); -x_10 = lean_array_fget(x_3, x_5); -x_11 = l_Lean_Expr_hash(x_9); -x_12 = lean_uint64_to_usize(x_11); -x_13 = 1; -x_14 = lean_usize_sub(x_1, x_13); -x_15 = 5; -x_16 = lean_usize_mul(x_15, x_14); -x_17 = lean_usize_shift_right(x_12, x_16); -x_18 = lean_unsigned_to_nat(1u); -x_19 = lean_nat_add(x_5, x_18); -lean_dec(x_5); -x_20 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8(x_6, x_17, x_1, x_9, x_10); -x_4 = lean_box(0); -x_5 = x_19; -x_6 = x_20; -goto _start; -} -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__10(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; -x_5 = lean_ctor_get(x_1, 0); -lean_inc(x_5); -x_6 = lean_ctor_get(x_1, 1); -lean_inc(x_6); -x_7 = lean_array_get_size(x_5); -x_8 = lean_nat_dec_lt(x_2, x_7); -lean_dec(x_7); -if (x_8 == 0) -{ -uint8_t x_9; -lean_dec(x_2); -x_9 = !lean_is_exclusive(x_1); -if (x_9 == 0) -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; -x_10 = lean_ctor_get(x_1, 1); -lean_dec(x_10); -x_11 = lean_ctor_get(x_1, 0); -lean_dec(x_11); -x_12 = lean_array_push(x_5, x_3); -x_13 = lean_array_push(x_6, x_4); -lean_ctor_set(x_1, 1, x_13); -lean_ctor_set(x_1, 0, x_12); -return x_1; -} -else -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; -lean_dec(x_1); -x_14 = lean_array_push(x_5, x_3); -x_15 = lean_array_push(x_6, x_4); -x_16 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_16, 0, x_14); -lean_ctor_set(x_16, 1, x_15); -return x_16; -} -} -else -{ -lean_object* x_17; uint8_t x_18; -x_17 = lean_array_fget(x_5, x_2); -x_18 = lean_expr_eqv(x_3, x_17); -lean_dec(x_17); -if (x_18 == 0) -{ -lean_object* x_19; lean_object* x_20; -lean_dec(x_6); -lean_dec(x_5); -x_19 = lean_unsigned_to_nat(1u); -x_20 = lean_nat_add(x_2, x_19); -lean_dec(x_2); -x_2 = x_20; -goto _start; -} -else -{ -uint8_t x_22; -x_22 = !lean_is_exclusive(x_1); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_23 = lean_ctor_get(x_1, 1); -lean_dec(x_23); -x_24 = lean_ctor_get(x_1, 0); -lean_dec(x_24); -x_25 = lean_array_fset(x_5, x_2, x_3); -x_26 = lean_array_fset(x_6, x_2, x_4); -lean_dec(x_2); -lean_ctor_set(x_1, 1, x_26); -lean_ctor_set(x_1, 0, x_25); -return x_1; -} -else -{ -lean_object* x_27; lean_object* x_28; lean_object* x_29; -lean_dec(x_1); -x_27 = lean_array_fset(x_5, x_2, x_3); -x_28 = lean_array_fset(x_6, x_2, x_4); -lean_dec(x_2); -x_29 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_29, 0, x_27); -lean_ctor_set(x_29, 1, x_28); -return x_29; -} -} -} -} -} -static size_t _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__1() { -_start: -{ -size_t x_1; size_t x_2; size_t x_3; -x_1 = 1; -x_2 = 5; -x_3 = lean_usize_shift_left(x_1, x_2); -return x_3; -} -} -static size_t _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__2() { -_start: -{ -size_t x_1; size_t x_2; size_t x_3; -x_1 = 1; -x_2 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__1; -x_3 = lean_usize_sub(x_2, x_1); -return x_3; -} -} -static lean_object* _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_PersistentHashMap_mkEmptyEntries(lean_box(0), lean_box(0)); -return x_1; -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -uint8_t x_6; -x_6 = !lean_is_exclusive(x_1); -if (x_6 == 0) -{ -lean_object* x_7; size_t x_8; size_t x_9; size_t x_10; size_t x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_7 = lean_ctor_get(x_1, 0); -x_8 = 1; -x_9 = 5; -x_10 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__2; -x_11 = lean_usize_land(x_2, x_10); -x_12 = lean_usize_to_nat(x_11); -x_13 = lean_array_get_size(x_7); -x_14 = lean_nat_dec_lt(x_12, x_13); -lean_dec(x_13); -if (x_14 == 0) -{ -lean_dec(x_12); -lean_dec(x_5); -lean_dec(x_4); -return x_1; -} -else -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_15 = lean_array_fget(x_7, x_12); -x_16 = lean_box(0); -x_17 = lean_array_fset(x_7, x_12, x_16); -switch (lean_obj_tag(x_15)) { -case 0: -{ -uint8_t x_18; -x_18 = !lean_is_exclusive(x_15); -if (x_18 == 0) -{ -lean_object* x_19; lean_object* x_20; uint8_t x_21; -x_19 = lean_ctor_get(x_15, 0); -x_20 = lean_ctor_get(x_15, 1); -x_21 = lean_expr_eqv(x_4, x_19); -if (x_21 == 0) -{ -lean_object* x_22; lean_object* x_23; lean_object* x_24; -lean_free_object(x_15); -x_22 = l_Lean_PersistentHashMap_mkCollisionNode___rarg(x_19, x_20, x_4, x_5); -x_23 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_23, 0, x_22); -x_24 = lean_array_fset(x_17, x_12, x_23); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_24); -return x_1; -} -else -{ -lean_object* x_25; -lean_dec(x_20); -lean_dec(x_19); -lean_ctor_set(x_15, 1, x_5); -lean_ctor_set(x_15, 0, x_4); -x_25 = lean_array_fset(x_17, x_12, x_15); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_25); -return x_1; -} -} -else -{ -lean_object* x_26; lean_object* x_27; uint8_t x_28; -x_26 = lean_ctor_get(x_15, 0); -x_27 = lean_ctor_get(x_15, 1); -lean_inc(x_27); -lean_inc(x_26); -lean_dec(x_15); -x_28 = lean_expr_eqv(x_4, x_26); -if (x_28 == 0) -{ -lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_29 = l_Lean_PersistentHashMap_mkCollisionNode___rarg(x_26, x_27, x_4, x_5); -x_30 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_30, 0, x_29); -x_31 = lean_array_fset(x_17, x_12, x_30); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_31); -return x_1; -} -else -{ -lean_object* x_32; lean_object* x_33; -lean_dec(x_27); -lean_dec(x_26); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_4); -lean_ctor_set(x_32, 1, x_5); -x_33 = lean_array_fset(x_17, x_12, x_32); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_33); -return x_1; -} -} -} -case 1: -{ -uint8_t x_34; -x_34 = !lean_is_exclusive(x_15); -if (x_34 == 0) -{ -lean_object* x_35; size_t x_36; size_t x_37; lean_object* x_38; lean_object* x_39; -x_35 = lean_ctor_get(x_15, 0); -x_36 = lean_usize_shift_right(x_2, x_9); -x_37 = lean_usize_add(x_3, x_8); -x_38 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8(x_35, x_36, x_37, x_4, x_5); -lean_ctor_set(x_15, 0, x_38); -x_39 = lean_array_fset(x_17, x_12, x_15); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_39); -return x_1; -} -else -{ -lean_object* x_40; size_t x_41; size_t x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; -x_40 = lean_ctor_get(x_15, 0); -lean_inc(x_40); -lean_dec(x_15); -x_41 = lean_usize_shift_right(x_2, x_9); -x_42 = lean_usize_add(x_3, x_8); -x_43 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8(x_40, x_41, x_42, x_4, x_5); -x_44 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_44, 0, x_43); -x_45 = lean_array_fset(x_17, x_12, x_44); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_45); -return x_1; -} -} -default: -{ -lean_object* x_46; lean_object* x_47; -x_46 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_46, 0, x_4); -lean_ctor_set(x_46, 1, x_5); -x_47 = lean_array_fset(x_17, x_12, x_46); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_47); -return x_1; -} -} -} -} -else -{ -lean_object* x_48; size_t x_49; size_t x_50; size_t x_51; size_t x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; -x_48 = lean_ctor_get(x_1, 0); -lean_inc(x_48); -lean_dec(x_1); -x_49 = 1; -x_50 = 5; -x_51 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__2; -x_52 = lean_usize_land(x_2, x_51); -x_53 = lean_usize_to_nat(x_52); -x_54 = lean_array_get_size(x_48); -x_55 = lean_nat_dec_lt(x_53, x_54); -lean_dec(x_54); -if (x_55 == 0) -{ -lean_object* x_56; -lean_dec(x_53); -lean_dec(x_5); -lean_dec(x_4); -x_56 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_56, 0, x_48); -return x_56; -} -else -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_57 = lean_array_fget(x_48, x_53); -x_58 = lean_box(0); -x_59 = lean_array_fset(x_48, x_53, x_58); -switch (lean_obj_tag(x_57)) { -case 0: -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; -x_60 = lean_ctor_get(x_57, 0); -lean_inc(x_60); -x_61 = lean_ctor_get(x_57, 1); -lean_inc(x_61); -if (lean_is_exclusive(x_57)) { - lean_ctor_release(x_57, 0); - lean_ctor_release(x_57, 1); - x_62 = x_57; -} else { - lean_dec_ref(x_57); - x_62 = lean_box(0); -} -x_63 = lean_expr_eqv(x_4, x_60); -if (x_63 == 0) -{ -lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; -lean_dec(x_62); -x_64 = l_Lean_PersistentHashMap_mkCollisionNode___rarg(x_60, x_61, x_4, x_5); -x_65 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_65, 0, x_64); -x_66 = lean_array_fset(x_59, x_53, x_65); -lean_dec(x_53); -x_67 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_67, 0, x_66); -return x_67; -} -else -{ -lean_object* x_68; lean_object* x_69; lean_object* x_70; -lean_dec(x_61); -lean_dec(x_60); -if (lean_is_scalar(x_62)) { - x_68 = lean_alloc_ctor(0, 2, 0); -} else { - x_68 = x_62; -} -lean_ctor_set(x_68, 0, x_4); -lean_ctor_set(x_68, 1, x_5); -x_69 = lean_array_fset(x_59, x_53, x_68); -lean_dec(x_53); -x_70 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_70, 0, x_69); -return x_70; -} -} -case 1: -{ -lean_object* x_71; lean_object* x_72; size_t x_73; size_t x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_57, 0); -lean_inc(x_71); -if (lean_is_exclusive(x_57)) { - lean_ctor_release(x_57, 0); - x_72 = x_57; -} else { - lean_dec_ref(x_57); - x_72 = lean_box(0); -} -x_73 = lean_usize_shift_right(x_2, x_50); -x_74 = lean_usize_add(x_3, x_49); -x_75 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8(x_71, x_73, x_74, x_4, x_5); -if (lean_is_scalar(x_72)) { - x_76 = lean_alloc_ctor(1, 1, 0); -} else { - x_76 = x_72; -} -lean_ctor_set(x_76, 0, x_75); -x_77 = lean_array_fset(x_59, x_53, x_76); -lean_dec(x_53); -x_78 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_78, 0, x_77); -return x_78; -} -default: -{ -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_79, 0, x_4); -lean_ctor_set(x_79, 1, x_5); -x_80 = lean_array_fset(x_59, x_53, x_79); -lean_dec(x_53); -x_81 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_81, 0, x_80); -return x_81; -} -} -} -} -} -else -{ -uint8_t x_82; -x_82 = !lean_is_exclusive(x_1); -if (x_82 == 0) -{ -lean_object* x_83; lean_object* x_84; size_t x_85; uint8_t x_86; -x_83 = lean_unsigned_to_nat(0u); -x_84 = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__10(x_1, x_83, x_4, x_5); -x_85 = 7; -x_86 = lean_usize_dec_le(x_85, x_3); -if (x_86 == 0) -{ -lean_object* x_87; lean_object* x_88; uint8_t x_89; -x_87 = l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(x_84); -x_88 = lean_unsigned_to_nat(4u); -x_89 = lean_nat_dec_lt(x_87, x_88); -lean_dec(x_87); -if (x_89 == 0) -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -x_90 = lean_ctor_get(x_84, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_84, 1); -lean_inc(x_91); -lean_dec(x_84); -x_92 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__3; -x_93 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__9(x_3, x_90, x_91, lean_box(0), x_83, x_92); -lean_dec(x_91); -lean_dec(x_90); -return x_93; -} -else -{ -return x_84; -} -} -else -{ -return x_84; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; size_t x_99; uint8_t x_100; -x_94 = lean_ctor_get(x_1, 0); -x_95 = lean_ctor_get(x_1, 1); -lean_inc(x_95); -lean_inc(x_94); -lean_dec(x_1); -x_96 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_96, 0, x_94); -lean_ctor_set(x_96, 1, x_95); -x_97 = lean_unsigned_to_nat(0u); -x_98 = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__10(x_96, x_97, x_4, x_5); -x_99 = 7; -x_100 = lean_usize_dec_le(x_99, x_3); -if (x_100 == 0) -{ -lean_object* x_101; lean_object* x_102; uint8_t x_103; -x_101 = l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(x_98); -x_102 = lean_unsigned_to_nat(4u); -x_103 = lean_nat_dec_lt(x_101, x_102); -lean_dec(x_101); -if (x_103 == 0) -{ -lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; -x_104 = lean_ctor_get(x_98, 0); -lean_inc(x_104); -x_105 = lean_ctor_get(x_98, 1); -lean_inc(x_105); -lean_dec(x_98); -x_106 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__3; -x_107 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__9(x_3, x_104, x_105, lean_box(0), x_97, x_106); -lean_dec(x_105); -lean_dec(x_104); -return x_107; -} -else -{ -return x_98; -} -} -else -{ -return x_98; -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__7(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -uint8_t x_4; -x_4 = !lean_is_exclusive(x_1); -if (x_4 == 0) -{ -lean_object* x_5; lean_object* x_6; uint64_t x_7; size_t x_8; size_t x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; -x_5 = lean_ctor_get(x_1, 0); -x_6 = lean_ctor_get(x_1, 1); -x_7 = l_Lean_Expr_hash(x_2); -x_8 = lean_uint64_to_usize(x_7); -x_9 = 1; -x_10 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8(x_5, x_8, x_9, x_2, x_3); -x_11 = lean_unsigned_to_nat(1u); -x_12 = lean_nat_add(x_6, x_11); -lean_dec(x_6); -lean_ctor_set(x_1, 1, x_12); -lean_ctor_set(x_1, 0, x_10); -return x_1; -} -else -{ -lean_object* x_13; lean_object* x_14; uint64_t x_15; size_t x_16; size_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_13 = lean_ctor_get(x_1, 0); -x_14 = lean_ctor_get(x_1, 1); -lean_inc(x_14); -lean_inc(x_13); -lean_dec(x_1); -x_15 = l_Lean_Expr_hash(x_2); -x_16 = lean_uint64_to_usize(x_15); -x_17 = 1; -x_18 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8(x_13, x_16, x_17, x_2, x_3); -x_19 = lean_unsigned_to_nat(1u); -x_20 = lean_nat_add(x_14, x_19); -lean_dec(x_14); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_18); -lean_ctor_set(x_21, 1, x_20); -return x_21; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtor___rarg(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) { -_start: -{ -lean_object* x_12; -lean_inc(x_2); -x_12 = l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1(x_2, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_12) == 0) -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; size_t x_16; size_t x_17; lean_object* x_18; lean_object* x_19; +x_12 = lean_st_ref_take(x_3, x_11); x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); x_14 = lean_ctor_get(x_12, 1); lean_inc(x_14); lean_dec(x_12); -x_15 = lean_array_get_size(x_3); -x_16 = lean_usize_of_nat(x_15); -lean_dec(x_15); -x_17 = 0; -x_18 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_InferType_mkForallParams___spec__1(x_16, x_17, x_3); -lean_inc(x_1); -x_19 = l_Lean_Compiler_LCNF_getType(x_1, x_7, x_8, x_9, x_10, x_14); -if (lean_obj_tag(x_19) == 0) -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_19, 1); -lean_inc(x_21); -lean_dec(x_19); -lean_inc(x_10); -lean_inc(x_9); -x_22 = l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f(x_20, x_9, x_10, x_21); -if (lean_obj_tag(x_22) == 0) -{ -lean_object* x_23; -x_23 = lean_ctor_get(x_22, 0); -lean_inc(x_23); -if (lean_obj_tag(x_23) == 0) -{ -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; uint8_t x_32; -x_24 = lean_ctor_get(x_22, 1); -lean_inc(x_24); -lean_dec(x_22); -x_25 = lean_box(0); -x_26 = l_Lean_Expr_const___override(x_2, x_25); -x_27 = lean_ctor_get(x_13, 3); -lean_inc(x_27); -lean_dec(x_13); -x_28 = l_Lean_Compiler_LCNF_erasedExpr; -x_29 = lean_mk_array(x_27, x_28); -x_30 = l_Lean_mkAppN(x_26, x_29); -x_31 = l_Lean_mkAppN(x_30, x_18); -x_32 = !lean_is_exclusive(x_5); -if (x_32 == 0) -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_33 = lean_ctor_get(x_5, 2); -x_34 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__5(x_33, x_1, x_31); -lean_ctor_set(x_5, 2, x_34); -x_35 = lean_apply_7(x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_24); -return x_35; -} -else -{ -lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_36 = lean_ctor_get(x_5, 0); -x_37 = lean_ctor_get(x_5, 1); -x_38 = lean_ctor_get(x_5, 2); -x_39 = lean_ctor_get(x_5, 3); -x_40 = lean_ctor_get(x_5, 4); -x_41 = lean_ctor_get(x_5, 5); -lean_inc(x_41); -lean_inc(x_40); -lean_inc(x_39); -lean_inc(x_38); -lean_inc(x_37); -lean_inc(x_36); -lean_dec(x_5); -x_42 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__5(x_38, x_1, x_31); -x_43 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_43, 0, x_36); -lean_ctor_set(x_43, 1, x_37); -lean_ctor_set(x_43, 2, x_42); -lean_ctor_set(x_43, 3, x_39); -lean_ctor_set(x_43, 4, x_40); -lean_ctor_set(x_43, 5, x_41); -x_44 = lean_apply_7(x_4, x_43, x_6, x_7, x_8, x_9, x_10, x_24); -return x_44; -} -} -else -{ -lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_52; -lean_dec(x_13); -x_45 = lean_ctor_get(x_23, 0); -lean_inc(x_45); -lean_dec(x_23); -x_46 = lean_ctor_get(x_22, 1); -lean_inc(x_46); -lean_dec(x_22); -x_47 = lean_ctor_get(x_45, 0); -lean_inc(x_47); -x_48 = lean_ctor_get(x_45, 1); -lean_inc(x_48); -lean_dec(x_45); -x_49 = l_Lean_Expr_const___override(x_2, x_47); -x_50 = l_Lean_mkAppN(x_49, x_48); -x_51 = l_Lean_mkAppN(x_50, x_18); -x_52 = !lean_is_exclusive(x_5); -if (x_52 == 0) -{ -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; -x_53 = lean_ctor_get(x_5, 2); -x_54 = lean_ctor_get(x_5, 3); -lean_inc(x_1); -lean_inc(x_51); -x_55 = l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__7(x_54, x_51, x_1); -x_56 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__5(x_53, x_1, x_51); -lean_ctor_set(x_5, 3, x_55); -lean_ctor_set(x_5, 2, x_56); -x_57 = lean_apply_7(x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_46); -return x_57; -} -else -{ -lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; -x_58 = lean_ctor_get(x_5, 0); -x_59 = lean_ctor_get(x_5, 1); -x_60 = lean_ctor_get(x_5, 2); -x_61 = lean_ctor_get(x_5, 3); -x_62 = lean_ctor_get(x_5, 4); -x_63 = lean_ctor_get(x_5, 5); -lean_inc(x_63); -lean_inc(x_62); -lean_inc(x_61); -lean_inc(x_60); -lean_inc(x_59); -lean_inc(x_58); -lean_dec(x_5); -lean_inc(x_1); -lean_inc(x_51); -x_64 = l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__7(x_61, x_51, x_1); -x_65 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__5(x_60, x_1, x_51); -x_66 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_66, 0, x_58); -lean_ctor_set(x_66, 1, x_59); -lean_ctor_set(x_66, 2, x_65); -lean_ctor_set(x_66, 3, x_64); -lean_ctor_set(x_66, 4, x_62); -lean_ctor_set(x_66, 5, x_63); -x_67 = lean_apply_7(x_4, x_66, x_6, x_7, x_8, x_9, x_10, x_46); -return x_67; -} -} -} -else -{ -uint8_t x_68; -lean_dec(x_18); -lean_dec(x_13); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_2); -lean_dec(x_1); -x_68 = !lean_is_exclusive(x_22); -if (x_68 == 0) -{ -return x_22; -} -else -{ -lean_object* x_69; lean_object* x_70; lean_object* x_71; -x_69 = lean_ctor_get(x_22, 0); -x_70 = lean_ctor_get(x_22, 1); -lean_inc(x_70); -lean_inc(x_69); -lean_dec(x_22); -x_71 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_71, 0, x_69); -lean_ctor_set(x_71, 1, x_70); -return x_71; -} -} -} -else -{ -uint8_t x_72; -lean_dec(x_18); -lean_dec(x_13); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_2); -lean_dec(x_1); -x_72 = !lean_is_exclusive(x_19); -if (x_72 == 0) -{ -return x_19; -} -else -{ -lean_object* x_73; lean_object* x_74; lean_object* x_75; -x_73 = lean_ctor_get(x_19, 0); -x_74 = lean_ctor_get(x_19, 1); -lean_inc(x_74); -lean_inc(x_73); -lean_dec(x_19); -x_75 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_75, 0, x_73); -lean_ctor_set(x_75, 1, x_74); -return x_75; -} -} -} -else -{ -uint8_t x_76; -lean_dec(x_10); -lean_dec(x_9); -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_76 = !lean_is_exclusive(x_12); -if (x_76 == 0) -{ -return x_12; -} -else -{ -lean_object* x_77; lean_object* x_78; lean_object* x_79; -x_77 = lean_ctor_get(x_12, 0); -x_78 = lean_ctor_get(x_12, 1); -lean_inc(x_78); -lean_inc(x_77); -lean_dec(x_12); -x_79 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_79, 0, x_77); -lean_ctor_set(x_79, 1, x_78); -return x_79; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withDiscrCtor(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_withDiscrCtor___rarg), 11, 0); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__4___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__4(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__9___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) { -_start: -{ -size_t x_7; lean_object* x_8; -x_7 = lean_unbox_usize(x_1); -lean_dec(x_1); -x_8 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__9(x_7, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_3); -lean_dec(x_2); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -size_t x_6; size_t x_7; lean_object* x_8; -x_6 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_7 = lean_unbox_usize(x_3); -lean_dec(x_3); -x_8 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8(x_1, x_6, x_7, x_4, x_5); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { -_start: -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_7 = lean_st_ref_get(x_5, x_6); -x_8 = lean_ctor_get(x_7, 1); -lean_inc(x_8); -lean_dec(x_7); -x_9 = lean_st_ref_take(x_1, x_8); -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -x_11 = lean_ctor_get(x_9, 1); -lean_inc(x_11); -lean_dec(x_9); -x_12 = !lean_is_exclusive(x_10); -if (x_12 == 0) -{ -uint8_t x_13; lean_object* x_14; uint8_t x_15; -x_13 = 1; -lean_ctor_set_uint8(x_10, sizeof(void*)*7, x_13); -x_14 = lean_st_ref_set(x_1, x_10, x_11); -x_15 = !lean_is_exclusive(x_14); +x_15 = !lean_is_exclusive(x_13); if (x_15 == 0) { -lean_object* x_16; lean_object* x_17; -x_16 = lean_ctor_get(x_14, 0); -lean_dec(x_16); -x_17 = lean_box(0); -lean_ctor_set(x_14, 0, x_17); -return x_14; -} -else -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_18 = lean_ctor_get(x_14, 1); -lean_inc(x_18); -lean_dec(x_14); -x_19 = lean_box(0); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_19); -lean_ctor_set(x_20, 1, x_18); -return x_20; -} -} -else -{ -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; uint8_t 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_21 = lean_ctor_get(x_10, 0); -x_22 = lean_ctor_get(x_10, 1); -x_23 = lean_ctor_get(x_10, 2); -x_24 = lean_ctor_get(x_10, 3); -x_25 = lean_ctor_get(x_10, 4); -x_26 = lean_ctor_get(x_10, 5); -x_27 = lean_ctor_get(x_10, 6); -lean_inc(x_27); -lean_inc(x_26); -lean_inc(x_25); -lean_inc(x_24); -lean_inc(x_23); -lean_inc(x_22); -lean_inc(x_21); -lean_dec(x_10); -x_28 = 1; -x_29 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_29, 0, x_21); -lean_ctor_set(x_29, 1, x_22); -lean_ctor_set(x_29, 2, x_23); -lean_ctor_set(x_29, 3, x_24); -lean_ctor_set(x_29, 4, x_25); -lean_ctor_set(x_29, 5, x_26); -lean_ctor_set(x_29, 6, x_27); -lean_ctor_set_uint8(x_29, sizeof(void*)*7, x_28); -x_30 = lean_st_ref_set(x_1, x_29, x_11); -x_31 = lean_ctor_get(x_30, 1); -lean_inc(x_31); -if (lean_is_exclusive(x_30)) { - lean_ctor_release(x_30, 0); - lean_ctor_release(x_30, 1); - x_32 = x_30; -} else { - lean_dec_ref(x_30); - x_32 = lean_box(0); -} -x_33 = lean_box(0); -if (lean_is_scalar(x_32)) { - x_34 = lean_alloc_ctor(0, 2, 0); -} else { - x_34 = x_32; -} -lean_ctor_set(x_34, 0, x_33); -lean_ctor_set(x_34, 1, x_31); -return x_34; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_markSimplified___rarg___boxed), 6, 0); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___rarg___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) { -_start: -{ -lean_object* x_7; -x_7 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_7; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_Compiler_LCNF_Simp_markSimplified(x_1); -lean_dec(x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incVisited___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { -_start: -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_7 = lean_st_ref_get(x_5, x_6); -x_8 = lean_ctor_get(x_7, 1); -lean_inc(x_8); -lean_dec(x_7); -x_9 = lean_st_ref_take(x_1, x_8); -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -x_11 = lean_ctor_get(x_9, 1); -lean_inc(x_11); -lean_dec(x_9); -x_12 = !lean_is_exclusive(x_10); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_13 = lean_ctor_get(x_10, 4); -x_14 = lean_unsigned_to_nat(1u); -x_15 = lean_nat_add(x_13, x_14); -lean_dec(x_13); -lean_ctor_set(x_10, 4, x_15); -x_16 = lean_st_ref_set(x_1, x_10, x_11); -x_17 = !lean_is_exclusive(x_16); -if (x_17 == 0) -{ -lean_object* x_18; lean_object* x_19; -x_18 = lean_ctor_get(x_16, 0); -lean_dec(x_18); -x_19 = lean_box(0); -lean_ctor_set(x_16, 0, x_19); -return x_16; -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_16, 1); -lean_inc(x_20); -lean_dec(x_16); -x_21 = lean_box(0); -x_22 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_20); -return x_22; -} -} -else -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t 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; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_23 = lean_ctor_get(x_10, 0); -x_24 = lean_ctor_get(x_10, 1); -x_25 = lean_ctor_get(x_10, 2); -x_26 = lean_ctor_get(x_10, 3); -x_27 = lean_ctor_get_uint8(x_10, sizeof(void*)*7); -x_28 = lean_ctor_get(x_10, 4); -x_29 = lean_ctor_get(x_10, 5); -x_30 = lean_ctor_get(x_10, 6); -lean_inc(x_30); -lean_inc(x_29); -lean_inc(x_28); -lean_inc(x_26); -lean_inc(x_25); -lean_inc(x_24); -lean_inc(x_23); -lean_dec(x_10); -x_31 = lean_unsigned_to_nat(1u); -x_32 = lean_nat_add(x_28, x_31); -lean_dec(x_28); -x_33 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_33, 0, x_23); -lean_ctor_set(x_33, 1, x_24); -lean_ctor_set(x_33, 2, x_25); -lean_ctor_set(x_33, 3, x_26); -lean_ctor_set(x_33, 4, x_32); -lean_ctor_set(x_33, 5, x_29); -lean_ctor_set(x_33, 6, x_30); -lean_ctor_set_uint8(x_33, sizeof(void*)*7, x_27); -x_34 = lean_st_ref_set(x_1, x_33, x_11); -x_35 = lean_ctor_get(x_34, 1); -lean_inc(x_35); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - lean_ctor_release(x_34, 1); - x_36 = x_34; -} else { - lean_dec_ref(x_34); - x_36 = lean_box(0); -} -x_37 = lean_box(0); -if (lean_is_scalar(x_36)) { - x_38 = lean_alloc_ctor(0, 2, 0); -} else { - x_38 = x_36; -} -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_35); -return x_38; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incVisited(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_incVisited___rarg___boxed), 6, 0); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incVisited___rarg___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) { -_start: -{ -lean_object* x_7; -x_7 = l_Lean_Compiler_LCNF_Simp_incVisited___rarg(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_7; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incVisited___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_Compiler_LCNF_Simp_incVisited(x_1); -lean_dec(x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { -_start: -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_7 = lean_st_ref_get(x_5, x_6); -x_8 = lean_ctor_get(x_7, 1); -lean_inc(x_8); -lean_dec(x_7); -x_9 = lean_st_ref_take(x_1, x_8); -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -x_11 = lean_ctor_get(x_9, 1); -lean_inc(x_11); -lean_dec(x_9); -x_12 = !lean_is_exclusive(x_10); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_13 = lean_ctor_get(x_10, 5); -x_14 = lean_unsigned_to_nat(1u); -x_15 = lean_nat_add(x_13, x_14); -lean_dec(x_13); -lean_ctor_set(x_10, 5, x_15); -x_16 = lean_st_ref_set(x_1, x_10, x_11); -x_17 = !lean_is_exclusive(x_16); -if (x_17 == 0) -{ -lean_object* x_18; lean_object* x_19; -x_18 = lean_ctor_get(x_16, 0); -lean_dec(x_18); -x_19 = lean_box(0); -lean_ctor_set(x_16, 0, x_19); -return x_16; -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_16, 1); -lean_inc(x_20); -lean_dec(x_16); -x_21 = lean_box(0); -x_22 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_20); -return x_22; -} -} -else -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t 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; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_23 = lean_ctor_get(x_10, 0); -x_24 = lean_ctor_get(x_10, 1); -x_25 = lean_ctor_get(x_10, 2); -x_26 = lean_ctor_get(x_10, 3); -x_27 = lean_ctor_get_uint8(x_10, sizeof(void*)*7); -x_28 = lean_ctor_get(x_10, 4); -x_29 = lean_ctor_get(x_10, 5); -x_30 = lean_ctor_get(x_10, 6); -lean_inc(x_30); -lean_inc(x_29); -lean_inc(x_28); -lean_inc(x_26); -lean_inc(x_25); -lean_inc(x_24); -lean_inc(x_23); -lean_dec(x_10); -x_31 = lean_unsigned_to_nat(1u); -x_32 = lean_nat_add(x_29, x_31); -lean_dec(x_29); -x_33 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_33, 0, x_23); -lean_ctor_set(x_33, 1, x_24); -lean_ctor_set(x_33, 2, x_25); -lean_ctor_set(x_33, 3, x_26); -lean_ctor_set(x_33, 4, x_28); -lean_ctor_set(x_33, 5, x_32); -lean_ctor_set(x_33, 6, x_30); -lean_ctor_set_uint8(x_33, sizeof(void*)*7, x_27); -x_34 = lean_st_ref_set(x_1, x_33, x_11); -x_35 = lean_ctor_get(x_34, 1); -lean_inc(x_35); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - lean_ctor_release(x_34, 1); - x_36 = x_34; -} else { - lean_dec_ref(x_34); - x_36 = lean_box(0); -} -x_37 = lean_box(0); -if (lean_is_scalar(x_36)) { - x_38 = lean_alloc_ctor(0, 2, 0); -} else { - x_38 = x_36; -} -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_35); -return x_38; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_incInline___rarg___boxed), 6, 0); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline___rarg___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) { -_start: -{ -lean_object* x_7; -x_7 = l_Lean_Compiler_LCNF_Simp_incInline___rarg(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_7; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_Compiler_LCNF_Simp_incInline(x_1); -lean_dec(x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { -_start: -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_7 = lean_st_ref_get(x_5, x_6); -x_8 = lean_ctor_get(x_7, 1); -lean_inc(x_8); -lean_dec(x_7); -x_9 = lean_st_ref_take(x_1, x_8); -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -x_11 = lean_ctor_get(x_9, 1); -lean_inc(x_11); -lean_dec(x_9); -x_12 = !lean_is_exclusive(x_10); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_13 = lean_ctor_get(x_10, 6); -x_14 = lean_unsigned_to_nat(1u); -x_15 = lean_nat_add(x_13, x_14); -lean_dec(x_13); -lean_ctor_set(x_10, 6, x_15); -x_16 = lean_st_ref_set(x_1, x_10, x_11); -x_17 = !lean_is_exclusive(x_16); -if (x_17 == 0) -{ -lean_object* x_18; lean_object* x_19; -x_18 = lean_ctor_get(x_16, 0); -lean_dec(x_18); -x_19 = lean_box(0); -lean_ctor_set(x_16, 0, x_19); -return x_16; -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_16, 1); -lean_inc(x_20); -lean_dec(x_16); -x_21 = lean_box(0); -x_22 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_20); -return x_22; -} -} -else -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t 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; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_23 = lean_ctor_get(x_10, 0); -x_24 = lean_ctor_get(x_10, 1); -x_25 = lean_ctor_get(x_10, 2); -x_26 = lean_ctor_get(x_10, 3); -x_27 = lean_ctor_get_uint8(x_10, sizeof(void*)*7); -x_28 = lean_ctor_get(x_10, 4); -x_29 = lean_ctor_get(x_10, 5); -x_30 = lean_ctor_get(x_10, 6); -lean_inc(x_30); -lean_inc(x_29); -lean_inc(x_28); -lean_inc(x_26); -lean_inc(x_25); -lean_inc(x_24); -lean_inc(x_23); -lean_dec(x_10); -x_31 = lean_unsigned_to_nat(1u); -x_32 = lean_nat_add(x_30, x_31); -lean_dec(x_30); -x_33 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_33, 0, x_23); -lean_ctor_set(x_33, 1, x_24); -lean_ctor_set(x_33, 2, x_25); -lean_ctor_set(x_33, 3, x_26); -lean_ctor_set(x_33, 4, x_28); -lean_ctor_set(x_33, 5, x_29); -lean_ctor_set(x_33, 6, x_32); -lean_ctor_set_uint8(x_33, sizeof(void*)*7, x_27); -x_34 = lean_st_ref_set(x_1, x_33, x_11); -x_35 = lean_ctor_get(x_34, 1); -lean_inc(x_35); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - lean_ctor_release(x_34, 1); - x_36 = x_34; -} else { - lean_dec_ref(x_34); - x_36 = lean_box(0); -} -x_37 = lean_box(0); -if (lean_is_scalar(x_36)) { - x_38 = lean_alloc_ctor(0, 2, 0); -} else { - x_38 = x_36; -} -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_35); -return x_38; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg___boxed), 6, 0); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg___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) { -_start: -{ -lean_object* x_7; -x_7 = l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_7; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_Compiler_LCNF_Simp_incInlineLocal(x_1); -lean_dec(x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addMustInline(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_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_take(x_3, x_10); -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 = !lean_is_exclusive(x_12); -if (x_14 == 0) -{ -lean_object* x_15; uint8_t x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; -x_15 = lean_ctor_get(x_12, 3); -x_16 = 2; -x_17 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add___spec__3(x_15, x_1, x_16); -lean_ctor_set(x_12, 3, x_17); -x_18 = lean_st_ref_set(x_3, x_12, x_13); +lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_16 = lean_ctor_get(x_13, 0); +x_17 = lean_apply_1(x_1, x_16); +lean_ctor_set(x_13, 0, x_17); +x_18 = lean_st_ref_set(x_3, x_13, x_14); x_19 = !lean_is_exclusive(x_18); if (x_19 == 0) { @@ -5409,15 +576,15 @@ return x_24; } else { -lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_25 = lean_ctor_get(x_12, 0); -x_26 = lean_ctor_get(x_12, 1); -x_27 = lean_ctor_get(x_12, 2); -x_28 = lean_ctor_get(x_12, 3); -x_29 = lean_ctor_get_uint8(x_12, sizeof(void*)*7); -x_30 = lean_ctor_get(x_12, 4); -x_31 = lean_ctor_get(x_12, 5); -x_32 = lean_ctor_get(x_12, 6); +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_25 = lean_ctor_get(x_13, 0); +x_26 = lean_ctor_get(x_13, 1); +x_27 = lean_ctor_get(x_13, 2); +x_28 = lean_ctor_get(x_13, 3); +x_29 = lean_ctor_get_uint8(x_13, sizeof(void*)*7); +x_30 = lean_ctor_get(x_13, 4); +x_31 = lean_ctor_get(x_13, 5); +x_32 = lean_ctor_get(x_13, 6); lean_inc(x_32); lean_inc(x_31); lean_inc(x_30); @@ -5425,77 +592,205 @@ lean_inc(x_28); lean_inc(x_27); lean_inc(x_26); lean_inc(x_25); -lean_dec(x_12); -x_33 = 2; -x_34 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add___spec__3(x_28, x_1, x_33); -x_35 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_35, 0, x_25); -lean_ctor_set(x_35, 1, x_26); -lean_ctor_set(x_35, 2, x_27); -lean_ctor_set(x_35, 3, x_34); -lean_ctor_set(x_35, 4, x_30); -lean_ctor_set(x_35, 5, x_31); -lean_ctor_set(x_35, 6, x_32); -lean_ctor_set_uint8(x_35, sizeof(void*)*7, x_29); -x_36 = lean_st_ref_set(x_3, x_35, x_13); -x_37 = lean_ctor_get(x_36, 1); -lean_inc(x_37); -if (lean_is_exclusive(x_36)) { - lean_ctor_release(x_36, 0); - lean_ctor_release(x_36, 1); - x_38 = x_36; +lean_dec(x_13); +x_33 = lean_apply_1(x_1, x_25); +x_34 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_34, 0, x_33); +lean_ctor_set(x_34, 1, x_26); +lean_ctor_set(x_34, 2, x_27); +lean_ctor_set(x_34, 3, x_28); +lean_ctor_set(x_34, 4, x_30); +lean_ctor_set(x_34, 5, x_31); +lean_ctor_set(x_34, 6, x_32); +lean_ctor_set_uint8(x_34, sizeof(void*)*7, x_29); +x_35 = lean_st_ref_set(x_3, x_34, x_14); +x_36 = lean_ctor_get(x_35, 1); +lean_inc(x_36); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + lean_ctor_release(x_35, 1); + x_37 = x_35; } else { - lean_dec_ref(x_36); - x_38 = lean_box(0); + lean_dec_ref(x_35); + x_37 = lean_box(0); } -x_39 = lean_box(0); -if (lean_is_scalar(x_38)) { - x_40 = lean_alloc_ctor(0, 2, 0); +x_38 = lean_box(0); +if (lean_is_scalar(x_37)) { + x_39 = lean_alloc_ctor(0, 2, 0); } else { - x_40 = x_38; + x_39 = x_37; } -lean_ctor_set(x_40, 0, x_39); -lean_ctor_set(x_40, 1, x_37); -return x_40; +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_36); +return x_39; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addMustInline___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstStateSimpM___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) { _start: { -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_addMustInline(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstStateSimpM(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); -return x_9; +return x_10; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunOcc(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_Compiler_LCNF_Simp_markSimplified___rarg(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_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_take(x_3, x_10); -x_12 = lean_ctor_get(x_11, 0); +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_8 = lean_st_ref_get(x_6, x_7); +x_9 = lean_ctor_get(x_8, 1); +lean_inc(x_9); +lean_dec(x_8); +x_10 = lean_st_ref_take(x_1, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); -lean_inc(x_13); -lean_dec(x_11); -x_14 = !lean_is_exclusive(x_12); -if (x_14 == 0) +lean_dec(x_10); +x_13 = !lean_is_exclusive(x_11); +if (x_13 == 0) { -lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; -x_15 = lean_ctor_get(x_12, 3); -x_16 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add(x_15, x_1); -lean_ctor_set(x_12, 3, x_16); -x_17 = lean_st_ref_set(x_3, x_12, x_13); +uint8_t x_14; lean_object* x_15; uint8_t x_16; +x_14 = 1; +lean_ctor_set_uint8(x_11, sizeof(void*)*7, x_14); +x_15 = lean_st_ref_set(x_1, x_11, x_12); +x_16 = !lean_is_exclusive(x_15); +if (x_16 == 0) +{ +lean_object* x_17; lean_object* x_18; +x_17 = lean_ctor_get(x_15, 0); +lean_dec(x_17); +x_18 = lean_box(0); +lean_ctor_set(x_15, 0, x_18); +return x_15; +} +else +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_19 = lean_ctor_get(x_15, 1); +lean_inc(x_19); +lean_dec(x_15); +x_20 = lean_box(0); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_19); +return x_21; +} +} +else +{ +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; uint8_t 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_22 = lean_ctor_get(x_11, 0); +x_23 = lean_ctor_get(x_11, 1); +x_24 = lean_ctor_get(x_11, 2); +x_25 = lean_ctor_get(x_11, 3); +x_26 = lean_ctor_get(x_11, 4); +x_27 = lean_ctor_get(x_11, 5); +x_28 = lean_ctor_get(x_11, 6); +lean_inc(x_28); +lean_inc(x_27); +lean_inc(x_26); +lean_inc(x_25); +lean_inc(x_24); +lean_inc(x_23); +lean_inc(x_22); +lean_dec(x_11); +x_29 = 1; +x_30 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_30, 0, x_22); +lean_ctor_set(x_30, 1, x_23); +lean_ctor_set(x_30, 2, x_24); +lean_ctor_set(x_30, 3, x_25); +lean_ctor_set(x_30, 4, x_26); +lean_ctor_set(x_30, 5, x_27); +lean_ctor_set(x_30, 6, x_28); +lean_ctor_set_uint8(x_30, sizeof(void*)*7, x_29); +x_31 = lean_st_ref_set(x_1, x_30, x_12); +x_32 = lean_ctor_get(x_31, 1); +lean_inc(x_32); +if (lean_is_exclusive(x_31)) { + lean_ctor_release(x_31, 0); + lean_ctor_release(x_31, 1); + x_33 = x_31; +} else { + lean_dec_ref(x_31); + x_33 = lean_box(0); +} +x_34 = lean_box(0); +if (lean_is_scalar(x_33)) { + x_35 = lean_alloc_ctor(0, 2, 0); +} else { + x_35 = x_33; +} +lean_ctor_set(x_35, 0, x_34); +lean_ctor_set(x_35, 1, x_32); +return x_35; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_markSimplified___rarg___boxed), 7, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___rarg___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_Compiler_LCNF_Simp_markSimplified___rarg(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_Compiler_LCNF_Simp_markSimplified___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Compiler_LCNF_Simp_markSimplified(x_1); +lean_dec(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incVisited___rarg(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_8 = lean_st_ref_get(x_6, x_7); +x_9 = lean_ctor_get(x_8, 1); +lean_inc(x_9); +lean_dec(x_8); +x_10 = lean_st_ref_take(x_1, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +x_13 = !lean_is_exclusive(x_11); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; +x_14 = lean_ctor_get(x_11, 4); +x_15 = lean_unsigned_to_nat(1u); +x_16 = lean_nat_add(x_14, x_15); +lean_dec(x_14); +lean_ctor_set(x_11, 4, x_16); +x_17 = lean_st_ref_set(x_1, x_11, x_12); x_18 = !lean_is_exclusive(x_17); if (x_18 == 0) { @@ -5521,15 +816,15 @@ return x_23; } else { -lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_24 = lean_ctor_get(x_12, 0); -x_25 = lean_ctor_get(x_12, 1); -x_26 = lean_ctor_get(x_12, 2); -x_27 = lean_ctor_get(x_12, 3); -x_28 = lean_ctor_get_uint8(x_12, sizeof(void*)*7); -x_29 = lean_ctor_get(x_12, 4); -x_30 = lean_ctor_get(x_12, 5); -x_31 = lean_ctor_get(x_12, 6); +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_24 = lean_ctor_get(x_11, 0); +x_25 = lean_ctor_get(x_11, 1); +x_26 = lean_ctor_get(x_11, 2); +x_27 = lean_ctor_get(x_11, 3); +x_28 = lean_ctor_get_uint8(x_11, sizeof(void*)*7); +x_29 = lean_ctor_get(x_11, 4); +x_30 = lean_ctor_get(x_11, 5); +x_31 = lean_ctor_get(x_11, 6); lean_inc(x_31); lean_inc(x_30); lean_inc(x_29); @@ -5537,76 +832,97 @@ lean_inc(x_27); lean_inc(x_26); lean_inc(x_25); lean_inc(x_24); -lean_dec(x_12); -x_32 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add(x_27, x_1); -x_33 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_33, 0, x_24); -lean_ctor_set(x_33, 1, x_25); -lean_ctor_set(x_33, 2, x_26); -lean_ctor_set(x_33, 3, x_32); -lean_ctor_set(x_33, 4, x_29); -lean_ctor_set(x_33, 5, x_30); -lean_ctor_set(x_33, 6, x_31); -lean_ctor_set_uint8(x_33, sizeof(void*)*7, x_28); -x_34 = lean_st_ref_set(x_3, x_33, x_13); -x_35 = lean_ctor_get(x_34, 1); -lean_inc(x_35); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - lean_ctor_release(x_34, 1); - x_36 = x_34; +lean_dec(x_11); +x_32 = lean_unsigned_to_nat(1u); +x_33 = lean_nat_add(x_29, x_32); +lean_dec(x_29); +x_34 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_34, 0, x_24); +lean_ctor_set(x_34, 1, x_25); +lean_ctor_set(x_34, 2, x_26); +lean_ctor_set(x_34, 3, x_27); +lean_ctor_set(x_34, 4, x_33); +lean_ctor_set(x_34, 5, x_30); +lean_ctor_set(x_34, 6, x_31); +lean_ctor_set_uint8(x_34, sizeof(void*)*7, x_28); +x_35 = lean_st_ref_set(x_1, x_34, x_12); +x_36 = lean_ctor_get(x_35, 1); +lean_inc(x_36); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + lean_ctor_release(x_35, 1); + x_37 = x_35; } else { - lean_dec_ref(x_34); - x_36 = lean_box(0); + lean_dec_ref(x_35); + x_37 = lean_box(0); } -x_37 = lean_box(0); -if (lean_is_scalar(x_36)) { - x_38 = lean_alloc_ctor(0, 2, 0); +x_38 = lean_box(0); +if (lean_is_scalar(x_37)) { + x_39 = lean_alloc_ctor(0, 2, 0); } else { - x_38 = x_36; + x_39 = x_37; } -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_35); -return x_38; +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_36); +return x_39; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunOcc___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incVisited(lean_object* x_1) { _start: { -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_addFunOcc(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean_dec(x_7); +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_incVisited___rarg___boxed), 7, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incVisited___rarg___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_Compiler_LCNF_Simp_incVisited___rarg(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); -return x_9; +lean_dec(x_1); +return x_8; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunHoOcc(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_Compiler_LCNF_Simp_incVisited___boxed(lean_object* x_1) { _start: { -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_take(x_3, x_10); -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 = !lean_is_exclusive(x_12); -if (x_14 == 0) +lean_object* x_2; +x_2 = l_Lean_Compiler_LCNF_Simp_incVisited(x_1); +lean_dec(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline___rarg(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_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; -x_15 = lean_ctor_get(x_12, 3); -x_16 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_addHo(x_15, x_1); -lean_ctor_set(x_12, 3, x_16); -x_17 = lean_st_ref_set(x_3, x_12, x_13); +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_8 = lean_st_ref_get(x_6, x_7); +x_9 = lean_ctor_get(x_8, 1); +lean_inc(x_9); +lean_dec(x_8); +x_10 = lean_st_ref_take(x_1, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +x_13 = !lean_is_exclusive(x_11); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; +x_14 = lean_ctor_get(x_11, 5); +x_15 = lean_unsigned_to_nat(1u); +x_16 = lean_nat_add(x_14, x_15); +lean_dec(x_14); +lean_ctor_set(x_11, 5, x_16); +x_17 = lean_st_ref_set(x_1, x_11, x_12); x_18 = !lean_is_exclusive(x_17); if (x_18 == 0) { @@ -5632,15 +948,15 @@ return x_23; } else { -lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_24 = lean_ctor_get(x_12, 0); -x_25 = lean_ctor_get(x_12, 1); -x_26 = lean_ctor_get(x_12, 2); -x_27 = lean_ctor_get(x_12, 3); -x_28 = lean_ctor_get_uint8(x_12, sizeof(void*)*7); -x_29 = lean_ctor_get(x_12, 4); -x_30 = lean_ctor_get(x_12, 5); -x_31 = lean_ctor_get(x_12, 6); +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_24 = lean_ctor_get(x_11, 0); +x_25 = lean_ctor_get(x_11, 1); +x_26 = lean_ctor_get(x_11, 2); +x_27 = lean_ctor_get(x_11, 3); +x_28 = lean_ctor_get_uint8(x_11, sizeof(void*)*7); +x_29 = lean_ctor_get(x_11, 4); +x_30 = lean_ctor_get(x_11, 5); +x_31 = lean_ctor_get(x_11, 6); lean_inc(x_31); lean_inc(x_30); lean_inc(x_29); @@ -5648,55 +964,206 @@ lean_inc(x_27); lean_inc(x_26); lean_inc(x_25); lean_inc(x_24); -lean_dec(x_12); -x_32 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_addHo(x_27, x_1); -x_33 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_33, 0, x_24); -lean_ctor_set(x_33, 1, x_25); -lean_ctor_set(x_33, 2, x_26); -lean_ctor_set(x_33, 3, x_32); -lean_ctor_set(x_33, 4, x_29); -lean_ctor_set(x_33, 5, x_30); -lean_ctor_set(x_33, 6, x_31); -lean_ctor_set_uint8(x_33, sizeof(void*)*7, x_28); -x_34 = lean_st_ref_set(x_3, x_33, x_13); -x_35 = lean_ctor_get(x_34, 1); -lean_inc(x_35); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - lean_ctor_release(x_34, 1); - x_36 = x_34; +lean_dec(x_11); +x_32 = lean_unsigned_to_nat(1u); +x_33 = lean_nat_add(x_30, x_32); +lean_dec(x_30); +x_34 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_34, 0, x_24); +lean_ctor_set(x_34, 1, x_25); +lean_ctor_set(x_34, 2, x_26); +lean_ctor_set(x_34, 3, x_27); +lean_ctor_set(x_34, 4, x_29); +lean_ctor_set(x_34, 5, x_33); +lean_ctor_set(x_34, 6, x_31); +lean_ctor_set_uint8(x_34, sizeof(void*)*7, x_28); +x_35 = lean_st_ref_set(x_1, x_34, x_12); +x_36 = lean_ctor_get(x_35, 1); +lean_inc(x_36); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + lean_ctor_release(x_35, 1); + x_37 = x_35; } else { - lean_dec_ref(x_34); - x_36 = lean_box(0); + lean_dec_ref(x_35); + x_37 = lean_box(0); } -x_37 = lean_box(0); -if (lean_is_scalar(x_36)) { - x_38 = lean_alloc_ctor(0, 2, 0); +x_38 = lean_box(0); +if (lean_is_scalar(x_37)) { + x_39 = lean_alloc_ctor(0, 2, 0); } else { - x_38 = x_36; + x_39 = x_37; } -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_35); -return x_38; +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_36); +return x_39; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunHoOcc___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline(lean_object* x_1) { _start: { -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_addFunHoOcc(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean_dec(x_7); +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_incInline___rarg___boxed), 7, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline___rarg___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_Compiler_LCNF_Simp_incInline___rarg(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); -return x_9; +lean_dec(x_1); +return x_8; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(lean_object* x_1, uint8_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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInline___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Compiler_LCNF_Simp_incInline(x_1); +lean_dec(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_8 = lean_st_ref_get(x_6, x_7); +x_9 = lean_ctor_get(x_8, 1); +lean_inc(x_9); +lean_dec(x_8); +x_10 = lean_st_ref_take(x_1, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +x_13 = !lean_is_exclusive(x_11); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; +x_14 = lean_ctor_get(x_11, 6); +x_15 = lean_unsigned_to_nat(1u); +x_16 = lean_nat_add(x_14, x_15); +lean_dec(x_14); +lean_ctor_set(x_11, 6, x_16); +x_17 = lean_st_ref_set(x_1, x_11, x_12); +x_18 = !lean_is_exclusive(x_17); +if (x_18 == 0) +{ +lean_object* x_19; lean_object* x_20; +x_19 = lean_ctor_get(x_17, 0); +lean_dec(x_19); +x_20 = lean_box(0); +lean_ctor_set(x_17, 0, x_20); +return x_17; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_17, 1); +lean_inc(x_21); +lean_dec(x_17); +x_22 = lean_box(0); +x_23 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_21); +return x_23; +} +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_24 = lean_ctor_get(x_11, 0); +x_25 = lean_ctor_get(x_11, 1); +x_26 = lean_ctor_get(x_11, 2); +x_27 = lean_ctor_get(x_11, 3); +x_28 = lean_ctor_get_uint8(x_11, sizeof(void*)*7); +x_29 = lean_ctor_get(x_11, 4); +x_30 = lean_ctor_get(x_11, 5); +x_31 = lean_ctor_get(x_11, 6); +lean_inc(x_31); +lean_inc(x_30); +lean_inc(x_29); +lean_inc(x_27); +lean_inc(x_26); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_11); +x_32 = lean_unsigned_to_nat(1u); +x_33 = lean_nat_add(x_31, x_32); +lean_dec(x_31); +x_34 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_34, 0, x_24); +lean_ctor_set(x_34, 1, x_25); +lean_ctor_set(x_34, 2, x_26); +lean_ctor_set(x_34, 3, x_27); +lean_ctor_set(x_34, 4, x_29); +lean_ctor_set(x_34, 5, x_30); +lean_ctor_set(x_34, 6, x_33); +lean_ctor_set_uint8(x_34, sizeof(void*)*7, x_28); +x_35 = lean_st_ref_set(x_1, x_34, x_12); +x_36 = lean_ctor_get(x_35, 1); +lean_inc(x_36); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + lean_ctor_release(x_35, 1); + x_37 = x_35; +} else { + lean_dec_ref(x_35); + x_37 = lean_box(0); +} +x_38 = lean_box(0); +if (lean_is_scalar(x_37)) { + x_39 = lean_alloc_ctor(0, 2, 0); +} else { + x_39 = x_37; +} +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_36); +return x_39; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg___boxed), 7, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_incInlineLocal___rarg___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_Compiler_LCNF_Simp_incInlineLocal___rarg(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_Compiler_LCNF_Simp_incInlineLocal___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_Compiler_LCNF_Simp_incInlineLocal(x_1); +lean_dec(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addMustInline(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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; @@ -5704,7 +1171,7 @@ x_10 = lean_st_ref_get(x_8, x_9); x_11 = lean_ctor_get(x_10, 1); lean_inc(x_11); lean_dec(x_10); -x_12 = lean_st_ref_take(x_4, x_11); +x_12 = lean_st_ref_take(x_3, x_11); x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); x_14 = lean_ctor_get(x_12, 1); @@ -5713,290 +1180,629 @@ lean_dec(x_12); x_15 = !lean_is_exclusive(x_13); if (x_15 == 0) { -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_object* x_16; uint8_t x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; x_16 = lean_ctor_get(x_13, 3); -x_17 = l_Lean_Compiler_LCNF_Simp_State_subst___default___closed__1; -lean_ctor_set(x_13, 3, x_17); -x_18 = lean_st_ref_set(x_4, x_13, x_14); -x_19 = lean_ctor_get(x_18, 1); -lean_inc(x_19); -lean_dec(x_18); -lean_inc(x_8); -x_20 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_update(x_16, x_1, x_2, x_5, x_6, x_7, x_8, x_19); -if (lean_obj_tag(x_20) == 0) +x_17 = 2; +x_18 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add___spec__3(x_16, x_1, x_17); +lean_ctor_set(x_13, 3, x_18); +x_19 = lean_st_ref_set(x_3, x_13, x_14); +x_20 = !lean_is_exclusive(x_19); +if (x_20 == 0) { -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; uint8_t x_28; -x_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -x_22 = lean_ctor_get(x_20, 1); -lean_inc(x_22); -lean_dec(x_20); -x_23 = lean_st_ref_get(x_8, x_22); -lean_dec(x_8); -x_24 = lean_ctor_get(x_23, 1); -lean_inc(x_24); -lean_dec(x_23); -x_25 = lean_st_ref_take(x_4, x_24); -x_26 = lean_ctor_get(x_25, 0); -lean_inc(x_26); -x_27 = lean_ctor_get(x_25, 1); +lean_object* x_21; lean_object* x_22; +x_21 = lean_ctor_get(x_19, 0); +lean_dec(x_21); +x_22 = lean_box(0); +lean_ctor_set(x_19, 0, x_22); +return x_19; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_19, 1); +lean_inc(x_23); +lean_dec(x_19); +x_24 = lean_box(0); +x_25 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_25, 0, x_24); +lean_ctor_set(x_25, 1, x_23); +return x_25; +} +} +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; uint8_t x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_26 = lean_ctor_get(x_13, 0); +x_27 = lean_ctor_get(x_13, 1); +x_28 = lean_ctor_get(x_13, 2); +x_29 = lean_ctor_get(x_13, 3); +x_30 = lean_ctor_get_uint8(x_13, sizeof(void*)*7); +x_31 = lean_ctor_get(x_13, 4); +x_32 = lean_ctor_get(x_13, 5); +x_33 = lean_ctor_get(x_13, 6); +lean_inc(x_33); +lean_inc(x_32); +lean_inc(x_31); +lean_inc(x_29); +lean_inc(x_28); lean_inc(x_27); -lean_dec(x_25); -x_28 = !lean_is_exclusive(x_26); -if (x_28 == 0) +lean_inc(x_26); +lean_dec(x_13); +x_34 = 2; +x_35 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add___spec__3(x_29, x_1, x_34); +x_36 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_36, 0, x_26); +lean_ctor_set(x_36, 1, x_27); +lean_ctor_set(x_36, 2, x_28); +lean_ctor_set(x_36, 3, x_35); +lean_ctor_set(x_36, 4, x_31); +lean_ctor_set(x_36, 5, x_32); +lean_ctor_set(x_36, 6, x_33); +lean_ctor_set_uint8(x_36, sizeof(void*)*7, x_30); +x_37 = lean_st_ref_set(x_3, x_36, x_14); +x_38 = lean_ctor_get(x_37, 1); +lean_inc(x_38); +if (lean_is_exclusive(x_37)) { + lean_ctor_release(x_37, 0); + lean_ctor_release(x_37, 1); + x_39 = x_37; +} else { + lean_dec_ref(x_37); + x_39 = lean_box(0); +} +x_40 = lean_box(0); +if (lean_is_scalar(x_39)) { + x_41 = lean_alloc_ctor(0, 2, 0); +} else { + x_41 = x_39; +} +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set(x_41, 1, x_38); +return x_41; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addMustInline___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) { +_start: { -lean_object* x_29; lean_object* x_30; uint8_t x_31; -x_29 = lean_ctor_get(x_26, 3); -lean_dec(x_29); -lean_ctor_set(x_26, 3, x_21); -x_30 = lean_st_ref_set(x_4, x_26, x_27); -x_31 = !lean_is_exclusive(x_30); -if (x_31 == 0) +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_addMustInline(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunOcc(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_32; lean_object* x_33; -x_32 = lean_ctor_get(x_30, 0); -lean_dec(x_32); -x_33 = lean_box(0); -lean_ctor_set(x_30, 0, x_33); -return x_30; +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_10 = lean_st_ref_get(x_8, x_9); +x_11 = lean_ctor_get(x_10, 1); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_st_ref_take(x_3, x_11); +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); +lean_dec(x_12); +x_15 = !lean_is_exclusive(x_13); +if (x_15 == 0) +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_16 = lean_ctor_get(x_13, 3); +x_17 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add(x_16, x_1); +lean_ctor_set(x_13, 3, x_17); +x_18 = lean_st_ref_set(x_3, x_13, x_14); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) +{ +lean_object* x_20; lean_object* x_21; +x_20 = lean_ctor_get(x_18, 0); +lean_dec(x_20); +x_21 = lean_box(0); +lean_ctor_set(x_18, 0, x_21); +return x_18; } else { -lean_object* x_34; lean_object* x_35; lean_object* x_36; -x_34 = lean_ctor_get(x_30, 1); -lean_inc(x_34); +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_18, 1); +lean_inc(x_22); +lean_dec(x_18); +x_23 = lean_box(0); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_22); +return x_24; +} +} +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_25 = lean_ctor_get(x_13, 0); +x_26 = lean_ctor_get(x_13, 1); +x_27 = lean_ctor_get(x_13, 2); +x_28 = lean_ctor_get(x_13, 3); +x_29 = lean_ctor_get_uint8(x_13, sizeof(void*)*7); +x_30 = lean_ctor_get(x_13, 4); +x_31 = lean_ctor_get(x_13, 5); +x_32 = lean_ctor_get(x_13, 6); +lean_inc(x_32); +lean_inc(x_31); +lean_inc(x_30); +lean_inc(x_28); +lean_inc(x_27); +lean_inc(x_26); +lean_inc(x_25); +lean_dec(x_13); +x_33 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add(x_28, x_1); +x_34 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_34, 0, x_25); +lean_ctor_set(x_34, 1, x_26); +lean_ctor_set(x_34, 2, x_27); +lean_ctor_set(x_34, 3, x_33); +lean_ctor_set(x_34, 4, x_30); +lean_ctor_set(x_34, 5, x_31); +lean_ctor_set(x_34, 6, x_32); +lean_ctor_set_uint8(x_34, sizeof(void*)*7, x_29); +x_35 = lean_st_ref_set(x_3, x_34, x_14); +x_36 = lean_ctor_get(x_35, 1); +lean_inc(x_36); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + lean_ctor_release(x_35, 1); + x_37 = x_35; +} else { + lean_dec_ref(x_35); + x_37 = lean_box(0); +} +x_38 = lean_box(0); +if (lean_is_scalar(x_37)) { + x_39 = lean_alloc_ctor(0, 2, 0); +} else { + x_39 = x_37; +} +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_36); +return x_39; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunOcc___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_addFunOcc(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunHoOcc(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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_10 = lean_st_ref_get(x_8, x_9); +x_11 = lean_ctor_get(x_10, 1); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_st_ref_take(x_3, x_11); +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); +lean_dec(x_12); +x_15 = !lean_is_exclusive(x_13); +if (x_15 == 0) +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_16 = lean_ctor_get(x_13, 3); +x_17 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_addHo(x_16, x_1); +lean_ctor_set(x_13, 3, x_17); +x_18 = lean_st_ref_set(x_3, x_13, x_14); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) +{ +lean_object* x_20; lean_object* x_21; +x_20 = lean_ctor_get(x_18, 0); +lean_dec(x_20); +x_21 = lean_box(0); +lean_ctor_set(x_18, 0, x_21); +return x_18; +} +else +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_18, 1); +lean_inc(x_22); +lean_dec(x_18); +x_23 = lean_box(0); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_22); +return x_24; +} +} +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_25 = lean_ctor_get(x_13, 0); +x_26 = lean_ctor_get(x_13, 1); +x_27 = lean_ctor_get(x_13, 2); +x_28 = lean_ctor_get(x_13, 3); +x_29 = lean_ctor_get_uint8(x_13, sizeof(void*)*7); +x_30 = lean_ctor_get(x_13, 4); +x_31 = lean_ctor_get(x_13, 5); +x_32 = lean_ctor_get(x_13, 6); +lean_inc(x_32); +lean_inc(x_31); +lean_inc(x_30); +lean_inc(x_28); +lean_inc(x_27); +lean_inc(x_26); +lean_inc(x_25); +lean_dec(x_13); +x_33 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_addHo(x_28, x_1); +x_34 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_34, 0, x_25); +lean_ctor_set(x_34, 1, x_26); +lean_ctor_set(x_34, 2, x_27); +lean_ctor_set(x_34, 3, x_33); +lean_ctor_set(x_34, 4, x_30); +lean_ctor_set(x_34, 5, x_31); +lean_ctor_set(x_34, 6, x_32); +lean_ctor_set_uint8(x_34, sizeof(void*)*7, x_29); +x_35 = lean_st_ref_set(x_3, x_34, x_14); +x_36 = lean_ctor_get(x_35, 1); +lean_inc(x_36); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + lean_ctor_release(x_35, 1); + x_37 = x_35; +} else { + lean_dec_ref(x_35); + x_37 = lean_box(0); +} +x_38 = lean_box(0); +if (lean_is_scalar(x_37)) { + x_39 = lean_alloc_ctor(0, 2, 0); +} else { + x_39 = x_37; +} +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_36); +return x_39; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFunHoOcc___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_addFunHoOcc(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(lean_object* x_1, uint8_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) { +_start: +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_11 = lean_st_ref_get(x_9, x_10); +x_12 = lean_ctor_get(x_11, 1); +lean_inc(x_12); +lean_dec(x_11); +x_13 = lean_st_ref_take(x_4, x_12); +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 = !lean_is_exclusive(x_14); +if (x_16 == 0) +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_17 = lean_ctor_get(x_14, 3); +x_18 = l_Lean_Compiler_LCNF_Simp_State_subst___default___closed__1; +lean_ctor_set(x_14, 3, x_18); +x_19 = lean_st_ref_set(x_4, x_14, x_15); +x_20 = lean_ctor_get(x_19, 1); +lean_inc(x_20); +lean_dec(x_19); +lean_inc(x_9); +x_21 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_update(x_17, x_1, x_2, x_6, x_7, x_8, x_9, x_20); +if (lean_obj_tag(x_21) == 0) +{ +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; uint8_t x_29; +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_21, 1); +lean_inc(x_23); +lean_dec(x_21); +x_24 = lean_st_ref_get(x_9, x_23); +lean_dec(x_9); +x_25 = lean_ctor_get(x_24, 1); +lean_inc(x_25); +lean_dec(x_24); +x_26 = lean_st_ref_take(x_4, x_25); +x_27 = lean_ctor_get(x_26, 0); +lean_inc(x_27); +x_28 = lean_ctor_get(x_26, 1); +lean_inc(x_28); +lean_dec(x_26); +x_29 = !lean_is_exclusive(x_27); +if (x_29 == 0) +{ +lean_object* x_30; lean_object* x_31; uint8_t x_32; +x_30 = lean_ctor_get(x_27, 3); lean_dec(x_30); -x_35 = lean_box(0); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_35); -lean_ctor_set(x_36, 1, x_34); -return x_36; +lean_ctor_set(x_27, 3, x_22); +x_31 = lean_st_ref_set(x_4, x_27, x_28); +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +lean_object* x_33; lean_object* x_34; +x_33 = lean_ctor_get(x_31, 0); +lean_dec(x_33); +x_34 = lean_box(0); +lean_ctor_set(x_31, 0, x_34); +return x_31; +} +else +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_35 = lean_ctor_get(x_31, 1); +lean_inc(x_35); +lean_dec(x_31); +x_36 = lean_box(0); +x_37 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_37, 0, x_36); +lean_ctor_set(x_37, 1, x_35); +return x_37; } } else { -lean_object* x_37; lean_object* x_38; lean_object* x_39; uint8_t x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; -x_37 = lean_ctor_get(x_26, 0); -x_38 = lean_ctor_get(x_26, 1); -x_39 = lean_ctor_get(x_26, 2); -x_40 = lean_ctor_get_uint8(x_26, sizeof(void*)*7); -x_41 = lean_ctor_get(x_26, 4); -x_42 = lean_ctor_get(x_26, 5); -x_43 = lean_ctor_get(x_26, 6); +lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; +x_38 = lean_ctor_get(x_27, 0); +x_39 = lean_ctor_get(x_27, 1); +x_40 = lean_ctor_get(x_27, 2); +x_41 = lean_ctor_get_uint8(x_27, sizeof(void*)*7); +x_42 = lean_ctor_get(x_27, 4); +x_43 = lean_ctor_get(x_27, 5); +x_44 = lean_ctor_get(x_27, 6); +lean_inc(x_44); lean_inc(x_43); lean_inc(x_42); -lean_inc(x_41); +lean_inc(x_40); lean_inc(x_39); lean_inc(x_38); -lean_inc(x_37); -lean_dec(x_26); -x_44 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_44, 0, x_37); -lean_ctor_set(x_44, 1, x_38); -lean_ctor_set(x_44, 2, x_39); -lean_ctor_set(x_44, 3, x_21); -lean_ctor_set(x_44, 4, x_41); -lean_ctor_set(x_44, 5, x_42); -lean_ctor_set(x_44, 6, x_43); -lean_ctor_set_uint8(x_44, sizeof(void*)*7, x_40); -x_45 = lean_st_ref_set(x_4, x_44, x_27); -x_46 = lean_ctor_get(x_45, 1); -lean_inc(x_46); -if (lean_is_exclusive(x_45)) { - lean_ctor_release(x_45, 0); - lean_ctor_release(x_45, 1); - x_47 = x_45; +lean_dec(x_27); +x_45 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_45, 0, x_38); +lean_ctor_set(x_45, 1, x_39); +lean_ctor_set(x_45, 2, x_40); +lean_ctor_set(x_45, 3, x_22); +lean_ctor_set(x_45, 4, x_42); +lean_ctor_set(x_45, 5, x_43); +lean_ctor_set(x_45, 6, x_44); +lean_ctor_set_uint8(x_45, sizeof(void*)*7, x_41); +x_46 = lean_st_ref_set(x_4, x_45, x_28); +x_47 = lean_ctor_get(x_46, 1); +lean_inc(x_47); +if (lean_is_exclusive(x_46)) { + lean_ctor_release(x_46, 0); + lean_ctor_release(x_46, 1); + x_48 = x_46; } else { - lean_dec_ref(x_45); - x_47 = lean_box(0); + lean_dec_ref(x_46); + x_48 = lean_box(0); } -x_48 = lean_box(0); -if (lean_is_scalar(x_47)) { - x_49 = lean_alloc_ctor(0, 2, 0); +x_49 = lean_box(0); +if (lean_is_scalar(x_48)) { + x_50 = lean_alloc_ctor(0, 2, 0); } else { - x_49 = x_47; + x_50 = x_48; } -lean_ctor_set(x_49, 0, x_48); -lean_ctor_set(x_49, 1, x_46); -return x_49; +lean_ctor_set(x_50, 0, x_49); +lean_ctor_set(x_50, 1, x_47); +return x_50; } } else { -uint8_t x_50; -lean_dec(x_8); -x_50 = !lean_is_exclusive(x_20); -if (x_50 == 0) +uint8_t x_51; +lean_dec(x_9); +x_51 = !lean_is_exclusive(x_21); +if (x_51 == 0) { -return x_20; +return x_21; } else { -lean_object* x_51; lean_object* x_52; lean_object* x_53; -x_51 = lean_ctor_get(x_20, 0); -x_52 = lean_ctor_get(x_20, 1); +lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_52 = lean_ctor_get(x_21, 0); +x_53 = lean_ctor_get(x_21, 1); +lean_inc(x_53); lean_inc(x_52); -lean_inc(x_51); -lean_dec(x_20); -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_21); +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 { -lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; uint8_t x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; -x_54 = lean_ctor_get(x_13, 0); -x_55 = lean_ctor_get(x_13, 1); -x_56 = lean_ctor_get(x_13, 2); -x_57 = lean_ctor_get(x_13, 3); -x_58 = lean_ctor_get_uint8(x_13, sizeof(void*)*7); -x_59 = lean_ctor_get(x_13, 4); -x_60 = lean_ctor_get(x_13, 5); -x_61 = lean_ctor_get(x_13, 6); +lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; uint8_t x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +x_55 = lean_ctor_get(x_14, 0); +x_56 = lean_ctor_get(x_14, 1); +x_57 = lean_ctor_get(x_14, 2); +x_58 = lean_ctor_get(x_14, 3); +x_59 = lean_ctor_get_uint8(x_14, sizeof(void*)*7); +x_60 = lean_ctor_get(x_14, 4); +x_61 = lean_ctor_get(x_14, 5); +x_62 = lean_ctor_get(x_14, 6); +lean_inc(x_62); lean_inc(x_61); lean_inc(x_60); -lean_inc(x_59); +lean_inc(x_58); lean_inc(x_57); lean_inc(x_56); lean_inc(x_55); -lean_inc(x_54); -lean_dec(x_13); -x_62 = l_Lean_Compiler_LCNF_Simp_State_subst___default___closed__1; -x_63 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_63, 0, x_54); -lean_ctor_set(x_63, 1, x_55); -lean_ctor_set(x_63, 2, x_56); -lean_ctor_set(x_63, 3, x_62); -lean_ctor_set(x_63, 4, x_59); -lean_ctor_set(x_63, 5, x_60); -lean_ctor_set(x_63, 6, x_61); -lean_ctor_set_uint8(x_63, sizeof(void*)*7, x_58); -x_64 = lean_st_ref_set(x_4, x_63, x_14); -x_65 = lean_ctor_get(x_64, 1); -lean_inc(x_65); -lean_dec(x_64); -lean_inc(x_8); -x_66 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_update(x_57, x_1, x_2, x_5, x_6, x_7, x_8, x_65); -if (lean_obj_tag(x_66) == 0) +lean_dec(x_14); +x_63 = l_Lean_Compiler_LCNF_Simp_State_subst___default___closed__1; +x_64 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_64, 0, x_55); +lean_ctor_set(x_64, 1, x_56); +lean_ctor_set(x_64, 2, x_57); +lean_ctor_set(x_64, 3, x_63); +lean_ctor_set(x_64, 4, x_60); +lean_ctor_set(x_64, 5, x_61); +lean_ctor_set(x_64, 6, x_62); +lean_ctor_set_uint8(x_64, sizeof(void*)*7, x_59); +x_65 = lean_st_ref_set(x_4, x_64, x_15); +x_66 = lean_ctor_get(x_65, 1); +lean_inc(x_66); +lean_dec(x_65); +lean_inc(x_9); +x_67 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_update(x_58, x_1, x_2, x_6, x_7, x_8, x_9, x_66); +if (lean_obj_tag(x_67) == 0) { -lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; uint8_t x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; -x_67 = lean_ctor_get(x_66, 0); -lean_inc(x_67); -x_68 = lean_ctor_get(x_66, 1); +lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; uint8_t x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; +x_68 = lean_ctor_get(x_67, 0); lean_inc(x_68); -lean_dec(x_66); -x_69 = lean_st_ref_get(x_8, x_68); -lean_dec(x_8); -x_70 = lean_ctor_get(x_69, 1); -lean_inc(x_70); -lean_dec(x_69); -x_71 = lean_st_ref_take(x_4, x_70); -x_72 = lean_ctor_get(x_71, 0); -lean_inc(x_72); -x_73 = lean_ctor_get(x_71, 1); +x_69 = lean_ctor_get(x_67, 1); +lean_inc(x_69); +lean_dec(x_67); +x_70 = lean_st_ref_get(x_9, x_69); +lean_dec(x_9); +x_71 = lean_ctor_get(x_70, 1); +lean_inc(x_71); +lean_dec(x_70); +x_72 = lean_st_ref_take(x_4, x_71); +x_73 = lean_ctor_get(x_72, 0); lean_inc(x_73); -lean_dec(x_71); -x_74 = lean_ctor_get(x_72, 0); +x_74 = lean_ctor_get(x_72, 1); lean_inc(x_74); -x_75 = lean_ctor_get(x_72, 1); +lean_dec(x_72); +x_75 = lean_ctor_get(x_73, 0); lean_inc(x_75); -x_76 = lean_ctor_get(x_72, 2); +x_76 = lean_ctor_get(x_73, 1); lean_inc(x_76); -x_77 = lean_ctor_get_uint8(x_72, sizeof(void*)*7); -x_78 = lean_ctor_get(x_72, 4); -lean_inc(x_78); -x_79 = lean_ctor_get(x_72, 5); +x_77 = lean_ctor_get(x_73, 2); +lean_inc(x_77); +x_78 = lean_ctor_get_uint8(x_73, sizeof(void*)*7); +x_79 = lean_ctor_get(x_73, 4); lean_inc(x_79); -x_80 = lean_ctor_get(x_72, 6); +x_80 = lean_ctor_get(x_73, 5); lean_inc(x_80); -if (lean_is_exclusive(x_72)) { - lean_ctor_release(x_72, 0); - lean_ctor_release(x_72, 1); - lean_ctor_release(x_72, 2); - lean_ctor_release(x_72, 3); - lean_ctor_release(x_72, 4); - lean_ctor_release(x_72, 5); - lean_ctor_release(x_72, 6); - x_81 = x_72; +x_81 = lean_ctor_get(x_73, 6); +lean_inc(x_81); +if (lean_is_exclusive(x_73)) { + lean_ctor_release(x_73, 0); + lean_ctor_release(x_73, 1); + lean_ctor_release(x_73, 2); + lean_ctor_release(x_73, 3); + lean_ctor_release(x_73, 4); + lean_ctor_release(x_73, 5); + lean_ctor_release(x_73, 6); + x_82 = x_73; } else { - lean_dec_ref(x_72); - x_81 = lean_box(0); + lean_dec_ref(x_73); + x_82 = lean_box(0); } -if (lean_is_scalar(x_81)) { - x_82 = lean_alloc_ctor(0, 7, 1); +if (lean_is_scalar(x_82)) { + x_83 = lean_alloc_ctor(0, 7, 1); } else { - x_82 = x_81; + x_83 = x_82; } -lean_ctor_set(x_82, 0, x_74); -lean_ctor_set(x_82, 1, x_75); -lean_ctor_set(x_82, 2, x_76); -lean_ctor_set(x_82, 3, x_67); -lean_ctor_set(x_82, 4, x_78); -lean_ctor_set(x_82, 5, x_79); -lean_ctor_set(x_82, 6, x_80); -lean_ctor_set_uint8(x_82, sizeof(void*)*7, x_77); -x_83 = lean_st_ref_set(x_4, x_82, x_73); -x_84 = lean_ctor_get(x_83, 1); -lean_inc(x_84); -if (lean_is_exclusive(x_83)) { - lean_ctor_release(x_83, 0); - lean_ctor_release(x_83, 1); - x_85 = x_83; +lean_ctor_set(x_83, 0, x_75); +lean_ctor_set(x_83, 1, x_76); +lean_ctor_set(x_83, 2, x_77); +lean_ctor_set(x_83, 3, x_68); +lean_ctor_set(x_83, 4, x_79); +lean_ctor_set(x_83, 5, x_80); +lean_ctor_set(x_83, 6, x_81); +lean_ctor_set_uint8(x_83, sizeof(void*)*7, x_78); +x_84 = lean_st_ref_set(x_4, x_83, x_74); +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; } else { - lean_dec_ref(x_83); - x_85 = lean_box(0); + lean_dec_ref(x_84); + x_86 = lean_box(0); } -x_86 = lean_box(0); -if (lean_is_scalar(x_85)) { - x_87 = lean_alloc_ctor(0, 2, 0); +x_87 = lean_box(0); +if (lean_is_scalar(x_86)) { + x_88 = lean_alloc_ctor(0, 2, 0); } else { - x_87 = x_85; + x_88 = x_86; } -lean_ctor_set(x_87, 0, x_86); -lean_ctor_set(x_87, 1, x_84); -return x_87; +lean_ctor_set(x_88, 0, x_87); +lean_ctor_set(x_88, 1, x_85); +return x_88; } else { -lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; -lean_dec(x_8); -x_88 = lean_ctor_get(x_66, 0); -lean_inc(x_88); -x_89 = lean_ctor_get(x_66, 1); +lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; +lean_dec(x_9); +x_89 = lean_ctor_get(x_67, 0); lean_inc(x_89); -if (lean_is_exclusive(x_66)) { - lean_ctor_release(x_66, 0); - lean_ctor_release(x_66, 1); - x_90 = x_66; +x_90 = lean_ctor_get(x_67, 1); +lean_inc(x_90); +if (lean_is_exclusive(x_67)) { + lean_ctor_release(x_67, 0); + lean_ctor_release(x_67, 1); + x_91 = x_67; } else { - lean_dec_ref(x_66); - x_90 = lean_box(0); + lean_dec_ref(x_67); + x_91 = lean_box(0); } -if (lean_is_scalar(x_90)) { - x_91 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_91)) { + x_92 = lean_alloc_ctor(1, 2, 0); } else { - x_91 = x_90; + x_92 = x_91; } -lean_ctor_set(x_91, 0, x_88); -lean_ctor_set(x_91, 1, x_89); -return x_91; +lean_ctor_set(x_92, 0, x_89); +lean_ctor_set(x_92, 1, x_90); +return x_92; } } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo___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) { _start: { -uint8_t x_10; lean_object* x_11; -x_10 = lean_unbox(x_2); +uint8_t x_11; lean_object* x_12; +x_11 = lean_unbox(x_2); lean_dec(x_2); -x_11 = l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(x_1, x_10, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_12 = l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(x_1, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -return x_11; +return x_12; } } static lean_object* _init_l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1___closed__1() { @@ -6007,44 +1813,44 @@ x_1 = l_Lean_inheritedTraceOptions; return x_1; } } -LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__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_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__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) { _start: { -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1___closed__1; -x_12 = lean_st_ref_get(x_11, x_10); -x_13 = !lean_is_exclusive(x_12); -if (x_13 == 0) +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; +x_10 = lean_st_ref_get(x_8, x_9); +x_11 = lean_ctor_get(x_10, 1); +lean_inc(x_11); +lean_dec(x_10); +x_12 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1___closed__1; +x_13 = lean_st_ref_get(x_12, x_11); +x_14 = !lean_is_exclusive(x_13); +if (x_14 == 0) { -lean_object* x_14; lean_object* x_15; uint8_t x_16; lean_object* x_17; -x_14 = lean_ctor_get(x_12, 0); -x_15 = lean_ctor_get(x_6, 2); -x_16 = l___private_Lean_Util_Trace_0__Lean_checkTraceOption(x_14, x_15, x_1); -lean_dec(x_14); -x_17 = lean_box(x_16); -lean_ctor_set(x_12, 0, x_17); -return x_12; +lean_object* x_15; lean_object* x_16; uint8_t x_17; lean_object* x_18; +x_15 = lean_ctor_get(x_13, 0); +x_16 = lean_ctor_get(x_7, 2); +x_17 = l___private_Lean_Util_Trace_0__Lean_checkTraceOption(x_15, x_16, x_1); +lean_dec(x_15); +x_18 = lean_box(x_17); +lean_ctor_set(x_13, 0, x_18); +return x_13; } else { -lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; lean_object* x_22; lean_object* x_23; -x_18 = lean_ctor_get(x_12, 0); -x_19 = lean_ctor_get(x_12, 1); +lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; lean_object* x_23; lean_object* x_24; +x_19 = lean_ctor_get(x_13, 0); +x_20 = lean_ctor_get(x_13, 1); +lean_inc(x_20); lean_inc(x_19); -lean_inc(x_18); -lean_dec(x_12); -x_20 = lean_ctor_get(x_6, 2); -x_21 = l___private_Lean_Util_Trace_0__Lean_checkTraceOption(x_18, x_20, x_1); -lean_dec(x_18); -x_22 = lean_box(x_21); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_19); -return x_23; +lean_dec(x_13); +x_21 = lean_ctor_get(x_7, 2); +x_22 = l___private_Lean_Util_Trace_0__Lean_checkTraceOption(x_19, x_21, x_1); +lean_dec(x_19); +x_23 = lean_box(x_22); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_20); +return x_24; } } } @@ -6090,6 +1896,26 @@ return x_15; } } } +static size_t _init_l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3___closed__1() { +_start: +{ +size_t x_1; size_t x_2; size_t x_3; +x_1 = 1; +x_2 = 5; +x_3 = lean_usize_shift_left(x_1, x_2); +return x_3; +} +} +static size_t _init_l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3___closed__2() { +_start: +{ +size_t x_1; size_t x_2; size_t x_3; +x_1 = 1; +x_2 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3___closed__1; +x_3 = lean_usize_sub(x_2, x_1); +return x_3; +} +} LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3(lean_object* x_1, size_t x_2, lean_object* x_3) { _start: { @@ -6100,7 +1926,7 @@ x_4 = lean_ctor_get(x_1, 0); lean_inc(x_4); lean_dec(x_1); x_5 = 5; -x_6 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__2; +x_6 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3___closed__2; x_7 = lean_usize_land(x_2, x_6); x_8 = lean_usize_to_nat(x_7); x_9 = lean_box(2); @@ -6309,6 +2135,14 @@ return x_29; } } } +static lean_object* _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__6___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_PersistentHashMap_mkEmptyEntries(lean_box(0), lean_box(0)); +return x_1; +} +} LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__6(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4, lean_object* x_5) { _start: { @@ -6322,7 +2156,7 @@ lean_object* x_7; size_t x_8; size_t x_9; size_t x_10; size_t x_11; lean_object* x_7 = lean_ctor_get(x_1, 0); x_8 = 1; x_9 = 5; -x_10 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__2; +x_10 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3___closed__2; x_11 = lean_usize_land(x_2, x_10); x_12 = lean_usize_to_nat(x_11); x_13 = lean_array_get_size(x_7); @@ -6468,7 +2302,7 @@ lean_inc(x_48); lean_dec(x_1); x_49 = 1; x_50 = 5; -x_51 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__2; +x_51 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3___closed__2; x_52 = lean_usize_land(x_2, x_51); x_53 = lean_usize_to_nat(x_52); x_54 = lean_array_get_size(x_48); @@ -6608,7 +2442,7 @@ lean_inc(x_90); x_91 = lean_ctor_get(x_84, 1); lean_inc(x_91); lean_dec(x_84); -x_92 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__3; +x_92 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__6___closed__1; x_93 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withInlining___spec__7(x_3, x_90, x_91, lean_box(0), x_83, x_92); lean_dec(x_91); lean_dec(x_90); @@ -6654,7 +2488,7 @@ lean_inc(x_104); x_105 = lean_ctor_get(x_98, 1); lean_inc(x_105); lean_dec(x_98); -x_106 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__3; +x_106 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__6___closed__1; x_107 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_Simp_withInlining___spec__7(x_3, x_104, x_105, lean_box(0), x_97, x_106); lean_dec(x_105); lean_dec(x_104); @@ -6716,80 +2550,124 @@ return x_21; } } } -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9(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) { +static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__1() { _start: { -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; -x_9 = lean_ctor_get(x_6, 5); -x_10 = lean_st_ref_get(x_7, x_8); -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_10, 1); +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__2; +x_2 = lean_unsigned_to_nat(0u); +x_3 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_1 = lean_unsigned_to_nat(0u); +x_2 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__1; +x_3 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__2; +x_4 = l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__3; +x_5 = lean_alloc_ctor(0, 8, 0); +lean_ctor_set(x_5, 0, x_1); +lean_ctor_set(x_5, 1, x_1); +lean_ctor_set(x_5, 2, x_2); +lean_ctor_set(x_5, 3, x_3); +lean_ctor_set(x_5, 4, x_4); +lean_ctor_set(x_5, 5, x_2); +lean_ctor_set(x_5, 6, x_3); +lean_ctor_set(x_5, 7, x_3); +return x_5; +} +} +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9(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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_10 = lean_ctor_get(x_7, 5); +x_11 = lean_st_ref_get(x_8, x_9); +x_12 = lean_ctor_get(x_11, 0); lean_inc(x_12); -lean_dec(x_10); -x_13 = lean_ctor_get(x_11, 0); +x_13 = lean_ctor_get(x_11, 1); lean_inc(x_13); lean_dec(x_11); -x_14 = lean_st_ref_get(x_5, x_12); -x_15 = !lean_is_exclusive(x_14); -if (x_15 == 0) +x_14 = lean_ctor_get(x_12, 0); +lean_inc(x_14); +lean_dec(x_12); +x_15 = lean_st_ref_get(x_6, x_13); +x_16 = !lean_is_exclusive(x_15); +if (x_16 == 0) { -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_16 = lean_ctor_get(x_14, 0); -x_17 = lean_ctor_get(x_16, 0); -lean_inc(x_17); -lean_dec(x_16); -x_18 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_17); -x_19 = lean_ctor_get(x_6, 2); -x_20 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3; -lean_inc(x_19); -x_21 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_21, 0, x_13); -lean_ctor_set(x_21, 1, x_20); -lean_ctor_set(x_21, 2, x_18); -lean_ctor_set(x_21, 3, x_19); -x_22 = lean_alloc_ctor(6, 2, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_1); -lean_inc(x_9); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_9); -lean_ctor_set(x_23, 1, x_22); -lean_ctor_set_tag(x_14, 1); -lean_ctor_set(x_14, 0, x_23); -return x_14; +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_17 = lean_ctor_get(x_15, 0); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +lean_dec(x_17); +x_19 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_18); +x_20 = lean_ctor_get(x_7, 2); +x_21 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__3; +lean_inc(x_20); +x_22 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_22, 0, x_14); +lean_ctor_set(x_22, 1, x_21); +lean_ctor_set(x_22, 2, x_19); +lean_ctor_set(x_22, 3, x_20); +x_23 = lean_alloc_ctor(6, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_1); +lean_inc(x_10); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_10); +lean_ctor_set(x_24, 1, x_23); +lean_ctor_set_tag(x_15, 1); +lean_ctor_set(x_15, 0, x_24); +return x_15; } else { -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; lean_object* x_32; lean_object* x_33; -x_24 = lean_ctor_get(x_14, 0); -x_25 = lean_ctor_get(x_14, 1); -lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_14); -x_26 = lean_ctor_get(x_24, 0); +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; lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_25 = lean_ctor_get(x_15, 0); +x_26 = lean_ctor_get(x_15, 1); lean_inc(x_26); -lean_dec(x_24); -x_27 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_26); -x_28 = lean_ctor_get(x_6, 2); -x_29 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3; -lean_inc(x_28); -x_30 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_30, 0, x_13); -lean_ctor_set(x_30, 1, x_29); -lean_ctor_set(x_30, 2, x_27); -lean_ctor_set(x_30, 3, x_28); -x_31 = lean_alloc_ctor(6, 2, 0); -lean_ctor_set(x_31, 0, x_30); -lean_ctor_set(x_31, 1, x_1); -lean_inc(x_9); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_9); -lean_ctor_set(x_32, 1, x_31); -x_33 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_25); -return x_33; +lean_inc(x_25); +lean_dec(x_15); +x_27 = lean_ctor_get(x_25, 0); +lean_inc(x_27); +lean_dec(x_25); +x_28 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_27); +x_29 = lean_ctor_get(x_7, 2); +x_30 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__3; +lean_inc(x_29); +x_31 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_31, 0, x_14); +lean_ctor_set(x_31, 1, x_30); +lean_ctor_set(x_31, 2, x_28); +lean_ctor_set(x_31, 3, x_29); +x_32 = lean_alloc_ctor(6, 2, 0); +lean_ctor_set(x_32, 0, x_31); +lean_ctor_set(x_32, 1, x_1); +lean_inc(x_10); +x_33 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_33, 0, x_10); +lean_ctor_set(x_33, 1, x_32); +x_34 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_34, 0, x_33); +lean_ctor_set(x_34, 1, x_26); +return x_34; } } } @@ -6802,181 +2680,175 @@ x_2 = lean_mk_empty_array_with_capacity(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(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_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(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; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; -x_10 = lean_ctor_get(x_7, 5); -x_11 = lean_st_ref_get(x_8, x_9); -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; +x_11 = lean_ctor_get(x_8, 5); +x_12 = lean_st_ref_get(x_9, x_10); +x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); -lean_dec(x_11); -x_14 = lean_ctor_get(x_12, 0); +x_14 = lean_ctor_get(x_12, 1); lean_inc(x_14); lean_dec(x_12); -x_15 = lean_st_ref_get(x_6, x_13); -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); +x_15 = lean_ctor_get(x_13, 0); +lean_inc(x_15); +lean_dec(x_13); +x_16 = lean_st_ref_get(x_7, x_14); +x_17 = lean_ctor_get(x_16, 0); lean_inc(x_17); -lean_dec(x_15); -x_18 = lean_ctor_get(x_16, 0); +x_18 = lean_ctor_get(x_16, 1); lean_inc(x_18); lean_dec(x_16); -x_19 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_18); -x_20 = lean_ctor_get(x_7, 2); -x_21 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3; -lean_inc(x_20); -x_22 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_22, 0, x_14); -lean_ctor_set(x_22, 1, x_21); -lean_ctor_set(x_22, 2, x_19); -lean_ctor_set(x_22, 3, x_20); -x_23 = lean_alloc_ctor(6, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_2); -x_24 = lean_st_ref_take(x_8, x_17); -x_25 = lean_ctor_get(x_24, 0); -lean_inc(x_25); -x_26 = lean_ctor_get(x_24, 1); +x_19 = lean_ctor_get(x_17, 0); +lean_inc(x_19); +lean_dec(x_17); +x_20 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_19); +x_21 = lean_ctor_get(x_8, 2); +x_22 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__3; +lean_inc(x_21); +x_23 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_23, 0, x_15); +lean_ctor_set(x_23, 1, x_22); +lean_ctor_set(x_23, 2, x_20); +lean_ctor_set(x_23, 3, x_21); +x_24 = lean_alloc_ctor(6, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_2); +x_25 = lean_st_ref_take(x_9, x_18); +x_26 = lean_ctor_get(x_25, 0); lean_inc(x_26); -lean_dec(x_24); -x_27 = !lean_is_exclusive(x_25); -if (x_27 == 0) +x_27 = lean_ctor_get(x_25, 1); +lean_inc(x_27); +lean_dec(x_25); +x_28 = !lean_is_exclusive(x_26); +if (x_28 == 0) { -lean_object* x_28; lean_object* x_29; uint8_t x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; -x_28 = lean_ctor_get(x_25, 3); -x_29 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10___closed__1; -x_30 = 0; -x_31 = lean_alloc_ctor(12, 3, 1); -lean_ctor_set(x_31, 0, x_1); -lean_ctor_set(x_31, 1, x_23); -lean_ctor_set(x_31, 2, x_29); -lean_ctor_set_uint8(x_31, sizeof(void*)*3, x_30); -lean_inc(x_10); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_10); -lean_ctor_set(x_32, 1, x_31); -x_33 = l_Lean_PersistentArray_push___rarg(x_28, x_32); -lean_ctor_set(x_25, 3, x_33); -x_34 = lean_st_ref_set(x_8, x_25, x_26); -x_35 = !lean_is_exclusive(x_34); -if (x_35 == 0) +lean_object* x_29; lean_object* x_30; uint8_t x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; uint8_t x_36; +x_29 = lean_ctor_get(x_26, 3); +x_30 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10___closed__1; +x_31 = 0; +x_32 = lean_alloc_ctor(12, 3, 1); +lean_ctor_set(x_32, 0, x_1); +lean_ctor_set(x_32, 1, x_24); +lean_ctor_set(x_32, 2, x_30); +lean_ctor_set_uint8(x_32, sizeof(void*)*3, x_31); +lean_inc(x_11); +x_33 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_33, 0, x_11); +lean_ctor_set(x_33, 1, x_32); +x_34 = l_Lean_PersistentArray_push___rarg(x_29, x_33); +lean_ctor_set(x_26, 3, x_34); +x_35 = lean_st_ref_set(x_9, x_26, x_27); +x_36 = !lean_is_exclusive(x_35); +if (x_36 == 0) { -lean_object* x_36; lean_object* x_37; -x_36 = lean_ctor_get(x_34, 0); -lean_dec(x_36); -x_37 = lean_box(0); -lean_ctor_set(x_34, 0, x_37); -return x_34; +lean_object* x_37; lean_object* x_38; +x_37 = lean_ctor_get(x_35, 0); +lean_dec(x_37); +x_38 = lean_box(0); +lean_ctor_set(x_35, 0, x_38); +return x_35; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; -x_38 = lean_ctor_get(x_34, 1); -lean_inc(x_38); -lean_dec(x_34); -x_39 = lean_box(0); -x_40 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_40, 0, x_39); -lean_ctor_set(x_40, 1, x_38); -return x_40; +lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_39 = lean_ctor_get(x_35, 1); +lean_inc(x_39); +lean_dec(x_35); +x_40 = lean_box(0); +x_41 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set(x_41, 1, x_39); +return x_41; } } else { -lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; uint8_t x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; -x_41 = lean_ctor_get(x_25, 0); -x_42 = lean_ctor_get(x_25, 1); -x_43 = lean_ctor_get(x_25, 2); -x_44 = lean_ctor_get(x_25, 3); -x_45 = lean_ctor_get(x_25, 4); -x_46 = lean_ctor_get(x_25, 5); -x_47 = lean_ctor_get(x_25, 6); +lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; uint8_t x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_42 = lean_ctor_get(x_26, 0); +x_43 = lean_ctor_get(x_26, 1); +x_44 = lean_ctor_get(x_26, 2); +x_45 = lean_ctor_get(x_26, 3); +x_46 = lean_ctor_get(x_26, 4); +x_47 = lean_ctor_get(x_26, 5); +x_48 = lean_ctor_get(x_26, 6); +lean_inc(x_48); lean_inc(x_47); lean_inc(x_46); lean_inc(x_45); lean_inc(x_44); lean_inc(x_43); lean_inc(x_42); -lean_inc(x_41); -lean_dec(x_25); -x_48 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10___closed__1; -x_49 = 0; -x_50 = lean_alloc_ctor(12, 3, 1); -lean_ctor_set(x_50, 0, x_1); -lean_ctor_set(x_50, 1, x_23); -lean_ctor_set(x_50, 2, x_48); -lean_ctor_set_uint8(x_50, sizeof(void*)*3, x_49); -lean_inc(x_10); -x_51 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_51, 0, x_10); -lean_ctor_set(x_51, 1, x_50); -x_52 = l_Lean_PersistentArray_push___rarg(x_44, x_51); -x_53 = lean_alloc_ctor(0, 7, 0); -lean_ctor_set(x_53, 0, x_41); -lean_ctor_set(x_53, 1, x_42); -lean_ctor_set(x_53, 2, x_43); -lean_ctor_set(x_53, 3, x_52); -lean_ctor_set(x_53, 4, x_45); -lean_ctor_set(x_53, 5, x_46); -lean_ctor_set(x_53, 6, x_47); -x_54 = lean_st_ref_set(x_8, x_53, x_26); -x_55 = lean_ctor_get(x_54, 1); -lean_inc(x_55); -if (lean_is_exclusive(x_54)) { - lean_ctor_release(x_54, 0); - lean_ctor_release(x_54, 1); - x_56 = x_54; +lean_dec(x_26); +x_49 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10___closed__1; +x_50 = 0; +x_51 = lean_alloc_ctor(12, 3, 1); +lean_ctor_set(x_51, 0, x_1); +lean_ctor_set(x_51, 1, x_24); +lean_ctor_set(x_51, 2, x_49); +lean_ctor_set_uint8(x_51, sizeof(void*)*3, x_50); +lean_inc(x_11); +x_52 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_52, 0, x_11); +lean_ctor_set(x_52, 1, x_51); +x_53 = l_Lean_PersistentArray_push___rarg(x_45, x_52); +x_54 = lean_alloc_ctor(0, 7, 0); +lean_ctor_set(x_54, 0, x_42); +lean_ctor_set(x_54, 1, x_43); +lean_ctor_set(x_54, 2, x_44); +lean_ctor_set(x_54, 3, x_53); +lean_ctor_set(x_54, 4, x_46); +lean_ctor_set(x_54, 5, x_47); +lean_ctor_set(x_54, 6, x_48); +x_55 = lean_st_ref_set(x_9, x_54, x_27); +x_56 = lean_ctor_get(x_55, 1); +lean_inc(x_56); +if (lean_is_exclusive(x_55)) { + lean_ctor_release(x_55, 0); + lean_ctor_release(x_55, 1); + x_57 = x_55; } else { - lean_dec_ref(x_54); - x_56 = lean_box(0); + lean_dec_ref(x_55); + x_57 = lean_box(0); } -x_57 = lean_box(0); -if (lean_is_scalar(x_56)) { - x_58 = lean_alloc_ctor(0, 2, 0); +x_58 = lean_box(0); +if (lean_is_scalar(x_57)) { + x_59 = lean_alloc_ctor(0, 2, 0); } else { - x_58 = x_56; + x_59 = x_57; } -lean_ctor_set(x_58, 0, x_57); -lean_ctor_set(x_58, 1, x_55); -return x_58; +lean_ctor_set(x_59, 0, x_58); +lean_ctor_set(x_59, 1, x_56); +return x_59; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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_object* x_11) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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_object* x_11, lean_object* x_12) { _start: { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_12 = lean_ctor_get(x_5, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_5, 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; lean_object* x_20; +x_13 = lean_ctor_get(x_5, 0); lean_inc(x_13); -x_14 = lean_ctor_get(x_5, 2); +x_14 = lean_ctor_get(x_5, 1); lean_inc(x_14); -x_15 = lean_ctor_get(x_5, 3); +x_15 = lean_ctor_get(x_5, 2); lean_inc(x_15); -x_16 = lean_ctor_get(x_5, 4); -lean_inc(x_16); lean_inc(x_1); -x_17 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_17, 0, x_1); -lean_ctor_set(x_17, 1, x_16); -x_18 = lean_ctor_get(x_5, 5); -lean_inc(x_18); +x_16 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_16, 0, x_1); +lean_ctor_set(x_16, 1, x_15); +x_17 = lean_ctor_get(x_5, 3); +lean_inc(x_17); lean_dec(x_5); -x_19 = l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_Simp_withInlining___spec__5(x_18, x_1, x_2); -x_20 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_20, 0, x_12); -lean_ctor_set(x_20, 1, x_13); -lean_ctor_set(x_20, 2, x_14); -lean_ctor_set(x_20, 3, x_15); -lean_ctor_set(x_20, 4, x_17); -lean_ctor_set(x_20, 5, x_19); -x_21 = lean_apply_7(x_3, x_20, x_6, x_7, x_8, x_9, x_10, x_11); -return x_21; +x_18 = l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_Simp_withInlining___spec__5(x_17, x_1, x_2); +x_19 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_19, 0, x_13); +lean_ctor_set(x_19, 1, x_14); +lean_ctor_set(x_19, 2, x_16); +lean_ctor_set(x_19, 3, x_18); +x_20 = lean_apply_8(x_3, x_19, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +return x_20; } } static lean_object* _init_l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__1() { @@ -7030,152 +2902,153 @@ x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2(lean_object* x_1, lean_object* x_2, uint8_t 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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2(lean_object* x_1, lean_object* x_2, uint8_t 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_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_dec(x_4); -x_12 = lean_ctor_get(x_5, 5); -lean_inc(x_12); +x_13 = lean_ctor_get(x_5, 3); +lean_inc(x_13); lean_inc(x_1); -x_13 = l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_Simp_withInlining___spec__2(x_12, x_1); -x_14 = lean_st_ref_get(x_10, x_11); -if (lean_obj_tag(x_13) == 0) -{ -lean_object* x_56; -x_56 = lean_unsigned_to_nat(0u); -x_15 = x_56; -goto block_55; -} -else +x_14 = l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_Simp_withInlining___spec__2(x_13, x_1); +x_15 = lean_st_ref_get(x_11, x_12); +if (lean_obj_tag(x_14) == 0) { lean_object* x_57; -x_57 = lean_ctor_get(x_13, 0); -lean_inc(x_57); -lean_dec(x_13); -x_15 = x_57; -goto block_55; +x_57 = lean_unsigned_to_nat(0u); +x_16 = x_57; +goto block_56; } -block_55: +else { -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_14, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_14, 1); -lean_inc(x_17); +lean_object* x_58; +x_58 = lean_ctor_get(x_14, 0); +lean_inc(x_58); lean_dec(x_14); -x_18 = lean_unsigned_to_nat(1u); -x_19 = lean_nat_add(x_15, x_18); +x_16 = x_58; +goto block_56; +} +block_56: +{ +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_17 = lean_ctor_get(x_15, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_15, 1); +lean_inc(x_18); lean_dec(x_15); -x_20 = lean_ctor_get(x_16, 0); -lean_inc(x_20); +x_19 = lean_unsigned_to_nat(1u); +x_20 = lean_nat_add(x_16, x_19); lean_dec(x_16); -x_21 = l_Lean_Compiler_LCNF_getConfig(x_7, x_8, x_9, x_10, x_17); +x_21 = lean_ctor_get(x_17, 0); +lean_inc(x_21); +lean_dec(x_17); +x_22 = l_Lean_Compiler_LCNF_getConfig(x_8, x_9, x_10, x_11, x_18); if (x_3 == 0) { -lean_object* x_22; lean_object* x_23; lean_object* x_24; -lean_dec(x_20); -x_22 = lean_ctor_get(x_21, 1); -lean_inc(x_22); +lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_dec(x_21); -x_23 = lean_box(0); -x_24 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__1(x_1, x_19, x_2, x_23, x_5, x_6, x_7, x_8, x_9, x_10, x_22); -return x_24; +x_23 = lean_ctor_get(x_22, 1); +lean_inc(x_23); +lean_dec(x_22); +x_24 = lean_box(0); +x_25 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__1(x_1, x_20, x_2, x_24, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_23); +return x_25; } else { -lean_object* x_25; lean_object* x_26; uint8_t x_27; uint8_t x_28; -x_25 = lean_ctor_get(x_21, 0); -lean_inc(x_25); -x_26 = lean_ctor_get(x_21, 1); +lean_object* x_26; lean_object* x_27; uint8_t x_28; uint8_t x_29; +x_26 = lean_ctor_get(x_22, 0); lean_inc(x_26); -lean_dec(x_21); -x_27 = 3; +x_27 = lean_ctor_get(x_22, 1); +lean_inc(x_27); +lean_dec(x_22); +x_28 = 3; lean_inc(x_1); -x_28 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_20, x_27, x_1); -if (x_28 == 0) +x_29 = l___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_hasInlineAttrCore(x_21, x_28, x_1); +if (x_29 == 0) { -lean_object* x_29; lean_object* x_30; -lean_dec(x_25); -x_29 = lean_box(0); -x_30 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__1(x_1, x_19, x_2, x_29, x_5, x_6, x_7, x_8, x_9, x_10, x_26); -return x_30; +lean_object* x_30; lean_object* x_31; +lean_dec(x_26); +x_30 = lean_box(0); +x_31 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__1(x_1, x_20, x_2, x_30, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_27); +return x_31; } else { -lean_object* x_31; uint8_t x_32; -x_31 = lean_ctor_get(x_25, 2); -lean_inc(x_31); -lean_dec(x_25); -x_32 = lean_nat_dec_lt(x_31, x_19); -lean_dec(x_31); -if (x_32 == 0) +lean_object* x_32; uint8_t x_33; +x_32 = lean_ctor_get(x_26, 2); +lean_inc(x_32); +lean_dec(x_26); +x_33 = lean_nat_dec_lt(x_32, x_20); +lean_dec(x_32); +if (x_33 == 0) { -lean_object* x_33; lean_object* x_34; -x_33 = lean_box(0); -x_34 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__1(x_1, x_19, x_2, x_33, x_5, x_6, x_7, x_8, x_9, x_10, x_26); -return x_34; +lean_object* x_34; lean_object* x_35; +x_34 = lean_box(0); +x_35 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__1(x_1, x_20, x_2, x_34, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_27); +return x_35; } else { -lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; -lean_dec(x_19); +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_52; +lean_dec(x_20); lean_dec(x_2); -x_35 = l_Lean_Compiler_LCNF_getConfig(x_7, x_8, x_9, x_10, x_26); -x_36 = lean_ctor_get(x_35, 0); -lean_inc(x_36); -x_37 = lean_ctor_get(x_35, 1); +x_36 = l_Lean_Compiler_LCNF_getConfig(x_8, x_9, x_10, x_11, x_27); +x_37 = lean_ctor_get(x_36, 0); lean_inc(x_37); -lean_dec(x_35); -x_38 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_38, 0, x_1); -x_39 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__2; -x_40 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_40, 0, x_39); -lean_ctor_set(x_40, 1, x_38); -x_41 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__4; -x_42 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_42, 0, x_40); -lean_ctor_set(x_42, 1, x_41); -x_43 = lean_ctor_get(x_36, 2); -lean_inc(x_43); +x_38 = lean_ctor_get(x_36, 1); +lean_inc(x_38); lean_dec(x_36); -x_44 = l_Nat_repr(x_43); -x_45 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_45, 0, x_44); -x_46 = lean_alloc_ctor(0, 1, 0); +x_39 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_39, 0, x_1); +x_40 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__2; +x_41 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set(x_41, 1, x_39); +x_42 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__4; +x_43 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_43, 0, x_41); +lean_ctor_set(x_43, 1, x_42); +x_44 = lean_ctor_get(x_37, 2); +lean_inc(x_44); +lean_dec(x_37); +x_45 = l_Nat_repr(x_44); +x_46 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_46, 0, x_45); -x_47 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_47, 0, x_42); -lean_ctor_set(x_47, 1, x_46); -x_48 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__6; -x_49 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_49, 0, x_47); -lean_ctor_set(x_49, 1, x_48); -x_50 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9(x_49, x_5, x_6, x_7, x_8, x_9, x_10, x_37); +x_47 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_47, 0, x_46); +x_48 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_48, 0, x_43); +lean_ctor_set(x_48, 1, x_47); +x_49 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__6; +x_50 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_50, 0, x_48); +lean_ctor_set(x_50, 1, x_49); +x_51 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9(x_50, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_38); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -x_51 = !lean_is_exclusive(x_50); -if (x_51 == 0) +x_52 = !lean_is_exclusive(x_51); +if (x_52 == 0) { -return x_50; +return x_51; } else { -lean_object* x_52; lean_object* x_53; lean_object* x_54; -x_52 = lean_ctor_get(x_50, 0); -x_53 = lean_ctor_get(x_50, 1); +lean_object* x_53; lean_object* x_54; lean_object* x_55; +x_53 = lean_ctor_get(x_51, 0); +x_54 = lean_ctor_get(x_51, 1); +lean_inc(x_54); lean_inc(x_53); -lean_inc(x_52); -lean_dec(x_50); -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; +lean_dec(x_51); +x_55 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_55, 0, x_53); +lean_ctor_set(x_55, 1, x_54); +return x_55; } } } @@ -7235,66 +3108,66 @@ x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg(lean_object* x_1, uint8_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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg(lean_object* x_1, uint8_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) { _start: { -lean_object* x_11; -x_11 = l_Lean_Expr_getAppFn(x_1); +lean_object* x_12; +x_12 = l_Lean_Expr_getAppFn(x_1); lean_dec(x_1); -if (lean_obj_tag(x_11) == 4) +if (lean_obj_tag(x_12) == 4) { -lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -lean_dec(x_11); -x_13 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___closed__4; -x_14 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(x_13, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_unbox(x_15); +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +lean_dec(x_12); +x_14 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___closed__4; +x_15 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +x_17 = lean_unbox(x_16); +lean_dec(x_16); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_15, 1); +lean_inc(x_18); lean_dec(x_15); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_17 = lean_ctor_get(x_14, 1); -lean_inc(x_17); -lean_dec(x_14); -x_18 = lean_box(0); -x_19 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2(x_12, x_3, x_2, x_18, x_4, x_5, x_6, x_7, x_8, x_9, x_17); -return x_19; +x_19 = lean_box(0); +x_20 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2(x_13, x_3, x_2, x_19, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_18); +return x_20; } else { -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_20 = lean_ctor_get(x_14, 1); -lean_inc(x_20); -lean_dec(x_14); -lean_inc(x_12); -x_21 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_21, 0, x_12); -x_22 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___closed__6; -x_23 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_21); +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; +x_21 = lean_ctor_get(x_15, 1); +lean_inc(x_21); +lean_dec(x_15); +lean_inc(x_13); +x_22 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_22, 0, x_13); +x_23 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___closed__6; x_24 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_24, 0, x_23); lean_ctor_set(x_24, 1, x_22); -x_25 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(x_13, x_24, x_4, x_5, x_6, x_7, x_8, x_9, x_20); -x_26 = lean_ctor_get(x_25, 0); -lean_inc(x_26); -x_27 = lean_ctor_get(x_25, 1); +x_25 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_25, 0, x_24); +lean_ctor_set(x_25, 1, x_23); +x_26 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(x_14, x_25, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_21); +x_27 = lean_ctor_get(x_26, 0); lean_inc(x_27); -lean_dec(x_25); -x_28 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2(x_12, x_3, x_2, x_26, x_4, x_5, x_6, x_7, x_8, x_9, x_27); -return x_28; +x_28 = lean_ctor_get(x_26, 1); +lean_inc(x_28); +lean_dec(x_26); +x_29 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2(x_13, x_3, x_2, x_27, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_28); +return x_29; } } else { -lean_object* x_29; -lean_dec(x_11); -x_29 = lean_apply_7(x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -return x_29; +lean_object* x_30; +lean_dec(x_12); +x_30 = lean_apply_8(x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +return x_30; } } } @@ -7302,22 +3175,23 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining(lean_object* x_1 _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_withInlining___rarg___boxed), 10, 0); +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_withInlining___rarg___boxed), 11, 0); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__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_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__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) { _start: { -lean_object* x_9; -x_9 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; +x_10 = l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); -return x_9; +return x_10; } } LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { @@ -7366,137 +3240,139 @@ x_8 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withInlini return x_8; } } -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10___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_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___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) { _start: { lean_object* x_10; -x_10 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_10 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); 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); return x_10; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10___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) { _start: { -lean_object* x_12; -x_12 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_object* x_11; +x_11 = l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); lean_dec(x_4); -return x_12; +lean_dec(x_3); +return x_11; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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) { _start: { -uint8_t x_12; lean_object* x_13; -x_12 = lean_unbox(x_3); -lean_dec(x_3); -x_13 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2(x_1, x_2, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_object* x_13; +x_13 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_4); return x_13; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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: { -uint8_t x_11; lean_object* x_12; -x_11 = lean_unbox(x_2); +uint8_t x_13; lean_object* x_14; +x_13 = lean_unbox(x_3); +lean_dec(x_3); +x_14 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2(x_1, x_2, x_13, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +return x_14; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withInlining___rarg___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) { +_start: +{ +uint8_t x_12; lean_object* x_13; +x_12 = lean_unbox(x_2); lean_dec(x_2); -x_12 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg(x_1, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -return x_12; +x_13 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg(x_1, x_12, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +return x_13; } } -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg(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_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg(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_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; -x_9 = lean_ctor_get(x_6, 5); -x_10 = lean_st_ref_get(x_7, x_8); -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_10, 1); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_10 = lean_ctor_get(x_7, 5); +x_11 = lean_st_ref_get(x_8, x_9); +x_12 = lean_ctor_get(x_11, 0); lean_inc(x_12); -lean_dec(x_10); -x_13 = lean_ctor_get(x_11, 0); +x_13 = lean_ctor_get(x_11, 1); lean_inc(x_13); lean_dec(x_11); -x_14 = lean_st_ref_get(x_5, x_12); -x_15 = !lean_is_exclusive(x_14); -if (x_15 == 0) +x_14 = lean_ctor_get(x_12, 0); +lean_inc(x_14); +lean_dec(x_12); +x_15 = lean_st_ref_get(x_6, x_13); +x_16 = !lean_is_exclusive(x_15); +if (x_16 == 0) { -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_16 = lean_ctor_get(x_14, 0); -x_17 = lean_ctor_get(x_16, 0); -lean_inc(x_17); -lean_dec(x_16); -x_18 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_17); -x_19 = lean_ctor_get(x_6, 2); -x_20 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3; -lean_inc(x_19); -x_21 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_21, 0, x_13); -lean_ctor_set(x_21, 1, x_20); -lean_ctor_set(x_21, 2, x_18); -lean_ctor_set(x_21, 3, x_19); -x_22 = lean_alloc_ctor(6, 2, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_1); -lean_inc(x_9); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_9); -lean_ctor_set(x_23, 1, x_22); -lean_ctor_set_tag(x_14, 1); -lean_ctor_set(x_14, 0, x_23); -return x_14; +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_17 = lean_ctor_get(x_15, 0); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +lean_dec(x_17); +x_19 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_18); +x_20 = lean_ctor_get(x_7, 2); +x_21 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__3; +lean_inc(x_20); +x_22 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_22, 0, x_14); +lean_ctor_set(x_22, 1, x_21); +lean_ctor_set(x_22, 2, x_19); +lean_ctor_set(x_22, 3, x_20); +x_23 = lean_alloc_ctor(6, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_1); +lean_inc(x_10); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_10); +lean_ctor_set(x_24, 1, x_23); +lean_ctor_set_tag(x_15, 1); +lean_ctor_set(x_15, 0, x_24); +return x_15; } else { -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; lean_object* x_32; lean_object* x_33; -x_24 = lean_ctor_get(x_14, 0); -x_25 = lean_ctor_get(x_14, 1); -lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_14); -x_26 = lean_ctor_get(x_24, 0); +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; lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_25 = lean_ctor_get(x_15, 0); +x_26 = lean_ctor_get(x_15, 1); lean_inc(x_26); -lean_dec(x_24); -x_27 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_26); -x_28 = lean_ctor_get(x_6, 2); -x_29 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3; -lean_inc(x_28); -x_30 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_30, 0, x_13); -lean_ctor_set(x_30, 1, x_29); -lean_ctor_set(x_30, 2, x_27); -lean_ctor_set(x_30, 3, x_28); -x_31 = lean_alloc_ctor(6, 2, 0); -lean_ctor_set(x_31, 0, x_30); -lean_ctor_set(x_31, 1, x_1); -lean_inc(x_9); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_9); -lean_ctor_set(x_32, 1, x_31); -x_33 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_25); -return x_33; +lean_inc(x_25); +lean_dec(x_15); +x_27 = lean_ctor_get(x_25, 0); +lean_inc(x_27); +lean_dec(x_25); +x_28 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_27); +x_29 = lean_ctor_get(x_7, 2); +x_30 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__3; +lean_inc(x_29); +x_31 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_31, 0, x_14); +lean_ctor_set(x_31, 1, x_30); +lean_ctor_set(x_31, 2, x_28); +lean_ctor_set(x_31, 3, x_29); +x_32 = lean_alloc_ctor(6, 2, 0); +lean_ctor_set(x_32, 0, x_31); +lean_ctor_set(x_32, 1, x_1); +lean_inc(x_10); +x_33 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_33, 0, x_10); +lean_ctor_set(x_33, 1, x_32); +x_34 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_34, 0, x_33); +lean_ctor_set(x_34, 1, x_26); +return x_34; } } } @@ -7504,7 +3380,7 @@ LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncR _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg___boxed), 8, 0); +x_2 = lean_alloc_closure((void*)(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg___boxed), 9, 0); return x_2; } } @@ -7526,275 +3402,275 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__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, lean_object* x_11) { +LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__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, lean_object* x_11, lean_object* x_12) { _start: { if (lean_obj_tag(x_3) == 0) { -lean_object* x_12; +lean_object* x_13; lean_dec(x_2); lean_dec(x_1); -x_12 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_12, 0, x_4); -lean_ctor_set(x_12, 1, x_11); -return x_12; +x_13 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_13, 0, x_4); +lean_ctor_set(x_13, 1, x_12); +return x_13; } else { -lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; -x_13 = lean_ctor_get(x_4, 1); -lean_inc(x_13); -x_14 = lean_ctor_get(x_3, 0); +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +x_14 = lean_ctor_get(x_4, 1); lean_inc(x_14); -x_15 = lean_ctor_get(x_3, 1); +x_15 = lean_ctor_get(x_3, 0); lean_inc(x_15); +x_16 = lean_ctor_get(x_3, 1); +lean_inc(x_16); lean_dec(x_3); -x_16 = !lean_is_exclusive(x_4); -if (x_16 == 0) +x_17 = !lean_is_exclusive(x_4); +if (x_17 == 0) { -lean_object* x_17; lean_object* x_18; uint8_t x_19; -x_17 = lean_ctor_get(x_4, 0); -x_18 = lean_ctor_get(x_4, 1); +lean_object* x_18; lean_object* x_19; uint8_t x_20; +x_18 = lean_ctor_get(x_4, 0); +x_19 = lean_ctor_get(x_4, 1); +lean_dec(x_19); +x_20 = !lean_is_exclusive(x_14); +if (x_20 == 0) +{ +lean_object* x_21; lean_object* x_22; uint8_t x_23; +x_21 = lean_ctor_get(x_14, 0); +x_22 = lean_ctor_get(x_14, 1); +x_23 = lean_name_eq(x_22, x_15); +if (x_23 == 0) +{ +uint8_t x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; uint8_t x_30; lean_object* x_31; +lean_dec(x_22); lean_dec(x_18); -x_19 = !lean_is_exclusive(x_13); -if (x_19 == 0) -{ -lean_object* x_20; lean_object* x_21; uint8_t x_22; -x_20 = lean_ctor_get(x_13, 0); -x_21 = lean_ctor_get(x_13, 1); -x_22 = lean_name_eq(x_21, x_14); -if (x_22 == 0) -{ -uint8_t x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; lean_object* x_30; -lean_dec(x_21); -lean_dec(x_17); -x_23 = 1; -lean_inc(x_14); -x_24 = l_Lean_Name_toString(x_14, x_23); -x_25 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_25, 0, x_24); +x_24 = 1; +lean_inc(x_15); +x_25 = l_Lean_Name_toString(x_15, x_24); +x_26 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_26, 0, x_25); lean_inc(x_1); -x_26 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_26, 0, x_1); -lean_ctor_set(x_26, 1, x_25); -lean_inc(x_2); x_27 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_27, 0, x_26); -lean_ctor_set(x_27, 1, x_2); +lean_ctor_set(x_27, 0, x_1); +lean_ctor_set(x_27, 1, x_26); +lean_inc(x_2); x_28 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_28, 0, x_20); -lean_ctor_set(x_28, 1, x_27); -lean_ctor_set(x_13, 1, x_14); -lean_ctor_set(x_13, 0, x_28); -x_29 = 0; -x_30 = lean_box(x_29); -lean_ctor_set(x_4, 0, x_30); -x_3 = x_15; +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_2); +x_29 = lean_alloc_ctor(4, 2, 0); +lean_ctor_set(x_29, 0, x_21); +lean_ctor_set(x_29, 1, x_28); +lean_ctor_set(x_14, 1, x_15); +lean_ctor_set(x_14, 0, x_29); +x_30 = 0; +x_31 = lean_box(x_30); +lean_ctor_set(x_4, 0, x_31); +x_3 = x_16; goto _start; } else { -uint8_t x_32; -lean_dec(x_14); -x_32 = lean_unbox(x_17); -if (x_32 == 0) +uint8_t x_33; +lean_dec(x_15); +x_33 = lean_unbox(x_18); +if (x_33 == 0) { -lean_object* x_33; lean_object* x_34; uint8_t x_35; lean_object* x_36; -lean_dec(x_17); -x_33 = l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__2___closed__2; -x_34 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_34, 0, x_20); -lean_ctor_set(x_34, 1, x_33); -lean_ctor_set(x_13, 0, x_34); -x_35 = 1; -x_36 = lean_box(x_35); -lean_ctor_set(x_4, 0, x_36); -x_3 = x_15; +lean_object* x_34; lean_object* x_35; uint8_t x_36; lean_object* x_37; +lean_dec(x_18); +x_34 = l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__2___closed__2; +x_35 = lean_alloc_ctor(4, 2, 0); +lean_ctor_set(x_35, 0, x_21); +lean_ctor_set(x_35, 1, x_34); +lean_ctor_set(x_14, 0, x_35); +x_36 = 1; +x_37 = lean_box(x_36); +lean_ctor_set(x_4, 0, x_37); +x_3 = x_16; goto _start; } else { -x_3 = x_15; +x_3 = x_16; goto _start; } } } else { -lean_object* x_39; lean_object* x_40; uint8_t x_41; -x_39 = lean_ctor_get(x_13, 0); -x_40 = lean_ctor_get(x_13, 1); +lean_object* x_40; lean_object* x_41; uint8_t x_42; +x_40 = lean_ctor_get(x_14, 0); +x_41 = lean_ctor_get(x_14, 1); +lean_inc(x_41); lean_inc(x_40); -lean_inc(x_39); -lean_dec(x_13); -x_41 = lean_name_eq(x_40, x_14); -if (x_41 == 0) +lean_dec(x_14); +x_42 = lean_name_eq(x_41, x_15); +if (x_42 == 0) { -uint8_t x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; uint8_t x_49; lean_object* x_50; -lean_dec(x_40); -lean_dec(x_17); -x_42 = 1; -lean_inc(x_14); -x_43 = l_Lean_Name_toString(x_14, x_42); -x_44 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_44, 0, x_43); +uint8_t x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; uint8_t x_50; lean_object* x_51; +lean_dec(x_41); +lean_dec(x_18); +x_43 = 1; +lean_inc(x_15); +x_44 = l_Lean_Name_toString(x_15, x_43); +x_45 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_45, 0, x_44); lean_inc(x_1); -x_45 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_45, 0, x_1); -lean_ctor_set(x_45, 1, x_44); -lean_inc(x_2); x_46 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_46, 0, x_45); -lean_ctor_set(x_46, 1, x_2); -x_47 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_47, 0, x_39); -lean_ctor_set(x_47, 1, x_46); -x_48 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_48, 0, x_47); -lean_ctor_set(x_48, 1, x_14); -x_49 = 0; -x_50 = lean_box(x_49); -lean_ctor_set(x_4, 1, x_48); -lean_ctor_set(x_4, 0, x_50); -x_3 = x_15; -goto _start; -} -else -{ -uint8_t x_52; -lean_dec(x_14); -x_52 = lean_unbox(x_17); -if (x_52 == 0) -{ -lean_object* x_53; lean_object* x_54; lean_object* x_55; uint8_t x_56; lean_object* x_57; -lean_dec(x_17); -x_53 = l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__2___closed__2; -x_54 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_54, 0, x_39); -lean_ctor_set(x_54, 1, x_53); -x_55 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_55, 0, x_54); -lean_ctor_set(x_55, 1, x_40); -x_56 = 1; -x_57 = lean_box(x_56); -lean_ctor_set(x_4, 1, x_55); -lean_ctor_set(x_4, 0, x_57); -x_3 = x_15; -goto _start; -} -else -{ -lean_object* x_59; -x_59 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_59, 0, x_39); -lean_ctor_set(x_59, 1, x_40); -lean_ctor_set(x_4, 1, x_59); -x_3 = x_15; -goto _start; -} -} -} -} -else -{ -lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; -x_61 = lean_ctor_get(x_4, 0); -lean_inc(x_61); -lean_dec(x_4); -x_62 = lean_ctor_get(x_13, 0); -lean_inc(x_62); -x_63 = lean_ctor_get(x_13, 1); -lean_inc(x_63); -if (lean_is_exclusive(x_13)) { - lean_ctor_release(x_13, 0); - lean_ctor_release(x_13, 1); - x_64 = x_13; -} else { - lean_dec_ref(x_13); - x_64 = lean_box(0); -} -x_65 = lean_name_eq(x_63, x_14); -if (x_65 == 0) -{ -uint8_t x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; uint8_t x_73; lean_object* x_74; lean_object* x_75; -lean_dec(x_63); -lean_dec(x_61); -x_66 = 1; -lean_inc(x_14); -x_67 = l_Lean_Name_toString(x_14, x_66); -x_68 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_68, 0, x_67); -lean_inc(x_1); -x_69 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_69, 0, x_1); -lean_ctor_set(x_69, 1, x_68); +lean_ctor_set(x_46, 0, x_1); +lean_ctor_set(x_46, 1, x_45); lean_inc(x_2); +x_47 = lean_alloc_ctor(4, 2, 0); +lean_ctor_set(x_47, 0, x_46); +lean_ctor_set(x_47, 1, x_2); +x_48 = lean_alloc_ctor(4, 2, 0); +lean_ctor_set(x_48, 0, x_40); +lean_ctor_set(x_48, 1, x_47); +x_49 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_49, 0, x_48); +lean_ctor_set(x_49, 1, x_15); +x_50 = 0; +x_51 = lean_box(x_50); +lean_ctor_set(x_4, 1, x_49); +lean_ctor_set(x_4, 0, x_51); +x_3 = x_16; +goto _start; +} +else +{ +uint8_t x_53; +lean_dec(x_15); +x_53 = lean_unbox(x_18); +if (x_53 == 0) +{ +lean_object* x_54; lean_object* x_55; lean_object* x_56; uint8_t x_57; lean_object* x_58; +lean_dec(x_18); +x_54 = l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__2___closed__2; +x_55 = lean_alloc_ctor(4, 2, 0); +lean_ctor_set(x_55, 0, x_40); +lean_ctor_set(x_55, 1, x_54); +x_56 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_56, 0, x_55); +lean_ctor_set(x_56, 1, x_41); +x_57 = 1; +x_58 = lean_box(x_57); +lean_ctor_set(x_4, 1, x_56); +lean_ctor_set(x_4, 0, x_58); +x_3 = x_16; +goto _start; +} +else +{ +lean_object* x_60; +x_60 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_60, 0, x_40); +lean_ctor_set(x_60, 1, x_41); +lean_ctor_set(x_4, 1, x_60); +x_3 = x_16; +goto _start; +} +} +} +} +else +{ +lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; uint8_t x_66; +x_62 = lean_ctor_get(x_4, 0); +lean_inc(x_62); +lean_dec(x_4); +x_63 = lean_ctor_get(x_14, 0); +lean_inc(x_63); +x_64 = lean_ctor_get(x_14, 1); +lean_inc(x_64); +if (lean_is_exclusive(x_14)) { + lean_ctor_release(x_14, 0); + lean_ctor_release(x_14, 1); + x_65 = x_14; +} else { + lean_dec_ref(x_14); + x_65 = lean_box(0); +} +x_66 = lean_name_eq(x_64, x_15); +if (x_66 == 0) +{ +uint8_t x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; uint8_t x_74; lean_object* x_75; lean_object* x_76; +lean_dec(x_64); +lean_dec(x_62); +x_67 = 1; +lean_inc(x_15); +x_68 = l_Lean_Name_toString(x_15, x_67); +x_69 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_69, 0, x_68); +lean_inc(x_1); x_70 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_70, 0, x_69); -lean_ctor_set(x_70, 1, x_2); +lean_ctor_set(x_70, 0, x_1); +lean_ctor_set(x_70, 1, x_69); +lean_inc(x_2); x_71 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_71, 0, x_62); -lean_ctor_set(x_71, 1, x_70); -if (lean_is_scalar(x_64)) { - x_72 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_71, 0, x_70); +lean_ctor_set(x_71, 1, x_2); +x_72 = lean_alloc_ctor(4, 2, 0); +lean_ctor_set(x_72, 0, x_63); +lean_ctor_set(x_72, 1, x_71); +if (lean_is_scalar(x_65)) { + x_73 = lean_alloc_ctor(0, 2, 0); } else { - x_72 = x_64; + x_73 = x_65; } -lean_ctor_set(x_72, 0, x_71); -lean_ctor_set(x_72, 1, x_14); -x_73 = 0; -x_74 = lean_box(x_73); -x_75 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_75, 0, x_74); -lean_ctor_set(x_75, 1, x_72); -x_3 = x_15; -x_4 = x_75; +lean_ctor_set(x_73, 0, x_72); +lean_ctor_set(x_73, 1, x_15); +x_74 = 0; +x_75 = lean_box(x_74); +x_76 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_76, 0, x_75); +lean_ctor_set(x_76, 1, x_73); +x_3 = x_16; +x_4 = x_76; goto _start; } else { -uint8_t x_77; -lean_dec(x_14); -x_77 = lean_unbox(x_61); -if (x_77 == 0) +uint8_t x_78; +lean_dec(x_15); +x_78 = lean_unbox(x_62); +if (x_78 == 0) { -lean_object* x_78; lean_object* x_79; lean_object* x_80; uint8_t x_81; lean_object* x_82; lean_object* x_83; -lean_dec(x_61); -x_78 = l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__2___closed__2; -x_79 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_79, 0, x_62); -lean_ctor_set(x_79, 1, x_78); -if (lean_is_scalar(x_64)) { - x_80 = lean_alloc_ctor(0, 2, 0); +lean_object* x_79; lean_object* x_80; lean_object* x_81; uint8_t x_82; lean_object* x_83; lean_object* x_84; +lean_dec(x_62); +x_79 = l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__2___closed__2; +x_80 = lean_alloc_ctor(4, 2, 0); +lean_ctor_set(x_80, 0, x_63); +lean_ctor_set(x_80, 1, x_79); +if (lean_is_scalar(x_65)) { + x_81 = lean_alloc_ctor(0, 2, 0); } else { - x_80 = x_64; + x_81 = x_65; } -lean_ctor_set(x_80, 0, x_79); -lean_ctor_set(x_80, 1, x_63); -x_81 = 1; -x_82 = lean_box(x_81); -x_83 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_83, 0, x_82); -lean_ctor_set(x_83, 1, x_80); -x_3 = x_15; -x_4 = x_83; +lean_ctor_set(x_81, 0, x_80); +lean_ctor_set(x_81, 1, x_64); +x_82 = 1; +x_83 = lean_box(x_82); +x_84 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_84, 0, x_83); +lean_ctor_set(x_84, 1, x_81); +x_3 = x_16; +x_4 = x_84; goto _start; } else { -lean_object* x_85; lean_object* x_86; -if (lean_is_scalar(x_64)) { - x_85 = lean_alloc_ctor(0, 2, 0); +lean_object* x_86; lean_object* x_87; +if (lean_is_scalar(x_65)) { + x_86 = lean_alloc_ctor(0, 2, 0); } else { - x_85 = x_64; + x_86 = x_65; } -lean_ctor_set(x_85, 0, x_62); -lean_ctor_set(x_85, 1, x_63); -x_86 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_86, 0, x_61); -lean_ctor_set(x_86, 1, x_85); -x_3 = x_15; -x_4 = x_86; +lean_ctor_set(x_86, 0, x_63); +lean_ctor_set(x_86, 1, x_64); +x_87 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_87, 0, x_62); +lean_ctor_set(x_87, 1, x_86); +x_3 = x_16; +x_4 = x_87; goto _start; } } @@ -7802,80 +3678,80 @@ goto _start; } } } -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg(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_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg(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_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; -x_9 = lean_ctor_get(x_6, 5); -x_10 = lean_st_ref_get(x_7, x_8); -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_10, 1); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_10 = lean_ctor_get(x_7, 5); +x_11 = lean_st_ref_get(x_8, x_9); +x_12 = lean_ctor_get(x_11, 0); lean_inc(x_12); -lean_dec(x_10); -x_13 = lean_ctor_get(x_11, 0); +x_13 = lean_ctor_get(x_11, 1); lean_inc(x_13); lean_dec(x_11); -x_14 = lean_st_ref_get(x_5, x_12); -x_15 = !lean_is_exclusive(x_14); -if (x_15 == 0) +x_14 = lean_ctor_get(x_12, 0); +lean_inc(x_14); +lean_dec(x_12); +x_15 = lean_st_ref_get(x_6, x_13); +x_16 = !lean_is_exclusive(x_15); +if (x_16 == 0) { -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_16 = lean_ctor_get(x_14, 0); -x_17 = lean_ctor_get(x_16, 0); -lean_inc(x_17); -lean_dec(x_16); -x_18 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_17); -x_19 = lean_ctor_get(x_6, 2); -x_20 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3; -lean_inc(x_19); -x_21 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_21, 0, x_13); -lean_ctor_set(x_21, 1, x_20); -lean_ctor_set(x_21, 2, x_18); -lean_ctor_set(x_21, 3, x_19); -x_22 = lean_alloc_ctor(6, 2, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_1); -lean_inc(x_9); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_9); -lean_ctor_set(x_23, 1, x_22); -lean_ctor_set_tag(x_14, 1); -lean_ctor_set(x_14, 0, x_23); -return x_14; +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_17 = lean_ctor_get(x_15, 0); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +lean_dec(x_17); +x_19 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_18); +x_20 = lean_ctor_get(x_7, 2); +x_21 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__3; +lean_inc(x_20); +x_22 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_22, 0, x_14); +lean_ctor_set(x_22, 1, x_21); +lean_ctor_set(x_22, 2, x_19); +lean_ctor_set(x_22, 3, x_20); +x_23 = lean_alloc_ctor(6, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_1); +lean_inc(x_10); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_10); +lean_ctor_set(x_24, 1, x_23); +lean_ctor_set_tag(x_15, 1); +lean_ctor_set(x_15, 0, x_24); +return x_15; } else { -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; lean_object* x_32; lean_object* x_33; -x_24 = lean_ctor_get(x_14, 0); -x_25 = lean_ctor_get(x_14, 1); -lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_14); -x_26 = lean_ctor_get(x_24, 0); +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; lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_25 = lean_ctor_get(x_15, 0); +x_26 = lean_ctor_get(x_15, 1); lean_inc(x_26); -lean_dec(x_24); -x_27 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_26); -x_28 = lean_ctor_get(x_6, 2); -x_29 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3; -lean_inc(x_28); -x_30 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_30, 0, x_13); -lean_ctor_set(x_30, 1, x_29); -lean_ctor_set(x_30, 2, x_27); -lean_ctor_set(x_30, 3, x_28); -x_31 = lean_alloc_ctor(6, 2, 0); -lean_ctor_set(x_31, 0, x_30); -lean_ctor_set(x_31, 1, x_1); -lean_inc(x_9); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_9); -lean_ctor_set(x_32, 1, x_31); -x_33 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_25); -return x_33; +lean_inc(x_25); +lean_dec(x_15); +x_27 = lean_ctor_get(x_25, 0); +lean_inc(x_27); +lean_dec(x_25); +x_28 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_27); +x_29 = lean_ctor_get(x_7, 2); +x_30 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__3; +lean_inc(x_29); +x_31 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_31, 0, x_14); +lean_ctor_set(x_31, 1, x_30); +lean_ctor_set(x_31, 2, x_28); +lean_ctor_set(x_31, 3, x_29); +x_32 = lean_alloc_ctor(6, 2, 0); +lean_ctor_set(x_32, 0, x_31); +lean_ctor_set(x_32, 1, x_1); +lean_inc(x_10); +x_33 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_33, 0, x_10); +lean_ctor_set(x_33, 1, x_32); +x_34 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_34, 0, x_33); +lean_ctor_set(x_34, 1, x_26); +return x_34; } } } @@ -7883,7 +3759,7 @@ LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncR _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg___boxed), 8, 0); +x_2 = lean_alloc_closure((void*)(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg___boxed), 9, 0); return x_2; } } @@ -7952,84 +3828,86 @@ x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg(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_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg(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; -x_8 = lean_ctor_get(x_1, 4); -lean_inc(x_8); -if (lean_obj_tag(x_8) == 0) +lean_object* x_9; +x_9 = lean_ctor_get(x_1, 2); +lean_inc(x_9); +if (lean_obj_tag(x_9) == 0) { -lean_object* x_9; lean_object* x_10; -x_9 = l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__2; -x_10 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg(x_9, x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_object* x_10; lean_object* x_11; +x_10 = l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__2; +x_11 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg(x_10, x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_10; +return x_11; } else { -lean_object* x_11; lean_object* x_12; uint8_t x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t 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; lean_object* x_32; lean_object* x_33; lean_object* x_34; -x_11 = lean_ctor_get(x_8, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_8, 1); +lean_object* x_12; lean_object* x_13; uint8_t x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t 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; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_12 = lean_ctor_get(x_9, 0); lean_inc(x_12); -lean_dec(x_8); -x_13 = 1; -lean_inc(x_11); -x_14 = l_Lean_Name_toString(x_11, x_13); -x_15 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_15, 0, x_14); -x_16 = l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__3; -x_17 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_17, 0, x_16); -lean_ctor_set(x_17, 1, x_15); -x_18 = l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__5; -x_19 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_19, 0, x_17); -lean_ctor_set(x_19, 1, x_18); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_19); -lean_ctor_set(x_20, 1, x_11); -x_21 = 0; -x_22 = lean_box(x_21); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_20); -x_24 = l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__2(x_16, x_18, x_12, x_23, x_1, x_2, x_3, x_4, x_5, x_6, x_7); -x_25 = lean_ctor_get(x_24, 0); -lean_inc(x_25); -x_26 = lean_ctor_get(x_25, 1); +x_13 = lean_ctor_get(x_9, 1); +lean_inc(x_13); +lean_dec(x_9); +x_14 = 1; +lean_inc(x_12); +x_15 = l_Lean_Name_toString(x_12, x_14); +x_16 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_16, 0, x_15); +x_17 = l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__3; +x_18 = lean_alloc_ctor(4, 2, 0); +lean_ctor_set(x_18, 0, x_17); +lean_ctor_set(x_18, 1, x_16); +x_19 = l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__5; +x_20 = lean_alloc_ctor(4, 2, 0); +lean_ctor_set(x_20, 0, x_18); +lean_ctor_set(x_20, 1, x_19); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_12); +x_22 = 0; +x_23 = lean_box(x_22); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_21); +x_25 = l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__2(x_17, x_19, x_13, x_24, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +x_26 = lean_ctor_get(x_25, 0); lean_inc(x_26); -lean_dec(x_25); -x_27 = lean_ctor_get(x_24, 1); +x_27 = lean_ctor_get(x_26, 1); lean_inc(x_27); -lean_dec(x_24); -x_28 = lean_ctor_get(x_26, 0); -lean_inc(x_28); lean_dec(x_26); -x_29 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_29, 0, x_28); -x_30 = l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__7; -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_Compiler_LCNF_Simp_withInlining___rarg___closed__6; -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 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg(x_33, x_1, x_2, x_3, x_4, x_5, x_6, x_27); +x_28 = lean_ctor_get(x_25, 1); +lean_inc(x_28); +lean_dec(x_25); +x_29 = lean_ctor_get(x_27, 0); +lean_inc(x_29); +lean_dec(x_27); +x_30 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_30, 0, x_29); +x_31 = l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg___closed__7; +x_32 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_32, 0, x_31); +lean_ctor_set(x_32, 1, x_30); +x_33 = l_Lean_Compiler_LCNF_Simp_withInlining___rarg___closed__6; +x_34 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_34, 0, x_32); +lean_ctor_set(x_34, 1, x_33); +x_35 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg(x_34, x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_28); +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); -return x_34; +return x_35; } } } @@ -8037,141 +3915,145 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDe _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg), 7, 0); +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg), 8, 0); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg___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_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg___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) { _start: { -lean_object* x_9; -x_9 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; +x_10 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__1___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); -return x_9; +return x_10; } } -LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__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_EXPORT lean_object* l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__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: { -lean_object* x_12; -x_12 = l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_object* x_13; +x_13 = l_List_forIn_loop___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -return x_12; +return x_13; } } -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg___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_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg___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) { _start: { -lean_object* x_9; -x_9 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; +x_10 = l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___spec__3___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); -return x_9; +return x_10; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth___rarg(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_Compiler_LCNF_Simp_withIncRecDepth___rarg(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_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; -x_9 = lean_ctor_get(x_6, 0); -lean_inc(x_9); -x_10 = lean_ctor_get(x_6, 1); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; +x_10 = lean_ctor_get(x_7, 0); lean_inc(x_10); -x_11 = lean_ctor_get(x_6, 2); +x_11 = lean_ctor_get(x_7, 1); lean_inc(x_11); -x_12 = lean_ctor_get(x_6, 3); +x_12 = lean_ctor_get(x_7, 2); lean_inc(x_12); -x_13 = lean_ctor_get(x_6, 4); +x_13 = lean_ctor_get(x_7, 3); lean_inc(x_13); -x_14 = lean_ctor_get(x_6, 5); +x_14 = lean_ctor_get(x_7, 4); lean_inc(x_14); -x_15 = lean_ctor_get(x_6, 6); +x_15 = lean_ctor_get(x_7, 5); lean_inc(x_15); -x_16 = lean_ctor_get(x_6, 7); +x_16 = lean_ctor_get(x_7, 6); lean_inc(x_16); -x_17 = lean_ctor_get(x_6, 8); +x_17 = lean_ctor_get(x_7, 7); lean_inc(x_17); -x_18 = lean_ctor_get(x_6, 9); +x_18 = lean_ctor_get(x_7, 8); lean_inc(x_18); -x_19 = lean_ctor_get(x_6, 10); +x_19 = lean_ctor_get(x_7, 9); lean_inc(x_19); -x_20 = lean_nat_dec_eq(x_12, x_13); -if (x_20 == 0) -{ -uint8_t x_21; -x_21 = !lean_is_exclusive(x_6); +x_20 = lean_ctor_get(x_7, 10); +lean_inc(x_20); +x_21 = lean_nat_dec_eq(x_13, x_14); if (x_21 == 0) { -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; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_22 = lean_ctor_get(x_6, 10); -lean_dec(x_22); -x_23 = lean_ctor_get(x_6, 9); +uint8_t x_22; +x_22 = !lean_is_exclusive(x_7); +if (x_22 == 0) +{ +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; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_23 = lean_ctor_get(x_7, 10); lean_dec(x_23); -x_24 = lean_ctor_get(x_6, 8); +x_24 = lean_ctor_get(x_7, 9); lean_dec(x_24); -x_25 = lean_ctor_get(x_6, 7); +x_25 = lean_ctor_get(x_7, 8); lean_dec(x_25); -x_26 = lean_ctor_get(x_6, 6); +x_26 = lean_ctor_get(x_7, 7); lean_dec(x_26); -x_27 = lean_ctor_get(x_6, 5); +x_27 = lean_ctor_get(x_7, 6); lean_dec(x_27); -x_28 = lean_ctor_get(x_6, 4); +x_28 = lean_ctor_get(x_7, 5); lean_dec(x_28); -x_29 = lean_ctor_get(x_6, 3); +x_29 = lean_ctor_get(x_7, 4); lean_dec(x_29); -x_30 = lean_ctor_get(x_6, 2); +x_30 = lean_ctor_get(x_7, 3); lean_dec(x_30); -x_31 = lean_ctor_get(x_6, 1); +x_31 = lean_ctor_get(x_7, 2); lean_dec(x_31); -x_32 = lean_ctor_get(x_6, 0); +x_32 = lean_ctor_get(x_7, 1); lean_dec(x_32); -x_33 = lean_unsigned_to_nat(1u); -x_34 = lean_nat_add(x_12, x_33); -lean_dec(x_12); -lean_ctor_set(x_6, 3, x_34); -x_35 = lean_apply_7(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_35; +x_33 = lean_ctor_get(x_7, 0); +lean_dec(x_33); +x_34 = lean_unsigned_to_nat(1u); +x_35 = lean_nat_add(x_13, x_34); +lean_dec(x_13); +lean_ctor_set(x_7, 3, x_35); +x_36 = lean_apply_8(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_36; } else { -lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; -lean_dec(x_6); -x_36 = lean_unsigned_to_nat(1u); -x_37 = lean_nat_add(x_12, x_36); -lean_dec(x_12); -x_38 = lean_alloc_ctor(0, 11, 0); -lean_ctor_set(x_38, 0, x_9); -lean_ctor_set(x_38, 1, x_10); -lean_ctor_set(x_38, 2, x_11); -lean_ctor_set(x_38, 3, x_37); -lean_ctor_set(x_38, 4, x_13); -lean_ctor_set(x_38, 5, x_14); -lean_ctor_set(x_38, 6, x_15); -lean_ctor_set(x_38, 7, x_16); -lean_ctor_set(x_38, 8, x_17); -lean_ctor_set(x_38, 9, x_18); -lean_ctor_set(x_38, 10, x_19); -x_39 = lean_apply_7(x_1, x_2, x_3, x_4, x_5, x_38, x_7, x_8); -return x_39; +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; +lean_dec(x_7); +x_37 = lean_unsigned_to_nat(1u); +x_38 = lean_nat_add(x_13, x_37); +lean_dec(x_13); +x_39 = lean_alloc_ctor(0, 11, 0); +lean_ctor_set(x_39, 0, x_10); +lean_ctor_set(x_39, 1, x_11); +lean_ctor_set(x_39, 2, x_12); +lean_ctor_set(x_39, 3, x_38); +lean_ctor_set(x_39, 4, x_14); +lean_ctor_set(x_39, 5, x_15); +lean_ctor_set(x_39, 6, x_16); +lean_ctor_set(x_39, 7, x_17); +lean_ctor_set(x_39, 8, x_18); +lean_ctor_set(x_39, 9, x_19); +lean_ctor_set(x_39, 10, x_20); +x_40 = lean_apply_8(x_1, x_2, x_3, x_4, x_5, x_6, x_39, x_8, x_9); +return x_40; } } else { -lean_object* x_40; +lean_object* x_41; +lean_dec(x_20); lean_dec(x_19); lean_dec(x_18); lean_dec(x_17); @@ -8182,10 +4064,9 @@ lean_dec(x_13); lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); -lean_dec(x_9); lean_dec(x_1); -x_40 = l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg(x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_40; +x_41 = l_Lean_Compiler_LCNF_Simp_withIncRecDepth_throwMaxRecDepth___rarg(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_41; } } } @@ -8193,310 +4074,310 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withIncRecDepth(lean_object* _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_withIncRecDepth___rarg), 8, 0); +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_withIncRecDepth___rarg), 9, 0); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withAddMustInline___rarg(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_Compiler_LCNF_Simp_withAddMustInline___rarg(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_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; lean_object* x_32; -x_23 = lean_st_ref_get(x_8, x_9); -x_24 = lean_ctor_get(x_23, 1); -lean_inc(x_24); -lean_dec(x_23); -x_25 = lean_st_ref_get(x_4, x_24); -x_26 = lean_ctor_get(x_25, 0); -lean_inc(x_26); -x_27 = lean_ctor_get(x_25, 1); +lean_object* x_11; 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; lean_object* x_32; lean_object* x_33; +x_24 = lean_st_ref_get(x_9, x_10); +x_25 = lean_ctor_get(x_24, 1); +lean_inc(x_25); +lean_dec(x_24); +x_26 = lean_st_ref_get(x_4, x_25); +x_27 = lean_ctor_get(x_26, 0); lean_inc(x_27); -lean_dec(x_25); -x_28 = lean_ctor_get(x_26, 3); +x_28 = lean_ctor_get(x_26, 1); lean_inc(x_28); lean_dec(x_26); +x_29 = lean_ctor_get(x_27, 3); +lean_inc(x_29); +lean_dec(x_27); lean_inc(x_1); -x_29 = l_Lean_Compiler_LCNF_Simp_addMustInline(x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_27); +x_30 = l_Lean_Compiler_LCNF_Simp_addMustInline(x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_28); lean_inc(x_1); -x_30 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add___spec__1(x_28, x_1); -x_31 = lean_ctor_get(x_29, 1); -lean_inc(x_31); -lean_dec(x_29); -lean_inc(x_8); +x_31 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add___spec__1(x_29, x_1); +x_32 = lean_ctor_get(x_30, 1); +lean_inc(x_32); +lean_dec(x_30); +lean_inc(x_9); lean_inc(x_4); -x_32 = lean_apply_7(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_31); -if (lean_obj_tag(x_32) == 0) +x_33 = lean_apply_8(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_32); +if (lean_obj_tag(x_33) == 0) { -lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; uint8_t x_40; -x_33 = lean_ctor_get(x_32, 0); -lean_inc(x_33); -x_34 = lean_ctor_get(x_32, 1); +lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; +x_34 = lean_ctor_get(x_33, 0); lean_inc(x_34); -lean_dec(x_32); -x_35 = lean_st_ref_get(x_8, x_34); -lean_dec(x_8); -x_36 = lean_ctor_get(x_35, 1); -lean_inc(x_36); -lean_dec(x_35); -x_37 = lean_st_ref_take(x_4, x_36); -x_38 = lean_ctor_get(x_37, 0); -lean_inc(x_38); -x_39 = lean_ctor_get(x_37, 1); +x_35 = lean_ctor_get(x_33, 1); +lean_inc(x_35); +lean_dec(x_33); +x_36 = lean_st_ref_get(x_9, x_35); +lean_dec(x_9); +x_37 = lean_ctor_get(x_36, 1); +lean_inc(x_37); +lean_dec(x_36); +x_38 = lean_st_ref_take(x_4, x_37); +x_39 = lean_ctor_get(x_38, 0); lean_inc(x_39); -lean_dec(x_37); -x_40 = !lean_is_exclusive(x_38); -if (x_40 == 0) +x_40 = lean_ctor_get(x_38, 1); +lean_inc(x_40); +lean_dec(x_38); +x_41 = !lean_is_exclusive(x_39); +if (x_41 == 0) { -lean_object* x_41; lean_object* x_42; lean_object* x_43; uint8_t x_44; -x_41 = lean_ctor_get(x_38, 3); -x_42 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_restore(x_41, x_1, x_30); -lean_ctor_set(x_38, 3, x_42); -x_43 = lean_st_ref_set(x_4, x_38, x_39); +lean_object* x_42; lean_object* x_43; lean_object* x_44; uint8_t x_45; +x_42 = lean_ctor_get(x_39, 3); +x_43 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_restore(x_42, x_1, x_31); +lean_ctor_set(x_39, 3, x_43); +x_44 = lean_st_ref_set(x_4, x_39, x_40); lean_dec(x_4); -x_44 = !lean_is_exclusive(x_43); -if (x_44 == 0) +x_45 = !lean_is_exclusive(x_44); +if (x_45 == 0) { -lean_object* x_45; lean_object* x_46; lean_object* x_47; -x_45 = lean_ctor_get(x_43, 0); -lean_dec(x_45); -x_46 = lean_box(0); -x_47 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_47, 0, x_33); -lean_ctor_set(x_47, 1, x_46); -lean_ctor_set(x_43, 0, x_47); -x_10 = x_43; -goto block_22; +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_44, 0); +lean_dec(x_46); +x_47 = lean_box(0); +x_48 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_48, 0, x_34); +lean_ctor_set(x_48, 1, x_47); +lean_ctor_set(x_44, 0, x_48); +x_11 = x_44; +goto block_23; } else { -lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_48 = lean_ctor_get(x_43, 1); -lean_inc(x_48); -lean_dec(x_43); -x_49 = lean_box(0); -x_50 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_50, 0, x_33); -lean_ctor_set(x_50, 1, x_49); +lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_49 = lean_ctor_get(x_44, 1); +lean_inc(x_49); +lean_dec(x_44); +x_50 = lean_box(0); x_51 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_51, 0, x_50); -lean_ctor_set(x_51, 1, x_48); -x_10 = x_51; -goto block_22; +lean_ctor_set(x_51, 0, x_34); +lean_ctor_set(x_51, 1, x_50); +x_52 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_52, 0, x_51); +lean_ctor_set(x_52, 1, x_49); +x_11 = x_52; +goto block_23; } } else { -lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; uint8_t x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; -x_52 = lean_ctor_get(x_38, 0); -x_53 = lean_ctor_get(x_38, 1); -x_54 = lean_ctor_get(x_38, 2); -x_55 = lean_ctor_get(x_38, 3); -x_56 = lean_ctor_get_uint8(x_38, sizeof(void*)*7); -x_57 = lean_ctor_get(x_38, 4); -x_58 = lean_ctor_get(x_38, 5); -x_59 = lean_ctor_get(x_38, 6); +lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; uint8_t x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; +x_53 = lean_ctor_get(x_39, 0); +x_54 = lean_ctor_get(x_39, 1); +x_55 = lean_ctor_get(x_39, 2); +x_56 = lean_ctor_get(x_39, 3); +x_57 = lean_ctor_get_uint8(x_39, sizeof(void*)*7); +x_58 = lean_ctor_get(x_39, 4); +x_59 = lean_ctor_get(x_39, 5); +x_60 = lean_ctor_get(x_39, 6); +lean_inc(x_60); lean_inc(x_59); lean_inc(x_58); -lean_inc(x_57); +lean_inc(x_56); lean_inc(x_55); lean_inc(x_54); lean_inc(x_53); -lean_inc(x_52); -lean_dec(x_38); -x_60 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_restore(x_55, x_1, x_30); -x_61 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_61, 0, x_52); -lean_ctor_set(x_61, 1, x_53); -lean_ctor_set(x_61, 2, x_54); -lean_ctor_set(x_61, 3, x_60); -lean_ctor_set(x_61, 4, x_57); -lean_ctor_set(x_61, 5, x_58); -lean_ctor_set(x_61, 6, x_59); -lean_ctor_set_uint8(x_61, sizeof(void*)*7, x_56); -x_62 = lean_st_ref_set(x_4, x_61, x_39); +lean_dec(x_39); +x_61 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_restore(x_56, x_1, x_31); +x_62 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_62, 0, x_53); +lean_ctor_set(x_62, 1, x_54); +lean_ctor_set(x_62, 2, x_55); +lean_ctor_set(x_62, 3, x_61); +lean_ctor_set(x_62, 4, x_58); +lean_ctor_set(x_62, 5, x_59); +lean_ctor_set(x_62, 6, x_60); +lean_ctor_set_uint8(x_62, sizeof(void*)*7, x_57); +x_63 = lean_st_ref_set(x_4, x_62, x_40); lean_dec(x_4); -x_63 = lean_ctor_get(x_62, 1); -lean_inc(x_63); -if (lean_is_exclusive(x_62)) { - lean_ctor_release(x_62, 0); - lean_ctor_release(x_62, 1); - x_64 = x_62; +x_64 = lean_ctor_get(x_63, 1); +lean_inc(x_64); +if (lean_is_exclusive(x_63)) { + lean_ctor_release(x_63, 0); + lean_ctor_release(x_63, 1); + x_65 = x_63; } else { - lean_dec_ref(x_62); - x_64 = lean_box(0); + lean_dec_ref(x_63); + x_65 = lean_box(0); } -x_65 = lean_box(0); -x_66 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_66, 0, x_33); -lean_ctor_set(x_66, 1, x_65); -if (lean_is_scalar(x_64)) { - x_67 = lean_alloc_ctor(0, 2, 0); +x_66 = lean_box(0); +x_67 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_67, 0, x_34); +lean_ctor_set(x_67, 1, x_66); +if (lean_is_scalar(x_65)) { + x_68 = lean_alloc_ctor(0, 2, 0); } else { - x_67 = x_64; + x_68 = x_65; } -lean_ctor_set(x_67, 0, x_66); -lean_ctor_set(x_67, 1, x_63); -x_10 = x_67; -goto block_22; +lean_ctor_set(x_68, 0, x_67); +lean_ctor_set(x_68, 1, x_64); +x_11 = x_68; +goto block_23; } } else { -lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; uint8_t x_75; -x_68 = lean_ctor_get(x_32, 0); -lean_inc(x_68); -x_69 = lean_ctor_get(x_32, 1); +lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; uint8_t x_76; +x_69 = lean_ctor_get(x_33, 0); lean_inc(x_69); -lean_dec(x_32); -x_70 = lean_st_ref_get(x_8, x_69); -lean_dec(x_8); -x_71 = lean_ctor_get(x_70, 1); -lean_inc(x_71); -lean_dec(x_70); -x_72 = lean_st_ref_take(x_4, x_71); -x_73 = lean_ctor_get(x_72, 0); -lean_inc(x_73); -x_74 = lean_ctor_get(x_72, 1); +x_70 = lean_ctor_get(x_33, 1); +lean_inc(x_70); +lean_dec(x_33); +x_71 = lean_st_ref_get(x_9, x_70); +lean_dec(x_9); +x_72 = lean_ctor_get(x_71, 1); +lean_inc(x_72); +lean_dec(x_71); +x_73 = lean_st_ref_take(x_4, x_72); +x_74 = lean_ctor_get(x_73, 0); lean_inc(x_74); -lean_dec(x_72); -x_75 = !lean_is_exclusive(x_73); -if (x_75 == 0) +x_75 = lean_ctor_get(x_73, 1); +lean_inc(x_75); +lean_dec(x_73); +x_76 = !lean_is_exclusive(x_74); +if (x_76 == 0) { -lean_object* x_76; lean_object* x_77; lean_object* x_78; uint8_t x_79; -x_76 = lean_ctor_get(x_73, 3); -x_77 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_restore(x_76, x_1, x_30); -lean_ctor_set(x_73, 3, x_77); -x_78 = lean_st_ref_set(x_4, x_73, x_74); +lean_object* x_77; lean_object* x_78; lean_object* x_79; uint8_t x_80; +x_77 = lean_ctor_get(x_74, 3); +x_78 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_restore(x_77, x_1, x_31); +lean_ctor_set(x_74, 3, x_78); +x_79 = lean_st_ref_set(x_4, x_74, x_75); lean_dec(x_4); -x_79 = !lean_is_exclusive(x_78); -if (x_79 == 0) +x_80 = !lean_is_exclusive(x_79); +if (x_80 == 0) { -lean_object* x_80; -x_80 = lean_ctor_get(x_78, 0); -lean_dec(x_80); -lean_ctor_set_tag(x_78, 1); -lean_ctor_set(x_78, 0, x_68); -x_10 = x_78; -goto block_22; +lean_object* x_81; +x_81 = lean_ctor_get(x_79, 0); +lean_dec(x_81); +lean_ctor_set_tag(x_79, 1); +lean_ctor_set(x_79, 0, x_69); +x_11 = x_79; +goto block_23; } else { -lean_object* x_81; lean_object* x_82; -x_81 = lean_ctor_get(x_78, 1); -lean_inc(x_81); -lean_dec(x_78); -x_82 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_82, 0, x_68); -lean_ctor_set(x_82, 1, x_81); -x_10 = x_82; -goto block_22; +lean_object* x_82; lean_object* x_83; +x_82 = lean_ctor_get(x_79, 1); +lean_inc(x_82); +lean_dec(x_79); +x_83 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_83, 0, x_69); +lean_ctor_set(x_83, 1, x_82); +x_11 = x_83; +goto block_23; } } else { -lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; uint8_t x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; -x_83 = lean_ctor_get(x_73, 0); -x_84 = lean_ctor_get(x_73, 1); -x_85 = lean_ctor_get(x_73, 2); -x_86 = lean_ctor_get(x_73, 3); -x_87 = lean_ctor_get_uint8(x_73, sizeof(void*)*7); -x_88 = lean_ctor_get(x_73, 4); -x_89 = lean_ctor_get(x_73, 5); -x_90 = lean_ctor_get(x_73, 6); +lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; uint8_t x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +x_84 = lean_ctor_get(x_74, 0); +x_85 = lean_ctor_get(x_74, 1); +x_86 = lean_ctor_get(x_74, 2); +x_87 = lean_ctor_get(x_74, 3); +x_88 = lean_ctor_get_uint8(x_74, sizeof(void*)*7); +x_89 = lean_ctor_get(x_74, 4); +x_90 = lean_ctor_get(x_74, 5); +x_91 = lean_ctor_get(x_74, 6); +lean_inc(x_91); lean_inc(x_90); lean_inc(x_89); -lean_inc(x_88); +lean_inc(x_87); lean_inc(x_86); lean_inc(x_85); lean_inc(x_84); -lean_inc(x_83); -lean_dec(x_73); -x_91 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_restore(x_86, x_1, x_30); -x_92 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_92, 0, x_83); -lean_ctor_set(x_92, 1, x_84); -lean_ctor_set(x_92, 2, x_85); -lean_ctor_set(x_92, 3, x_91); -lean_ctor_set(x_92, 4, x_88); -lean_ctor_set(x_92, 5, x_89); -lean_ctor_set(x_92, 6, x_90); -lean_ctor_set_uint8(x_92, sizeof(void*)*7, x_87); -x_93 = lean_st_ref_set(x_4, x_92, x_74); +lean_dec(x_74); +x_92 = l_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_restore(x_87, x_1, x_31); +x_93 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_93, 0, x_84); +lean_ctor_set(x_93, 1, x_85); +lean_ctor_set(x_93, 2, x_86); +lean_ctor_set(x_93, 3, x_92); +lean_ctor_set(x_93, 4, x_89); +lean_ctor_set(x_93, 5, x_90); +lean_ctor_set(x_93, 6, x_91); +lean_ctor_set_uint8(x_93, sizeof(void*)*7, x_88); +x_94 = lean_st_ref_set(x_4, x_93, x_75); lean_dec(x_4); -x_94 = lean_ctor_get(x_93, 1); -lean_inc(x_94); -if (lean_is_exclusive(x_93)) { - lean_ctor_release(x_93, 0); - lean_ctor_release(x_93, 1); - x_95 = x_93; +x_95 = lean_ctor_get(x_94, 1); +lean_inc(x_95); +if (lean_is_exclusive(x_94)) { + lean_ctor_release(x_94, 0); + lean_ctor_release(x_94, 1); + x_96 = x_94; } else { - lean_dec_ref(x_93); - x_95 = lean_box(0); + lean_dec_ref(x_94); + x_96 = lean_box(0); } -if (lean_is_scalar(x_95)) { - x_96 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_96)) { + x_97 = lean_alloc_ctor(1, 2, 0); } else { - x_96 = x_95; - lean_ctor_set_tag(x_96, 1); + x_97 = x_96; + lean_ctor_set_tag(x_97, 1); } -lean_ctor_set(x_96, 0, x_68); -lean_ctor_set(x_96, 1, x_94); -x_10 = x_96; -goto block_22; +lean_ctor_set(x_97, 0, x_69); +lean_ctor_set(x_97, 1, x_95); +x_11 = x_97; +goto block_23; } } -block_22: +block_23: { -if (lean_obj_tag(x_10) == 0) +if (lean_obj_tag(x_11) == 0) { -uint8_t x_11; -x_11 = !lean_is_exclusive(x_10); -if (x_11 == 0) +uint8_t x_12; +x_12 = !lean_is_exclusive(x_11); +if (x_12 == 0) { -lean_object* x_12; lean_object* x_13; -x_12 = lean_ctor_get(x_10, 0); -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -lean_dec(x_12); -lean_ctor_set(x_10, 0, x_13); -return x_10; -} -else -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_14 = lean_ctor_get(x_10, 0); -x_15 = lean_ctor_get(x_10, 1); -lean_inc(x_15); +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_11, 0); +x_14 = lean_ctor_get(x_13, 0); lean_inc(x_14); -lean_dec(x_10); -x_16 = lean_ctor_get(x_14, 0); +lean_dec(x_13); +lean_ctor_set(x_11, 0, x_14); +return x_11; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_15 = lean_ctor_get(x_11, 0); +x_16 = lean_ctor_get(x_11, 1); lean_inc(x_16); -lean_dec(x_14); -x_17 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_17, 0, x_16); -lean_ctor_set(x_17, 1, x_15); -return x_17; +lean_inc(x_15); +lean_dec(x_11); +x_17 = lean_ctor_get(x_15, 0); +lean_inc(x_17); +lean_dec(x_15); +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_17); +lean_ctor_set(x_18, 1, x_16); +return x_18; } } else { -uint8_t x_18; -x_18 = !lean_is_exclusive(x_10); -if (x_18 == 0) +uint8_t x_19; +x_19 = !lean_is_exclusive(x_11); +if (x_19 == 0) { -return x_10; +return x_11; } else { -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_10, 0); -x_20 = lean_ctor_get(x_10, 1); +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_11, 0); +x_21 = lean_ctor_get(x_11, 1); +lean_inc(x_21); lean_inc(x_20); -lean_inc(x_19); -lean_dec(x_10); -x_21 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_21, 0, x_19); -lean_ctor_set(x_21, 1, x_20); -return x_21; +lean_dec(x_11); +x_22 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_21); +return x_22; } } } @@ -8506,249 +4387,252 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_withAddMustInline(lean_object _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_withAddMustInline___rarg), 9, 0); +x_2 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_Simp_withAddMustInline___rarg), 10, 0); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(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_Compiler_LCNF_Simp_isOnceOrMustInline(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_object* x_10; lean_object* x_11; uint8_t x_12; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_get(x_3, x_10); -x_12 = !lean_is_exclusive(x_11); -if (x_12 == 0) +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = lean_st_ref_get(x_8, x_9); +x_11 = lean_ctor_get(x_10, 1); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_st_ref_get(x_3, x_11); +x_13 = !lean_is_exclusive(x_12); +if (x_13 == 0) { -lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_13 = lean_ctor_get(x_11, 0); -x_14 = lean_ctor_get(x_13, 3); -lean_inc(x_14); -lean_dec(x_13); -x_15 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add___spec__1(x_14, x_1); -if (lean_obj_tag(x_15) == 0) +lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_14 = lean_ctor_get(x_12, 0); +x_15 = lean_ctor_get(x_14, 3); +lean_inc(x_15); +lean_dec(x_14); +x_16 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add___spec__1(x_15, x_1); +if (lean_obj_tag(x_16) == 0) { -uint8_t x_16; lean_object* x_17; -x_16 = 0; -x_17 = lean_box(x_16); -lean_ctor_set(x_11, 0, x_17); -return x_11; +uint8_t x_17; lean_object* x_18; +x_17 = 0; +x_18 = lean_box(x_17); +lean_ctor_set(x_12, 0, x_18); +return x_12; } else { -lean_object* x_18; -x_18 = lean_ctor_get(x_15, 0); -lean_inc(x_18); -lean_dec(x_15); -if (lean_obj_tag(x_18) == 1) +lean_object* x_19; +x_19 = lean_ctor_get(x_16, 0); +lean_inc(x_19); +lean_dec(x_16); +if (lean_obj_tag(x_19) == 1) { -uint8_t x_19; lean_object* x_20; -x_19 = 0; +uint8_t x_20; lean_object* x_21; +x_20 = 0; +x_21 = lean_box(x_20); +lean_ctor_set(x_12, 0, x_21); +return x_12; +} +else +{ +uint8_t x_22; lean_object* x_23; +lean_dec(x_19); +x_22 = 1; +x_23 = lean_box(x_22); +lean_ctor_set(x_12, 0, x_23); +return x_12; +} +} +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_24 = lean_ctor_get(x_12, 0); +x_25 = lean_ctor_get(x_12, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_12); +x_26 = lean_ctor_get(x_24, 3); +lean_inc(x_26); +lean_dec(x_24); +x_27 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add___spec__1(x_26, x_1); +if (lean_obj_tag(x_27) == 0) +{ +uint8_t x_28; lean_object* x_29; lean_object* x_30; +x_28 = 0; +x_29 = lean_box(x_28); +x_30 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_30, 0, x_29); +lean_ctor_set(x_30, 1, x_25); +return x_30; +} +else +{ +lean_object* x_31; +x_31 = lean_ctor_get(x_27, 0); +lean_inc(x_31); +lean_dec(x_27); +if (lean_obj_tag(x_31) == 1) +{ +uint8_t x_32; lean_object* x_33; lean_object* x_34; +x_32 = 0; +x_33 = lean_box(x_32); +x_34 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_34, 0, x_33); +lean_ctor_set(x_34, 1, x_25); +return x_34; +} +else +{ +uint8_t x_35; lean_object* x_36; lean_object* x_37; +lean_dec(x_31); +x_35 = 1; +x_36 = lean_box(x_35); +x_37 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_37, 0, x_36); +lean_ctor_set(x_37, 1, x_25); +return x_37; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isSmall(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_10; uint8_t x_11; +x_10 = l_Lean_Compiler_LCNF_getConfig(x_5, x_6, x_7, x_8, x_9); +x_11 = !lean_is_exclusive(x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; uint8_t x_14; lean_object* x_15; +x_12 = lean_ctor_get(x_10, 0); +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +lean_dec(x_12); +x_14 = l_Lean_Compiler_LCNF_Code_sizeLe(x_1, x_13); +lean_dec(x_13); +x_15 = lean_box(x_14); +lean_ctor_set(x_10, 0, x_15); +return x_10; +} +else +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; +x_16 = lean_ctor_get(x_10, 0); +x_17 = lean_ctor_get(x_10, 1); +lean_inc(x_17); +lean_inc(x_16); +lean_dec(x_10); +x_18 = lean_ctor_get(x_16, 0); +lean_inc(x_18); +lean_dec(x_16); +x_19 = l_Lean_Compiler_LCNF_Code_sizeLe(x_1, x_18); +lean_dec(x_18); +x_20 = lean_box(x_19); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_17); +return x_21; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isSmall___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_isSmall(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_shouldInlineLocal(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_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = lean_ctor_get(x_1, 0); +lean_inc(x_10); +x_11 = l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_12 = lean_ctor_get(x_11, 0); +lean_inc(x_12); +x_13 = lean_unbox(x_12); +lean_dec(x_12); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_14 = lean_ctor_get(x_11, 1); +lean_inc(x_14); +lean_dec(x_11); +x_15 = lean_ctor_get(x_1, 4); +lean_inc(x_15); +lean_dec(x_1); +x_16 = l_Lean_Compiler_LCNF_Simp_isSmall(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_14); +return x_16; +} +else +{ +uint8_t x_17; +lean_dec(x_1); +x_17 = !lean_is_exclusive(x_11); +if (x_17 == 0) +{ +lean_object* x_18; uint8_t x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_11, 0); +lean_dec(x_18); +x_19 = 1; x_20 = lean_box(x_19); lean_ctor_set(x_11, 0, x_20); return x_11; } else { -uint8_t x_21; lean_object* x_22; -lean_dec(x_18); -x_21 = 1; -x_22 = lean_box(x_21); -lean_ctor_set(x_11, 0, x_22); -return x_11; -} -} -} -else -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_23 = lean_ctor_get(x_11, 0); -x_24 = lean_ctor_get(x_11, 1); -lean_inc(x_24); -lean_inc(x_23); +lean_object* x_21; uint8_t x_22; lean_object* x_23; lean_object* x_24; +x_21 = lean_ctor_get(x_11, 1); +lean_inc(x_21); lean_dec(x_11); -x_25 = lean_ctor_get(x_23, 3); -lean_inc(x_25); -lean_dec(x_23); -x_26 = l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_Simp_FunDeclInfoMap_add___spec__1(x_25, x_1); -if (lean_obj_tag(x_26) == 0) -{ -uint8_t x_27; lean_object* x_28; lean_object* x_29; -x_27 = 0; -x_28 = lean_box(x_27); -x_29 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_29, 0, x_28); -lean_ctor_set(x_29, 1, x_24); -return x_29; -} -else -{ -lean_object* x_30; -x_30 = lean_ctor_get(x_26, 0); -lean_inc(x_30); -lean_dec(x_26); -if (lean_obj_tag(x_30) == 1) -{ -uint8_t x_31; lean_object* x_32; lean_object* x_33; -x_31 = 0; -x_32 = lean_box(x_31); -x_33 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_24); -return x_33; -} -else -{ -uint8_t x_34; lean_object* x_35; lean_object* x_36; -lean_dec(x_30); -x_34 = 1; -x_35 = lean_box(x_34); -x_36 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_36, 0, x_35); -lean_ctor_set(x_36, 1, x_24); -return x_36; +x_22 = 1; +x_23 = lean_box(x_22); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_21); +return x_24; } } } } -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_shouldInlineLocal___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) { _start: { -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_shouldInlineLocal(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isSmall(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_9; uint8_t x_10; -x_9 = l_Lean_Compiler_LCNF_getConfig(x_4, x_5, x_6, x_7, x_8); -x_10 = !lean_is_exclusive(x_9); -if (x_10 == 0) -{ -lean_object* x_11; lean_object* x_12; uint8_t x_13; lean_object* x_14; -x_11 = lean_ctor_get(x_9, 0); -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -lean_dec(x_11); -x_13 = l_Lean_Compiler_LCNF_Code_sizeLe(x_1, x_12); -lean_dec(x_12); -x_14 = lean_box(x_13); -lean_ctor_set(x_9, 0, x_14); -return x_9; -} -else -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; lean_object* x_19; lean_object* x_20; -x_15 = lean_ctor_get(x_9, 0); -x_16 = lean_ctor_get(x_9, 1); -lean_inc(x_16); -lean_inc(x_15); -lean_dec(x_9); -x_17 = lean_ctor_get(x_15, 0); -lean_inc(x_17); -lean_dec(x_15); -x_18 = l_Lean_Compiler_LCNF_Code_sizeLe(x_1, x_17); -lean_dec(x_17); -x_19 = lean_box(x_18); -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_19); -lean_ctor_set(x_20, 1, x_16); -return x_20; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isSmall___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_isSmall(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_shouldInlineLocal(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_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_9 = lean_ctor_get(x_1, 0); -lean_inc(x_9); -x_10 = l_Lean_Compiler_LCNF_Simp_isOnceOrMustInline(x_9, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -x_12 = lean_unbox(x_11); -lean_dec(x_11); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_13 = lean_ctor_get(x_10, 1); -lean_inc(x_13); -lean_dec(x_10); -x_14 = lean_ctor_get(x_1, 4); -lean_inc(x_14); -lean_dec(x_1); -x_15 = l_Lean_Compiler_LCNF_Simp_isSmall(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_13); -return x_15; -} -else -{ -uint8_t x_16; -lean_dec(x_1); -x_16 = !lean_is_exclusive(x_10); -if (x_16 == 0) -{ -lean_object* x_17; uint8_t x_18; lean_object* x_19; -x_17 = lean_ctor_get(x_10, 0); -lean_dec(x_17); -x_18 = 1; -x_19 = lean_box(x_18); -lean_ctor_set(x_10, 0, x_19); return x_10; } -else -{ -lean_object* x_20; uint8_t x_21; lean_object* x_22; lean_object* x_23; -x_20 = lean_ctor_get(x_10, 1); -lean_inc(x_20); -lean_dec(x_10); -x_21 = 1; -x_22 = lean_box(x_21); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_20); -return x_23; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_shouldInlineLocal___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_shouldInlineLocal(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} } static lean_object* _init_l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1___closed__1() { _start: @@ -8768,1125 +4652,1125 @@ x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1(lean_object* x_1, size_t x_2, size_t 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_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1(lean_object* x_1, size_t x_2, size_t 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: { -uint8_t x_12; -x_12 = lean_usize_dec_lt(x_3, x_2); -if (x_12 == 0) +uint8_t x_13; +x_13 = lean_usize_dec_lt(x_3, x_2); +if (x_13 == 0) { -lean_object* x_13; +lean_object* x_14; +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_4); -lean_ctor_set(x_13, 1, x_11); -return x_13; +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_4); +lean_ctor_set(x_14, 1, x_12); +return x_14; } else { -lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_24; -x_14 = lean_array_uget(x_1, x_3); -x_24 = !lean_is_exclusive(x_4); -if (x_24 == 0) +lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_25; +x_15 = lean_array_uget(x_1, x_3); +x_25 = !lean_is_exclusive(x_4); +if (x_25 == 0) { -lean_object* x_25; uint8_t x_26; -x_25 = lean_ctor_get(x_4, 1); -x_26 = !lean_is_exclusive(x_25); -if (x_26 == 0) +lean_object* x_26; uint8_t x_27; +x_26 = lean_ctor_get(x_4, 1); +x_27 = !lean_is_exclusive(x_26); +if (x_27 == 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; uint8_t x_33; -x_27 = lean_ctor_get(x_4, 0); -x_28 = lean_ctor_get(x_25, 0); -x_29 = lean_ctor_get(x_25, 1); -x_30 = lean_ctor_get(x_27, 0); -lean_inc(x_30); -x_31 = lean_ctor_get(x_27, 1); +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; +x_28 = lean_ctor_get(x_4, 0); +x_29 = lean_ctor_get(x_26, 0); +x_30 = lean_ctor_get(x_26, 1); +x_31 = lean_ctor_get(x_28, 0); lean_inc(x_31); -x_32 = lean_ctor_get(x_27, 2); +x_32 = lean_ctor_get(x_28, 1); lean_inc(x_32); -x_33 = lean_nat_dec_lt(x_31, x_32); -if (x_33 == 0) +x_33 = lean_ctor_get(x_28, 2); +lean_inc(x_33); +x_34 = lean_nat_dec_lt(x_32, x_33); +if (x_34 == 0) { -lean_object* x_34; +lean_object* x_35; +lean_dec(x_33); lean_dec(x_32); lean_dec(x_31); -lean_dec(x_30); -lean_dec(x_14); -x_34 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_34, 0, x_4); -x_15 = x_34; -x_16 = x_11; -goto block_23; +lean_dec(x_15); +x_35 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_35, 0, x_4); +x_16 = x_35; +x_17 = x_12; +goto block_24; } else { -uint8_t x_35; -x_35 = !lean_is_exclusive(x_27); -if (x_35 == 0) +uint8_t x_36; +x_36 = !lean_is_exclusive(x_28); +if (x_36 == 0) { -lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_36 = lean_ctor_get(x_27, 2); -lean_dec(x_36); -x_37 = lean_ctor_get(x_27, 1); +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_37 = lean_ctor_get(x_28, 2); lean_dec(x_37); -x_38 = lean_ctor_get(x_27, 0); +x_38 = lean_ctor_get(x_28, 1); lean_dec(x_38); -x_39 = lean_array_fget(x_30, x_31); -x_40 = lean_unsigned_to_nat(1u); -x_41 = lean_nat_add(x_31, x_40); -lean_dec(x_31); -lean_ctor_set(x_27, 1, x_41); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_39); -x_42 = l_Lean_Compiler_LCNF_inferType(x_39, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_42) == 0) -{ -lean_object* x_43; lean_object* x_44; lean_object* x_45; uint8_t x_46; -x_43 = lean_ctor_get(x_42, 0); -lean_inc(x_43); -x_44 = lean_ctor_get(x_42, 1); -lean_inc(x_44); -lean_dec(x_42); -x_45 = lean_ctor_get(x_14, 2); -lean_inc(x_45); -x_46 = l_Lean_Expr_isAnyType(x_45); -lean_dec(x_45); -if (x_46 == 0) -{ -lean_object* x_47; lean_object* x_48; lean_object* x_49; -lean_dec(x_43); -x_47 = lean_ctor_get(x_14, 0); -lean_inc(x_47); -lean_dec(x_14); -x_48 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_29, x_47, x_39); -lean_ctor_set(x_25, 1, x_48); -x_49 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_49, 0, x_4); -x_15 = x_49; -x_16 = x_44; -goto block_23; -} -else -{ -uint8_t x_50; -x_50 = l_Lean_Expr_isAnyType(x_43); -lean_dec(x_43); -if (x_50 == 0) -{ -lean_object* x_51; lean_object* x_52; -x_51 = l_Lean_Compiler_LCNF_anyTypeExpr; -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -x_52 = l_Lean_Compiler_LCNF_mkLcCast(x_39, x_51, x_7, x_8, x_9, x_10, x_44); -if (lean_obj_tag(x_52) == 0) -{ -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; -x_53 = lean_ctor_get(x_52, 0); -lean_inc(x_53); -x_54 = lean_ctor_get(x_52, 1); -lean_inc(x_54); -lean_dec(x_52); -x_55 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1___closed__2; -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -x_56 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_53, x_55, x_7, x_8, x_9, x_10, x_54); -if (lean_obj_tag(x_56) == 0) -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; -x_57 = lean_ctor_get(x_56, 0); -lean_inc(x_57); -x_58 = lean_ctor_get(x_56, 1); -lean_inc(x_58); -lean_dec(x_56); -lean_inc(x_57); -x_59 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_59, 0, x_57); -x_60 = lean_array_push(x_28, x_59); -x_61 = lean_ctor_get(x_14, 0); -lean_inc(x_61); -lean_dec(x_14); -x_62 = lean_ctor_get(x_57, 0); -lean_inc(x_62); -lean_dec(x_57); -x_63 = l_Lean_Expr_fvar___override(x_62); -x_64 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_29, x_61, x_63); -lean_ctor_set(x_25, 1, x_64); -lean_ctor_set(x_25, 0, x_60); -x_65 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_65, 0, x_4); -x_15 = x_65; -x_16 = x_58; -goto block_23; -} -else -{ -uint8_t x_66; -lean_dec(x_27); -lean_free_object(x_25); -lean_dec(x_29); -lean_dec(x_28); -lean_free_object(x_4); -lean_dec(x_14); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -x_66 = !lean_is_exclusive(x_56); -if (x_66 == 0) -{ -return x_56; -} -else -{ -lean_object* x_67; lean_object* x_68; lean_object* x_69; -x_67 = lean_ctor_get(x_56, 0); -x_68 = lean_ctor_get(x_56, 1); -lean_inc(x_68); -lean_inc(x_67); -lean_dec(x_56); -x_69 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_69, 0, x_67); -lean_ctor_set(x_69, 1, x_68); -return x_69; -} -} -} -else -{ -uint8_t x_70; -lean_dec(x_27); -lean_free_object(x_25); -lean_dec(x_29); -lean_dec(x_28); -lean_free_object(x_4); -lean_dec(x_14); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -x_70 = !lean_is_exclusive(x_52); -if (x_70 == 0) -{ -return x_52; -} -else -{ -lean_object* x_71; lean_object* x_72; lean_object* x_73; -x_71 = lean_ctor_get(x_52, 0); -x_72 = lean_ctor_get(x_52, 1); -lean_inc(x_72); -lean_inc(x_71); -lean_dec(x_52); -x_73 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_73, 0, x_71); -lean_ctor_set(x_73, 1, x_72); -return x_73; -} -} -} -else -{ -lean_object* x_74; lean_object* x_75; lean_object* x_76; -x_74 = lean_ctor_get(x_14, 0); -lean_inc(x_74); -lean_dec(x_14); -x_75 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_29, x_74, x_39); -lean_ctor_set(x_25, 1, x_75); -x_76 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_76, 0, x_4); -x_15 = x_76; -x_16 = x_44; -goto block_23; -} -} -} -else -{ -uint8_t x_77; -lean_dec(x_27); +x_39 = lean_ctor_get(x_28, 0); lean_dec(x_39); -lean_free_object(x_25); -lean_dec(x_29); -lean_dec(x_28); -lean_free_object(x_4); -lean_dec(x_14); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -x_77 = !lean_is_exclusive(x_42); -if (x_77 == 0) +x_40 = lean_array_fget(x_31, x_32); +x_41 = lean_unsigned_to_nat(1u); +x_42 = lean_nat_add(x_32, x_41); +lean_dec(x_32); +lean_ctor_set(x_28, 1, x_42); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_40); +x_43 = l_Lean_Compiler_LCNF_inferType(x_40, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_43) == 0) { -return x_42; +lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; +x_44 = lean_ctor_get(x_43, 0); +lean_inc(x_44); +x_45 = lean_ctor_get(x_43, 1); +lean_inc(x_45); +lean_dec(x_43); +x_46 = lean_ctor_get(x_15, 2); +lean_inc(x_46); +x_47 = l_Lean_Expr_isErased(x_46); +lean_dec(x_46); +if (x_47 == 0) +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; +lean_dec(x_44); +x_48 = lean_ctor_get(x_15, 0); +lean_inc(x_48); +lean_dec(x_15); +x_49 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_30, x_48, x_40); +lean_ctor_set(x_26, 1, x_49); +x_50 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_50, 0, x_4); +x_16 = x_50; +x_17 = x_45; +goto block_24; } else { -lean_object* x_78; lean_object* x_79; lean_object* x_80; -x_78 = lean_ctor_get(x_42, 0); -x_79 = lean_ctor_get(x_42, 1); +uint8_t x_51; +x_51 = l_Lean_Expr_isErased(x_44); +lean_dec(x_44); +if (x_51 == 0) +{ +lean_object* x_52; lean_object* x_53; +x_52 = l_Lean_Compiler_LCNF_erasedExpr; +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +x_53 = l_Lean_Compiler_LCNF_mkLcCast(x_40, x_52, x_8, x_9, x_10, x_11, x_45); +if (lean_obj_tag(x_53) == 0) +{ +lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; +x_54 = lean_ctor_get(x_53, 0); +lean_inc(x_54); +x_55 = lean_ctor_get(x_53, 1); +lean_inc(x_55); +lean_dec(x_53); +x_56 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1___closed__2; +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +x_57 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_54, x_56, x_8, x_9, x_10, x_11, x_55); +if (lean_obj_tag(x_57) == 0) +{ +lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; +x_58 = lean_ctor_get(x_57, 0); +lean_inc(x_58); +x_59 = lean_ctor_get(x_57, 1); +lean_inc(x_59); +lean_dec(x_57); +lean_inc(x_58); +x_60 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_60, 0, x_58); +x_61 = lean_array_push(x_29, x_60); +x_62 = lean_ctor_get(x_15, 0); +lean_inc(x_62); +lean_dec(x_15); +x_63 = lean_ctor_get(x_58, 0); +lean_inc(x_63); +lean_dec(x_58); +x_64 = l_Lean_Expr_fvar___override(x_63); +x_65 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_30, x_62, x_64); +lean_ctor_set(x_26, 1, x_65); +lean_ctor_set(x_26, 0, x_61); +x_66 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_66, 0, x_4); +x_16 = x_66; +x_17 = x_59; +goto block_24; +} +else +{ +uint8_t x_67; +lean_dec(x_28); +lean_free_object(x_26); +lean_dec(x_30); +lean_dec(x_29); +lean_free_object(x_4); +lean_dec(x_15); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +x_67 = !lean_is_exclusive(x_57); +if (x_67 == 0) +{ +return x_57; +} +else +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; +x_68 = lean_ctor_get(x_57, 0); +x_69 = lean_ctor_get(x_57, 1); +lean_inc(x_69); +lean_inc(x_68); +lean_dec(x_57); +x_70 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_70, 0, x_68); +lean_ctor_set(x_70, 1, x_69); +return x_70; +} +} +} +else +{ +uint8_t x_71; +lean_dec(x_28); +lean_free_object(x_26); +lean_dec(x_30); +lean_dec(x_29); +lean_free_object(x_4); +lean_dec(x_15); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +x_71 = !lean_is_exclusive(x_53); +if (x_71 == 0) +{ +return x_53; +} +else +{ +lean_object* x_72; lean_object* x_73; lean_object* x_74; +x_72 = lean_ctor_get(x_53, 0); +x_73 = lean_ctor_get(x_53, 1); +lean_inc(x_73); +lean_inc(x_72); +lean_dec(x_53); +x_74 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_74, 0, x_72); +lean_ctor_set(x_74, 1, x_73); +return x_74; +} +} +} +else +{ +lean_object* x_75; lean_object* x_76; lean_object* x_77; +x_75 = lean_ctor_get(x_15, 0); +lean_inc(x_75); +lean_dec(x_15); +x_76 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_30, x_75, x_40); +lean_ctor_set(x_26, 1, x_76); +x_77 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_77, 0, x_4); +x_16 = x_77; +x_17 = x_45; +goto block_24; +} +} +} +else +{ +uint8_t x_78; +lean_dec(x_28); +lean_dec(x_40); +lean_free_object(x_26); +lean_dec(x_30); +lean_dec(x_29); +lean_free_object(x_4); +lean_dec(x_15); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +x_78 = !lean_is_exclusive(x_43); +if (x_78 == 0) +{ +return x_43; +} +else +{ +lean_object* x_79; lean_object* x_80; lean_object* x_81; +x_79 = lean_ctor_get(x_43, 0); +x_80 = lean_ctor_get(x_43, 1); +lean_inc(x_80); lean_inc(x_79); -lean_inc(x_78); -lean_dec(x_42); -x_80 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_80, 0, x_78); -lean_ctor_set(x_80, 1, x_79); -return x_80; +lean_dec(x_43); +x_81 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_81, 0, x_79); +lean_ctor_set(x_81, 1, x_80); +return x_81; } } } else { -lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; -lean_dec(x_27); -x_81 = lean_array_fget(x_30, x_31); -x_82 = lean_unsigned_to_nat(1u); -x_83 = lean_nat_add(x_31, x_82); -lean_dec(x_31); -x_84 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_84, 0, x_30); -lean_ctor_set(x_84, 1, x_83); -lean_ctor_set(x_84, 2, x_32); +lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; +lean_dec(x_28); +x_82 = lean_array_fget(x_31, x_32); +x_83 = lean_unsigned_to_nat(1u); +x_84 = lean_nat_add(x_32, x_83); +lean_dec(x_32); +x_85 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_85, 0, x_31); +lean_ctor_set(x_85, 1, x_84); +lean_ctor_set(x_85, 2, x_33); +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_81); -x_85 = l_Lean_Compiler_LCNF_inferType(x_81, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_85) == 0) +lean_inc(x_82); +x_86 = l_Lean_Compiler_LCNF_inferType(x_82, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_86) == 0) { -lean_object* x_86; lean_object* x_87; lean_object* x_88; uint8_t x_89; -x_86 = lean_ctor_get(x_85, 0); -lean_inc(x_86); -x_87 = lean_ctor_get(x_85, 1); +lean_object* x_87; lean_object* x_88; lean_object* x_89; uint8_t x_90; +x_87 = lean_ctor_get(x_86, 0); lean_inc(x_87); -lean_dec(x_85); -x_88 = lean_ctor_get(x_14, 2); +x_88 = lean_ctor_get(x_86, 1); lean_inc(x_88); -x_89 = l_Lean_Expr_isAnyType(x_88); -lean_dec(x_88); -if (x_89 == 0) -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_dec(x_86); -x_90 = lean_ctor_get(x_14, 0); -lean_inc(x_90); -lean_dec(x_14); -x_91 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_29, x_90, x_81); -lean_ctor_set(x_25, 1, x_91); -lean_ctor_set(x_4, 0, x_84); -x_92 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_92, 0, x_4); -x_15 = x_92; -x_16 = x_87; -goto block_23; +x_89 = lean_ctor_get(x_15, 2); +lean_inc(x_89); +x_90 = l_Lean_Expr_isErased(x_89); +lean_dec(x_89); +if (x_90 == 0) +{ +lean_object* x_91; lean_object* x_92; lean_object* x_93; +lean_dec(x_87); +x_91 = lean_ctor_get(x_15, 0); +lean_inc(x_91); +lean_dec(x_15); +x_92 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_30, x_91, x_82); +lean_ctor_set(x_26, 1, x_92); +lean_ctor_set(x_4, 0, x_85); +x_93 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_93, 0, x_4); +x_16 = x_93; +x_17 = x_88; +goto block_24; } else { -uint8_t x_93; -x_93 = l_Lean_Expr_isAnyType(x_86); -lean_dec(x_86); -if (x_93 == 0) +uint8_t x_94; +x_94 = l_Lean_Expr_isErased(x_87); +lean_dec(x_87); +if (x_94 == 0) { -lean_object* x_94; lean_object* x_95; -x_94 = l_Lean_Compiler_LCNF_anyTypeExpr; +lean_object* x_95; lean_object* x_96; +x_95 = l_Lean_Compiler_LCNF_erasedExpr; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -x_95 = l_Lean_Compiler_LCNF_mkLcCast(x_81, x_94, x_7, x_8, x_9, x_10, x_87); -if (lean_obj_tag(x_95) == 0) +x_96 = l_Lean_Compiler_LCNF_mkLcCast(x_82, x_95, x_8, x_9, x_10, x_11, x_88); +if (lean_obj_tag(x_96) == 0) { -lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; -x_96 = lean_ctor_get(x_95, 0); -lean_inc(x_96); -x_97 = lean_ctor_get(x_95, 1); +lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; +x_97 = lean_ctor_get(x_96, 0); lean_inc(x_97); -lean_dec(x_95); -x_98 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1___closed__2; +x_98 = lean_ctor_get(x_96, 1); +lean_inc(x_98); +lean_dec(x_96); +x_99 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1___closed__2; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -x_99 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_96, x_98, x_7, x_8, x_9, x_10, x_97); -if (lean_obj_tag(x_99) == 0) +x_100 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_97, x_99, x_8, x_9, x_10, x_11, x_98); +if (lean_obj_tag(x_100) == 0) { -lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; -x_100 = lean_ctor_get(x_99, 0); -lean_inc(x_100); -x_101 = lean_ctor_get(x_99, 1); +lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; +x_101 = lean_ctor_get(x_100, 0); lean_inc(x_101); -lean_dec(x_99); -lean_inc(x_100); -x_102 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_102, 0, x_100); -x_103 = lean_array_push(x_28, x_102); -x_104 = lean_ctor_get(x_14, 0); -lean_inc(x_104); -lean_dec(x_14); -x_105 = lean_ctor_get(x_100, 0); -lean_inc(x_105); +x_102 = lean_ctor_get(x_100, 1); +lean_inc(x_102); lean_dec(x_100); -x_106 = l_Lean_Expr_fvar___override(x_105); -x_107 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_29, x_104, x_106); -lean_ctor_set(x_25, 1, x_107); -lean_ctor_set(x_25, 0, x_103); -lean_ctor_set(x_4, 0, x_84); -x_108 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_108, 0, x_4); -x_15 = x_108; -x_16 = x_101; -goto block_23; +lean_inc(x_101); +x_103 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_103, 0, x_101); +x_104 = lean_array_push(x_29, x_103); +x_105 = lean_ctor_get(x_15, 0); +lean_inc(x_105); +lean_dec(x_15); +x_106 = lean_ctor_get(x_101, 0); +lean_inc(x_106); +lean_dec(x_101); +x_107 = l_Lean_Expr_fvar___override(x_106); +x_108 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_30, x_105, x_107); +lean_ctor_set(x_26, 1, x_108); +lean_ctor_set(x_26, 0, x_104); +lean_ctor_set(x_4, 0, x_85); +x_109 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_109, 0, x_4); +x_16 = x_109; +x_17 = x_102; +goto block_24; } else { -lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; -lean_dec(x_84); -lean_free_object(x_25); +lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; +lean_dec(x_85); +lean_free_object(x_26); +lean_dec(x_30); lean_dec(x_29); -lean_dec(x_28); lean_free_object(x_4); -lean_dec(x_14); +lean_dec(x_15); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_109 = lean_ctor_get(x_99, 0); -lean_inc(x_109); -x_110 = lean_ctor_get(x_99, 1); +x_110 = lean_ctor_get(x_100, 0); lean_inc(x_110); -if (lean_is_exclusive(x_99)) { - lean_ctor_release(x_99, 0); - lean_ctor_release(x_99, 1); - x_111 = x_99; +x_111 = lean_ctor_get(x_100, 1); +lean_inc(x_111); +if (lean_is_exclusive(x_100)) { + lean_ctor_release(x_100, 0); + lean_ctor_release(x_100, 1); + x_112 = x_100; } else { - lean_dec_ref(x_99); - x_111 = lean_box(0); + lean_dec_ref(x_100); + x_112 = lean_box(0); } -if (lean_is_scalar(x_111)) { - x_112 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_112)) { + x_113 = lean_alloc_ctor(1, 2, 0); } else { - x_112 = x_111; + x_113 = x_112; } -lean_ctor_set(x_112, 0, x_109); -lean_ctor_set(x_112, 1, x_110); -return x_112; +lean_ctor_set(x_113, 0, x_110); +lean_ctor_set(x_113, 1, x_111); +return x_113; } } else { -lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; -lean_dec(x_84); -lean_free_object(x_25); +lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; +lean_dec(x_85); +lean_free_object(x_26); +lean_dec(x_30); lean_dec(x_29); -lean_dec(x_28); lean_free_object(x_4); -lean_dec(x_14); +lean_dec(x_15); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_113 = lean_ctor_get(x_95, 0); -lean_inc(x_113); -x_114 = lean_ctor_get(x_95, 1); +x_114 = lean_ctor_get(x_96, 0); lean_inc(x_114); -if (lean_is_exclusive(x_95)) { - lean_ctor_release(x_95, 0); - lean_ctor_release(x_95, 1); - x_115 = x_95; +x_115 = lean_ctor_get(x_96, 1); +lean_inc(x_115); +if (lean_is_exclusive(x_96)) { + lean_ctor_release(x_96, 0); + lean_ctor_release(x_96, 1); + x_116 = x_96; } else { - lean_dec_ref(x_95); - x_115 = lean_box(0); + lean_dec_ref(x_96); + x_116 = lean_box(0); } -if (lean_is_scalar(x_115)) { - x_116 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_116)) { + x_117 = lean_alloc_ctor(1, 2, 0); } else { - x_116 = x_115; + x_117 = x_116; } -lean_ctor_set(x_116, 0, x_113); -lean_ctor_set(x_116, 1, x_114); -return x_116; +lean_ctor_set(x_117, 0, x_114); +lean_ctor_set(x_117, 1, x_115); +return x_117; } } else { -lean_object* x_117; lean_object* x_118; lean_object* x_119; -x_117 = lean_ctor_get(x_14, 0); -lean_inc(x_117); -lean_dec(x_14); -x_118 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_29, x_117, x_81); -lean_ctor_set(x_25, 1, x_118); -lean_ctor_set(x_4, 0, x_84); -x_119 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_119, 0, x_4); -x_15 = x_119; -x_16 = x_87; -goto block_23; +lean_object* x_118; lean_object* x_119; lean_object* x_120; +x_118 = lean_ctor_get(x_15, 0); +lean_inc(x_118); +lean_dec(x_15); +x_119 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_30, x_118, x_82); +lean_ctor_set(x_26, 1, x_119); +lean_ctor_set(x_4, 0, x_85); +x_120 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_120, 0, x_4); +x_16 = x_120; +x_17 = x_88; +goto block_24; } } } else { -lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; -lean_dec(x_84); -lean_dec(x_81); -lean_free_object(x_25); +lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; +lean_dec(x_85); +lean_dec(x_82); +lean_free_object(x_26); +lean_dec(x_30); lean_dec(x_29); -lean_dec(x_28); lean_free_object(x_4); -lean_dec(x_14); +lean_dec(x_15); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_120 = lean_ctor_get(x_85, 0); -lean_inc(x_120); -x_121 = lean_ctor_get(x_85, 1); +x_121 = lean_ctor_get(x_86, 0); lean_inc(x_121); -if (lean_is_exclusive(x_85)) { - lean_ctor_release(x_85, 0); - lean_ctor_release(x_85, 1); - x_122 = x_85; +x_122 = lean_ctor_get(x_86, 1); +lean_inc(x_122); +if (lean_is_exclusive(x_86)) { + lean_ctor_release(x_86, 0); + lean_ctor_release(x_86, 1); + x_123 = x_86; } else { - lean_dec_ref(x_85); - x_122 = lean_box(0); + lean_dec_ref(x_86); + x_123 = lean_box(0); } -if (lean_is_scalar(x_122)) { - x_123 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_123)) { + x_124 = lean_alloc_ctor(1, 2, 0); } else { - x_123 = x_122; + x_124 = x_123; } -lean_ctor_set(x_123, 0, x_120); -lean_ctor_set(x_123, 1, x_121); -return x_123; +lean_ctor_set(x_124, 0, x_121); +lean_ctor_set(x_124, 1, x_122); +return x_124; } } } } else { -lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; uint8_t x_130; -x_124 = lean_ctor_get(x_4, 0); -x_125 = lean_ctor_get(x_25, 0); -x_126 = lean_ctor_get(x_25, 1); -lean_inc(x_126); -lean_inc(x_125); -lean_dec(x_25); -x_127 = lean_ctor_get(x_124, 0); +lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; uint8_t x_131; +x_125 = lean_ctor_get(x_4, 0); +x_126 = lean_ctor_get(x_26, 0); +x_127 = lean_ctor_get(x_26, 1); lean_inc(x_127); -x_128 = lean_ctor_get(x_124, 1); +lean_inc(x_126); +lean_dec(x_26); +x_128 = lean_ctor_get(x_125, 0); lean_inc(x_128); -x_129 = lean_ctor_get(x_124, 2); +x_129 = lean_ctor_get(x_125, 1); lean_inc(x_129); -x_130 = lean_nat_dec_lt(x_128, x_129); -if (x_130 == 0) +x_130 = lean_ctor_get(x_125, 2); +lean_inc(x_130); +x_131 = lean_nat_dec_lt(x_129, x_130); +if (x_131 == 0) { -lean_object* x_131; lean_object* x_132; +lean_object* x_132; lean_object* x_133; +lean_dec(x_130); lean_dec(x_129); lean_dec(x_128); -lean_dec(x_127); -lean_dec(x_14); -x_131 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_131, 0, x_125); -lean_ctor_set(x_131, 1, x_126); -lean_ctor_set(x_4, 1, x_131); -x_132 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_132, 0, x_4); -x_15 = x_132; -x_16 = x_11; -goto block_23; +lean_dec(x_15); +x_132 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_132, 0, x_126); +lean_ctor_set(x_132, 1, x_127); +lean_ctor_set(x_4, 1, x_132); +x_133 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_133, 0, x_4); +x_16 = x_133; +x_17 = x_12; +goto block_24; } else { -lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; -if (lean_is_exclusive(x_124)) { - lean_ctor_release(x_124, 0); - lean_ctor_release(x_124, 1); - lean_ctor_release(x_124, 2); - x_133 = x_124; +lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; +if (lean_is_exclusive(x_125)) { + lean_ctor_release(x_125, 0); + lean_ctor_release(x_125, 1); + lean_ctor_release(x_125, 2); + x_134 = x_125; } else { - lean_dec_ref(x_124); - x_133 = lean_box(0); + lean_dec_ref(x_125); + x_134 = lean_box(0); } -x_134 = lean_array_fget(x_127, x_128); -x_135 = lean_unsigned_to_nat(1u); -x_136 = lean_nat_add(x_128, x_135); -lean_dec(x_128); -if (lean_is_scalar(x_133)) { - x_137 = lean_alloc_ctor(0, 3, 0); +x_135 = lean_array_fget(x_128, x_129); +x_136 = lean_unsigned_to_nat(1u); +x_137 = lean_nat_add(x_129, x_136); +lean_dec(x_129); +if (lean_is_scalar(x_134)) { + x_138 = lean_alloc_ctor(0, 3, 0); } else { - x_137 = x_133; + x_138 = x_134; } -lean_ctor_set(x_137, 0, x_127); -lean_ctor_set(x_137, 1, x_136); -lean_ctor_set(x_137, 2, x_129); +lean_ctor_set(x_138, 0, x_128); +lean_ctor_set(x_138, 1, x_137); +lean_ctor_set(x_138, 2, x_130); +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_134); -x_138 = l_Lean_Compiler_LCNF_inferType(x_134, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_138) == 0) +lean_inc(x_135); +x_139 = l_Lean_Compiler_LCNF_inferType(x_135, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_139) == 0) { -lean_object* x_139; lean_object* x_140; lean_object* x_141; uint8_t x_142; -x_139 = lean_ctor_get(x_138, 0); -lean_inc(x_139); -x_140 = lean_ctor_get(x_138, 1); +lean_object* x_140; lean_object* x_141; lean_object* x_142; uint8_t x_143; +x_140 = lean_ctor_get(x_139, 0); lean_inc(x_140); -lean_dec(x_138); -x_141 = lean_ctor_get(x_14, 2); +x_141 = lean_ctor_get(x_139, 1); lean_inc(x_141); -x_142 = l_Lean_Expr_isAnyType(x_141); -lean_dec(x_141); -if (x_142 == 0) -{ -lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_dec(x_139); -x_143 = lean_ctor_get(x_14, 0); -lean_inc(x_143); -lean_dec(x_14); -x_144 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_126, x_143, x_134); -x_145 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_145, 0, x_125); -lean_ctor_set(x_145, 1, x_144); -lean_ctor_set(x_4, 1, x_145); -lean_ctor_set(x_4, 0, x_137); -x_146 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_146, 0, x_4); -x_15 = x_146; -x_16 = x_140; -goto block_23; +x_142 = lean_ctor_get(x_15, 2); +lean_inc(x_142); +x_143 = l_Lean_Expr_isErased(x_142); +lean_dec(x_142); +if (x_143 == 0) +{ +lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; +lean_dec(x_140); +x_144 = lean_ctor_get(x_15, 0); +lean_inc(x_144); +lean_dec(x_15); +x_145 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_127, x_144, x_135); +x_146 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_146, 0, x_126); +lean_ctor_set(x_146, 1, x_145); +lean_ctor_set(x_4, 1, x_146); +lean_ctor_set(x_4, 0, x_138); +x_147 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_147, 0, x_4); +x_16 = x_147; +x_17 = x_141; +goto block_24; } else { -uint8_t x_147; -x_147 = l_Lean_Expr_isAnyType(x_139); -lean_dec(x_139); -if (x_147 == 0) +uint8_t x_148; +x_148 = l_Lean_Expr_isErased(x_140); +lean_dec(x_140); +if (x_148 == 0) { -lean_object* x_148; lean_object* x_149; -x_148 = l_Lean_Compiler_LCNF_anyTypeExpr; +lean_object* x_149; lean_object* x_150; +x_149 = l_Lean_Compiler_LCNF_erasedExpr; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -x_149 = l_Lean_Compiler_LCNF_mkLcCast(x_134, x_148, x_7, x_8, x_9, x_10, x_140); -if (lean_obj_tag(x_149) == 0) +x_150 = l_Lean_Compiler_LCNF_mkLcCast(x_135, x_149, x_8, x_9, x_10, x_11, x_141); +if (lean_obj_tag(x_150) == 0) { -lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; -x_150 = lean_ctor_get(x_149, 0); -lean_inc(x_150); -x_151 = lean_ctor_get(x_149, 1); +lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; +x_151 = lean_ctor_get(x_150, 0); lean_inc(x_151); -lean_dec(x_149); -x_152 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1___closed__2; +x_152 = lean_ctor_get(x_150, 1); +lean_inc(x_152); +lean_dec(x_150); +x_153 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1___closed__2; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -x_153 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_150, x_152, x_7, x_8, x_9, x_10, x_151); -if (lean_obj_tag(x_153) == 0) +x_154 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_151, x_153, x_8, x_9, x_10, x_11, x_152); +if (lean_obj_tag(x_154) == 0) { -lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; -x_154 = lean_ctor_get(x_153, 0); -lean_inc(x_154); -x_155 = lean_ctor_get(x_153, 1); +lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; +x_155 = lean_ctor_get(x_154, 0); lean_inc(x_155); -lean_dec(x_153); -lean_inc(x_154); -x_156 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_156, 0, x_154); -x_157 = lean_array_push(x_125, x_156); -x_158 = lean_ctor_get(x_14, 0); -lean_inc(x_158); -lean_dec(x_14); -x_159 = lean_ctor_get(x_154, 0); -lean_inc(x_159); +x_156 = lean_ctor_get(x_154, 1); +lean_inc(x_156); lean_dec(x_154); -x_160 = l_Lean_Expr_fvar___override(x_159); -x_161 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_126, x_158, x_160); -x_162 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_162, 0, x_157); -lean_ctor_set(x_162, 1, x_161); -lean_ctor_set(x_4, 1, x_162); -lean_ctor_set(x_4, 0, x_137); -x_163 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_163, 0, x_4); -x_15 = x_163; -x_16 = x_155; -goto block_23; +lean_inc(x_155); +x_157 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_157, 0, x_155); +x_158 = lean_array_push(x_126, x_157); +x_159 = lean_ctor_get(x_15, 0); +lean_inc(x_159); +lean_dec(x_15); +x_160 = lean_ctor_get(x_155, 0); +lean_inc(x_160); +lean_dec(x_155); +x_161 = l_Lean_Expr_fvar___override(x_160); +x_162 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_127, x_159, x_161); +x_163 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_163, 0, x_158); +lean_ctor_set(x_163, 1, x_162); +lean_ctor_set(x_4, 1, x_163); +lean_ctor_set(x_4, 0, x_138); +x_164 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_164, 0, x_4); +x_16 = x_164; +x_17 = x_156; +goto block_24; } else { -lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; -lean_dec(x_137); +lean_object* x_165; lean_object* x_166; lean_object* x_167; lean_object* x_168; +lean_dec(x_138); +lean_dec(x_127); lean_dec(x_126); -lean_dec(x_125); lean_free_object(x_4); -lean_dec(x_14); +lean_dec(x_15); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_164 = lean_ctor_get(x_153, 0); -lean_inc(x_164); -x_165 = lean_ctor_get(x_153, 1); +x_165 = lean_ctor_get(x_154, 0); lean_inc(x_165); -if (lean_is_exclusive(x_153)) { - lean_ctor_release(x_153, 0); - lean_ctor_release(x_153, 1); - x_166 = x_153; +x_166 = lean_ctor_get(x_154, 1); +lean_inc(x_166); +if (lean_is_exclusive(x_154)) { + lean_ctor_release(x_154, 0); + lean_ctor_release(x_154, 1); + x_167 = x_154; } else { - lean_dec_ref(x_153); - x_166 = lean_box(0); + lean_dec_ref(x_154); + x_167 = lean_box(0); } -if (lean_is_scalar(x_166)) { - x_167 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_167)) { + x_168 = lean_alloc_ctor(1, 2, 0); } else { - x_167 = x_166; + x_168 = x_167; } -lean_ctor_set(x_167, 0, x_164); -lean_ctor_set(x_167, 1, x_165); -return x_167; +lean_ctor_set(x_168, 0, x_165); +lean_ctor_set(x_168, 1, x_166); +return x_168; } } else { -lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; -lean_dec(x_137); +lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; +lean_dec(x_138); +lean_dec(x_127); lean_dec(x_126); -lean_dec(x_125); lean_free_object(x_4); -lean_dec(x_14); +lean_dec(x_15); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_168 = lean_ctor_get(x_149, 0); -lean_inc(x_168); -x_169 = lean_ctor_get(x_149, 1); +x_169 = lean_ctor_get(x_150, 0); lean_inc(x_169); -if (lean_is_exclusive(x_149)) { - lean_ctor_release(x_149, 0); - lean_ctor_release(x_149, 1); - x_170 = x_149; +x_170 = lean_ctor_get(x_150, 1); +lean_inc(x_170); +if (lean_is_exclusive(x_150)) { + lean_ctor_release(x_150, 0); + lean_ctor_release(x_150, 1); + x_171 = x_150; } else { - lean_dec_ref(x_149); - x_170 = lean_box(0); + lean_dec_ref(x_150); + x_171 = lean_box(0); } -if (lean_is_scalar(x_170)) { - x_171 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_171)) { + x_172 = lean_alloc_ctor(1, 2, 0); } else { - x_171 = x_170; + x_172 = x_171; } -lean_ctor_set(x_171, 0, x_168); -lean_ctor_set(x_171, 1, x_169); -return x_171; +lean_ctor_set(x_172, 0, x_169); +lean_ctor_set(x_172, 1, x_170); +return x_172; } } else { -lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; -x_172 = lean_ctor_get(x_14, 0); -lean_inc(x_172); -lean_dec(x_14); -x_173 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_126, x_172, x_134); -x_174 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_174, 0, x_125); -lean_ctor_set(x_174, 1, x_173); -lean_ctor_set(x_4, 1, x_174); -lean_ctor_set(x_4, 0, x_137); -x_175 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_175, 0, x_4); -x_15 = x_175; -x_16 = x_140; -goto block_23; +lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; +x_173 = lean_ctor_get(x_15, 0); +lean_inc(x_173); +lean_dec(x_15); +x_174 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_127, x_173, x_135); +x_175 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_175, 0, x_126); +lean_ctor_set(x_175, 1, x_174); +lean_ctor_set(x_4, 1, x_175); +lean_ctor_set(x_4, 0, x_138); +x_176 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_176, 0, x_4); +x_16 = x_176; +x_17 = x_141; +goto block_24; } } } else { -lean_object* x_176; lean_object* x_177; lean_object* x_178; lean_object* x_179; -lean_dec(x_137); -lean_dec(x_134); +lean_object* x_177; lean_object* x_178; lean_object* x_179; lean_object* x_180; +lean_dec(x_138); +lean_dec(x_135); +lean_dec(x_127); lean_dec(x_126); -lean_dec(x_125); lean_free_object(x_4); -lean_dec(x_14); +lean_dec(x_15); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_176 = lean_ctor_get(x_138, 0); -lean_inc(x_176); -x_177 = lean_ctor_get(x_138, 1); +x_177 = lean_ctor_get(x_139, 0); lean_inc(x_177); -if (lean_is_exclusive(x_138)) { - lean_ctor_release(x_138, 0); - lean_ctor_release(x_138, 1); - x_178 = x_138; +x_178 = lean_ctor_get(x_139, 1); +lean_inc(x_178); +if (lean_is_exclusive(x_139)) { + lean_ctor_release(x_139, 0); + lean_ctor_release(x_139, 1); + x_179 = x_139; } else { - lean_dec_ref(x_138); - x_178 = lean_box(0); + lean_dec_ref(x_139); + x_179 = lean_box(0); } -if (lean_is_scalar(x_178)) { - x_179 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_179)) { + x_180 = lean_alloc_ctor(1, 2, 0); } else { - x_179 = x_178; + x_180 = x_179; } -lean_ctor_set(x_179, 0, x_176); -lean_ctor_set(x_179, 1, x_177); -return x_179; +lean_ctor_set(x_180, 0, x_177); +lean_ctor_set(x_180, 1, x_178); +return x_180; } } } } else { -lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; uint8_t x_188; -x_180 = lean_ctor_get(x_4, 1); -x_181 = lean_ctor_get(x_4, 0); -lean_inc(x_180); +lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; uint8_t x_189; +x_181 = lean_ctor_get(x_4, 1); +x_182 = lean_ctor_get(x_4, 0); lean_inc(x_181); -lean_dec(x_4); -x_182 = lean_ctor_get(x_180, 0); lean_inc(x_182); -x_183 = lean_ctor_get(x_180, 1); +lean_dec(x_4); +x_183 = lean_ctor_get(x_181, 0); lean_inc(x_183); -if (lean_is_exclusive(x_180)) { - lean_ctor_release(x_180, 0); - lean_ctor_release(x_180, 1); - x_184 = x_180; -} else { - lean_dec_ref(x_180); - x_184 = lean_box(0); -} -x_185 = lean_ctor_get(x_181, 0); -lean_inc(x_185); -x_186 = lean_ctor_get(x_181, 1); -lean_inc(x_186); -x_187 = lean_ctor_get(x_181, 2); -lean_inc(x_187); -x_188 = lean_nat_dec_lt(x_186, x_187); -if (x_188 == 0) -{ -lean_object* x_189; lean_object* x_190; lean_object* x_191; -lean_dec(x_187); -lean_dec(x_186); -lean_dec(x_185); -lean_dec(x_14); -if (lean_is_scalar(x_184)) { - x_189 = lean_alloc_ctor(0, 2, 0); -} else { - x_189 = x_184; -} -lean_ctor_set(x_189, 0, x_182); -lean_ctor_set(x_189, 1, x_183); -x_190 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_190, 0, x_181); -lean_ctor_set(x_190, 1, x_189); -x_191 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_191, 0, x_190); -x_15 = x_191; -x_16 = x_11; -goto block_23; -} -else -{ -lean_object* x_192; lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; +x_184 = lean_ctor_get(x_181, 1); +lean_inc(x_184); if (lean_is_exclusive(x_181)) { lean_ctor_release(x_181, 0); lean_ctor_release(x_181, 1); - lean_ctor_release(x_181, 2); - x_192 = x_181; + x_185 = x_181; } else { lean_dec_ref(x_181); - x_192 = lean_box(0); + x_185 = lean_box(0); } -x_193 = lean_array_fget(x_185, x_186); -x_194 = lean_unsigned_to_nat(1u); -x_195 = lean_nat_add(x_186, x_194); +x_186 = lean_ctor_get(x_182, 0); +lean_inc(x_186); +x_187 = lean_ctor_get(x_182, 1); +lean_inc(x_187); +x_188 = lean_ctor_get(x_182, 2); +lean_inc(x_188); +x_189 = lean_nat_dec_lt(x_187, x_188); +if (x_189 == 0) +{ +lean_object* x_190; lean_object* x_191; lean_object* x_192; +lean_dec(x_188); +lean_dec(x_187); lean_dec(x_186); -if (lean_is_scalar(x_192)) { - x_196 = lean_alloc_ctor(0, 3, 0); +lean_dec(x_15); +if (lean_is_scalar(x_185)) { + x_190 = lean_alloc_ctor(0, 2, 0); } else { - x_196 = x_192; + x_190 = x_185; } -lean_ctor_set(x_196, 0, x_185); -lean_ctor_set(x_196, 1, x_195); -lean_ctor_set(x_196, 2, x_187); +lean_ctor_set(x_190, 0, x_183); +lean_ctor_set(x_190, 1, x_184); +x_191 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_191, 0, x_182); +lean_ctor_set(x_191, 1, x_190); +x_192 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_192, 0, x_191); +x_16 = x_192; +x_17 = x_12; +goto block_24; +} +else +{ +lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; lean_object* x_198; +if (lean_is_exclusive(x_182)) { + lean_ctor_release(x_182, 0); + lean_ctor_release(x_182, 1); + lean_ctor_release(x_182, 2); + x_193 = x_182; +} else { + lean_dec_ref(x_182); + x_193 = lean_box(0); +} +x_194 = lean_array_fget(x_186, x_187); +x_195 = lean_unsigned_to_nat(1u); +x_196 = lean_nat_add(x_187, x_195); +lean_dec(x_187); +if (lean_is_scalar(x_193)) { + x_197 = lean_alloc_ctor(0, 3, 0); +} else { + x_197 = x_193; +} +lean_ctor_set(x_197, 0, x_186); +lean_ctor_set(x_197, 1, x_196); +lean_ctor_set(x_197, 2, x_188); +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_193); -x_197 = l_Lean_Compiler_LCNF_inferType(x_193, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_197) == 0) +lean_inc(x_194); +x_198 = l_Lean_Compiler_LCNF_inferType(x_194, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_198) == 0) { -lean_object* x_198; lean_object* x_199; lean_object* x_200; uint8_t x_201; -x_198 = lean_ctor_get(x_197, 0); -lean_inc(x_198); -x_199 = lean_ctor_get(x_197, 1); +lean_object* x_199; lean_object* x_200; lean_object* x_201; uint8_t x_202; +x_199 = lean_ctor_get(x_198, 0); lean_inc(x_199); -lean_dec(x_197); -x_200 = lean_ctor_get(x_14, 2); +x_200 = lean_ctor_get(x_198, 1); lean_inc(x_200); -x_201 = l_Lean_Expr_isAnyType(x_200); -lean_dec(x_200); -if (x_201 == 0) -{ -lean_object* x_202; lean_object* x_203; lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_dec(x_198); -x_202 = lean_ctor_get(x_14, 0); -lean_inc(x_202); -lean_dec(x_14); -x_203 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_183, x_202, x_193); -if (lean_is_scalar(x_184)) { - x_204 = lean_alloc_ctor(0, 2, 0); +x_201 = lean_ctor_get(x_15, 2); +lean_inc(x_201); +x_202 = l_Lean_Expr_isErased(x_201); +lean_dec(x_201); +if (x_202 == 0) +{ +lean_object* x_203; lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_object* x_207; +lean_dec(x_199); +x_203 = lean_ctor_get(x_15, 0); +lean_inc(x_203); +lean_dec(x_15); +x_204 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_184, x_203, x_194); +if (lean_is_scalar(x_185)) { + x_205 = lean_alloc_ctor(0, 2, 0); } else { - x_204 = x_184; + x_205 = x_185; } -lean_ctor_set(x_204, 0, x_182); -lean_ctor_set(x_204, 1, x_203); -x_205 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_205, 0, x_196); +lean_ctor_set(x_205, 0, x_183); lean_ctor_set(x_205, 1, x_204); -x_206 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_206, 0, x_205); -x_15 = x_206; -x_16 = x_199; -goto block_23; +x_206 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_206, 0, x_197); +lean_ctor_set(x_206, 1, x_205); +x_207 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_207, 0, x_206); +x_16 = x_207; +x_17 = x_200; +goto block_24; } else { -uint8_t x_207; -x_207 = l_Lean_Expr_isAnyType(x_198); -lean_dec(x_198); -if (x_207 == 0) +uint8_t x_208; +x_208 = l_Lean_Expr_isErased(x_199); +lean_dec(x_199); +if (x_208 == 0) { -lean_object* x_208; lean_object* x_209; -x_208 = l_Lean_Compiler_LCNF_anyTypeExpr; +lean_object* x_209; lean_object* x_210; +x_209 = l_Lean_Compiler_LCNF_erasedExpr; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -x_209 = l_Lean_Compiler_LCNF_mkLcCast(x_193, x_208, x_7, x_8, x_9, x_10, x_199); -if (lean_obj_tag(x_209) == 0) +x_210 = l_Lean_Compiler_LCNF_mkLcCast(x_194, x_209, x_8, x_9, x_10, x_11, x_200); +if (lean_obj_tag(x_210) == 0) { -lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; -x_210 = lean_ctor_get(x_209, 0); -lean_inc(x_210); -x_211 = lean_ctor_get(x_209, 1); +lean_object* x_211; lean_object* x_212; lean_object* x_213; lean_object* x_214; +x_211 = lean_ctor_get(x_210, 0); lean_inc(x_211); -lean_dec(x_209); -x_212 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1___closed__2; +x_212 = lean_ctor_get(x_210, 1); +lean_inc(x_212); +lean_dec(x_210); +x_213 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1___closed__2; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -x_213 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_210, x_212, x_7, x_8, x_9, x_10, x_211); -if (lean_obj_tag(x_213) == 0) +x_214 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_211, x_213, x_8, x_9, x_10, x_11, x_212); +if (lean_obj_tag(x_214) == 0) { -lean_object* x_214; lean_object* x_215; lean_object* x_216; lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; lean_object* x_222; lean_object* x_223; lean_object* x_224; -x_214 = lean_ctor_get(x_213, 0); -lean_inc(x_214); -x_215 = lean_ctor_get(x_213, 1); +lean_object* x_215; lean_object* x_216; lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; +x_215 = lean_ctor_get(x_214, 0); lean_inc(x_215); -lean_dec(x_213); -lean_inc(x_214); -x_216 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_216, 0, x_214); -x_217 = lean_array_push(x_182, x_216); -x_218 = lean_ctor_get(x_14, 0); -lean_inc(x_218); -lean_dec(x_14); -x_219 = lean_ctor_get(x_214, 0); -lean_inc(x_219); +x_216 = lean_ctor_get(x_214, 1); +lean_inc(x_216); lean_dec(x_214); -x_220 = l_Lean_Expr_fvar___override(x_219); -x_221 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_183, x_218, x_220); -if (lean_is_scalar(x_184)) { - x_222 = lean_alloc_ctor(0, 2, 0); +lean_inc(x_215); +x_217 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_217, 0, x_215); +x_218 = lean_array_push(x_183, x_217); +x_219 = lean_ctor_get(x_15, 0); +lean_inc(x_219); +lean_dec(x_15); +x_220 = lean_ctor_get(x_215, 0); +lean_inc(x_220); +lean_dec(x_215); +x_221 = l_Lean_Expr_fvar___override(x_220); +x_222 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_184, x_219, x_221); +if (lean_is_scalar(x_185)) { + x_223 = lean_alloc_ctor(0, 2, 0); } else { - x_222 = x_184; + x_223 = x_185; } -lean_ctor_set(x_222, 0, x_217); -lean_ctor_set(x_222, 1, x_221); -x_223 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_223, 0, x_196); +lean_ctor_set(x_223, 0, x_218); lean_ctor_set(x_223, 1, x_222); -x_224 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_224, 0, x_223); -x_15 = x_224; -x_16 = x_215; -goto block_23; +x_224 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_224, 0, x_197); +lean_ctor_set(x_224, 1, x_223); +x_225 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_225, 0, x_224); +x_16 = x_225; +x_17 = x_216; +goto block_24; } else { -lean_object* x_225; lean_object* x_226; lean_object* x_227; lean_object* x_228; -lean_dec(x_196); +lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; +lean_dec(x_197); +lean_dec(x_185); lean_dec(x_184); lean_dec(x_183); -lean_dec(x_182); -lean_dec(x_14); +lean_dec(x_15); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_225 = lean_ctor_get(x_213, 0); -lean_inc(x_225); -x_226 = lean_ctor_get(x_213, 1); +x_226 = lean_ctor_get(x_214, 0); lean_inc(x_226); -if (lean_is_exclusive(x_213)) { - lean_ctor_release(x_213, 0); - lean_ctor_release(x_213, 1); - x_227 = x_213; +x_227 = lean_ctor_get(x_214, 1); +lean_inc(x_227); +if (lean_is_exclusive(x_214)) { + lean_ctor_release(x_214, 0); + lean_ctor_release(x_214, 1); + x_228 = x_214; } else { - lean_dec_ref(x_213); - x_227 = lean_box(0); + lean_dec_ref(x_214); + x_228 = lean_box(0); } -if (lean_is_scalar(x_227)) { - x_228 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_228)) { + x_229 = lean_alloc_ctor(1, 2, 0); } else { - x_228 = x_227; + x_229 = x_228; } -lean_ctor_set(x_228, 0, x_225); -lean_ctor_set(x_228, 1, x_226); -return x_228; +lean_ctor_set(x_229, 0, x_226); +lean_ctor_set(x_229, 1, x_227); +return x_229; } } else { -lean_object* x_229; lean_object* x_230; lean_object* x_231; lean_object* x_232; -lean_dec(x_196); +lean_object* x_230; lean_object* x_231; lean_object* x_232; lean_object* x_233; +lean_dec(x_197); +lean_dec(x_185); lean_dec(x_184); lean_dec(x_183); -lean_dec(x_182); -lean_dec(x_14); +lean_dec(x_15); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -x_229 = lean_ctor_get(x_209, 0); -lean_inc(x_229); -x_230 = lean_ctor_get(x_209, 1); +x_230 = lean_ctor_get(x_210, 0); lean_inc(x_230); -if (lean_is_exclusive(x_209)) { - lean_ctor_release(x_209, 0); - lean_ctor_release(x_209, 1); - x_231 = x_209; +x_231 = lean_ctor_get(x_210, 1); +lean_inc(x_231); +if (lean_is_exclusive(x_210)) { + lean_ctor_release(x_210, 0); + lean_ctor_release(x_210, 1); + x_232 = x_210; } else { - lean_dec_ref(x_209); - x_231 = lean_box(0); + lean_dec_ref(x_210); + x_232 = lean_box(0); } -if (lean_is_scalar(x_231)) { - x_232 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_232)) { + x_233 = lean_alloc_ctor(1, 2, 0); } else { - x_232 = x_231; + x_233 = x_232; } -lean_ctor_set(x_232, 0, x_229); -lean_ctor_set(x_232, 1, x_230); -return x_232; +lean_ctor_set(x_233, 0, x_230); +lean_ctor_set(x_233, 1, x_231); +return x_233; } } else { -lean_object* x_233; lean_object* x_234; lean_object* x_235; lean_object* x_236; lean_object* x_237; -x_233 = lean_ctor_get(x_14, 0); -lean_inc(x_233); -lean_dec(x_14); -x_234 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_183, x_233, x_193); -if (lean_is_scalar(x_184)) { - x_235 = lean_alloc_ctor(0, 2, 0); +lean_object* x_234; lean_object* x_235; lean_object* x_236; lean_object* x_237; lean_object* x_238; +x_234 = lean_ctor_get(x_15, 0); +lean_inc(x_234); +lean_dec(x_15); +x_235 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_184, x_234, x_194); +if (lean_is_scalar(x_185)) { + x_236 = lean_alloc_ctor(0, 2, 0); } else { - x_235 = x_184; + x_236 = x_185; } -lean_ctor_set(x_235, 0, x_182); -lean_ctor_set(x_235, 1, x_234); -x_236 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_236, 0, x_196); +lean_ctor_set(x_236, 0, x_183); lean_ctor_set(x_236, 1, x_235); -x_237 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_237, 0, x_236); -x_15 = x_237; -x_16 = x_199; -goto block_23; +x_237 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_237, 0, x_197); +lean_ctor_set(x_237, 1, x_236); +x_238 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_238, 0, x_237); +x_16 = x_238; +x_17 = x_200; +goto block_24; } } } else { -lean_object* x_238; lean_object* x_239; lean_object* x_240; lean_object* x_241; -lean_dec(x_196); -lean_dec(x_193); +lean_object* x_239; lean_object* x_240; lean_object* x_241; lean_object* x_242; +lean_dec(x_197); +lean_dec(x_194); +lean_dec(x_185); lean_dec(x_184); lean_dec(x_183); -lean_dec(x_182); -lean_dec(x_14); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -x_238 = lean_ctor_get(x_197, 0); -lean_inc(x_238); -x_239 = lean_ctor_get(x_197, 1); -lean_inc(x_239); -if (lean_is_exclusive(x_197)) { - lean_ctor_release(x_197, 0); - lean_ctor_release(x_197, 1); - x_240 = x_197; -} else { - lean_dec_ref(x_197); - x_240 = lean_box(0); -} -if (lean_is_scalar(x_240)) { - x_241 = lean_alloc_ctor(1, 2, 0); -} else { - x_241 = x_240; -} -lean_ctor_set(x_241, 0, x_238); -lean_ctor_set(x_241, 1, x_239); -return x_241; -} -} -} -block_23: -{ -if (lean_obj_tag(x_15) == 0) -{ -lean_object* x_17; lean_object* x_18; -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -x_17 = lean_ctor_get(x_15, 0); -lean_inc(x_17); lean_dec(x_15); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_17); -lean_ctor_set(x_18, 1, x_16); -return x_18; +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +x_239 = lean_ctor_get(x_198, 0); +lean_inc(x_239); +x_240 = lean_ctor_get(x_198, 1); +lean_inc(x_240); +if (lean_is_exclusive(x_198)) { + lean_ctor_release(x_198, 0); + lean_ctor_release(x_198, 1); + x_241 = x_198; +} else { + lean_dec_ref(x_198); + x_241 = lean_box(0); +} +if (lean_is_scalar(x_241)) { + x_242 = lean_alloc_ctor(1, 2, 0); +} else { + x_242 = x_241; +} +lean_ctor_set(x_242, 0, x_239); +lean_ctor_set(x_242, 1, x_240); +return x_242; +} +} +} +block_24: +{ +if (lean_obj_tag(x_16) == 0) +{ +lean_object* x_18; lean_object* x_19; +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +x_18 = lean_ctor_get(x_16, 0); +lean_inc(x_18); +lean_dec(x_16); +x_19 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_19, 0, x_18); +lean_ctor_set(x_19, 1, x_17); +return x_19; } else { -lean_object* x_19; size_t x_20; size_t x_21; -x_19 = lean_ctor_get(x_15, 0); -lean_inc(x_19); -lean_dec(x_15); -x_20 = 1; -x_21 = lean_usize_add(x_3, x_20); -x_3 = x_21; -x_4 = x_19; -x_11 = x_16; +lean_object* x_20; size_t x_21; size_t x_22; +x_20 = lean_ctor_get(x_16, 0); +lean_inc(x_20); +lean_dec(x_16); +x_21 = 1; +x_22 = lean_usize_add(x_3, x_21); +x_3 = x_22; +x_4 = x_20; +x_12 = x_17; goto _start; } } @@ -9905,949 +5789,989 @@ lean_ctor_set(x_3, 1, x_2); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t 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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t 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_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; lean_object* x_20; -x_12 = lean_array_get_size(x_3); -x_13 = lean_unsigned_to_nat(0u); -x_14 = l_Array_toSubarray___rarg(x_3, x_13, x_12); -x_15 = l_Lean_Compiler_LCNF_Simp_betaReduce___closed__1; -x_16 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_16, 0, x_14); -lean_ctor_set(x_16, 1, x_15); -x_17 = lean_array_get_size(x_1); -x_18 = lean_usize_of_nat(x_17); -lean_dec(x_17); -x_19 = 0; +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; size_t x_19; size_t x_20; lean_object* x_21; +x_13 = lean_array_get_size(x_3); +x_14 = lean_unsigned_to_nat(0u); +x_15 = l_Array_toSubarray___rarg(x_3, x_14, x_13); +x_16 = l_Lean_Compiler_LCNF_Simp_betaReduce___closed__1; +x_17 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_17, 0, x_15); +lean_ctor_set(x_17, 1, x_16); +x_18 = lean_array_get_size(x_1); +x_19 = lean_usize_of_nat(x_18); +lean_dec(x_18); +x_20 = 0; +lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_7); -x_20 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1(x_1, x_18, x_19, x_16, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -if (lean_obj_tag(x_20) == 0) +x_21 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1(x_1, x_19, x_20, x_17, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +if (lean_obj_tag(x_21) == 0) { -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_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -x_22 = lean_ctor_get(x_21, 1); +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_22 = lean_ctor_get(x_21, 0); lean_inc(x_22); -lean_dec(x_21); -x_23 = lean_ctor_get(x_20, 1); +x_23 = lean_ctor_get(x_22, 1); lean_inc(x_23); -lean_dec(x_20); -x_24 = lean_ctor_get(x_22, 0); -lean_inc(x_24); -x_25 = lean_ctor_get(x_22, 1); -lean_inc(x_25); lean_dec(x_22); -x_26 = l_Lean_Compiler_LCNF_Code_internalize(x_2, x_25, x_7, x_8, x_9, x_10, x_23); -x_27 = lean_ctor_get(x_26, 0); -lean_inc(x_27); -x_28 = lean_ctor_get(x_26, 1); +x_24 = lean_ctor_get(x_21, 1); +lean_inc(x_24); +lean_dec(x_21); +x_25 = lean_ctor_get(x_23, 0); +lean_inc(x_25); +x_26 = lean_ctor_get(x_23, 1); +lean_inc(x_26); +lean_dec(x_23); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +x_27 = l_Lean_Compiler_LCNF_Code_internalize(x_2, x_26, x_8, x_9, x_10, x_11, 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; +x_28 = lean_ctor_get(x_27, 0); lean_inc(x_28); -lean_dec(x_26); -x_29 = l_Lean_Compiler_LCNF_attachCodeDecls(x_24, x_27); -lean_dec(x_24); +x_29 = lean_ctor_get(x_27, 1); lean_inc(x_29); -x_30 = l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(x_29, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_28); -if (lean_obj_tag(x_30) == 0) +lean_dec(x_27); +x_30 = l_Lean_Compiler_LCNF_attachCodeDecls(x_25, x_28); +lean_dec(x_25); +lean_inc(x_30); +x_31 = l_Lean_Compiler_LCNF_Simp_updateFunDeclInfo(x_30, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_29); +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_29); -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_30); +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_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_30); +lean_ctor_set(x_35, 1, x_34); +return x_35; +} +} +else +{ +uint8_t x_36; lean_dec(x_30); -x_34 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_34, 0, x_29); -lean_ctor_set(x_34, 1, x_33); -return x_34; -} +x_36 = !lean_is_exclusive(x_31); +if (x_36 == 0) +{ +return x_31; } else { -uint8_t x_35; -lean_dec(x_29); -x_35 = !lean_is_exclusive(x_30); -if (x_35 == 0) -{ -return x_30; -} -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_25); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_2); -x_39 = !lean_is_exclusive(x_20); -if (x_39 == 0) +x_40 = !lean_is_exclusive(x_27); +if (x_40 == 0) { -return x_20; +return x_27; } else { -lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_40 = lean_ctor_get(x_20, 0); -x_41 = lean_ctor_get(x_20, 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_20); -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_44; +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_2); +x_44 = !lean_is_exclusive(x_21); +if (x_44 == 0) +{ +return x_21; +} +else +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_21, 0); +x_46 = lean_ctor_get(x_21, 1); +lean_inc(x_46); +lean_inc(x_45); +lean_dec(x_21); +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; } } } } -LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__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_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__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) { _start: { -size_t x_12; size_t x_13; lean_object* x_14; -x_12 = lean_unbox_usize(x_2); +size_t x_13; size_t x_14; lean_object* x_15; +x_13 = lean_unbox_usize(x_2); lean_dec(x_2); -x_13 = lean_unbox_usize(x_3); +x_14 = lean_unbox_usize(x_3); lean_dec(x_3); -x_14 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1(x_1, x_12, x_13, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +x_15 = l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Simp_betaReduce___spec__1(x_1, x_13, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +return x_15; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce___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: +{ +uint8_t x_13; lean_object* x_14; +x_13 = lean_unbox(x_4); +lean_dec(x_4); +x_14 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_1, x_2, x_3, x_13, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_1); return x_14; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_betaReduce___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseLetDecl(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: { -uint8_t x_12; lean_object* x_13; -x_12 = lean_unbox(x_4); -lean_dec(x_4); -x_13 = l_Lean_Compiler_LCNF_Simp_betaReduce(x_1, x_2, x_3, x_12, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_1); -return x_13; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseLetDecl(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_9; lean_object* x_10; lean_object* x_11; -x_9 = l_Lean_Compiler_LCNF_eraseLetDecl(x_1, x_4, x_5, x_6, x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_10); -return x_11; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseLetDecl___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseFunDecl(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: -{ -uint8_t x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; -x_9 = 1; -x_10 = l_Lean_Compiler_LCNF_eraseFunDecl(x_1, x_9, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = l_Lean_Compiler_LCNF_eraseLetDecl(x_1, x_5, x_6, x_7, x_8, x_9); x_11 = lean_ctor_get(x_10, 1); lean_inc(x_11); lean_dec(x_10); -x_12 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_11); +x_12 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_11); return x_12; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseFunDecl___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_eraseFunDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFVarSubst(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_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; -x_10 = lean_st_ref_get(x_8, x_9); -x_11 = lean_ctor_get(x_10, 1); -lean_inc(x_11); -lean_dec(x_10); -x_12 = lean_st_ref_take(x_4, x_11); -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -x_14 = lean_ctor_get(x_12, 1); -lean_inc(x_14); -lean_dec(x_12); -x_15 = !lean_is_exclusive(x_13); -if (x_15 == 0) -{ -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_13, 0); -lean_inc(x_2); -x_17 = l_Lean_Expr_fvar___override(x_2); -lean_inc(x_1); -x_18 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_16, x_1, x_17); -lean_ctor_set(x_13, 0, x_18); -x_19 = lean_st_ref_set(x_4, x_13, x_14); -x_20 = lean_ctor_get(x_19, 1); -lean_inc(x_20); -lean_dec(x_19); -x_21 = l_Lean_Compiler_LCNF_getBinderName(x_1, x_5, x_6, x_7, x_8, x_20); -if (lean_obj_tag(x_21) == 0) -{ -uint8_t x_22; -x_22 = !lean_is_exclusive(x_21); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; uint8_t x_25; -x_23 = lean_ctor_get(x_21, 0); -x_24 = lean_ctor_get(x_21, 1); -x_25 = l_Lean_Name_isInternal(x_23); -if (x_25 == 0) -{ -lean_object* x_26; -lean_free_object(x_21); -lean_inc(x_2); -x_26 = l_Lean_Compiler_LCNF_getBinderName(x_2, x_5, x_6, x_7, x_8, x_24); -if (lean_obj_tag(x_26) == 0) -{ -uint8_t x_27; -x_27 = !lean_is_exclusive(x_26); -if (x_27 == 0) -{ -lean_object* x_28; lean_object* x_29; uint8_t x_30; -x_28 = lean_ctor_get(x_26, 0); -x_29 = lean_ctor_get(x_26, 1); -x_30 = l_Lean_Name_isInternal(x_28); -lean_dec(x_28); -if (x_30 == 0) -{ -lean_object* x_31; -lean_dec(x_23); -lean_dec(x_2); -x_31 = lean_box(0); -lean_ctor_set(x_26, 0, x_31); -return x_26; -} -else -{ -lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; uint8_t x_37; -lean_free_object(x_26); -x_32 = lean_st_ref_get(x_8, x_29); -x_33 = lean_ctor_get(x_32, 1); -lean_inc(x_33); -lean_dec(x_32); -x_34 = lean_st_ref_take(x_4, x_33); -x_35 = lean_ctor_get(x_34, 0); -lean_inc(x_35); -x_36 = lean_ctor_get(x_34, 1); -lean_inc(x_36); -lean_dec(x_34); -x_37 = !lean_is_exclusive(x_35); -if (x_37 == 0) -{ -lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; -x_38 = lean_ctor_get(x_35, 2); -x_39 = l_Lean_RBNode_insert___at_Lean_Elab_Term_withAuxDecl___spec__1(x_38, x_2, x_23); -lean_ctor_set(x_35, 2, x_39); -x_40 = lean_st_ref_set(x_4, x_35, x_36); -x_41 = !lean_is_exclusive(x_40); -if (x_41 == 0) -{ -lean_object* x_42; lean_object* x_43; -x_42 = lean_ctor_get(x_40, 0); -lean_dec(x_42); -x_43 = lean_box(0); -lean_ctor_set(x_40, 0, x_43); -return x_40; -} -else -{ -lean_object* x_44; lean_object* x_45; lean_object* x_46; -x_44 = lean_ctor_get(x_40, 1); -lean_inc(x_44); -lean_dec(x_40); -x_45 = lean_box(0); -x_46 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_46, 0, x_45); -lean_ctor_set(x_46, 1, x_44); -return x_46; -} -} -else -{ -lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; -x_47 = lean_ctor_get(x_35, 0); -x_48 = lean_ctor_get(x_35, 1); -x_49 = lean_ctor_get(x_35, 2); -x_50 = lean_ctor_get(x_35, 3); -x_51 = lean_ctor_get_uint8(x_35, sizeof(void*)*7); -x_52 = lean_ctor_get(x_35, 4); -x_53 = lean_ctor_get(x_35, 5); -x_54 = lean_ctor_get(x_35, 6); -lean_inc(x_54); -lean_inc(x_53); -lean_inc(x_52); -lean_inc(x_50); -lean_inc(x_49); -lean_inc(x_48); -lean_inc(x_47); -lean_dec(x_35); -x_55 = l_Lean_RBNode_insert___at_Lean_Elab_Term_withAuxDecl___spec__1(x_49, x_2, x_23); -x_56 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_56, 0, x_47); -lean_ctor_set(x_56, 1, x_48); -lean_ctor_set(x_56, 2, x_55); -lean_ctor_set(x_56, 3, x_50); -lean_ctor_set(x_56, 4, x_52); -lean_ctor_set(x_56, 5, x_53); -lean_ctor_set(x_56, 6, x_54); -lean_ctor_set_uint8(x_56, sizeof(void*)*7, x_51); -x_57 = lean_st_ref_set(x_4, x_56, x_36); -x_58 = lean_ctor_get(x_57, 1); -lean_inc(x_58); -if (lean_is_exclusive(x_57)) { - lean_ctor_release(x_57, 0); - lean_ctor_release(x_57, 1); - x_59 = x_57; -} else { - lean_dec_ref(x_57); - x_59 = lean_box(0); -} -x_60 = lean_box(0); -if (lean_is_scalar(x_59)) { - x_61 = lean_alloc_ctor(0, 2, 0); -} else { - x_61 = x_59; -} -lean_ctor_set(x_61, 0, x_60); -lean_ctor_set(x_61, 1, x_58); -return x_61; -} -} -} -else -{ -lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_62 = lean_ctor_get(x_26, 0); -x_63 = lean_ctor_get(x_26, 1); -lean_inc(x_63); -lean_inc(x_62); -lean_dec(x_26); -x_64 = l_Lean_Name_isInternal(x_62); -lean_dec(x_62); -if (x_64 == 0) -{ -lean_object* x_65; lean_object* x_66; -lean_dec(x_23); -lean_dec(x_2); -x_65 = lean_box(0); -x_66 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_66, 0, x_65); -lean_ctor_set(x_66, 1, x_63); -return x_66; -} -else -{ -lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; uint8_t x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; -x_67 = lean_st_ref_get(x_8, x_63); -x_68 = lean_ctor_get(x_67, 1); -lean_inc(x_68); -lean_dec(x_67); -x_69 = lean_st_ref_take(x_4, x_68); -x_70 = lean_ctor_get(x_69, 0); -lean_inc(x_70); -x_71 = lean_ctor_get(x_69, 1); -lean_inc(x_71); -lean_dec(x_69); -x_72 = lean_ctor_get(x_70, 0); -lean_inc(x_72); -x_73 = lean_ctor_get(x_70, 1); -lean_inc(x_73); -x_74 = lean_ctor_get(x_70, 2); -lean_inc(x_74); -x_75 = lean_ctor_get(x_70, 3); -lean_inc(x_75); -x_76 = lean_ctor_get_uint8(x_70, sizeof(void*)*7); -x_77 = lean_ctor_get(x_70, 4); -lean_inc(x_77); -x_78 = lean_ctor_get(x_70, 5); -lean_inc(x_78); -x_79 = lean_ctor_get(x_70, 6); -lean_inc(x_79); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - lean_ctor_release(x_70, 2); - lean_ctor_release(x_70, 3); - lean_ctor_release(x_70, 4); - lean_ctor_release(x_70, 5); - lean_ctor_release(x_70, 6); - x_80 = x_70; -} else { - lean_dec_ref(x_70); - x_80 = lean_box(0); -} -x_81 = l_Lean_RBNode_insert___at_Lean_Elab_Term_withAuxDecl___spec__1(x_74, x_2, x_23); -if (lean_is_scalar(x_80)) { - x_82 = lean_alloc_ctor(0, 7, 1); -} else { - x_82 = x_80; -} -lean_ctor_set(x_82, 0, x_72); -lean_ctor_set(x_82, 1, x_73); -lean_ctor_set(x_82, 2, x_81); -lean_ctor_set(x_82, 3, x_75); -lean_ctor_set(x_82, 4, x_77); -lean_ctor_set(x_82, 5, x_78); -lean_ctor_set(x_82, 6, x_79); -lean_ctor_set_uint8(x_82, sizeof(void*)*7, x_76); -x_83 = lean_st_ref_set(x_4, x_82, x_71); -x_84 = lean_ctor_get(x_83, 1); -lean_inc(x_84); -if (lean_is_exclusive(x_83)) { - lean_ctor_release(x_83, 0); - lean_ctor_release(x_83, 1); - x_85 = x_83; -} else { - lean_dec_ref(x_83); - x_85 = lean_box(0); -} -x_86 = lean_box(0); -if (lean_is_scalar(x_85)) { - x_87 = lean_alloc_ctor(0, 2, 0); -} else { - x_87 = x_85; -} -lean_ctor_set(x_87, 0, x_86); -lean_ctor_set(x_87, 1, x_84); -return x_87; -} -} -} -else -{ -uint8_t x_88; -lean_dec(x_23); -lean_dec(x_2); -x_88 = !lean_is_exclusive(x_26); -if (x_88 == 0) -{ -return x_26; -} -else -{ -lean_object* x_89; lean_object* x_90; lean_object* x_91; -x_89 = lean_ctor_get(x_26, 0); -x_90 = lean_ctor_get(x_26, 1); -lean_inc(x_90); -lean_inc(x_89); -lean_dec(x_26); -x_91 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_91, 0, x_89); -lean_ctor_set(x_91, 1, x_90); -return x_91; -} -} -} -else -{ -lean_object* x_92; -lean_dec(x_23); -lean_dec(x_2); -x_92 = lean_box(0); -lean_ctor_set(x_21, 0, x_92); -return x_21; -} -} -else -{ -lean_object* x_93; lean_object* x_94; uint8_t x_95; -x_93 = lean_ctor_get(x_21, 0); -x_94 = lean_ctor_get(x_21, 1); -lean_inc(x_94); -lean_inc(x_93); -lean_dec(x_21); -x_95 = l_Lean_Name_isInternal(x_93); -if (x_95 == 0) -{ -lean_object* x_96; -lean_inc(x_2); -x_96 = l_Lean_Compiler_LCNF_getBinderName(x_2, x_5, x_6, x_7, x_8, x_94); -if (lean_obj_tag(x_96) == 0) -{ -lean_object* x_97; lean_object* x_98; lean_object* x_99; uint8_t x_100; -x_97 = lean_ctor_get(x_96, 0); -lean_inc(x_97); -x_98 = lean_ctor_get(x_96, 1); -lean_inc(x_98); -if (lean_is_exclusive(x_96)) { - lean_ctor_release(x_96, 0); - lean_ctor_release(x_96, 1); - x_99 = x_96; -} else { - lean_dec_ref(x_96); - x_99 = lean_box(0); -} -x_100 = l_Lean_Name_isInternal(x_97); -lean_dec(x_97); -if (x_100 == 0) -{ -lean_object* x_101; lean_object* x_102; -lean_dec(x_93); -lean_dec(x_2); -x_101 = lean_box(0); -if (lean_is_scalar(x_99)) { - x_102 = lean_alloc_ctor(0, 2, 0); -} else { - x_102 = x_99; -} -lean_ctor_set(x_102, 0, x_101); -lean_ctor_set(x_102, 1, x_98); -return x_102; -} -else -{ -lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; uint8_t x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; -lean_dec(x_99); -x_103 = lean_st_ref_get(x_8, x_98); -x_104 = lean_ctor_get(x_103, 1); -lean_inc(x_104); -lean_dec(x_103); -x_105 = lean_st_ref_take(x_4, x_104); -x_106 = lean_ctor_get(x_105, 0); -lean_inc(x_106); -x_107 = lean_ctor_get(x_105, 1); -lean_inc(x_107); -lean_dec(x_105); -x_108 = lean_ctor_get(x_106, 0); -lean_inc(x_108); -x_109 = lean_ctor_get(x_106, 1); -lean_inc(x_109); -x_110 = lean_ctor_get(x_106, 2); -lean_inc(x_110); -x_111 = lean_ctor_get(x_106, 3); -lean_inc(x_111); -x_112 = lean_ctor_get_uint8(x_106, sizeof(void*)*7); -x_113 = lean_ctor_get(x_106, 4); -lean_inc(x_113); -x_114 = lean_ctor_get(x_106, 5); -lean_inc(x_114); -x_115 = lean_ctor_get(x_106, 6); -lean_inc(x_115); -if (lean_is_exclusive(x_106)) { - lean_ctor_release(x_106, 0); - lean_ctor_release(x_106, 1); - lean_ctor_release(x_106, 2); - lean_ctor_release(x_106, 3); - lean_ctor_release(x_106, 4); - lean_ctor_release(x_106, 5); - lean_ctor_release(x_106, 6); - x_116 = x_106; -} else { - lean_dec_ref(x_106); - x_116 = lean_box(0); -} -x_117 = l_Lean_RBNode_insert___at_Lean_Elab_Term_withAuxDecl___spec__1(x_110, x_2, x_93); -if (lean_is_scalar(x_116)) { - x_118 = lean_alloc_ctor(0, 7, 1); -} else { - x_118 = x_116; -} -lean_ctor_set(x_118, 0, x_108); -lean_ctor_set(x_118, 1, x_109); -lean_ctor_set(x_118, 2, x_117); -lean_ctor_set(x_118, 3, x_111); -lean_ctor_set(x_118, 4, x_113); -lean_ctor_set(x_118, 5, x_114); -lean_ctor_set(x_118, 6, x_115); -lean_ctor_set_uint8(x_118, sizeof(void*)*7, x_112); -x_119 = lean_st_ref_set(x_4, x_118, x_107); -x_120 = lean_ctor_get(x_119, 1); -lean_inc(x_120); -if (lean_is_exclusive(x_119)) { - lean_ctor_release(x_119, 0); - lean_ctor_release(x_119, 1); - x_121 = x_119; -} else { - lean_dec_ref(x_119); - x_121 = lean_box(0); -} -x_122 = lean_box(0); -if (lean_is_scalar(x_121)) { - x_123 = lean_alloc_ctor(0, 2, 0); -} else { - x_123 = x_121; -} -lean_ctor_set(x_123, 0, x_122); -lean_ctor_set(x_123, 1, x_120); -return x_123; -} -} -else -{ -lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; -lean_dec(x_93); -lean_dec(x_2); -x_124 = lean_ctor_get(x_96, 0); -lean_inc(x_124); -x_125 = lean_ctor_get(x_96, 1); -lean_inc(x_125); -if (lean_is_exclusive(x_96)) { - lean_ctor_release(x_96, 0); - lean_ctor_release(x_96, 1); - x_126 = x_96; -} else { - lean_dec_ref(x_96); - x_126 = lean_box(0); -} -if (lean_is_scalar(x_126)) { - x_127 = lean_alloc_ctor(1, 2, 0); -} else { - x_127 = x_126; -} -lean_ctor_set(x_127, 0, x_124); -lean_ctor_set(x_127, 1, x_125); -return x_127; -} -} -else -{ -lean_object* x_128; lean_object* x_129; -lean_dec(x_93); -lean_dec(x_2); -x_128 = lean_box(0); -x_129 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_129, 0, x_128); -lean_ctor_set(x_129, 1, x_94); -return x_129; -} -} -} -else -{ -uint8_t x_130; -lean_dec(x_2); -x_130 = !lean_is_exclusive(x_21); -if (x_130 == 0) -{ -return x_21; -} -else -{ -lean_object* x_131; lean_object* x_132; lean_object* x_133; -x_131 = lean_ctor_get(x_21, 0); -x_132 = lean_ctor_get(x_21, 1); -lean_inc(x_132); -lean_inc(x_131); -lean_dec(x_21); -x_133 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_133, 0, x_131); -lean_ctor_set(x_133, 1, x_132); -return x_133; -} -} -} -else -{ -lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; uint8_t x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; -x_134 = lean_ctor_get(x_13, 0); -x_135 = lean_ctor_get(x_13, 1); -x_136 = lean_ctor_get(x_13, 2); -x_137 = lean_ctor_get(x_13, 3); -x_138 = lean_ctor_get_uint8(x_13, sizeof(void*)*7); -x_139 = lean_ctor_get(x_13, 4); -x_140 = lean_ctor_get(x_13, 5); -x_141 = lean_ctor_get(x_13, 6); -lean_inc(x_141); -lean_inc(x_140); -lean_inc(x_139); -lean_inc(x_137); -lean_inc(x_136); -lean_inc(x_135); -lean_inc(x_134); -lean_dec(x_13); -lean_inc(x_2); -x_142 = l_Lean_Expr_fvar___override(x_2); -lean_inc(x_1); -x_143 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_134, x_1, x_142); -x_144 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_144, 0, x_143); -lean_ctor_set(x_144, 1, x_135); -lean_ctor_set(x_144, 2, x_136); -lean_ctor_set(x_144, 3, x_137); -lean_ctor_set(x_144, 4, x_139); -lean_ctor_set(x_144, 5, x_140); -lean_ctor_set(x_144, 6, x_141); -lean_ctor_set_uint8(x_144, sizeof(void*)*7, x_138); -x_145 = lean_st_ref_set(x_4, x_144, x_14); -x_146 = lean_ctor_get(x_145, 1); -lean_inc(x_146); -lean_dec(x_145); -x_147 = l_Lean_Compiler_LCNF_getBinderName(x_1, x_5, x_6, x_7, x_8, x_146); -if (lean_obj_tag(x_147) == 0) -{ -lean_object* x_148; lean_object* x_149; lean_object* x_150; uint8_t x_151; -x_148 = lean_ctor_get(x_147, 0); -lean_inc(x_148); -x_149 = lean_ctor_get(x_147, 1); -lean_inc(x_149); -if (lean_is_exclusive(x_147)) { - lean_ctor_release(x_147, 0); - lean_ctor_release(x_147, 1); - x_150 = x_147; -} else { - lean_dec_ref(x_147); - x_150 = lean_box(0); -} -x_151 = l_Lean_Name_isInternal(x_148); -if (x_151 == 0) -{ -lean_object* x_152; -lean_dec(x_150); -lean_inc(x_2); -x_152 = l_Lean_Compiler_LCNF_getBinderName(x_2, x_5, x_6, x_7, x_8, x_149); -if (lean_obj_tag(x_152) == 0) -{ -lean_object* x_153; lean_object* x_154; lean_object* x_155; uint8_t x_156; -x_153 = lean_ctor_get(x_152, 0); -lean_inc(x_153); -x_154 = lean_ctor_get(x_152, 1); -lean_inc(x_154); -if (lean_is_exclusive(x_152)) { - lean_ctor_release(x_152, 0); - lean_ctor_release(x_152, 1); - x_155 = x_152; -} else { - lean_dec_ref(x_152); - x_155 = lean_box(0); -} -x_156 = l_Lean_Name_isInternal(x_153); -lean_dec(x_153); -if (x_156 == 0) -{ -lean_object* x_157; lean_object* x_158; -lean_dec(x_148); -lean_dec(x_2); -x_157 = lean_box(0); -if (lean_is_scalar(x_155)) { - x_158 = lean_alloc_ctor(0, 2, 0); -} else { - x_158 = x_155; -} -lean_ctor_set(x_158, 0, x_157); -lean_ctor_set(x_158, 1, x_154); -return x_158; -} -else -{ -lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; uint8_t x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; lean_object* x_178; lean_object* x_179; -lean_dec(x_155); -x_159 = lean_st_ref_get(x_8, x_154); -x_160 = lean_ctor_get(x_159, 1); -lean_inc(x_160); -lean_dec(x_159); -x_161 = lean_st_ref_take(x_4, x_160); -x_162 = lean_ctor_get(x_161, 0); -lean_inc(x_162); -x_163 = lean_ctor_get(x_161, 1); -lean_inc(x_163); -lean_dec(x_161); -x_164 = lean_ctor_get(x_162, 0); -lean_inc(x_164); -x_165 = lean_ctor_get(x_162, 1); -lean_inc(x_165); -x_166 = lean_ctor_get(x_162, 2); -lean_inc(x_166); -x_167 = lean_ctor_get(x_162, 3); -lean_inc(x_167); -x_168 = lean_ctor_get_uint8(x_162, sizeof(void*)*7); -x_169 = lean_ctor_get(x_162, 4); -lean_inc(x_169); -x_170 = lean_ctor_get(x_162, 5); -lean_inc(x_170); -x_171 = lean_ctor_get(x_162, 6); -lean_inc(x_171); -if (lean_is_exclusive(x_162)) { - lean_ctor_release(x_162, 0); - lean_ctor_release(x_162, 1); - lean_ctor_release(x_162, 2); - lean_ctor_release(x_162, 3); - lean_ctor_release(x_162, 4); - lean_ctor_release(x_162, 5); - lean_ctor_release(x_162, 6); - x_172 = x_162; -} else { - lean_dec_ref(x_162); - x_172 = lean_box(0); -} -x_173 = l_Lean_RBNode_insert___at_Lean_Elab_Term_withAuxDecl___spec__1(x_166, x_2, x_148); -if (lean_is_scalar(x_172)) { - x_174 = lean_alloc_ctor(0, 7, 1); -} else { - x_174 = x_172; -} -lean_ctor_set(x_174, 0, x_164); -lean_ctor_set(x_174, 1, x_165); -lean_ctor_set(x_174, 2, x_173); -lean_ctor_set(x_174, 3, x_167); -lean_ctor_set(x_174, 4, x_169); -lean_ctor_set(x_174, 5, x_170); -lean_ctor_set(x_174, 6, x_171); -lean_ctor_set_uint8(x_174, sizeof(void*)*7, x_168); -x_175 = lean_st_ref_set(x_4, x_174, x_163); -x_176 = lean_ctor_get(x_175, 1); -lean_inc(x_176); -if (lean_is_exclusive(x_175)) { - lean_ctor_release(x_175, 0); - lean_ctor_release(x_175, 1); - x_177 = x_175; -} else { - lean_dec_ref(x_175); - x_177 = lean_box(0); -} -x_178 = lean_box(0); -if (lean_is_scalar(x_177)) { - x_179 = lean_alloc_ctor(0, 2, 0); -} else { - x_179 = x_177; -} -lean_ctor_set(x_179, 0, x_178); -lean_ctor_set(x_179, 1, x_176); -return x_179; -} -} -else -{ -lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; -lean_dec(x_148); -lean_dec(x_2); -x_180 = lean_ctor_get(x_152, 0); -lean_inc(x_180); -x_181 = lean_ctor_get(x_152, 1); -lean_inc(x_181); -if (lean_is_exclusive(x_152)) { - lean_ctor_release(x_152, 0); - lean_ctor_release(x_152, 1); - x_182 = x_152; -} else { - lean_dec_ref(x_152); - x_182 = lean_box(0); -} -if (lean_is_scalar(x_182)) { - x_183 = lean_alloc_ctor(1, 2, 0); -} else { - x_183 = x_182; -} -lean_ctor_set(x_183, 0, x_180); -lean_ctor_set(x_183, 1, x_181); -return x_183; -} -} -else -{ -lean_object* x_184; lean_object* x_185; -lean_dec(x_148); -lean_dec(x_2); -x_184 = lean_box(0); -if (lean_is_scalar(x_150)) { - x_185 = lean_alloc_ctor(0, 2, 0); -} else { - x_185 = x_150; -} -lean_ctor_set(x_185, 0, x_184); -lean_ctor_set(x_185, 1, x_149); -return x_185; -} -} -else -{ -lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; -lean_dec(x_2); -x_186 = lean_ctor_get(x_147, 0); -lean_inc(x_186); -x_187 = lean_ctor_get(x_147, 1); -lean_inc(x_187); -if (lean_is_exclusive(x_147)) { - lean_ctor_release(x_147, 0); - lean_ctor_release(x_147, 1); - x_188 = x_147; -} else { - lean_dec_ref(x_147); - x_188 = lean_box(0); -} -if (lean_is_scalar(x_188)) { - x_189 = lean_alloc_ctor(1, 2, 0); -} else { - x_189 = x_188; -} -lean_ctor_set(x_189, 0, x_186); -lean_ctor_set(x_189, 1, x_187); -return x_189; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFVarSubst___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseLetDecl___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) { _start: { lean_object* x_10; -x_10 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_10 = l_Lean_Compiler_LCNF_Simp_eraseLetDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); 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); return x_10; } } +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseFunDecl(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: +{ +uint8_t x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_10 = 1; +x_11 = l_Lean_Compiler_LCNF_eraseFunDecl(x_1, x_10, x_5, x_6, x_7, x_8, x_9); +x_12 = lean_ctor_get(x_11, 1); +lean_inc(x_12); +lean_dec(x_11); +x_13 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_12); +return x_13; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_eraseFunDecl___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_eraseFunDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFVarSubst(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; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_11 = lean_st_ref_get(x_9, x_10); +x_12 = lean_ctor_get(x_11, 1); +lean_inc(x_12); +lean_dec(x_11); +x_13 = lean_st_ref_take(x_4, x_12); +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 = !lean_is_exclusive(x_14); +if (x_16 == 0) +{ +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_17 = lean_ctor_get(x_14, 0); +lean_inc(x_2); +x_18 = l_Lean_Expr_fvar___override(x_2); +lean_inc(x_1); +x_19 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_17, x_1, x_18); +lean_ctor_set(x_14, 0, x_19); +x_20 = lean_st_ref_set(x_4, x_14, x_15); +x_21 = lean_ctor_get(x_20, 1); +lean_inc(x_21); +lean_dec(x_20); +x_22 = l_Lean_Compiler_LCNF_getBinderName(x_1, x_6, x_7, x_8, x_9, x_21); +if (lean_obj_tag(x_22) == 0) +{ +uint8_t x_23; +x_23 = !lean_is_exclusive(x_22); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_24 = lean_ctor_get(x_22, 0); +x_25 = lean_ctor_get(x_22, 1); +x_26 = l_Lean_Name_isInternal(x_24); +if (x_26 == 0) +{ +lean_object* x_27; +lean_free_object(x_22); +lean_inc(x_2); +x_27 = l_Lean_Compiler_LCNF_getBinderName(x_2, x_6, x_7, x_8, x_9, x_25); +if (lean_obj_tag(x_27) == 0) +{ +uint8_t x_28; +x_28 = !lean_is_exclusive(x_27); +if (x_28 == 0) +{ +lean_object* x_29; lean_object* x_30; uint8_t x_31; +x_29 = lean_ctor_get(x_27, 0); +x_30 = lean_ctor_get(x_27, 1); +x_31 = l_Lean_Name_isInternal(x_29); +lean_dec(x_29); +if (x_31 == 0) +{ +lean_object* x_32; +lean_dec(x_24); +lean_dec(x_2); +x_32 = lean_box(0); +lean_ctor_set(x_27, 0, x_32); +return x_27; +} +else +{ +lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; uint8_t x_38; +lean_free_object(x_27); +x_33 = lean_st_ref_get(x_9, x_30); +x_34 = lean_ctor_get(x_33, 1); +lean_inc(x_34); +lean_dec(x_33); +x_35 = lean_st_ref_take(x_4, x_34); +x_36 = lean_ctor_get(x_35, 0); +lean_inc(x_36); +x_37 = lean_ctor_get(x_35, 1); +lean_inc(x_37); +lean_dec(x_35); +x_38 = !lean_is_exclusive(x_36); +if (x_38 == 0) +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; +x_39 = lean_ctor_get(x_36, 2); +x_40 = l_Lean_RBNode_insert___at_Lean_Elab_Term_withAuxDecl___spec__1(x_39, x_2, x_24); +lean_ctor_set(x_36, 2, x_40); +x_41 = lean_st_ref_set(x_4, x_36, x_37); +x_42 = !lean_is_exclusive(x_41); +if (x_42 == 0) +{ +lean_object* x_43; lean_object* x_44; +x_43 = lean_ctor_get(x_41, 0); +lean_dec(x_43); +x_44 = lean_box(0); +lean_ctor_set(x_41, 0, x_44); +return x_41; +} +else +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_45 = lean_ctor_get(x_41, 1); +lean_inc(x_45); +lean_dec(x_41); +x_46 = lean_box(0); +x_47 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_47, 0, x_46); +lean_ctor_set(x_47, 1, x_45); +return x_47; +} +} +else +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +x_48 = lean_ctor_get(x_36, 0); +x_49 = lean_ctor_get(x_36, 1); +x_50 = lean_ctor_get(x_36, 2); +x_51 = lean_ctor_get(x_36, 3); +x_52 = lean_ctor_get_uint8(x_36, sizeof(void*)*7); +x_53 = lean_ctor_get(x_36, 4); +x_54 = lean_ctor_get(x_36, 5); +x_55 = lean_ctor_get(x_36, 6); +lean_inc(x_55); +lean_inc(x_54); +lean_inc(x_53); +lean_inc(x_51); +lean_inc(x_50); +lean_inc(x_49); +lean_inc(x_48); +lean_dec(x_36); +x_56 = l_Lean_RBNode_insert___at_Lean_Elab_Term_withAuxDecl___spec__1(x_50, x_2, x_24); +x_57 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_57, 0, x_48); +lean_ctor_set(x_57, 1, x_49); +lean_ctor_set(x_57, 2, x_56); +lean_ctor_set(x_57, 3, x_51); +lean_ctor_set(x_57, 4, x_53); +lean_ctor_set(x_57, 5, x_54); +lean_ctor_set(x_57, 6, x_55); +lean_ctor_set_uint8(x_57, sizeof(void*)*7, x_52); +x_58 = lean_st_ref_set(x_4, x_57, x_37); +x_59 = lean_ctor_get(x_58, 1); +lean_inc(x_59); +if (lean_is_exclusive(x_58)) { + lean_ctor_release(x_58, 0); + lean_ctor_release(x_58, 1); + x_60 = x_58; +} else { + lean_dec_ref(x_58); + x_60 = lean_box(0); +} +x_61 = lean_box(0); +if (lean_is_scalar(x_60)) { + x_62 = lean_alloc_ctor(0, 2, 0); +} else { + x_62 = x_60; +} +lean_ctor_set(x_62, 0, x_61); +lean_ctor_set(x_62, 1, x_59); +return x_62; +} +} +} +else +{ +lean_object* x_63; lean_object* x_64; uint8_t x_65; +x_63 = lean_ctor_get(x_27, 0); +x_64 = lean_ctor_get(x_27, 1); +lean_inc(x_64); +lean_inc(x_63); +lean_dec(x_27); +x_65 = l_Lean_Name_isInternal(x_63); +lean_dec(x_63); +if (x_65 == 0) +{ +lean_object* x_66; lean_object* x_67; +lean_dec(x_24); +lean_dec(x_2); +x_66 = lean_box(0); +x_67 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_67, 0, x_66); +lean_ctor_set(x_67, 1, x_64); +return x_67; +} +else +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; uint8_t x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; +x_68 = lean_st_ref_get(x_9, x_64); +x_69 = lean_ctor_get(x_68, 1); +lean_inc(x_69); +lean_dec(x_68); +x_70 = lean_st_ref_take(x_4, x_69); +x_71 = lean_ctor_get(x_70, 0); +lean_inc(x_71); +x_72 = lean_ctor_get(x_70, 1); +lean_inc(x_72); +lean_dec(x_70); +x_73 = lean_ctor_get(x_71, 0); +lean_inc(x_73); +x_74 = lean_ctor_get(x_71, 1); +lean_inc(x_74); +x_75 = lean_ctor_get(x_71, 2); +lean_inc(x_75); +x_76 = lean_ctor_get(x_71, 3); +lean_inc(x_76); +x_77 = lean_ctor_get_uint8(x_71, sizeof(void*)*7); +x_78 = lean_ctor_get(x_71, 4); +lean_inc(x_78); +x_79 = lean_ctor_get(x_71, 5); +lean_inc(x_79); +x_80 = lean_ctor_get(x_71, 6); +lean_inc(x_80); +if (lean_is_exclusive(x_71)) { + lean_ctor_release(x_71, 0); + lean_ctor_release(x_71, 1); + lean_ctor_release(x_71, 2); + lean_ctor_release(x_71, 3); + lean_ctor_release(x_71, 4); + lean_ctor_release(x_71, 5); + lean_ctor_release(x_71, 6); + x_81 = x_71; +} else { + lean_dec_ref(x_71); + x_81 = lean_box(0); +} +x_82 = l_Lean_RBNode_insert___at_Lean_Elab_Term_withAuxDecl___spec__1(x_75, x_2, x_24); +if (lean_is_scalar(x_81)) { + x_83 = lean_alloc_ctor(0, 7, 1); +} else { + x_83 = x_81; +} +lean_ctor_set(x_83, 0, x_73); +lean_ctor_set(x_83, 1, x_74); +lean_ctor_set(x_83, 2, x_82); +lean_ctor_set(x_83, 3, x_76); +lean_ctor_set(x_83, 4, x_78); +lean_ctor_set(x_83, 5, x_79); +lean_ctor_set(x_83, 6, x_80); +lean_ctor_set_uint8(x_83, sizeof(void*)*7, x_77); +x_84 = lean_st_ref_set(x_4, x_83, x_72); +x_85 = lean_ctor_get(x_84, 1); +lean_inc(x_85); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_86 = x_84; +} else { + lean_dec_ref(x_84); + x_86 = lean_box(0); +} +x_87 = lean_box(0); +if (lean_is_scalar(x_86)) { + x_88 = lean_alloc_ctor(0, 2, 0); +} else { + x_88 = x_86; +} +lean_ctor_set(x_88, 0, x_87); +lean_ctor_set(x_88, 1, x_85); +return x_88; +} +} +} +else +{ +uint8_t x_89; +lean_dec(x_24); +lean_dec(x_2); +x_89 = !lean_is_exclusive(x_27); +if (x_89 == 0) +{ +return x_27; +} +else +{ +lean_object* x_90; lean_object* x_91; lean_object* x_92; +x_90 = lean_ctor_get(x_27, 0); +x_91 = lean_ctor_get(x_27, 1); +lean_inc(x_91); +lean_inc(x_90); +lean_dec(x_27); +x_92 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_92, 0, x_90); +lean_ctor_set(x_92, 1, x_91); +return x_92; +} +} +} +else +{ +lean_object* x_93; +lean_dec(x_24); +lean_dec(x_2); +x_93 = lean_box(0); +lean_ctor_set(x_22, 0, x_93); +return x_22; +} +} +else +{ +lean_object* x_94; lean_object* x_95; uint8_t x_96; +x_94 = lean_ctor_get(x_22, 0); +x_95 = lean_ctor_get(x_22, 1); +lean_inc(x_95); +lean_inc(x_94); +lean_dec(x_22); +x_96 = l_Lean_Name_isInternal(x_94); +if (x_96 == 0) +{ +lean_object* x_97; +lean_inc(x_2); +x_97 = l_Lean_Compiler_LCNF_getBinderName(x_2, x_6, x_7, x_8, x_9, x_95); +if (lean_obj_tag(x_97) == 0) +{ +lean_object* x_98; lean_object* x_99; lean_object* x_100; uint8_t x_101; +x_98 = lean_ctor_get(x_97, 0); +lean_inc(x_98); +x_99 = lean_ctor_get(x_97, 1); +lean_inc(x_99); +if (lean_is_exclusive(x_97)) { + lean_ctor_release(x_97, 0); + lean_ctor_release(x_97, 1); + x_100 = x_97; +} else { + lean_dec_ref(x_97); + x_100 = lean_box(0); +} +x_101 = l_Lean_Name_isInternal(x_98); +lean_dec(x_98); +if (x_101 == 0) +{ +lean_object* x_102; lean_object* x_103; +lean_dec(x_94); +lean_dec(x_2); +x_102 = lean_box(0); +if (lean_is_scalar(x_100)) { + x_103 = lean_alloc_ctor(0, 2, 0); +} else { + x_103 = x_100; +} +lean_ctor_set(x_103, 0, x_102); +lean_ctor_set(x_103, 1, x_99); +return x_103; +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; uint8_t x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; +lean_dec(x_100); +x_104 = lean_st_ref_get(x_9, x_99); +x_105 = lean_ctor_get(x_104, 1); +lean_inc(x_105); +lean_dec(x_104); +x_106 = lean_st_ref_take(x_4, x_105); +x_107 = lean_ctor_get(x_106, 0); +lean_inc(x_107); +x_108 = lean_ctor_get(x_106, 1); +lean_inc(x_108); +lean_dec(x_106); +x_109 = lean_ctor_get(x_107, 0); +lean_inc(x_109); +x_110 = lean_ctor_get(x_107, 1); +lean_inc(x_110); +x_111 = lean_ctor_get(x_107, 2); +lean_inc(x_111); +x_112 = lean_ctor_get(x_107, 3); +lean_inc(x_112); +x_113 = lean_ctor_get_uint8(x_107, sizeof(void*)*7); +x_114 = lean_ctor_get(x_107, 4); +lean_inc(x_114); +x_115 = lean_ctor_get(x_107, 5); +lean_inc(x_115); +x_116 = lean_ctor_get(x_107, 6); +lean_inc(x_116); +if (lean_is_exclusive(x_107)) { + lean_ctor_release(x_107, 0); + lean_ctor_release(x_107, 1); + lean_ctor_release(x_107, 2); + lean_ctor_release(x_107, 3); + lean_ctor_release(x_107, 4); + lean_ctor_release(x_107, 5); + lean_ctor_release(x_107, 6); + x_117 = x_107; +} else { + lean_dec_ref(x_107); + x_117 = lean_box(0); +} +x_118 = l_Lean_RBNode_insert___at_Lean_Elab_Term_withAuxDecl___spec__1(x_111, x_2, x_94); +if (lean_is_scalar(x_117)) { + x_119 = lean_alloc_ctor(0, 7, 1); +} else { + x_119 = x_117; +} +lean_ctor_set(x_119, 0, x_109); +lean_ctor_set(x_119, 1, x_110); +lean_ctor_set(x_119, 2, x_118); +lean_ctor_set(x_119, 3, x_112); +lean_ctor_set(x_119, 4, x_114); +lean_ctor_set(x_119, 5, x_115); +lean_ctor_set(x_119, 6, x_116); +lean_ctor_set_uint8(x_119, sizeof(void*)*7, x_113); +x_120 = lean_st_ref_set(x_4, x_119, x_108); +x_121 = lean_ctor_get(x_120, 1); +lean_inc(x_121); +if (lean_is_exclusive(x_120)) { + lean_ctor_release(x_120, 0); + lean_ctor_release(x_120, 1); + x_122 = x_120; +} else { + lean_dec_ref(x_120); + x_122 = lean_box(0); +} +x_123 = lean_box(0); +if (lean_is_scalar(x_122)) { + x_124 = lean_alloc_ctor(0, 2, 0); +} else { + x_124 = x_122; +} +lean_ctor_set(x_124, 0, x_123); +lean_ctor_set(x_124, 1, x_121); +return x_124; +} +} +else +{ +lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; +lean_dec(x_94); +lean_dec(x_2); +x_125 = lean_ctor_get(x_97, 0); +lean_inc(x_125); +x_126 = lean_ctor_get(x_97, 1); +lean_inc(x_126); +if (lean_is_exclusive(x_97)) { + lean_ctor_release(x_97, 0); + lean_ctor_release(x_97, 1); + x_127 = x_97; +} else { + lean_dec_ref(x_97); + x_127 = lean_box(0); +} +if (lean_is_scalar(x_127)) { + x_128 = lean_alloc_ctor(1, 2, 0); +} else { + x_128 = x_127; +} +lean_ctor_set(x_128, 0, x_125); +lean_ctor_set(x_128, 1, x_126); +return x_128; +} +} +else +{ +lean_object* x_129; lean_object* x_130; +lean_dec(x_94); +lean_dec(x_2); +x_129 = lean_box(0); +x_130 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_130, 0, x_129); +lean_ctor_set(x_130, 1, x_95); +return x_130; +} +} +} +else +{ +uint8_t x_131; +lean_dec(x_2); +x_131 = !lean_is_exclusive(x_22); +if (x_131 == 0) +{ +return x_22; +} +else +{ +lean_object* x_132; lean_object* x_133; lean_object* x_134; +x_132 = lean_ctor_get(x_22, 0); +x_133 = lean_ctor_get(x_22, 1); +lean_inc(x_133); +lean_inc(x_132); +lean_dec(x_22); +x_134 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_134, 0, x_132); +lean_ctor_set(x_134, 1, x_133); +return x_134; +} +} +} +else +{ +lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; uint8_t x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; +x_135 = lean_ctor_get(x_14, 0); +x_136 = lean_ctor_get(x_14, 1); +x_137 = lean_ctor_get(x_14, 2); +x_138 = lean_ctor_get(x_14, 3); +x_139 = lean_ctor_get_uint8(x_14, sizeof(void*)*7); +x_140 = lean_ctor_get(x_14, 4); +x_141 = lean_ctor_get(x_14, 5); +x_142 = lean_ctor_get(x_14, 6); +lean_inc(x_142); +lean_inc(x_141); +lean_inc(x_140); +lean_inc(x_138); +lean_inc(x_137); +lean_inc(x_136); +lean_inc(x_135); +lean_dec(x_14); +lean_inc(x_2); +x_143 = l_Lean_Expr_fvar___override(x_2); +lean_inc(x_1); +x_144 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_135, x_1, x_143); +x_145 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_145, 0, x_144); +lean_ctor_set(x_145, 1, x_136); +lean_ctor_set(x_145, 2, x_137); +lean_ctor_set(x_145, 3, x_138); +lean_ctor_set(x_145, 4, x_140); +lean_ctor_set(x_145, 5, x_141); +lean_ctor_set(x_145, 6, x_142); +lean_ctor_set_uint8(x_145, sizeof(void*)*7, x_139); +x_146 = lean_st_ref_set(x_4, x_145, x_15); +x_147 = lean_ctor_get(x_146, 1); +lean_inc(x_147); +lean_dec(x_146); +x_148 = l_Lean_Compiler_LCNF_getBinderName(x_1, x_6, x_7, x_8, x_9, x_147); +if (lean_obj_tag(x_148) == 0) +{ +lean_object* x_149; lean_object* x_150; lean_object* x_151; uint8_t x_152; +x_149 = lean_ctor_get(x_148, 0); +lean_inc(x_149); +x_150 = lean_ctor_get(x_148, 1); +lean_inc(x_150); +if (lean_is_exclusive(x_148)) { + lean_ctor_release(x_148, 0); + lean_ctor_release(x_148, 1); + x_151 = x_148; +} else { + lean_dec_ref(x_148); + x_151 = lean_box(0); +} +x_152 = l_Lean_Name_isInternal(x_149); +if (x_152 == 0) +{ +lean_object* x_153; +lean_dec(x_151); +lean_inc(x_2); +x_153 = l_Lean_Compiler_LCNF_getBinderName(x_2, x_6, x_7, x_8, x_9, x_150); +if (lean_obj_tag(x_153) == 0) +{ +lean_object* x_154; lean_object* x_155; lean_object* x_156; uint8_t x_157; +x_154 = lean_ctor_get(x_153, 0); +lean_inc(x_154); +x_155 = lean_ctor_get(x_153, 1); +lean_inc(x_155); +if (lean_is_exclusive(x_153)) { + lean_ctor_release(x_153, 0); + lean_ctor_release(x_153, 1); + x_156 = x_153; +} else { + lean_dec_ref(x_153); + x_156 = lean_box(0); +} +x_157 = l_Lean_Name_isInternal(x_154); +lean_dec(x_154); +if (x_157 == 0) +{ +lean_object* x_158; lean_object* x_159; +lean_dec(x_149); +lean_dec(x_2); +x_158 = lean_box(0); +if (lean_is_scalar(x_156)) { + x_159 = lean_alloc_ctor(0, 2, 0); +} else { + x_159 = x_156; +} +lean_ctor_set(x_159, 0, x_158); +lean_ctor_set(x_159, 1, x_155); +return x_159; +} +else +{ +lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; lean_object* x_168; uint8_t x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; lean_object* x_178; lean_object* x_179; lean_object* x_180; +lean_dec(x_156); +x_160 = lean_st_ref_get(x_9, x_155); +x_161 = lean_ctor_get(x_160, 1); +lean_inc(x_161); +lean_dec(x_160); +x_162 = lean_st_ref_take(x_4, x_161); +x_163 = lean_ctor_get(x_162, 0); +lean_inc(x_163); +x_164 = lean_ctor_get(x_162, 1); +lean_inc(x_164); +lean_dec(x_162); +x_165 = lean_ctor_get(x_163, 0); +lean_inc(x_165); +x_166 = lean_ctor_get(x_163, 1); +lean_inc(x_166); +x_167 = lean_ctor_get(x_163, 2); +lean_inc(x_167); +x_168 = lean_ctor_get(x_163, 3); +lean_inc(x_168); +x_169 = lean_ctor_get_uint8(x_163, sizeof(void*)*7); +x_170 = lean_ctor_get(x_163, 4); +lean_inc(x_170); +x_171 = lean_ctor_get(x_163, 5); +lean_inc(x_171); +x_172 = lean_ctor_get(x_163, 6); +lean_inc(x_172); +if (lean_is_exclusive(x_163)) { + lean_ctor_release(x_163, 0); + lean_ctor_release(x_163, 1); + lean_ctor_release(x_163, 2); + lean_ctor_release(x_163, 3); + lean_ctor_release(x_163, 4); + lean_ctor_release(x_163, 5); + lean_ctor_release(x_163, 6); + x_173 = x_163; +} else { + lean_dec_ref(x_163); + x_173 = lean_box(0); +} +x_174 = l_Lean_RBNode_insert___at_Lean_Elab_Term_withAuxDecl___spec__1(x_167, x_2, x_149); +if (lean_is_scalar(x_173)) { + x_175 = lean_alloc_ctor(0, 7, 1); +} else { + x_175 = x_173; +} +lean_ctor_set(x_175, 0, x_165); +lean_ctor_set(x_175, 1, x_166); +lean_ctor_set(x_175, 2, x_174); +lean_ctor_set(x_175, 3, x_168); +lean_ctor_set(x_175, 4, x_170); +lean_ctor_set(x_175, 5, x_171); +lean_ctor_set(x_175, 6, x_172); +lean_ctor_set_uint8(x_175, sizeof(void*)*7, x_169); +x_176 = lean_st_ref_set(x_4, x_175, x_164); +x_177 = lean_ctor_get(x_176, 1); +lean_inc(x_177); +if (lean_is_exclusive(x_176)) { + lean_ctor_release(x_176, 0); + lean_ctor_release(x_176, 1); + x_178 = x_176; +} else { + lean_dec_ref(x_176); + x_178 = lean_box(0); +} +x_179 = lean_box(0); +if (lean_is_scalar(x_178)) { + x_180 = lean_alloc_ctor(0, 2, 0); +} else { + x_180 = x_178; +} +lean_ctor_set(x_180, 0, x_179); +lean_ctor_set(x_180, 1, x_177); +return x_180; +} +} +else +{ +lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; +lean_dec(x_149); +lean_dec(x_2); +x_181 = lean_ctor_get(x_153, 0); +lean_inc(x_181); +x_182 = lean_ctor_get(x_153, 1); +lean_inc(x_182); +if (lean_is_exclusive(x_153)) { + lean_ctor_release(x_153, 0); + lean_ctor_release(x_153, 1); + x_183 = x_153; +} else { + lean_dec_ref(x_153); + x_183 = lean_box(0); +} +if (lean_is_scalar(x_183)) { + x_184 = lean_alloc_ctor(1, 2, 0); +} else { + x_184 = x_183; +} +lean_ctor_set(x_184, 0, x_181); +lean_ctor_set(x_184, 1, x_182); +return x_184; +} +} +else +{ +lean_object* x_185; lean_object* x_186; +lean_dec(x_149); +lean_dec(x_2); +x_185 = lean_box(0); +if (lean_is_scalar(x_151)) { + x_186 = lean_alloc_ctor(0, 2, 0); +} else { + x_186 = x_151; +} +lean_ctor_set(x_186, 0, x_185); +lean_ctor_set(x_186, 1, x_150); +return x_186; +} +} +else +{ +lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; +lean_dec(x_2); +x_187 = lean_ctor_get(x_148, 0); +lean_inc(x_187); +x_188 = lean_ctor_get(x_148, 1); +lean_inc(x_188); +if (lean_is_exclusive(x_148)) { + lean_ctor_release(x_148, 0); + lean_ctor_release(x_148, 1); + x_189 = x_148; +} else { + lean_dec_ref(x_148); + x_189 = lean_box(0); +} +if (lean_is_scalar(x_189)) { + x_190 = lean_alloc_ctor(1, 2, 0); +} else { + x_190 = x_189; +} +lean_ctor_set(x_190, 0, x_187); +lean_ctor_set(x_190, 1, x_188); +return x_190; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_addFVarSubst___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) { +_start: +{ +lean_object* x_11; +x_11 = l_Lean_Compiler_LCNF_Simp_addFVarSubst(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +return x_11; +} +} lean_object* initialize_Init(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_ImplementedByAttr(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_Renaming(uint8_t builtin, lean_object*); @@ -10855,7 +6779,9 @@ lean_object* initialize_Lean_Compiler_LCNF_ElimDead(uint8_t builtin, lean_object lean_object* initialize_Lean_Compiler_LCNF_AlphaEqv(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_PrettyPrinter(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_Bind(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_Internalize(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_Simp_JpCases(uint8_t builtin, lean_object*); +lean_object* initialize_Lean_Compiler_LCNF_Simp_DiscrM(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_Simp_FunDeclInfo(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_Simp_Config(uint8_t builtin, lean_object*); static bool _G_initialized = false; @@ -10884,9 +6810,15 @@ lean_dec_ref(res); res = initialize_Lean_Compiler_LCNF_Bind(builtin, lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_Internalize(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); res = initialize_Lean_Compiler_LCNF_Simp_JpCases(builtin, lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = initialize_Lean_Compiler_LCNF_Simp_DiscrM(builtin, lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); res = initialize_Lean_Compiler_LCNF_Simp_FunDeclInfo(builtin, lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); @@ -10897,20 +6829,14 @@ l_Lean_Compiler_LCNF_Simp_Context_config___default___closed__1 = _init_l_Lean_Co lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_Context_config___default___closed__1); l_Lean_Compiler_LCNF_Simp_Context_config___default = _init_l_Lean_Compiler_LCNF_Simp_Context_config___default(); lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_Context_config___default); -l_Lean_Compiler_LCNF_Simp_Context_discrCtorMap___default = _init_l_Lean_Compiler_LCNF_Simp_Context_discrCtorMap___default(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_Context_discrCtorMap___default); -l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__1); -l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__2 = _init_l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__2); -l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__3 = _init_l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__3(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default___closed__3); -l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default = _init_l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_Context_ctorDiscrMap___default); l_Lean_Compiler_LCNF_Simp_Context_inlineStack___default = _init_l_Lean_Compiler_LCNF_Simp_Context_inlineStack___default(); lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_Context_inlineStack___default); l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__1); +l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__2 = _init_l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__2); +l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__3 = _init_l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default___closed__3); l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default = _init_l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default(); lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_Context_inlineStackOccs___default); l_Lean_Compiler_LCNF_Simp_State_subst___default___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_State_subst___default___closed__1(); @@ -10938,32 +6864,18 @@ l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___closed__2 = _init_l_Lea lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse___closed__2); l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse = _init_l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse(); lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_instMonadFVarSubstSimpMFalse); -l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_getIndInfo_x3f___lambda__1___closed__1); -l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__1 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__1(); -lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__1); -l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__2 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__2(); -lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__2); -l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3(); -lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__3___closed__3); -l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__1 = _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__1(); -lean_mark_persistent(l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__1); -l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__2 = _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__2(); -lean_mark_persistent(l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__2); -l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__3 = _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__3(); -lean_mark_persistent(l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__3); -l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__4 = _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__4(); -lean_mark_persistent(l_Lean_getConstInfo___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__2___closed__4); -l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1___closed__1 = _init_l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1___closed__1(); -lean_mark_persistent(l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1___closed__1); -l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1___closed__2 = _init_l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1___closed__2(); -lean_mark_persistent(l_Lean_getConstInfoCtor___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__1___closed__2); -l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__1 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__1(); -l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__2 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__2(); -l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__3 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__3(); -lean_mark_persistent(l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withDiscrCtor___spec__8___closed__3); l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1___closed__1 = _init_l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1___closed__1(); lean_mark_persistent(l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_Simp_withInlining___spec__1___closed__1); +l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3___closed__1 = _init_l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3___closed__1(); +l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3___closed__2 = _init_l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__3___closed__2(); +l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__6___closed__1 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__6___closed__1(); +lean_mark_persistent(l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_Simp_withInlining___spec__6___closed__1); +l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__1 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__1(); +lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__1); +l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__2 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__2(); +lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__2); +l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__3 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__3(); +lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_Simp_withInlining___spec__9___closed__3); l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10___closed__1 = _init_l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10___closed__1(); lean_mark_persistent(l_Lean_addTrace___at_Lean_Compiler_LCNF_Simp_withInlining___spec__10___closed__1); l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_withInlining___rarg___lambda__2___closed__1(); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Simp/SimpValue.c b/stage0/stdlib/Lean/Compiler/LCNF/Simp/SimpValue.c index d6d00157db..53c2877792 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Simp/SimpValue.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Simp/SimpValue.c @@ -13,68 +13,49 @@ #ifdef __cplusplus extern "C" { #endif -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___closed__1; -size_t lean_usize_sub(size_t, size_t); +lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); lean_object* l_Lean_Expr_constructorApp_x3f(lean_object*, lean_object*, uint8_t); uint8_t l_Lean_Expr_isApp(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); -size_t lean_usize_shift_right(size_t, size_t); extern lean_object* l_Lean_Compiler_implementedByAttr; extern lean_object* l_Lean_levelZero; lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l_Lean_mkAppN(lean_object*, lean_object*); -size_t lean_uint64_to_usize(uint64_t); -static size_t l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2___closed__1; lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_Simp_findCtor(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_findCtor(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_ParametricAttribute_getParam_x3f___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_inferType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_panic___at_Lean_Expr_getRevArg_x21___spec__1(lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpProj_x3f___closed__3; lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_Simp_findExpr(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint64_t l_Lean_Expr_hash(lean_object*); lean_object* l_Lean_Expr_sort___override(lean_object*); -size_t lean_usize_shift_left(size_t, size_t); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2___boxed(lean_object*, lean_object*, lean_object*); -static size_t l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2___closed__2; lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_isConst(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpProj_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpProj_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpProj_x3f___closed__1; -size_t lean_usize_land(size_t, size_t); static lean_object* l_Lean_Compiler_LCNF_Simp_simpProj_x3f___closed__2; -lean_object* l_Lean_Expr_fvar___override(lean_object*); lean_object* l_Lean_Expr_const___override(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpValue_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t lean_expr_eqv(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpValue_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_compatibleTypes(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2(lean_object*, size_t, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___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_Compiler_LCNF_Simp_applyImplementedBy_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__2; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Compiler_LCNF_getType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_isFVar(lean_object*); static lean_object* l_Lean_Compiler_LCNF_Simp_simpProj_x3f___closed__4; extern lean_object* l_Lean_instInhabitedName; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__1(lean_object*, lean_object*); lean_object* lean_mk_array(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpValue_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpValue_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_getAppFn(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpProj_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* lean_usize_to_nat(size_t); -lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpProj_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(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_Compiler_LCNF_Simp_simpProj_x3f___closed__1() { _start: @@ -113,336 +94,337 @@ x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); return x_6; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpProj_x3f(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_Compiler_LCNF_Simp_simpProj_x3f(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: { if (lean_obj_tag(x_1) == 11) { -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; -x_9 = lean_ctor_get(x_1, 1); -lean_inc(x_9); -x_10 = lean_ctor_get(x_1, 2); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_10 = lean_ctor_get(x_1, 1); lean_inc(x_10); +x_11 = lean_ctor_get(x_1, 2); +lean_inc(x_11); lean_dec(x_1); -x_11 = l_Lean_Compiler_LCNF_Simp_findCtor(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); +x_12 = l_Lean_Compiler_LCNF_Simp_findCtor(x_11, x_4, x_5, x_6, x_7, x_8, x_9); +x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); -lean_dec(x_11); -x_14 = lean_st_ref_get(x_7, x_13); -x_15 = !lean_is_exclusive(x_14); -if (x_15 == 0) +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); +lean_dec(x_12); +x_15 = lean_st_ref_get(x_8, x_14); +x_16 = !lean_is_exclusive(x_15); +if (x_16 == 0) { -lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; -x_16 = lean_ctor_get(x_14, 0); -x_17 = lean_ctor_get(x_14, 1); -x_18 = lean_ctor_get(x_16, 0); -lean_inc(x_18); -lean_dec(x_16); -x_19 = 0; -x_20 = l_Lean_Expr_constructorApp_x3f(x_18, x_12, x_19); -if (lean_obj_tag(x_20) == 0) +lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; +x_17 = lean_ctor_get(x_15, 0); +x_18 = lean_ctor_get(x_15, 1); +x_19 = lean_ctor_get(x_17, 0); +lean_inc(x_19); +lean_dec(x_17); +x_20 = 0; +x_21 = l_Lean_Expr_constructorApp_x3f(x_19, x_13, x_20); +if (lean_obj_tag(x_21) == 0) { -lean_object* x_21; -lean_dec(x_9); -x_21 = lean_box(0); -lean_ctor_set(x_14, 0, x_21); -return x_14; +lean_object* x_22; +lean_dec(x_10); +x_22 = lean_box(0); +lean_ctor_set(x_15, 0, x_22); +return x_15; } else { -uint8_t x_22; -lean_free_object(x_14); -x_22 = !lean_is_exclusive(x_20); -if (x_22 == 0) +uint8_t x_23; +lean_free_object(x_15); +x_23 = !lean_is_exclusive(x_21); +if (x_23 == 0) { -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; -x_23 = lean_ctor_get(x_20, 0); -x_24 = lean_ctor_get(x_23, 0); -lean_inc(x_24); -x_25 = lean_ctor_get(x_23, 1); +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; +x_24 = lean_ctor_get(x_21, 0); +x_25 = lean_ctor_get(x_24, 0); lean_inc(x_25); -lean_dec(x_23); -x_26 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_17); -x_27 = !lean_is_exclusive(x_26); -if (x_27 == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; -x_28 = lean_ctor_get(x_26, 0); -lean_dec(x_28); -x_29 = lean_ctor_get(x_24, 3); -lean_inc(x_29); +x_26 = lean_ctor_get(x_24, 1); +lean_inc(x_26); lean_dec(x_24); -x_30 = lean_nat_add(x_29, x_9); -lean_dec(x_9); +x_27 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_18); +x_28 = !lean_is_exclusive(x_27); +if (x_28 == 0) +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; +x_29 = lean_ctor_get(x_27, 0); lean_dec(x_29); -x_31 = lean_array_get_size(x_25); -x_32 = lean_nat_dec_lt(x_30, x_31); +x_30 = lean_ctor_get(x_25, 3); +lean_inc(x_30); +lean_dec(x_25); +x_31 = lean_nat_add(x_30, x_10); +lean_dec(x_10); +lean_dec(x_30); +x_32 = lean_array_get_size(x_26); +x_33 = lean_nat_dec_lt(x_31, x_32); +lean_dec(x_32); +if (x_33 == 0) +{ +lean_object* x_34; lean_object* x_35; lean_dec(x_31); -if (x_32 == 0) -{ -lean_object* x_33; lean_object* x_34; -lean_dec(x_30); -lean_dec(x_25); -x_33 = l_Lean_Compiler_LCNF_Simp_simpProj_x3f___closed__4; -x_34 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_33); -lean_ctor_set(x_20, 0, x_34); -lean_ctor_set(x_26, 0, x_20); -return x_26; -} -else -{ -lean_object* x_35; -x_35 = lean_array_fget(x_25, x_30); -lean_dec(x_30); -lean_dec(x_25); -lean_ctor_set(x_20, 0, x_35); -lean_ctor_set(x_26, 0, x_20); -return x_26; -} -} -else -{ -lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; uint8_t x_40; -x_36 = lean_ctor_get(x_26, 1); -lean_inc(x_36); lean_dec(x_26); -x_37 = lean_ctor_get(x_24, 3); +x_34 = l_Lean_Compiler_LCNF_Simp_simpProj_x3f___closed__4; +x_35 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_34); +lean_ctor_set(x_21, 0, x_35); +lean_ctor_set(x_27, 0, x_21); +return x_27; +} +else +{ +lean_object* x_36; +x_36 = lean_array_fget(x_26, x_31); +lean_dec(x_31); +lean_dec(x_26); +lean_ctor_set(x_21, 0, x_36); +lean_ctor_set(x_27, 0, x_21); +return x_27; +} +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; +x_37 = lean_ctor_get(x_27, 1); lean_inc(x_37); -lean_dec(x_24); -x_38 = lean_nat_add(x_37, x_9); -lean_dec(x_9); -lean_dec(x_37); -x_39 = lean_array_get_size(x_25); -x_40 = lean_nat_dec_lt(x_38, x_39); +lean_dec(x_27); +x_38 = lean_ctor_get(x_25, 3); +lean_inc(x_38); +lean_dec(x_25); +x_39 = lean_nat_add(x_38, x_10); +lean_dec(x_10); +lean_dec(x_38); +x_40 = lean_array_get_size(x_26); +x_41 = lean_nat_dec_lt(x_39, x_40); +lean_dec(x_40); +if (x_41 == 0) +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_dec(x_39); -if (x_40 == 0) -{ -lean_object* x_41; lean_object* x_42; lean_object* x_43; -lean_dec(x_38); -lean_dec(x_25); -x_41 = l_Lean_Compiler_LCNF_Simp_simpProj_x3f___closed__4; -x_42 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_41); -lean_ctor_set(x_20, 0, x_42); -x_43 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_43, 0, x_20); -lean_ctor_set(x_43, 1, x_36); -return x_43; +lean_dec(x_26); +x_42 = l_Lean_Compiler_LCNF_Simp_simpProj_x3f___closed__4; +x_43 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_42); +lean_ctor_set(x_21, 0, x_43); +x_44 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_44, 0, x_21); +lean_ctor_set(x_44, 1, x_37); +return x_44; } else { -lean_object* x_44; lean_object* x_45; -x_44 = lean_array_fget(x_25, x_38); -lean_dec(x_38); -lean_dec(x_25); -lean_ctor_set(x_20, 0, x_44); -x_45 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_45, 0, x_20); -lean_ctor_set(x_45, 1, x_36); -return x_45; +lean_object* x_45; lean_object* x_46; +x_45 = lean_array_fget(x_26, x_39); +lean_dec(x_39); +lean_dec(x_26); +lean_ctor_set(x_21, 0, x_45); +x_46 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_46, 0, x_21); +lean_ctor_set(x_46, 1, x_37); +return x_46; } } } else { -lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; -x_46 = lean_ctor_get(x_20, 0); -lean_inc(x_46); -lean_dec(x_20); -x_47 = lean_ctor_get(x_46, 0); +lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; uint8_t x_56; +x_47 = lean_ctor_get(x_21, 0); lean_inc(x_47); -x_48 = lean_ctor_get(x_46, 1); +lean_dec(x_21); +x_48 = lean_ctor_get(x_47, 0); lean_inc(x_48); -lean_dec(x_46); -x_49 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_17); -x_50 = lean_ctor_get(x_49, 1); -lean_inc(x_50); -if (lean_is_exclusive(x_49)) { - lean_ctor_release(x_49, 0); - lean_ctor_release(x_49, 1); - x_51 = x_49; -} else { - lean_dec_ref(x_49); - x_51 = lean_box(0); -} -x_52 = lean_ctor_get(x_47, 3); -lean_inc(x_52); +x_49 = lean_ctor_get(x_47, 1); +lean_inc(x_49); lean_dec(x_47); -x_53 = lean_nat_add(x_52, x_9); -lean_dec(x_9); -lean_dec(x_52); -x_54 = lean_array_get_size(x_48); -x_55 = lean_nat_dec_lt(x_53, x_54); +x_50 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_18); +x_51 = lean_ctor_get(x_50, 1); +lean_inc(x_51); +if (lean_is_exclusive(x_50)) { + lean_ctor_release(x_50, 0); + lean_ctor_release(x_50, 1); + x_52 = x_50; +} else { + lean_dec_ref(x_50); + x_52 = lean_box(0); +} +x_53 = lean_ctor_get(x_48, 3); +lean_inc(x_53); +lean_dec(x_48); +x_54 = lean_nat_add(x_53, x_10); +lean_dec(x_10); +lean_dec(x_53); +x_55 = lean_array_get_size(x_49); +x_56 = lean_nat_dec_lt(x_54, x_55); +lean_dec(x_55); +if (x_56 == 0) +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_dec(x_54); -if (x_55 == 0) -{ -lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -lean_dec(x_53); -lean_dec(x_48); -x_56 = l_Lean_Compiler_LCNF_Simp_simpProj_x3f___closed__4; -x_57 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_56); -x_58 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_58, 0, x_57); -if (lean_is_scalar(x_51)) { - x_59 = lean_alloc_ctor(0, 2, 0); -} else { - x_59 = x_51; -} +lean_dec(x_49); +x_57 = l_Lean_Compiler_LCNF_Simp_simpProj_x3f___closed__4; +x_58 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_57); +x_59 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_59, 0, x_58); -lean_ctor_set(x_59, 1, x_50); -return x_59; +if (lean_is_scalar(x_52)) { + x_60 = lean_alloc_ctor(0, 2, 0); +} else { + x_60 = x_52; +} +lean_ctor_set(x_60, 0, x_59); +lean_ctor_set(x_60, 1, x_51); +return x_60; } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; -x_60 = lean_array_fget(x_48, x_53); -lean_dec(x_53); -lean_dec(x_48); -x_61 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_61, 0, x_60); -if (lean_is_scalar(x_51)) { - x_62 = lean_alloc_ctor(0, 2, 0); -} else { - x_62 = x_51; -} +lean_object* x_61; lean_object* x_62; lean_object* x_63; +x_61 = lean_array_fget(x_49, x_54); +lean_dec(x_54); +lean_dec(x_49); +x_62 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_62, 0, x_61); -lean_ctor_set(x_62, 1, x_50); -return x_62; +if (lean_is_scalar(x_52)) { + x_63 = lean_alloc_ctor(0, 2, 0); +} else { + x_63 = x_52; +} +lean_ctor_set(x_63, 0, x_62); +lean_ctor_set(x_63, 1, x_51); +return x_63; } } } } else { -lean_object* x_63; lean_object* x_64; lean_object* x_65; uint8_t x_66; lean_object* x_67; -x_63 = lean_ctor_get(x_14, 0); -x_64 = lean_ctor_get(x_14, 1); -lean_inc(x_64); -lean_inc(x_63); -lean_dec(x_14); -x_65 = lean_ctor_get(x_63, 0); +lean_object* x_64; lean_object* x_65; lean_object* x_66; uint8_t x_67; lean_object* x_68; +x_64 = lean_ctor_get(x_15, 0); +x_65 = lean_ctor_get(x_15, 1); lean_inc(x_65); -lean_dec(x_63); -x_66 = 0; -x_67 = l_Lean_Expr_constructorApp_x3f(x_65, x_12, x_66); -if (lean_obj_tag(x_67) == 0) +lean_inc(x_64); +lean_dec(x_15); +x_66 = lean_ctor_get(x_64, 0); +lean_inc(x_66); +lean_dec(x_64); +x_67 = 0; +x_68 = l_Lean_Expr_constructorApp_x3f(x_66, x_13, x_67); +if (lean_obj_tag(x_68) == 0) { -lean_object* x_68; lean_object* x_69; -lean_dec(x_9); -x_68 = lean_box(0); -x_69 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_69, 0, x_68); -lean_ctor_set(x_69, 1, x_64); -return x_69; +lean_object* x_69; lean_object* x_70; +lean_dec(x_10); +x_69 = lean_box(0); +x_70 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_70, 0, x_69); +lean_ctor_set(x_70, 1, x_65); +return x_70; } else { -lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; uint8_t x_80; -x_70 = lean_ctor_get(x_67, 0); -lean_inc(x_70); -if (lean_is_exclusive(x_67)) { - lean_ctor_release(x_67, 0); - x_71 = x_67; +lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; uint8_t x_81; +x_71 = lean_ctor_get(x_68, 0); +lean_inc(x_71); +if (lean_is_exclusive(x_68)) { + lean_ctor_release(x_68, 0); + x_72 = x_68; } else { - lean_dec_ref(x_67); - x_71 = lean_box(0); + lean_dec_ref(x_68); + x_72 = lean_box(0); } -x_72 = lean_ctor_get(x_70, 0); -lean_inc(x_72); -x_73 = lean_ctor_get(x_70, 1); +x_73 = lean_ctor_get(x_71, 0); lean_inc(x_73); -lean_dec(x_70); -x_74 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_64); -x_75 = lean_ctor_get(x_74, 1); -lean_inc(x_75); -if (lean_is_exclusive(x_74)) { - lean_ctor_release(x_74, 0); - lean_ctor_release(x_74, 1); - x_76 = x_74; +x_74 = lean_ctor_get(x_71, 1); +lean_inc(x_74); +lean_dec(x_71); +x_75 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_65); +x_76 = lean_ctor_get(x_75, 1); +lean_inc(x_76); +if (lean_is_exclusive(x_75)) { + lean_ctor_release(x_75, 0); + lean_ctor_release(x_75, 1); + x_77 = x_75; } else { - lean_dec_ref(x_74); - x_76 = lean_box(0); + lean_dec_ref(x_75); + x_77 = lean_box(0); } -x_77 = lean_ctor_get(x_72, 3); -lean_inc(x_77); -lean_dec(x_72); -x_78 = lean_nat_add(x_77, x_9); -lean_dec(x_9); -lean_dec(x_77); -x_79 = lean_array_get_size(x_73); -x_80 = lean_nat_dec_lt(x_78, x_79); -lean_dec(x_79); -if (x_80 == 0) -{ -lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; -lean_dec(x_78); +x_78 = lean_ctor_get(x_73, 3); +lean_inc(x_78); lean_dec(x_73); -x_81 = l_Lean_Compiler_LCNF_Simp_simpProj_x3f___closed__4; -x_82 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_81); -if (lean_is_scalar(x_71)) { - x_83 = lean_alloc_ctor(1, 1, 0); +x_79 = lean_nat_add(x_78, x_10); +lean_dec(x_10); +lean_dec(x_78); +x_80 = lean_array_get_size(x_74); +x_81 = lean_nat_dec_lt(x_79, x_80); +lean_dec(x_80); +if (x_81 == 0) +{ +lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; +lean_dec(x_79); +lean_dec(x_74); +x_82 = l_Lean_Compiler_LCNF_Simp_simpProj_x3f___closed__4; +x_83 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_82); +if (lean_is_scalar(x_72)) { + x_84 = lean_alloc_ctor(1, 1, 0); } else { - x_83 = x_71; -} -lean_ctor_set(x_83, 0, x_82); -if (lean_is_scalar(x_76)) { - x_84 = lean_alloc_ctor(0, 2, 0); -} else { - x_84 = x_76; + x_84 = x_72; } lean_ctor_set(x_84, 0, x_83); -lean_ctor_set(x_84, 1, x_75); -return x_84; +if (lean_is_scalar(x_77)) { + x_85 = lean_alloc_ctor(0, 2, 0); +} else { + x_85 = x_77; +} +lean_ctor_set(x_85, 0, x_84); +lean_ctor_set(x_85, 1, x_76); +return x_85; } else { -lean_object* x_85; lean_object* x_86; lean_object* x_87; -x_85 = lean_array_fget(x_73, x_78); -lean_dec(x_78); -lean_dec(x_73); -if (lean_is_scalar(x_71)) { - x_86 = lean_alloc_ctor(1, 1, 0); +lean_object* x_86; lean_object* x_87; lean_object* x_88; +x_86 = lean_array_fget(x_74, x_79); +lean_dec(x_79); +lean_dec(x_74); +if (lean_is_scalar(x_72)) { + x_87 = lean_alloc_ctor(1, 1, 0); } else { - x_86 = x_71; -} -lean_ctor_set(x_86, 0, x_85); -if (lean_is_scalar(x_76)) { - x_87 = lean_alloc_ctor(0, 2, 0); -} else { - x_87 = x_76; + x_87 = x_72; } lean_ctor_set(x_87, 0, x_86); -lean_ctor_set(x_87, 1, x_75); -return x_87; +if (lean_is_scalar(x_77)) { + x_88 = lean_alloc_ctor(0, 2, 0); +} else { + x_88 = x_77; +} +lean_ctor_set(x_88, 0, x_87); +lean_ctor_set(x_88, 1, x_76); +return x_88; } } } } else { -lean_object* x_88; lean_object* x_89; +lean_object* x_89; lean_object* x_90; lean_dec(x_1); -x_88 = lean_box(0); -x_89 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_89, 0, x_88); -lean_ctor_set(x_89, 1, x_8); -return x_89; +x_89 = lean_box(0); +x_90 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_90, 0, x_89); +lean_ctor_set(x_90, 1, x_9); +return x_90; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpProj_x3f___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpProj_x3f___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) { _start: { -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_simpProj_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_simpProj_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); -return x_9; +return x_10; } } static lean_object* _init_l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1() { @@ -464,1028 +446,28 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f(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_Compiler_LCNF_Simp_simpAppApp_x3f(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: { -uint8_t x_9; lean_object* x_10; lean_object* x_11; -x_9 = l_Lean_Expr_isApp(x_1); -if (x_9 == 0) -{ -lean_object* x_140; -x_140 = lean_box(0); -x_10 = x_140; -x_11 = x_8; -goto block_139; -} -else +uint8_t x_10; lean_object* x_11; lean_object* x_12; +x_10 = l_Lean_Expr_isApp(x_1); +if (x_10 == 0) { lean_object* x_141; -x_141 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__2; -x_10 = x_141; -x_11 = x_8; -goto block_139; -} -block_139: -{ -if (lean_obj_tag(x_10) == 0) -{ -lean_object* x_12; lean_object* x_13; -lean_dec(x_1); -x_12 = lean_box(0); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_12); -lean_ctor_set(x_13, 1, x_11); -return x_13; +x_141 = lean_box(0); +x_11 = x_141; +x_12 = x_9; +goto block_140; } else { -uint8_t x_14; -x_14 = !lean_is_exclusive(x_10); -if (x_14 == 0) -{ -lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_15 = lean_ctor_get(x_10, 0); -lean_dec(x_15); -x_16 = l_Lean_Expr_getAppFn(x_1); -x_17 = l_Lean_Expr_isFVar(x_16); -if (x_17 == 0) -{ -lean_object* x_18; lean_object* x_19; -lean_dec(x_16); -lean_free_object(x_10); -lean_dec(x_1); -x_18 = lean_box(0); -x_19 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_19, 0, x_18); -lean_ctor_set(x_19, 1, x_11); -return x_19; +lean_object* x_142; +x_142 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__2; +x_11 = x_142; +x_12 = x_9; +goto block_140; } -else -{ -uint8_t x_20; lean_object* x_21; uint8_t x_22; -x_20 = 1; -x_21 = l_Lean_Compiler_LCNF_Simp_findExpr(x_16, x_20, x_4, x_5, x_6, x_7, x_11); -x_22 = !lean_is_exclusive(x_21); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; uint8_t x_25; -x_23 = lean_ctor_get(x_21, 0); -x_24 = lean_ctor_get(x_21, 1); -x_25 = l_Lean_Expr_isApp(x_23); -if (x_25 == 0) -{ -uint8_t x_26; -x_26 = l_Lean_Expr_isConst(x_23); -if (x_26 == 0) -{ -lean_object* x_27; -lean_dec(x_23); -lean_free_object(x_10); -lean_dec(x_1); -x_27 = lean_box(0); -lean_ctor_set(x_21, 0, x_27); -return x_21; -} -else -{ -lean_object* x_28; uint8_t x_29; -lean_free_object(x_21); -x_28 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_24); -x_29 = !lean_is_exclusive(x_28); -if (x_29 == 0) -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_30 = lean_ctor_get(x_28, 0); -lean_dec(x_30); -x_31 = lean_unsigned_to_nat(0u); -x_32 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_31); -x_33 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; -lean_inc(x_32); -x_34 = lean_mk_array(x_32, x_33); -x_35 = lean_unsigned_to_nat(1u); -x_36 = lean_nat_sub(x_32, x_35); -lean_dec(x_32); -x_37 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_34, x_36); -x_38 = l_Lean_mkAppN(x_23, x_37); -lean_ctor_set(x_10, 0, x_38); -lean_ctor_set(x_28, 0, x_10); -return x_28; -} -else -{ -lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_39 = lean_ctor_get(x_28, 1); -lean_inc(x_39); -lean_dec(x_28); -x_40 = lean_unsigned_to_nat(0u); -x_41 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_40); -x_42 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; -lean_inc(x_41); -x_43 = lean_mk_array(x_41, x_42); -x_44 = lean_unsigned_to_nat(1u); -x_45 = lean_nat_sub(x_41, x_44); -lean_dec(x_41); -x_46 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_43, x_45); -x_47 = l_Lean_mkAppN(x_23, x_46); -lean_ctor_set(x_10, 0, x_47); -x_48 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_48, 0, x_10); -lean_ctor_set(x_48, 1, x_39); -return x_48; -} -} -} -else -{ -lean_object* x_49; uint8_t x_50; -lean_free_object(x_21); -x_49 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_24); -x_50 = !lean_is_exclusive(x_49); -if (x_50 == 0) -{ -lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_51 = lean_ctor_get(x_49, 0); -lean_dec(x_51); -x_52 = lean_unsigned_to_nat(0u); -x_53 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_52); -x_54 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; -lean_inc(x_53); -x_55 = lean_mk_array(x_53, x_54); -x_56 = lean_unsigned_to_nat(1u); -x_57 = lean_nat_sub(x_53, x_56); -lean_dec(x_53); -x_58 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_55, x_57); -x_59 = l_Lean_mkAppN(x_23, x_58); -lean_ctor_set(x_10, 0, x_59); -lean_ctor_set(x_49, 0, x_10); -return x_49; -} -else -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; -x_60 = lean_ctor_get(x_49, 1); -lean_inc(x_60); -lean_dec(x_49); -x_61 = lean_unsigned_to_nat(0u); -x_62 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_61); -x_63 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; -lean_inc(x_62); -x_64 = lean_mk_array(x_62, x_63); -x_65 = lean_unsigned_to_nat(1u); -x_66 = lean_nat_sub(x_62, x_65); -lean_dec(x_62); -x_67 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_64, x_66); -x_68 = l_Lean_mkAppN(x_23, x_67); -lean_ctor_set(x_10, 0, x_68); -x_69 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_69, 0, x_10); -lean_ctor_set(x_69, 1, x_60); -return x_69; -} -} -} -else -{ -lean_object* x_70; lean_object* x_71; uint8_t x_72; -x_70 = lean_ctor_get(x_21, 0); -x_71 = lean_ctor_get(x_21, 1); -lean_inc(x_71); -lean_inc(x_70); -lean_dec(x_21); -x_72 = l_Lean_Expr_isApp(x_70); -if (x_72 == 0) -{ -uint8_t x_73; -x_73 = l_Lean_Expr_isConst(x_70); -if (x_73 == 0) -{ -lean_object* x_74; lean_object* x_75; -lean_dec(x_70); -lean_free_object(x_10); -lean_dec(x_1); -x_74 = lean_box(0); -x_75 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_75, 0, x_74); -lean_ctor_set(x_75, 1, x_71); -return x_75; -} -else -{ -lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; -x_76 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_71); -x_77 = lean_ctor_get(x_76, 1); -lean_inc(x_77); -if (lean_is_exclusive(x_76)) { - lean_ctor_release(x_76, 0); - lean_ctor_release(x_76, 1); - x_78 = x_76; -} else { - lean_dec_ref(x_76); - x_78 = lean_box(0); -} -x_79 = lean_unsigned_to_nat(0u); -x_80 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_79); -x_81 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; -lean_inc(x_80); -x_82 = lean_mk_array(x_80, x_81); -x_83 = lean_unsigned_to_nat(1u); -x_84 = lean_nat_sub(x_80, x_83); -lean_dec(x_80); -x_85 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_82, x_84); -x_86 = l_Lean_mkAppN(x_70, x_85); -lean_ctor_set(x_10, 0, x_86); -if (lean_is_scalar(x_78)) { - x_87 = lean_alloc_ctor(0, 2, 0); -} else { - x_87 = x_78; -} -lean_ctor_set(x_87, 0, x_10); -lean_ctor_set(x_87, 1, x_77); -return x_87; -} -} -else -{ -lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; -x_88 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_71); -x_89 = lean_ctor_get(x_88, 1); -lean_inc(x_89); -if (lean_is_exclusive(x_88)) { - lean_ctor_release(x_88, 0); - lean_ctor_release(x_88, 1); - x_90 = x_88; -} else { - lean_dec_ref(x_88); - x_90 = lean_box(0); -} -x_91 = lean_unsigned_to_nat(0u); -x_92 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_91); -x_93 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; -lean_inc(x_92); -x_94 = lean_mk_array(x_92, x_93); -x_95 = lean_unsigned_to_nat(1u); -x_96 = lean_nat_sub(x_92, x_95); -lean_dec(x_92); -x_97 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_94, x_96); -x_98 = l_Lean_mkAppN(x_70, x_97); -lean_ctor_set(x_10, 0, x_98); -if (lean_is_scalar(x_90)) { - x_99 = lean_alloc_ctor(0, 2, 0); -} else { - x_99 = x_90; -} -lean_ctor_set(x_99, 0, x_10); -lean_ctor_set(x_99, 1, x_89); -return x_99; -} -} -} -} -else -{ -lean_object* x_100; uint8_t x_101; -lean_dec(x_10); -x_100 = l_Lean_Expr_getAppFn(x_1); -x_101 = l_Lean_Expr_isFVar(x_100); -if (x_101 == 0) -{ -lean_object* x_102; lean_object* x_103; -lean_dec(x_100); -lean_dec(x_1); -x_102 = lean_box(0); -x_103 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_103, 0, x_102); -lean_ctor_set(x_103, 1, x_11); -return x_103; -} -else -{ -uint8_t x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; uint8_t x_109; -x_104 = 1; -x_105 = l_Lean_Compiler_LCNF_Simp_findExpr(x_100, x_104, x_4, x_5, x_6, x_7, x_11); -x_106 = lean_ctor_get(x_105, 0); -lean_inc(x_106); -x_107 = lean_ctor_get(x_105, 1); -lean_inc(x_107); -if (lean_is_exclusive(x_105)) { - lean_ctor_release(x_105, 0); - lean_ctor_release(x_105, 1); - x_108 = x_105; -} else { - lean_dec_ref(x_105); - x_108 = lean_box(0); -} -x_109 = l_Lean_Expr_isApp(x_106); -if (x_109 == 0) -{ -uint8_t x_110; -x_110 = l_Lean_Expr_isConst(x_106); -if (x_110 == 0) -{ -lean_object* x_111; lean_object* x_112; -lean_dec(x_106); -lean_dec(x_1); -x_111 = lean_box(0); -if (lean_is_scalar(x_108)) { - x_112 = lean_alloc_ctor(0, 2, 0); -} else { - x_112 = x_108; -} -lean_ctor_set(x_112, 0, x_111); -lean_ctor_set(x_112, 1, x_107); -return x_112; -} -else -{ -lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; -lean_dec(x_108); -x_113 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_107); -x_114 = lean_ctor_get(x_113, 1); -lean_inc(x_114); -if (lean_is_exclusive(x_113)) { - lean_ctor_release(x_113, 0); - lean_ctor_release(x_113, 1); - x_115 = x_113; -} else { - lean_dec_ref(x_113); - x_115 = lean_box(0); -} -x_116 = lean_unsigned_to_nat(0u); -x_117 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_116); -x_118 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; -lean_inc(x_117); -x_119 = lean_mk_array(x_117, x_118); -x_120 = lean_unsigned_to_nat(1u); -x_121 = lean_nat_sub(x_117, x_120); -lean_dec(x_117); -x_122 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_119, x_121); -x_123 = l_Lean_mkAppN(x_106, x_122); -x_124 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_124, 0, x_123); -if (lean_is_scalar(x_115)) { - x_125 = lean_alloc_ctor(0, 2, 0); -} else { - x_125 = x_115; -} -lean_ctor_set(x_125, 0, x_124); -lean_ctor_set(x_125, 1, x_114); -return x_125; -} -} -else -{ -lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; -lean_dec(x_108); -x_126 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_107); -x_127 = lean_ctor_get(x_126, 1); -lean_inc(x_127); -if (lean_is_exclusive(x_126)) { - lean_ctor_release(x_126, 0); - lean_ctor_release(x_126, 1); - x_128 = x_126; -} else { - lean_dec_ref(x_126); - x_128 = lean_box(0); -} -x_129 = lean_unsigned_to_nat(0u); -x_130 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_129); -x_131 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; -lean_inc(x_130); -x_132 = lean_mk_array(x_130, x_131); -x_133 = lean_unsigned_to_nat(1u); -x_134 = lean_nat_sub(x_130, x_133); -lean_dec(x_130); -x_135 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_132, x_134); -x_136 = l_Lean_mkAppN(x_106, x_135); -x_137 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_137, 0, x_136); -if (lean_is_scalar(x_128)) { - x_138 = lean_alloc_ctor(0, 2, 0); -} else { - x_138 = x_128; -} -lean_ctor_set(x_138, 0, x_137); -lean_ctor_set(x_138, 1, x_127); -return x_138; -} -} -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; uint8_t x_7; -x_6 = lean_array_get_size(x_1); -x_7 = lean_nat_dec_lt(x_4, x_6); -lean_dec(x_6); -if (x_7 == 0) -{ -lean_object* x_8; -lean_dec(x_4); -x_8 = lean_box(0); -return x_8; -} -else -{ -lean_object* x_9; uint8_t x_10; -x_9 = lean_array_fget(x_1, x_4); -x_10 = lean_expr_eqv(x_5, x_9); -lean_dec(x_9); -if (x_10 == 0) -{ -lean_object* x_11; lean_object* x_12; -x_11 = lean_unsigned_to_nat(1u); -x_12 = lean_nat_add(x_4, x_11); -lean_dec(x_4); -x_3 = lean_box(0); -x_4 = x_12; -goto _start; -} -else -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_array_fget(x_2, x_4); -lean_dec(x_4); -x_15 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_15, 0, x_14); -return x_15; -} -} -} -} -static size_t _init_l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2___closed__1() { -_start: -{ -size_t x_1; size_t x_2; size_t x_3; -x_1 = 1; -x_2 = 5; -x_3 = lean_usize_shift_left(x_1, x_2); -return x_3; -} -} -static size_t _init_l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2___closed__2() { -_start: -{ -size_t x_1; size_t x_2; size_t x_3; -x_1 = 1; -x_2 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2___closed__1; -x_3 = lean_usize_sub(x_2, x_1); -return x_3; -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2(lean_object* x_1, size_t x_2, lean_object* x_3) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_4; size_t x_5; size_t x_6; size_t x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_4 = lean_ctor_get(x_1, 0); -lean_inc(x_4); -lean_dec(x_1); -x_5 = 5; -x_6 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2___closed__2; -x_7 = lean_usize_land(x_2, x_6); -x_8 = lean_usize_to_nat(x_7); -x_9 = lean_box(2); -x_10 = lean_array_get(x_9, x_4, x_8); -lean_dec(x_8); -lean_dec(x_4); -switch (lean_obj_tag(x_10)) { -case 0: -{ -lean_object* x_11; lean_object* x_12; uint8_t x_13; -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_10, 1); -lean_inc(x_12); -lean_dec(x_10); -x_13 = lean_expr_eqv(x_3, x_11); -lean_dec(x_11); -if (x_13 == 0) -{ -lean_object* x_14; -lean_dec(x_12); -x_14 = lean_box(0); -return x_14; -} -else -{ -lean_object* x_15; -x_15 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_15, 0, x_12); -return x_15; -} -} -case 1: -{ -lean_object* x_16; size_t x_17; -x_16 = lean_ctor_get(x_10, 0); -lean_inc(x_16); -lean_dec(x_10); -x_17 = lean_usize_shift_right(x_2, x_5); -x_1 = x_16; -x_2 = x_17; -goto _start; -} -default: -{ -lean_object* x_19; -x_19 = lean_box(0); -return x_19; -} -} -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_20 = lean_ctor_get(x_1, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 1); -lean_inc(x_21); -lean_dec(x_1); -x_22 = lean_unsigned_to_nat(0u); -x_23 = l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__3(x_20, x_21, lean_box(0), x_22, x_3); -lean_dec(x_21); -lean_dec(x_20); -return x_23; -} -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; uint64_t x_4; size_t x_5; lean_object* x_6; -x_3 = lean_ctor_get(x_1, 0); -lean_inc(x_3); -lean_dec(x_1); -x_4 = l_Lean_Expr_hash(x_2); -x_5 = lean_uint64_to_usize(x_4); -x_6 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2(x_3, x_5, x_2); -lean_dec(x_2); -return x_6; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f(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_9; lean_object* x_10; -x_9 = lean_ctor_get(x_2, 3); -lean_inc(x_9); -lean_dec(x_2); -lean_inc(x_1); -x_10 = l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__1(x_9, x_1); -if (lean_obj_tag(x_10) == 0) -{ -lean_object* x_11; lean_object* x_12; -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_11 = lean_box(0); -x_12 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_12, 0, x_11); -lean_ctor_set(x_12, 1, x_8); -return x_12; -} -else -{ -uint8_t x_13; -x_13 = !lean_is_exclusive(x_10); -if (x_13 == 0) -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_ctor_get(x_10, 0); -lean_inc(x_14); -x_15 = l_Lean_Compiler_LCNF_getType(x_14, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_15) == 0) -{ -lean_object* x_16; lean_object* x_17; lean_object* x_18; -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_18 = l_Lean_Compiler_LCNF_inferType(x_1, x_4, x_5, x_6, x_7, x_17); -if (lean_obj_tag(x_18) == 0) -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_18, 0); -lean_inc(x_19); -x_20 = lean_ctor_get(x_18, 1); -lean_inc(x_20); -lean_dec(x_18); -x_21 = l_Lean_Compiler_LCNF_compatibleTypes(x_16, x_19, x_4, x_5, x_6, x_7, x_20); -if (lean_obj_tag(x_21) == 0) -{ -lean_object* x_22; uint8_t x_23; -x_22 = lean_ctor_get(x_21, 0); -lean_inc(x_22); -x_23 = lean_unbox(x_22); -lean_dec(x_22); -if (x_23 == 0) -{ -uint8_t x_24; -lean_free_object(x_10); -lean_dec(x_14); -x_24 = !lean_is_exclusive(x_21); -if (x_24 == 0) -{ -lean_object* x_25; lean_object* x_26; -x_25 = lean_ctor_get(x_21, 0); -lean_dec(x_25); -x_26 = lean_box(0); -lean_ctor_set(x_21, 0, x_26); -return x_21; -} -else -{ -lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_27 = lean_ctor_get(x_21, 1); -lean_inc(x_27); -lean_dec(x_21); -x_28 = lean_box(0); -x_29 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_29, 0, x_28); -lean_ctor_set(x_29, 1, x_27); -return x_29; -} -} -else -{ -uint8_t x_30; -x_30 = !lean_is_exclusive(x_21); -if (x_30 == 0) -{ -lean_object* x_31; lean_object* x_32; -x_31 = lean_ctor_get(x_21, 0); -lean_dec(x_31); -x_32 = l_Lean_Expr_fvar___override(x_14); -lean_ctor_set(x_10, 0, x_32); -lean_ctor_set(x_21, 0, x_10); -return x_21; -} -else -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_33 = lean_ctor_get(x_21, 1); -lean_inc(x_33); -lean_dec(x_21); -x_34 = l_Lean_Expr_fvar___override(x_14); -lean_ctor_set(x_10, 0, x_34); -x_35 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_35, 0, x_10); -lean_ctor_set(x_35, 1, x_33); -return x_35; -} -} -} -else -{ -uint8_t x_36; -lean_free_object(x_10); -lean_dec(x_14); -x_36 = !lean_is_exclusive(x_21); -if (x_36 == 0) -{ -return x_21; -} -else -{ -lean_object* x_37; lean_object* x_38; lean_object* x_39; -x_37 = lean_ctor_get(x_21, 0); -x_38 = lean_ctor_get(x_21, 1); -lean_inc(x_38); -lean_inc(x_37); -lean_dec(x_21); -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_40; -lean_dec(x_16); -lean_free_object(x_10); -lean_dec(x_14); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -x_40 = !lean_is_exclusive(x_18); -if (x_40 == 0) -{ -return x_18; -} -else -{ -lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_41 = lean_ctor_get(x_18, 0); -x_42 = lean_ctor_get(x_18, 1); -lean_inc(x_42); -lean_inc(x_41); -lean_dec(x_18); -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_44; -lean_free_object(x_10); -lean_dec(x_14); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_44 = !lean_is_exclusive(x_15); -if (x_44 == 0) -{ -return x_15; -} -else -{ -lean_object* x_45; lean_object* x_46; lean_object* x_47; -x_45 = lean_ctor_get(x_15, 0); -x_46 = lean_ctor_get(x_15, 1); -lean_inc(x_46); -lean_inc(x_45); -lean_dec(x_15); -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; -} -} -} -else -{ -lean_object* x_48; lean_object* x_49; -x_48 = lean_ctor_get(x_10, 0); -lean_inc(x_48); -lean_dec(x_10); -lean_inc(x_48); -x_49 = l_Lean_Compiler_LCNF_getType(x_48, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_49) == 0) -{ -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_49, 0); -lean_inc(x_50); -x_51 = lean_ctor_get(x_49, 1); -lean_inc(x_51); -lean_dec(x_49); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -x_52 = l_Lean_Compiler_LCNF_inferType(x_1, x_4, x_5, x_6, x_7, x_51); -if (lean_obj_tag(x_52) == 0) -{ -lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_53 = lean_ctor_get(x_52, 0); -lean_inc(x_53); -x_54 = lean_ctor_get(x_52, 1); -lean_inc(x_54); -lean_dec(x_52); -x_55 = l_Lean_Compiler_LCNF_compatibleTypes(x_50, x_53, x_4, x_5, x_6, x_7, x_54); -if (lean_obj_tag(x_55) == 0) -{ -lean_object* x_56; uint8_t x_57; -x_56 = lean_ctor_get(x_55, 0); -lean_inc(x_56); -x_57 = lean_unbox(x_56); -lean_dec(x_56); -if (x_57 == 0) -{ -lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; -lean_dec(x_48); -x_58 = lean_ctor_get(x_55, 1); -lean_inc(x_58); -if (lean_is_exclusive(x_55)) { - lean_ctor_release(x_55, 0); - lean_ctor_release(x_55, 1); - x_59 = x_55; -} else { - lean_dec_ref(x_55); - x_59 = lean_box(0); -} -x_60 = lean_box(0); -if (lean_is_scalar(x_59)) { - x_61 = lean_alloc_ctor(0, 2, 0); -} else { - x_61 = x_59; -} -lean_ctor_set(x_61, 0, x_60); -lean_ctor_set(x_61, 1, x_58); -return x_61; -} -else -{ -lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; -x_62 = lean_ctor_get(x_55, 1); -lean_inc(x_62); -if (lean_is_exclusive(x_55)) { - lean_ctor_release(x_55, 0); - lean_ctor_release(x_55, 1); - x_63 = x_55; -} else { - lean_dec_ref(x_55); - x_63 = lean_box(0); -} -x_64 = l_Lean_Expr_fvar___override(x_48); -x_65 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_65, 0, x_64); -if (lean_is_scalar(x_63)) { - x_66 = lean_alloc_ctor(0, 2, 0); -} else { - x_66 = x_63; -} -lean_ctor_set(x_66, 0, x_65); -lean_ctor_set(x_66, 1, x_62); -return x_66; -} -} -else -{ -lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; -lean_dec(x_48); -x_67 = lean_ctor_get(x_55, 0); -lean_inc(x_67); -x_68 = lean_ctor_get(x_55, 1); -lean_inc(x_68); -if (lean_is_exclusive(x_55)) { - lean_ctor_release(x_55, 0); - lean_ctor_release(x_55, 1); - x_69 = x_55; -} else { - lean_dec_ref(x_55); - x_69 = lean_box(0); -} -if (lean_is_scalar(x_69)) { - x_70 = lean_alloc_ctor(1, 2, 0); -} else { - x_70 = x_69; -} -lean_ctor_set(x_70, 0, x_67); -lean_ctor_set(x_70, 1, x_68); -return x_70; -} -} -else -{ -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; -lean_dec(x_50); -lean_dec(x_48); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -x_71 = lean_ctor_get(x_52, 0); -lean_inc(x_71); -x_72 = lean_ctor_get(x_52, 1); -lean_inc(x_72); -if (lean_is_exclusive(x_52)) { - lean_ctor_release(x_52, 0); - lean_ctor_release(x_52, 1); - x_73 = x_52; -} else { - lean_dec_ref(x_52); - x_73 = lean_box(0); -} -if (lean_is_scalar(x_73)) { - x_74 = lean_alloc_ctor(1, 2, 0); -} else { - x_74 = x_73; -} -lean_ctor_set(x_74, 0, x_71); -lean_ctor_set(x_74, 1, x_72); -return x_74; -} -} -else -{ -lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -lean_dec(x_48); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_75 = lean_ctor_get(x_49, 0); -lean_inc(x_75); -x_76 = lean_ctor_get(x_49, 1); -lean_inc(x_76); -if (lean_is_exclusive(x_49)) { - lean_ctor_release(x_49, 0); - lean_ctor_release(x_49, 1); - x_77 = x_49; -} else { - lean_dec_ref(x_49); - x_77 = lean_box(0); -} -if (lean_is_scalar(x_77)) { - x_78 = lean_alloc_ctor(1, 2, 0); -} else { - x_78 = x_77; -} -lean_ctor_set(x_78, 0, x_75); -lean_ctor_set(x_78, 1, x_76); -return x_78; -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; -x_6 = l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__3(x_1, x_2, x_3, x_4, x_5); -lean_dec(x_5); -lean_dec(x_2); -lean_dec(x_1); -return x_6; -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -size_t x_4; lean_object* x_5; -x_4 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_5 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2(x_1, x_4, x_3); -lean_dec(x_3); -return x_5; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean_dec(x_3); -return x_9; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Compiler_implementedByAttr; -return x_1; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f(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_9; uint8_t x_10; lean_object* x_11; lean_object* x_12; -x_9 = lean_ctor_get(x_2, 1); -x_10 = lean_ctor_get_uint8(x_9, 2); -if (x_10 == 0) -{ -lean_object* x_94; -x_94 = lean_box(0); -x_11 = x_94; -x_12 = x_8; -goto block_93; -} -else -{ -lean_object* x_95; -x_95 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__2; -x_11 = x_95; -x_12 = x_8; -goto block_93; -} -block_93: +block_140: { if (lean_obj_tag(x_11) == 0) { @@ -1499,173 +481,180 @@ return x_14; } else { -lean_object* x_15; -lean_dec(x_11); -x_15 = l_Lean_Expr_getAppFn(x_1); -if (lean_obj_tag(x_15) == 4) +uint8_t x_15; +x_15 = !lean_is_exclusive(x_11); +if (x_15 == 0) { -lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); -x_18 = lean_st_ref_get(x_7, x_12); -x_19 = !lean_is_exclusive(x_18); -if (x_19 == 0) +lean_object* x_16; lean_object* x_17; uint8_t x_18; +x_16 = lean_ctor_get(x_11, 0); +lean_dec(x_16); +x_17 = l_Lean_Expr_getAppFn(x_1); +x_18 = l_Lean_Expr_isFVar(x_17); +if (x_18 == 0) { -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_20 = lean_ctor_get(x_18, 0); -x_21 = lean_ctor_get(x_18, 1); -x_22 = lean_ctor_get(x_20, 0); -lean_inc(x_22); -lean_dec(x_20); -x_23 = l_Lean_instInhabitedName; -x_24 = l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___closed__1; -x_25 = l_Lean_ParametricAttribute_getParam_x3f___rarg(x_23, x_24, x_22, x_16); -if (lean_obj_tag(x_25) == 0) -{ -lean_object* x_26; +lean_object* x_19; lean_object* x_20; lean_dec(x_17); +lean_free_object(x_11); lean_dec(x_1); -x_26 = lean_box(0); -lean_ctor_set(x_18, 0, x_26); -return x_18; +x_19 = lean_box(0); +x_20 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_20, 0, x_19); +lean_ctor_set(x_20, 1, x_12); +return x_20; } else { +uint8_t x_21; lean_object* x_22; uint8_t x_23; +x_21 = 1; +x_22 = l_Lean_Compiler_LCNF_Simp_findExpr(x_17, x_21, x_5, x_6, x_7, x_8, x_12); +x_23 = !lean_is_exclusive(x_22); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_24 = lean_ctor_get(x_22, 0); +x_25 = lean_ctor_get(x_22, 1); +x_26 = l_Lean_Expr_isApp(x_24); +if (x_26 == 0) +{ uint8_t x_27; -lean_free_object(x_18); -x_27 = !lean_is_exclusive(x_25); +x_27 = l_Lean_Expr_isConst(x_24); if (x_27 == 0) { -lean_object* x_28; lean_object* x_29; uint8_t x_30; -x_28 = lean_ctor_get(x_25, 0); -x_29 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_21); +lean_object* x_28; +lean_dec(x_24); +lean_free_object(x_11); +lean_dec(x_1); +x_28 = lean_box(0); +lean_ctor_set(x_22, 0, x_28); +return x_22; +} +else +{ +lean_object* x_29; uint8_t x_30; +lean_free_object(x_22); +x_29 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_25); x_30 = !lean_is_exclusive(x_29); if (x_30 == 0) { -lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; x_31 = lean_ctor_get(x_29, 0); lean_dec(x_31); -x_32 = l_Lean_Expr_const___override(x_28, x_17); -x_33 = lean_unsigned_to_nat(0u); -x_34 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_33); -x_35 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; -lean_inc(x_34); -x_36 = lean_mk_array(x_34, x_35); -x_37 = lean_unsigned_to_nat(1u); -x_38 = lean_nat_sub(x_34, x_37); -lean_dec(x_34); -x_39 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_36, x_38); -x_40 = l_Lean_mkAppN(x_32, x_39); -lean_ctor_set(x_25, 0, x_40); -lean_ctor_set(x_29, 0, x_25); +x_32 = lean_unsigned_to_nat(0u); +x_33 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_32); +x_34 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; +lean_inc(x_33); +x_35 = lean_mk_array(x_33, x_34); +x_36 = lean_unsigned_to_nat(1u); +x_37 = lean_nat_sub(x_33, x_36); +lean_dec(x_33); +x_38 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_35, x_37); +x_39 = l_Lean_mkAppN(x_24, x_38); +lean_ctor_set(x_11, 0, x_39); +lean_ctor_set(x_29, 0, x_11); return x_29; } else { -lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_41 = lean_ctor_get(x_29, 1); -lean_inc(x_41); +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; +x_40 = lean_ctor_get(x_29, 1); +lean_inc(x_40); lean_dec(x_29); -x_42 = l_Lean_Expr_const___override(x_28, x_17); -x_43 = lean_unsigned_to_nat(0u); -x_44 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_43); -x_45 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; -lean_inc(x_44); -x_46 = lean_mk_array(x_44, x_45); -x_47 = lean_unsigned_to_nat(1u); -x_48 = lean_nat_sub(x_44, x_47); -lean_dec(x_44); -x_49 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_46, x_48); -x_50 = l_Lean_mkAppN(x_42, x_49); -lean_ctor_set(x_25, 0, x_50); -x_51 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_51, 0, x_25); -lean_ctor_set(x_51, 1, x_41); -return x_51; +x_41 = lean_unsigned_to_nat(0u); +x_42 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_41); +x_43 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; +lean_inc(x_42); +x_44 = lean_mk_array(x_42, x_43); +x_45 = lean_unsigned_to_nat(1u); +x_46 = lean_nat_sub(x_42, x_45); +lean_dec(x_42); +x_47 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_44, x_46); +x_48 = l_Lean_mkAppN(x_24, x_47); +lean_ctor_set(x_11, 0, x_48); +x_49 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_49, 0, x_11); +lean_ctor_set(x_49, 1, x_40); +return x_49; +} } } else { -lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; -x_52 = lean_ctor_get(x_25, 0); -lean_inc(x_52); -lean_dec(x_25); -x_53 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_21); -x_54 = lean_ctor_get(x_53, 1); +lean_object* x_50; uint8_t x_51; +lean_free_object(x_22); +x_50 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_25); +x_51 = !lean_is_exclusive(x_50); +if (x_51 == 0) +{ +lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; +x_52 = lean_ctor_get(x_50, 0); +lean_dec(x_52); +x_53 = lean_unsigned_to_nat(0u); +x_54 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_53); +x_55 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; lean_inc(x_54); -if (lean_is_exclusive(x_53)) { - lean_ctor_release(x_53, 0); - lean_ctor_release(x_53, 1); - x_55 = x_53; -} else { - lean_dec_ref(x_53); - x_55 = lean_box(0); +x_56 = lean_mk_array(x_54, x_55); +x_57 = lean_unsigned_to_nat(1u); +x_58 = lean_nat_sub(x_54, x_57); +lean_dec(x_54); +x_59 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_56, x_58); +x_60 = l_Lean_mkAppN(x_24, x_59); +lean_ctor_set(x_11, 0, x_60); +lean_ctor_set(x_50, 0, x_11); +return x_50; } -x_56 = l_Lean_Expr_const___override(x_52, x_17); -x_57 = lean_unsigned_to_nat(0u); -x_58 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_57); -x_59 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; -lean_inc(x_58); -x_60 = lean_mk_array(x_58, x_59); -x_61 = lean_unsigned_to_nat(1u); -x_62 = lean_nat_sub(x_58, x_61); -lean_dec(x_58); -x_63 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_60, x_62); -x_64 = l_Lean_mkAppN(x_56, x_63); -x_65 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_65, 0, x_64); -if (lean_is_scalar(x_55)) { - x_66 = lean_alloc_ctor(0, 2, 0); -} else { - x_66 = x_55; -} -lean_ctor_set(x_66, 0, x_65); -lean_ctor_set(x_66, 1, x_54); -return x_66; +else +{ +lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +x_61 = lean_ctor_get(x_50, 1); +lean_inc(x_61); +lean_dec(x_50); +x_62 = lean_unsigned_to_nat(0u); +x_63 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_62); +x_64 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; +lean_inc(x_63); +x_65 = lean_mk_array(x_63, x_64); +x_66 = lean_unsigned_to_nat(1u); +x_67 = lean_nat_sub(x_63, x_66); +lean_dec(x_63); +x_68 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_65, x_67); +x_69 = l_Lean_mkAppN(x_24, x_68); +lean_ctor_set(x_11, 0, x_69); +x_70 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_70, 0, x_11); +lean_ctor_set(x_70, 1, x_61); +return x_70; } } } else { -lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; -x_67 = lean_ctor_get(x_18, 0); -x_68 = lean_ctor_get(x_18, 1); -lean_inc(x_68); -lean_inc(x_67); -lean_dec(x_18); -x_69 = lean_ctor_get(x_67, 0); -lean_inc(x_69); -lean_dec(x_67); -x_70 = l_Lean_instInhabitedName; -x_71 = l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___closed__1; -x_72 = l_Lean_ParametricAttribute_getParam_x3f___rarg(x_70, x_71, x_69, x_16); -if (lean_obj_tag(x_72) == 0) +lean_object* x_71; lean_object* x_72; uint8_t x_73; +x_71 = lean_ctor_get(x_22, 0); +x_72 = lean_ctor_get(x_22, 1); +lean_inc(x_72); +lean_inc(x_71); +lean_dec(x_22); +x_73 = l_Lean_Expr_isApp(x_71); +if (x_73 == 0) { -lean_object* x_73; lean_object* x_74; -lean_dec(x_17); +uint8_t x_74; +x_74 = l_Lean_Expr_isConst(x_71); +if (x_74 == 0) +{ +lean_object* x_75; lean_object* x_76; +lean_dec(x_71); +lean_free_object(x_11); lean_dec(x_1); -x_73 = lean_box(0); -x_74 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_74, 0, x_73); -lean_ctor_set(x_74, 1, x_68); -return x_74; +x_75 = lean_box(0); +x_76 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_76, 0, x_75); +lean_ctor_set(x_76, 1, x_72); +return x_76; } else { -lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; -x_75 = lean_ctor_get(x_72, 0); -lean_inc(x_75); -if (lean_is_exclusive(x_72)) { - lean_ctor_release(x_72, 0); - x_76 = x_72; -} else { - lean_dec_ref(x_72); - x_76 = lean_box(0); -} -x_77 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_68); +lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; +x_77 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_72); x_78 = lean_ctor_get(x_77, 1); lean_inc(x_78); if (lean_is_exclusive(x_77)) { @@ -1676,330 +665,883 @@ if (lean_is_exclusive(x_77)) { lean_dec_ref(x_77); x_79 = lean_box(0); } -x_80 = l_Lean_Expr_const___override(x_75, x_17); -x_81 = lean_unsigned_to_nat(0u); -x_82 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_81); -x_83 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; -lean_inc(x_82); -x_84 = lean_mk_array(x_82, x_83); -x_85 = lean_unsigned_to_nat(1u); -x_86 = lean_nat_sub(x_82, x_85); -lean_dec(x_82); -x_87 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_84, x_86); -x_88 = l_Lean_mkAppN(x_80, x_87); -if (lean_is_scalar(x_76)) { - x_89 = lean_alloc_ctor(1, 1, 0); -} else { - x_89 = x_76; -} -lean_ctor_set(x_89, 0, x_88); +x_80 = lean_unsigned_to_nat(0u); +x_81 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_80); +x_82 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; +lean_inc(x_81); +x_83 = lean_mk_array(x_81, x_82); +x_84 = lean_unsigned_to_nat(1u); +x_85 = lean_nat_sub(x_81, x_84); +lean_dec(x_81); +x_86 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_83, x_85); +x_87 = l_Lean_mkAppN(x_71, x_86); +lean_ctor_set(x_11, 0, x_87); if (lean_is_scalar(x_79)) { - x_90 = lean_alloc_ctor(0, 2, 0); + x_88 = lean_alloc_ctor(0, 2, 0); } else { - x_90 = x_79; + x_88 = x_79; +} +lean_ctor_set(x_88, 0, x_11); +lean_ctor_set(x_88, 1, x_78); +return x_88; +} +} +else +{ +lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; +x_89 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_72); +x_90 = lean_ctor_get(x_89, 1); +lean_inc(x_90); +if (lean_is_exclusive(x_89)) { + lean_ctor_release(x_89, 0); + lean_ctor_release(x_89, 1); + x_91 = x_89; +} else { + lean_dec_ref(x_89); + x_91 = lean_box(0); +} +x_92 = lean_unsigned_to_nat(0u); +x_93 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_92); +x_94 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; +lean_inc(x_93); +x_95 = lean_mk_array(x_93, x_94); +x_96 = lean_unsigned_to_nat(1u); +x_97 = lean_nat_sub(x_93, x_96); +lean_dec(x_93); +x_98 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_95, x_97); +x_99 = l_Lean_mkAppN(x_71, x_98); +lean_ctor_set(x_11, 0, x_99); +if (lean_is_scalar(x_91)) { + x_100 = lean_alloc_ctor(0, 2, 0); +} else { + x_100 = x_91; +} +lean_ctor_set(x_100, 0, x_11); +lean_ctor_set(x_100, 1, x_90); +return x_100; } -lean_ctor_set(x_90, 0, x_89); -lean_ctor_set(x_90, 1, x_78); -return x_90; } } } else { -lean_object* x_91; lean_object* x_92; -lean_dec(x_15); +lean_object* x_101; uint8_t x_102; +lean_dec(x_11); +x_101 = l_Lean_Expr_getAppFn(x_1); +x_102 = l_Lean_Expr_isFVar(x_101); +if (x_102 == 0) +{ +lean_object* x_103; lean_object* x_104; +lean_dec(x_101); lean_dec(x_1); -x_91 = lean_box(0); -x_92 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_92, 0, x_91); -lean_ctor_set(x_92, 1, x_12); -return x_92; +x_103 = lean_box(0); +x_104 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_104, 0, x_103); +lean_ctor_set(x_104, 1, x_12); +return x_104; +} +else +{ +uint8_t x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; uint8_t x_110; +x_105 = 1; +x_106 = l_Lean_Compiler_LCNF_Simp_findExpr(x_101, x_105, x_5, x_6, x_7, x_8, x_12); +x_107 = lean_ctor_get(x_106, 0); +lean_inc(x_107); +x_108 = lean_ctor_get(x_106, 1); +lean_inc(x_108); +if (lean_is_exclusive(x_106)) { + lean_ctor_release(x_106, 0); + lean_ctor_release(x_106, 1); + x_109 = x_106; +} else { + lean_dec_ref(x_106); + x_109 = lean_box(0); +} +x_110 = l_Lean_Expr_isApp(x_107); +if (x_110 == 0) +{ +uint8_t x_111; +x_111 = l_Lean_Expr_isConst(x_107); +if (x_111 == 0) +{ +lean_object* x_112; lean_object* x_113; +lean_dec(x_107); +lean_dec(x_1); +x_112 = lean_box(0); +if (lean_is_scalar(x_109)) { + x_113 = lean_alloc_ctor(0, 2, 0); +} else { + x_113 = x_109; +} +lean_ctor_set(x_113, 0, x_112); +lean_ctor_set(x_113, 1, x_108); +return x_113; +} +else +{ +lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; +lean_dec(x_109); +x_114 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_108); +x_115 = lean_ctor_get(x_114, 1); +lean_inc(x_115); +if (lean_is_exclusive(x_114)) { + lean_ctor_release(x_114, 0); + lean_ctor_release(x_114, 1); + x_116 = x_114; +} else { + lean_dec_ref(x_114); + x_116 = lean_box(0); +} +x_117 = lean_unsigned_to_nat(0u); +x_118 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_117); +x_119 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; +lean_inc(x_118); +x_120 = lean_mk_array(x_118, x_119); +x_121 = lean_unsigned_to_nat(1u); +x_122 = lean_nat_sub(x_118, x_121); +lean_dec(x_118); +x_123 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_120, x_122); +x_124 = l_Lean_mkAppN(x_107, x_123); +x_125 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_125, 0, x_124); +if (lean_is_scalar(x_116)) { + x_126 = lean_alloc_ctor(0, 2, 0); +} else { + x_126 = x_116; +} +lean_ctor_set(x_126, 0, x_125); +lean_ctor_set(x_126, 1, x_115); +return x_126; +} +} +else +{ +lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; +lean_dec(x_109); +x_127 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_108); +x_128 = lean_ctor_get(x_127, 1); +lean_inc(x_128); +if (lean_is_exclusive(x_127)) { + lean_ctor_release(x_127, 0); + lean_ctor_release(x_127, 1); + x_129 = x_127; +} else { + lean_dec_ref(x_127); + x_129 = lean_box(0); +} +x_130 = lean_unsigned_to_nat(0u); +x_131 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_130); +x_132 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; +lean_inc(x_131); +x_133 = lean_mk_array(x_131, x_132); +x_134 = lean_unsigned_to_nat(1u); +x_135 = lean_nat_sub(x_131, x_134); +lean_dec(x_131); +x_136 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_133, x_135); +x_137 = l_Lean_mkAppN(x_107, x_136); +x_138 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_138, 0, x_137); +if (lean_is_scalar(x_129)) { + x_139 = lean_alloc_ctor(0, 2, 0); +} else { + x_139 = x_129; +} +lean_ctor_set(x_139, 0, x_138); +lean_ctor_set(x_139, 1, x_128); +return x_139; } } } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___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) { _start: { -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); -return x_9; +return x_10; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpValue_x3f(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_Compiler_LCNF_Simp_simpCtorDiscr_x3f(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_object* x_10; -lean_inc(x_1); -x_9 = l_Lean_Compiler_LCNF_Simp_simpProj_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_simpCtorDiscrCore_x3f(x_1, x_4, x_5, x_6, x_7, x_8, x_9); if (lean_obj_tag(x_10) == 0) { -lean_object* x_11; lean_object* x_12; lean_object* x_13; -x_11 = lean_ctor_get(x_9, 1); +lean_object* x_11; +x_11 = lean_ctor_get(x_10, 0); lean_inc(x_11); -lean_dec(x_9); -lean_inc(x_1); -x_12 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_11); -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -if (lean_obj_tag(x_13) == 0) +if (lean_obj_tag(x_11) == 0) +{ +uint8_t x_12; +x_12 = !lean_is_exclusive(x_10); +if (x_12 == 0) +{ +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_10, 0); +lean_dec(x_13); +x_14 = lean_box(0); +lean_ctor_set(x_10, 0, x_14); +return x_10; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_ctor_get(x_10, 1); +lean_inc(x_15); +lean_dec(x_10); +x_16 = lean_box(0); +x_17 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_17, 0, x_16); +lean_ctor_set(x_17, 1, x_15); +return x_17; +} +} +else +{ +uint8_t x_18; +x_18 = !lean_is_exclusive(x_10); +if (x_18 == 0) +{ +lean_object* x_19; uint8_t x_20; +x_19 = lean_ctor_get(x_10, 0); +lean_dec(x_19); +x_20 = !lean_is_exclusive(x_11); +if (x_20 == 0) +{ +return x_10; +} +else +{ +lean_object* x_21; lean_object* x_22; +x_21 = lean_ctor_get(x_11, 0); +lean_inc(x_21); +lean_dec(x_11); +x_22 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_22, 0, x_21); +lean_ctor_set(x_10, 0, x_22); +return x_10; +} +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_23 = lean_ctor_get(x_10, 1); +lean_inc(x_23); +lean_dec(x_10); +x_24 = lean_ctor_get(x_11, 0); +lean_inc(x_24); +if (lean_is_exclusive(x_11)) { + lean_ctor_release(x_11, 0); + x_25 = x_11; +} else { + lean_dec_ref(x_11); + x_25 = lean_box(0); +} +if (lean_is_scalar(x_25)) { + x_26 = lean_alloc_ctor(1, 1, 0); +} else { + x_26 = x_25; +} +lean_ctor_set(x_26, 0, x_24); +x_27 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_27, 0, x_26); +lean_ctor_set(x_27, 1, x_23); +return x_27; +} +} +} +else +{ +uint8_t x_28; +x_28 = !lean_is_exclusive(x_10); +if (x_28 == 0) +{ +return x_10; +} +else +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_29 = lean_ctor_get(x_10, 0); +x_30 = lean_ctor_get(x_10, 1); +lean_inc(x_30); +lean_inc(x_29); +lean_dec(x_10); +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; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_3); +lean_dec(x_2); +return x_10; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Compiler_implementedByAttr; +return x_1; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f(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_10; uint8_t x_11; lean_object* x_12; lean_object* x_13; +x_10 = lean_ctor_get(x_2, 1); +x_11 = lean_ctor_get_uint8(x_10, 2); +if (x_11 == 0) +{ +lean_object* x_95; +x_95 = lean_box(0); +x_12 = x_95; +x_13 = x_9; +goto block_94; +} +else +{ +lean_object* x_96; +x_96 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__2; +x_12 = x_96; +x_13 = x_9; +goto block_94; +} +block_94: +{ +if (lean_obj_tag(x_12) == 0) { lean_object* x_14; lean_object* x_15; -x_14 = lean_ctor_get(x_12, 1); -lean_inc(x_14); +lean_dec(x_1); +x_14 = lean_box(0); +x_15 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_13); +return x_15; +} +else +{ +lean_object* x_16; lean_dec(x_12); +x_16 = l_Lean_Expr_getAppFn(x_1); +if (lean_obj_tag(x_16) == 4) +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = lean_st_ref_get(x_8, x_13); +x_20 = !lean_is_exclusive(x_19); +if (x_20 == 0) +{ +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_21 = lean_ctor_get(x_19, 0); +x_22 = lean_ctor_get(x_19, 1); +x_23 = lean_ctor_get(x_21, 0); +lean_inc(x_23); +lean_dec(x_21); +x_24 = l_Lean_instInhabitedName; +x_25 = l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___closed__1; +x_26 = l_Lean_ParametricAttribute_getParam_x3f___rarg(x_24, x_25, x_23, x_17); +if (lean_obj_tag(x_26) == 0) +{ +lean_object* x_27; +lean_dec(x_18); +lean_dec(x_1); +x_27 = lean_box(0); +lean_ctor_set(x_19, 0, x_27); +return x_19; +} +else +{ +uint8_t x_28; +lean_free_object(x_19); +x_28 = !lean_is_exclusive(x_26); +if (x_28 == 0) +{ +lean_object* x_29; lean_object* x_30; uint8_t x_31; +x_29 = lean_ctor_get(x_26, 0); +x_30 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_22); +x_31 = !lean_is_exclusive(x_30); +if (x_31 == 0) +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_32 = lean_ctor_get(x_30, 0); +lean_dec(x_32); +x_33 = l_Lean_Expr_const___override(x_29, x_18); +x_34 = lean_unsigned_to_nat(0u); +x_35 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_34); +x_36 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; +lean_inc(x_35); +x_37 = lean_mk_array(x_35, x_36); +x_38 = lean_unsigned_to_nat(1u); +x_39 = lean_nat_sub(x_35, x_38); +lean_dec(x_35); +x_40 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_37, x_39); +x_41 = l_Lean_mkAppN(x_33, x_40); +lean_ctor_set(x_26, 0, x_41); +lean_ctor_set(x_30, 0, x_26); +return x_30; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_42 = lean_ctor_get(x_30, 1); +lean_inc(x_42); +lean_dec(x_30); +x_43 = l_Lean_Expr_const___override(x_29, x_18); +x_44 = lean_unsigned_to_nat(0u); +x_45 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_44); +x_46 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; +lean_inc(x_45); +x_47 = lean_mk_array(x_45, x_46); +x_48 = lean_unsigned_to_nat(1u); +x_49 = lean_nat_sub(x_45, x_48); +lean_dec(x_45); +x_50 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_47, x_49); +x_51 = l_Lean_mkAppN(x_43, x_50); +lean_ctor_set(x_26, 0, x_51); +x_52 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_52, 0, x_26); +lean_ctor_set(x_52, 1, x_42); +return x_52; +} +} +else +{ +lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +x_53 = lean_ctor_get(x_26, 0); +lean_inc(x_53); +lean_dec(x_26); +x_54 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_22); +x_55 = lean_ctor_get(x_54, 1); +lean_inc(x_55); +if (lean_is_exclusive(x_54)) { + lean_ctor_release(x_54, 0); + lean_ctor_release(x_54, 1); + x_56 = x_54; +} else { + lean_dec_ref(x_54); + x_56 = lean_box(0); +} +x_57 = l_Lean_Expr_const___override(x_53, x_18); +x_58 = lean_unsigned_to_nat(0u); +x_59 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_58); +x_60 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; +lean_inc(x_59); +x_61 = lean_mk_array(x_59, x_60); +x_62 = lean_unsigned_to_nat(1u); +x_63 = lean_nat_sub(x_59, x_62); +lean_dec(x_59); +x_64 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_61, x_63); +x_65 = l_Lean_mkAppN(x_57, x_64); +x_66 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_66, 0, x_65); +if (lean_is_scalar(x_56)) { + x_67 = lean_alloc_ctor(0, 2, 0); +} else { + x_67 = x_56; +} +lean_ctor_set(x_67, 0, x_66); +lean_ctor_set(x_67, 1, x_55); +return x_67; +} +} +} +else +{ +lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +x_68 = lean_ctor_get(x_19, 0); +x_69 = lean_ctor_get(x_19, 1); +lean_inc(x_69); +lean_inc(x_68); +lean_dec(x_19); +x_70 = lean_ctor_get(x_68, 0); +lean_inc(x_70); +lean_dec(x_68); +x_71 = l_Lean_instInhabitedName; +x_72 = l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___closed__1; +x_73 = l_Lean_ParametricAttribute_getParam_x3f___rarg(x_71, x_72, x_70, x_17); +if (lean_obj_tag(x_73) == 0) +{ +lean_object* x_74; lean_object* x_75; +lean_dec(x_18); +lean_dec(x_1); +x_74 = lean_box(0); +x_75 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_75, 0, x_74); +lean_ctor_set(x_75, 1, x_69); +return x_75; +} +else +{ +lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +x_76 = lean_ctor_get(x_73, 0); +lean_inc(x_76); +if (lean_is_exclusive(x_73)) { + lean_ctor_release(x_73, 0); + x_77 = x_73; +} else { + lean_dec_ref(x_73); + x_77 = lean_box(0); +} +x_78 = l_Lean_Compiler_LCNF_Simp_markSimplified___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_69); +x_79 = lean_ctor_get(x_78, 1); +lean_inc(x_79); +if (lean_is_exclusive(x_78)) { + lean_ctor_release(x_78, 0); + lean_ctor_release(x_78, 1); + x_80 = x_78; +} else { + lean_dec_ref(x_78); + x_80 = lean_box(0); +} +x_81 = l_Lean_Expr_const___override(x_76, x_18); +x_82 = lean_unsigned_to_nat(0u); +x_83 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_82); +x_84 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1; +lean_inc(x_83); +x_85 = lean_mk_array(x_83, x_84); +x_86 = lean_unsigned_to_nat(1u); +x_87 = lean_nat_sub(x_83, x_86); +lean_dec(x_83); +x_88 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_85, x_87); +x_89 = l_Lean_mkAppN(x_81, x_88); +if (lean_is_scalar(x_77)) { + x_90 = lean_alloc_ctor(1, 1, 0); +} else { + x_90 = x_77; +} +lean_ctor_set(x_90, 0, x_89); +if (lean_is_scalar(x_80)) { + x_91 = lean_alloc_ctor(0, 2, 0); +} else { + x_91 = x_80; +} +lean_ctor_set(x_91, 0, x_90); +lean_ctor_set(x_91, 1, x_79); +return x_91; +} +} +} +else +{ +lean_object* x_92; lean_object* x_93; +lean_dec(x_16); +lean_dec(x_1); +x_92 = lean_box(0); +x_93 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_93, 0, x_92); +lean_ctor_set(x_93, 1, x_13); +return x_93; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpValue_x3f(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_10; lean_object* x_11; +lean_inc(x_1); +x_10 = l_Lean_Compiler_LCNF_Simp_simpProj_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_11 = lean_ctor_get(x_10, 0); +lean_inc(x_11); +if (lean_obj_tag(x_11) == 0) +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +lean_inc(x_1); +x_13 = l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_12); +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +if (lean_obj_tag(x_14) == 0) +{ +lean_object* x_15; lean_object* x_16; +x_15 = lean_ctor_get(x_13, 1); +lean_inc(x_15); +lean_dec(x_13); +lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -lean_inc(x_2); lean_inc(x_1); -x_15 = l_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_14); -if (lean_obj_tag(x_15) == 0) -{ -lean_object* x_16; -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); +x_16 = l_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_15); if (lean_obj_tag(x_16) == 0) { -lean_object* x_17; lean_object* x_18; -x_17 = lean_ctor_get(x_15, 1); +lean_object* x_17; +x_17 = lean_ctor_get(x_16, 0); lean_inc(x_17); -lean_dec(x_15); -x_18 = l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_17); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_2); -return x_18; -} -else +if (lean_obj_tag(x_17) == 0) { -uint8_t x_19; -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_2); -lean_dec(x_1); -x_19 = !lean_is_exclusive(x_15); -if (x_19 == 0) -{ -lean_object* x_20; uint8_t x_21; -x_20 = lean_ctor_get(x_15, 0); -lean_dec(x_20); -x_21 = !lean_is_exclusive(x_16); -if (x_21 == 0) -{ -return x_15; -} -else -{ -lean_object* x_22; lean_object* x_23; -x_22 = lean_ctor_get(x_16, 0); -lean_inc(x_22); +lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); lean_dec(x_16); -x_23 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_15, 0, x_23); -return x_15; +x_19 = l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_18); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +return x_19; +} +else +{ +uint8_t x_20; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_1); +x_20 = !lean_is_exclusive(x_16); +if (x_20 == 0) +{ +lean_object* x_21; uint8_t x_22; +x_21 = lean_ctor_get(x_16, 0); +lean_dec(x_21); +x_22 = !lean_is_exclusive(x_17); +if (x_22 == 0) +{ +return x_16; +} +else +{ +lean_object* x_23; lean_object* x_24; +x_23 = lean_ctor_get(x_17, 0); +lean_inc(x_23); +lean_dec(x_17); +x_24 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_16, 0, x_24); +return x_16; } } else { -lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_24 = lean_ctor_get(x_15, 1); -lean_inc(x_24); -lean_dec(x_15); -x_25 = lean_ctor_get(x_16, 0); +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_25 = lean_ctor_get(x_16, 1); lean_inc(x_25); -if (lean_is_exclusive(x_16)) { - lean_ctor_release(x_16, 0); - x_26 = x_16; +lean_dec(x_16); +x_26 = lean_ctor_get(x_17, 0); +lean_inc(x_26); +if (lean_is_exclusive(x_17)) { + lean_ctor_release(x_17, 0); + x_27 = x_17; } else { - lean_dec_ref(x_16); - x_26 = lean_box(0); + lean_dec_ref(x_17); + x_27 = lean_box(0); } -if (lean_is_scalar(x_26)) { - x_27 = lean_alloc_ctor(1, 1, 0); +if (lean_is_scalar(x_27)) { + x_28 = lean_alloc_ctor(1, 1, 0); } else { - x_27 = x_26; + x_28 = x_27; } -lean_ctor_set(x_27, 0, x_25); -x_28 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_28, 0, x_27); -lean_ctor_set(x_28, 1, x_24); -return x_28; +lean_ctor_set(x_28, 0, x_26); +x_29 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_29, 0, x_28); +lean_ctor_set(x_29, 1, x_25); +return x_29; } } } else { -uint8_t x_29; +uint8_t x_30; +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); -lean_dec(x_2); lean_dec(x_1); -x_29 = !lean_is_exclusive(x_15); -if (x_29 == 0) +x_30 = !lean_is_exclusive(x_16); +if (x_30 == 0) { -return x_15; +return x_16; } else { -lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_30 = lean_ctor_get(x_15, 0); -x_31 = lean_ctor_get(x_15, 1); +lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_31 = lean_ctor_get(x_16, 0); +x_32 = lean_ctor_get(x_16, 1); +lean_inc(x_32); lean_inc(x_31); -lean_inc(x_30); -lean_dec(x_15); -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; +lean_dec(x_16); +x_33 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_32); +return x_33; } } } else { -uint8_t x_33; +uint8_t x_34; +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); -lean_dec(x_2); lean_dec(x_1); -x_33 = !lean_is_exclusive(x_12); -if (x_33 == 0) +x_34 = !lean_is_exclusive(x_13); +if (x_34 == 0) { -lean_object* x_34; uint8_t x_35; -x_34 = lean_ctor_get(x_12, 0); -lean_dec(x_34); -x_35 = !lean_is_exclusive(x_13); -if (x_35 == 0) +lean_object* x_35; uint8_t x_36; +x_35 = lean_ctor_get(x_13, 0); +lean_dec(x_35); +x_36 = !lean_is_exclusive(x_14); +if (x_36 == 0) { -return x_12; +return x_13; } else { -lean_object* x_36; lean_object* x_37; -x_36 = lean_ctor_get(x_13, 0); -lean_inc(x_36); -lean_dec(x_13); -x_37 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_37, 0, x_36); -lean_ctor_set(x_12, 0, x_37); -return x_12; +lean_object* x_37; lean_object* x_38; +x_37 = lean_ctor_get(x_14, 0); +lean_inc(x_37); +lean_dec(x_14); +x_38 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_13, 0, x_38); +return x_13; } } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_38 = lean_ctor_get(x_12, 1); -lean_inc(x_38); -lean_dec(x_12); -x_39 = lean_ctor_get(x_13, 0); +lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_39 = lean_ctor_get(x_13, 1); lean_inc(x_39); -if (lean_is_exclusive(x_13)) { - lean_ctor_release(x_13, 0); - x_40 = x_13; +lean_dec(x_13); +x_40 = lean_ctor_get(x_14, 0); +lean_inc(x_40); +if (lean_is_exclusive(x_14)) { + lean_ctor_release(x_14, 0); + x_41 = x_14; } else { - lean_dec_ref(x_13); - x_40 = lean_box(0); + lean_dec_ref(x_14); + x_41 = lean_box(0); } -if (lean_is_scalar(x_40)) { - x_41 = lean_alloc_ctor(1, 1, 0); +if (lean_is_scalar(x_41)) { + x_42 = lean_alloc_ctor(1, 1, 0); } else { - x_41 = x_40; + x_42 = x_41; } -lean_ctor_set(x_41, 0, x_39); -x_42 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_42, 0, x_41); -lean_ctor_set(x_42, 1, x_38); -return x_42; +lean_ctor_set(x_42, 0, x_40); +x_43 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_43, 0, x_42); +lean_ctor_set(x_43, 1, x_39); +return x_43; } } } else { -uint8_t x_43; +uint8_t x_44; +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); -lean_dec(x_2); lean_dec(x_1); -x_43 = !lean_is_exclusive(x_9); -if (x_43 == 0) +x_44 = !lean_is_exclusive(x_10); +if (x_44 == 0) { -lean_object* x_44; uint8_t x_45; -x_44 = lean_ctor_get(x_9, 0); -lean_dec(x_44); -x_45 = !lean_is_exclusive(x_10); -if (x_45 == 0) +lean_object* x_45; uint8_t x_46; +x_45 = lean_ctor_get(x_10, 0); +lean_dec(x_45); +x_46 = !lean_is_exclusive(x_11); +if (x_46 == 0) { -return x_9; +return x_10; } else { -lean_object* x_46; lean_object* x_47; -x_46 = lean_ctor_get(x_10, 0); -lean_inc(x_46); -lean_dec(x_10); -x_47 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_47, 0, x_46); -lean_ctor_set(x_9, 0, x_47); -return x_9; +lean_object* x_47; lean_object* x_48; +x_47 = lean_ctor_get(x_11, 0); +lean_inc(x_47); +lean_dec(x_11); +x_48 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_48, 0, x_47); +lean_ctor_set(x_10, 0, x_48); +return x_10; } } else { -lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_48 = lean_ctor_get(x_9, 1); -lean_inc(x_48); -lean_dec(x_9); -x_49 = lean_ctor_get(x_10, 0); +lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; +x_49 = lean_ctor_get(x_10, 1); lean_inc(x_49); -if (lean_is_exclusive(x_10)) { - lean_ctor_release(x_10, 0); - x_50 = x_10; +lean_dec(x_10); +x_50 = lean_ctor_get(x_11, 0); +lean_inc(x_50); +if (lean_is_exclusive(x_11)) { + lean_ctor_release(x_11, 0); + x_51 = x_11; } else { - lean_dec_ref(x_10); - x_50 = lean_box(0); + lean_dec_ref(x_11); + x_51 = lean_box(0); } -if (lean_is_scalar(x_50)) { - x_51 = lean_alloc_ctor(1, 1, 0); +if (lean_is_scalar(x_51)) { + x_52 = lean_alloc_ctor(1, 1, 0); } else { - x_51 = x_50; + x_52 = x_51; } -lean_ctor_set(x_51, 0, x_49); -x_52 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_52, 0, x_51); -lean_ctor_set(x_52, 1, x_48); -return x_52; +lean_ctor_set(x_52, 0, x_50); +x_53 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_53, 0, x_52); +lean_ctor_set(x_53, 1, x_49); +return x_53; } } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpValue_x3f___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_simpValue_x3f___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) { _start: { -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_simpValue_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_simpValue_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); lean_dec(x_3); -return x_9; +lean_dec(x_2); +return x_10; } } lean_object* initialize_Init(uint8_t builtin, lean_object*); @@ -2027,8 +1569,6 @@ l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1 = _init_l_Lean_Compiler_LCN lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__1); l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__2 = _init_l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__2(); lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_simpAppApp_x3f___closed__2); -l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2___closed__1 = _init_l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2___closed__1(); -l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2___closed__2 = _init_l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_Simp_simpCtorDiscr_x3f___spec__2___closed__2(); l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___closed__1 = _init_l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_Simp_applyImplementedBy_x3f___closed__1); return lean_io_result_mk_ok(lean_box(0)); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Simp/Used.c b/stage0/stdlib/Lean/Compiler/LCNF/Simp/Used.c index 3c27219433..1a72fa2257 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Simp/Used.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Simp/Used.c @@ -14,346 +14,308 @@ extern "C" { #endif size_t lean_usize_add(size_t, size_t); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedLetDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedLetDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, 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_Compiler_LCNF_Simp_markUsedFVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedFVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isUsed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___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*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isUsed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* lean_st_ref_take(lean_object*, lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls___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_Compiler_LCNF_Simp_attachCodeDecls___boxed(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_Compiler_LCNF_Simp_attachCodeDecls_go___closed__1; static lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls_go___closed__2; lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls_go___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_Compiler_LCNF_Simp_isUsed___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls_go(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_Compiler_LCNF_Simp_attachCodeDecls_go___boxed(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_Lean_Compiler_LCNF_Simp_isUsed___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_Compiler_LCNF_Simp_markUsedFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls_go(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_Compiler_LCNF_Simp_attachCodeDecls_go___closed__4; size_t lean_usize_of_nat(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedFVar___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedFVar___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_panic___at_Lean_Compiler_LCNF_attachCodeDecls_go___spec__1(lean_object*); uint8_t lean_nat_dec_le(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_AltCore_getCode(lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__2(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__2(lean_object*, 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_st_ref_set(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_HashSetImp_contains___at_Lean_Compiler_LCNF_ElimDead_elimDead___spec__1(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedCode(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedCode(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_collectLocalDecls_go(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedExpr___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedExpr___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_HashSetImp_insert___at_Lean_Compiler_LCNF_collectLocalDecls_go___spec__1(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedExpr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedExpr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_eraseCodeDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_CodeDecl_fvarId(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls(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_Compiler_LCNF_Simp_attachCodeDecls_go___closed__3; uint8_t lean_nat_dec_lt(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedFVar(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_Compiler_LCNF_Simp_markUsedFVar(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_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_take(x_3, x_10); -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_10 = lean_st_ref_get(x_8, x_9); +x_11 = lean_ctor_get(x_10, 1); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_st_ref_take(x_3, x_11); +x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); -lean_dec(x_11); -x_14 = !lean_is_exclusive(x_12); -if (x_14 == 0) +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); +lean_dec(x_12); +x_15 = !lean_is_exclusive(x_13); +if (x_15 == 0) { -lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; -x_15 = lean_ctor_get(x_12, 1); -x_16 = l_Lean_HashSetImp_insert___at_Lean_Compiler_LCNF_collectLocalDecls_go___spec__1(x_15, x_1); -lean_ctor_set(x_12, 1, x_16); -x_17 = lean_st_ref_set(x_3, x_12, x_13); -x_18 = !lean_is_exclusive(x_17); -if (x_18 == 0) +lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_16 = lean_ctor_get(x_13, 1); +x_17 = l_Lean_HashSetImp_insert___at_Lean_Compiler_LCNF_collectLocalDecls_go___spec__1(x_16, x_1); +lean_ctor_set(x_13, 1, x_17); +x_18 = lean_st_ref_set(x_3, x_13, x_14); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) { -lean_object* x_19; lean_object* x_20; -x_19 = lean_ctor_get(x_17, 0); -lean_dec(x_19); -x_20 = lean_box(0); -lean_ctor_set(x_17, 0, x_20); -return x_17; +lean_object* x_20; lean_object* x_21; +x_20 = lean_ctor_get(x_18, 0); +lean_dec(x_20); +x_21 = lean_box(0); +lean_ctor_set(x_18, 0, x_21); +return x_18; } else { -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_17, 1); -lean_inc(x_21); -lean_dec(x_17); -x_22 = lean_box(0); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_21); -return x_23; +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_18, 1); +lean_inc(x_22); +lean_dec(x_18); +x_23 = lean_box(0); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_22); +return x_24; } } else { -lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_24 = lean_ctor_get(x_12, 0); -x_25 = lean_ctor_get(x_12, 1); -x_26 = lean_ctor_get(x_12, 2); -x_27 = lean_ctor_get(x_12, 3); -x_28 = lean_ctor_get_uint8(x_12, sizeof(void*)*7); -x_29 = lean_ctor_get(x_12, 4); -x_30 = lean_ctor_get(x_12, 5); -x_31 = lean_ctor_get(x_12, 6); +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_25 = lean_ctor_get(x_13, 0); +x_26 = lean_ctor_get(x_13, 1); +x_27 = lean_ctor_get(x_13, 2); +x_28 = lean_ctor_get(x_13, 3); +x_29 = lean_ctor_get_uint8(x_13, sizeof(void*)*7); +x_30 = lean_ctor_get(x_13, 4); +x_31 = lean_ctor_get(x_13, 5); +x_32 = lean_ctor_get(x_13, 6); +lean_inc(x_32); lean_inc(x_31); lean_inc(x_30); -lean_inc(x_29); +lean_inc(x_28); lean_inc(x_27); lean_inc(x_26); lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_12); -x_32 = l_Lean_HashSetImp_insert___at_Lean_Compiler_LCNF_collectLocalDecls_go___spec__1(x_25, x_1); -x_33 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_33, 0, x_24); -lean_ctor_set(x_33, 1, x_32); -lean_ctor_set(x_33, 2, x_26); -lean_ctor_set(x_33, 3, x_27); -lean_ctor_set(x_33, 4, x_29); -lean_ctor_set(x_33, 5, x_30); -lean_ctor_set(x_33, 6, x_31); -lean_ctor_set_uint8(x_33, sizeof(void*)*7, x_28); -x_34 = lean_st_ref_set(x_3, x_33, x_13); -x_35 = lean_ctor_get(x_34, 1); -lean_inc(x_35); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - lean_ctor_release(x_34, 1); - x_36 = x_34; +lean_dec(x_13); +x_33 = l_Lean_HashSetImp_insert___at_Lean_Compiler_LCNF_collectLocalDecls_go___spec__1(x_26, x_1); +x_34 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_34, 0, x_25); +lean_ctor_set(x_34, 1, x_33); +lean_ctor_set(x_34, 2, x_27); +lean_ctor_set(x_34, 3, x_28); +lean_ctor_set(x_34, 4, x_30); +lean_ctor_set(x_34, 5, x_31); +lean_ctor_set(x_34, 6, x_32); +lean_ctor_set_uint8(x_34, sizeof(void*)*7, x_29); +x_35 = lean_st_ref_set(x_3, x_34, x_14); +x_36 = lean_ctor_get(x_35, 1); +lean_inc(x_36); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + lean_ctor_release(x_35, 1); + x_37 = x_35; } else { - lean_dec_ref(x_34); - x_36 = lean_box(0); + lean_dec_ref(x_35); + x_37 = lean_box(0); } -x_37 = lean_box(0); -if (lean_is_scalar(x_36)) { - x_38 = lean_alloc_ctor(0, 2, 0); +x_38 = lean_box(0); +if (lean_is_scalar(x_37)) { + x_39 = lean_alloc_ctor(0, 2, 0); } else { - x_38 = x_36; + x_39 = x_37; } -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_35); -return x_38; +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_36); +return x_39; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedFVar___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedFVar___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) { _start: { -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedExpr(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_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_take(x_3, x_10); -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 = !lean_is_exclusive(x_12); -if (x_14 == 0) -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; -x_15 = lean_ctor_get(x_12, 1); -x_16 = l_Lean_Compiler_LCNF_collectLocalDecls_go(x_15, x_1); -lean_ctor_set(x_12, 1, x_16); -x_17 = lean_st_ref_set(x_3, x_12, x_13); -x_18 = !lean_is_exclusive(x_17); -if (x_18 == 0) -{ -lean_object* x_19; lean_object* x_20; -x_19 = lean_ctor_get(x_17, 0); -lean_dec(x_19); -x_20 = lean_box(0); -lean_ctor_set(x_17, 0, x_20); -return x_17; -} -else -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_17, 1); -lean_inc(x_21); -lean_dec(x_17); -x_22 = lean_box(0); -x_23 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_21); -return x_23; -} -} -else -{ -lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_24 = lean_ctor_get(x_12, 0); -x_25 = lean_ctor_get(x_12, 1); -x_26 = lean_ctor_get(x_12, 2); -x_27 = lean_ctor_get(x_12, 3); -x_28 = lean_ctor_get_uint8(x_12, sizeof(void*)*7); -x_29 = lean_ctor_get(x_12, 4); -x_30 = lean_ctor_get(x_12, 5); -x_31 = lean_ctor_get(x_12, 6); -lean_inc(x_31); -lean_inc(x_30); -lean_inc(x_29); -lean_inc(x_27); -lean_inc(x_26); -lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_12); -x_32 = l_Lean_Compiler_LCNF_collectLocalDecls_go(x_25, x_1); -x_33 = lean_alloc_ctor(0, 7, 1); -lean_ctor_set(x_33, 0, x_24); -lean_ctor_set(x_33, 1, x_32); -lean_ctor_set(x_33, 2, x_26); -lean_ctor_set(x_33, 3, x_27); -lean_ctor_set(x_33, 4, x_29); -lean_ctor_set(x_33, 5, x_30); -lean_ctor_set(x_33, 6, x_31); -lean_ctor_set_uint8(x_33, sizeof(void*)*7, x_28); -x_34 = lean_st_ref_set(x_3, x_33, x_13); -x_35 = lean_ctor_get(x_34, 1); -lean_inc(x_35); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - lean_ctor_release(x_34, 1); - x_36 = x_34; -} else { - lean_dec_ref(x_34); - x_36 = lean_box(0); -} -x_37 = lean_box(0); -if (lean_is_scalar(x_36)) { - x_38 = lean_alloc_ctor(0, 2, 0); -} else { - x_38 = x_36; -} -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_35); -return x_38; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedExpr___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_markUsedExpr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, 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); -return x_9; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(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_9; lean_object* x_10; -x_9 = lean_ctor_get(x_1, 3); -lean_inc(x_9); -lean_dec(x_1); -x_10 = l_Lean_Compiler_LCNF_Simp_markUsedExpr(x_9, x_2, x_3, x_4, x_5, x_6, x_7, x_8); return x_10; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedLetDecl___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedExpr(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; -x_9 = l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_10 = lean_st_ref_get(x_8, x_9); +x_11 = lean_ctor_get(x_10, 1); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_st_ref_take(x_3, x_11); +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); +lean_dec(x_12); +x_15 = !lean_is_exclusive(x_13); +if (x_15 == 0) +{ +lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +x_16 = lean_ctor_get(x_13, 1); +x_17 = l_Lean_Compiler_LCNF_collectLocalDecls_go(x_16, x_1); +lean_ctor_set(x_13, 1, x_17); +x_18 = lean_st_ref_set(x_3, x_13, x_14); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) +{ +lean_object* x_20; lean_object* x_21; +x_20 = lean_ctor_get(x_18, 0); +lean_dec(x_20); +x_21 = lean_box(0); +lean_ctor_set(x_18, 0, x_21); +return x_18; +} +else +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_18, 1); +lean_inc(x_22); +lean_dec(x_18); +x_23 = lean_box(0); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_23); +lean_ctor_set(x_24, 1, x_22); +return x_24; +} +} +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t 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; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_25 = lean_ctor_get(x_13, 0); +x_26 = lean_ctor_get(x_13, 1); +x_27 = lean_ctor_get(x_13, 2); +x_28 = lean_ctor_get(x_13, 3); +x_29 = lean_ctor_get_uint8(x_13, sizeof(void*)*7); +x_30 = lean_ctor_get(x_13, 4); +x_31 = lean_ctor_get(x_13, 5); +x_32 = lean_ctor_get(x_13, 6); +lean_inc(x_32); +lean_inc(x_31); +lean_inc(x_30); +lean_inc(x_28); +lean_inc(x_27); +lean_inc(x_26); +lean_inc(x_25); +lean_dec(x_13); +x_33 = l_Lean_Compiler_LCNF_collectLocalDecls_go(x_26, x_1); +x_34 = lean_alloc_ctor(0, 7, 1); +lean_ctor_set(x_34, 0, x_25); +lean_ctor_set(x_34, 1, x_33); +lean_ctor_set(x_34, 2, x_27); +lean_ctor_set(x_34, 3, x_28); +lean_ctor_set(x_34, 4, x_30); +lean_ctor_set(x_34, 5, x_31); +lean_ctor_set(x_34, 6, x_32); +lean_ctor_set_uint8(x_34, sizeof(void*)*7, x_29); +x_35 = lean_st_ref_set(x_3, x_34, x_14); +x_36 = lean_ctor_get(x_35, 1); +lean_inc(x_36); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + lean_ctor_release(x_35, 1); + x_37 = x_35; +} else { + lean_dec_ref(x_35); + x_37 = lean_box(0); +} +x_38 = lean_box(0); +if (lean_is_scalar(x_37)) { + x_39 = lean_alloc_ctor(0, 2, 0); +} else { + x_39 = x_37; +} +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_36); +return x_39; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedExpr___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_markUsedExpr(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); -return x_9; +return x_10; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(lean_object* x_1, size_t x_2, size_t 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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(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: { -uint8_t x_12; -x_12 = lean_usize_dec_eq(x_2, x_3); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; size_t x_17; size_t x_18; -lean_dec(x_4); -x_13 = lean_array_uget(x_1, x_2); -x_14 = l_Lean_Compiler_LCNF_Simp_markUsedExpr(x_13, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -x_17 = 1; -x_18 = lean_usize_add(x_2, x_17); -x_2 = x_18; -x_4 = x_15; -x_11 = x_16; -goto _start; -} -else -{ -lean_object* x_20; -x_20 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_20, 0, x_4); -lean_ctor_set(x_20, 1, x_11); -return x_20; -} -} -} -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__2(lean_object* x_1, size_t x_2, size_t 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) { -_start: -{ -uint8_t x_12; -x_12 = lean_usize_dec_eq(x_2, x_3); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; -lean_dec(x_4); -x_13 = lean_array_uget(x_1, x_2); -x_14 = l_Lean_Compiler_LCNF_AltCore_getCode(x_13); -lean_dec(x_13); +lean_object* x_10; lean_object* x_11; +x_10 = lean_ctor_get(x_1, 3); lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -x_15 = l_Lean_Compiler_LCNF_Simp_markUsedCode(x_14, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_dec(x_1); +x_11 = l_Lean_Compiler_LCNF_Simp_markUsedExpr(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedLetDecl___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) { +_start: +{ +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(lean_object* x_1, size_t x_2, size_t 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: +{ +uint8_t x_13; +x_13 = lean_usize_dec_eq(x_2, x_3); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; size_t x_18; size_t x_19; +lean_dec(x_4); +x_14 = lean_array_uget(x_1, x_2); +x_15 = l_Lean_Compiler_LCNF_Simp_markUsedExpr(x_14, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); x_16 = lean_ctor_get(x_15, 0); lean_inc(x_16); x_17 = lean_ctor_get(x_15, 1); @@ -363,337 +325,392 @@ x_18 = 1; x_19 = lean_usize_add(x_2, x_18); x_2 = x_19; x_4 = x_16; -x_11 = x_17; +x_12 = x_17; goto _start; } else { lean_object* x_21; +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_4); +lean_ctor_set(x_21, 1, x_12); +return x_21; +} +} +} +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__2(lean_object* x_1, size_t x_2, size_t 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: +{ +uint8_t x_13; +x_13 = lean_usize_dec_eq(x_2, x_3); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; size_t x_19; size_t x_20; +lean_dec(x_4); +x_14 = lean_array_uget(x_1, x_2); +x_15 = l_Lean_Compiler_LCNF_AltCore_getCode(x_14); +lean_dec(x_14); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +x_16 = l_Lean_Compiler_LCNF_Simp_markUsedCode(x_15, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = 1; +x_20 = lean_usize_add(x_2, x_19); +x_2 = x_20; +x_4 = x_17; +x_12 = x_18; +goto _start; +} +else +{ +lean_object* x_22; +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_4); -lean_ctor_set(x_21, 1, x_11); -return x_21; +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_4); +lean_ctor_set(x_22, 1, x_12); +return x_22; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedCode(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_Compiler_LCNF_Simp_markUsedCode(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: { switch (lean_obj_tag(x_1)) { case 0: { -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; -x_9 = lean_ctor_get(x_1, 0); -lean_inc(x_9); -x_10 = lean_ctor_get(x_1, 1); +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +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); -x_11 = l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(x_9, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -x_12 = lean_ctor_get(x_11, 1); -lean_inc(x_12); -lean_dec(x_11); -x_1 = x_10; -x_8 = x_12; +x_12 = l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_13 = lean_ctor_get(x_12, 1); +lean_inc(x_13); +lean_dec(x_12); +x_1 = x_11; +x_9 = x_13; goto _start; } case 3: { -lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_14 = lean_ctor_get(x_1, 0); -lean_inc(x_14); -x_15 = lean_ctor_get(x_1, 1); +lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; +x_15 = lean_ctor_get(x_1, 0); lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 1); +lean_inc(x_16); lean_dec(x_1); -x_16 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -x_17 = !lean_is_exclusive(x_16); -if (x_17 == 0) +x_17 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_18 = !lean_is_exclusive(x_17); +if (x_18 == 0) { -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; -x_18 = lean_ctor_get(x_16, 1); -x_19 = lean_ctor_get(x_16, 0); -lean_dec(x_19); -x_20 = lean_array_get_size(x_15); -x_21 = lean_unsigned_to_nat(0u); -x_22 = lean_nat_dec_lt(x_21, x_20); -if (x_22 == 0) -{ -lean_object* x_23; +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; +x_19 = lean_ctor_get(x_17, 1); +x_20 = lean_ctor_get(x_17, 0); lean_dec(x_20); -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_23 = lean_box(0); -lean_ctor_set(x_16, 0, x_23); -return x_16; -} -else +x_21 = lean_array_get_size(x_16); +x_22 = lean_unsigned_to_nat(0u); +x_23 = lean_nat_dec_lt(x_22, x_21); +if (x_23 == 0) { -uint8_t x_24; -x_24 = lean_nat_dec_le(x_20, x_20); -if (x_24 == 0) -{ -lean_object* x_25; -lean_dec(x_20); -lean_dec(x_15); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_25 = lean_box(0); -lean_ctor_set(x_16, 0, x_25); -return x_16; -} -else -{ -size_t x_26; size_t x_27; lean_object* x_28; lean_object* x_29; -lean_free_object(x_16); -x_26 = 0; -x_27 = lean_usize_of_nat(x_20); -lean_dec(x_20); -x_28 = lean_box(0); -x_29 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(x_15, x_26, x_27, x_28, x_2, x_3, x_4, x_5, x_6, x_7, x_18); -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_15); -return x_29; -} -} -} -else -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; -x_30 = lean_ctor_get(x_16, 1); -lean_inc(x_30); +lean_object* x_24; +lean_dec(x_21); lean_dec(x_16); -x_31 = lean_array_get_size(x_15); -x_32 = lean_unsigned_to_nat(0u); -x_33 = lean_nat_dec_lt(x_32, x_31); -if (x_33 == 0) -{ -lean_object* x_34; lean_object* x_35; -lean_dec(x_31); -lean_dec(x_15); +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); -x_34 = lean_box(0); -x_35 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_35, 0, x_34); -lean_ctor_set(x_35, 1, x_30); -return x_35; +x_24 = lean_box(0); +lean_ctor_set(x_17, 0, x_24); +return x_17; } else { -uint8_t x_36; -x_36 = lean_nat_dec_le(x_31, x_31); -if (x_36 == 0) +uint8_t x_25; +x_25 = lean_nat_dec_le(x_21, x_21); +if (x_25 == 0) { -lean_object* x_37; lean_object* x_38; -lean_dec(x_31); -lean_dec(x_15); +lean_object* x_26; +lean_dec(x_21); +lean_dec(x_16); +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); -x_37 = lean_box(0); -x_38 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_30); -return x_38; +x_26 = lean_box(0); +lean_ctor_set(x_17, 0, x_26); +return x_17; } else { -size_t x_39; size_t x_40; lean_object* x_41; lean_object* x_42; -x_39 = 0; -x_40 = lean_usize_of_nat(x_31); -lean_dec(x_31); -x_41 = lean_box(0); -x_42 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(x_15, x_39, x_40, x_41, x_2, x_3, x_4, x_5, x_6, x_7, x_30); +size_t x_27; size_t x_28; lean_object* x_29; lean_object* x_30; +lean_free_object(x_17); +x_27 = 0; +x_28 = lean_usize_of_nat(x_21); +lean_dec(x_21); +x_29 = lean_box(0); +x_30 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(x_16, x_27, x_28, x_29, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_19); +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_15); -return x_42; +lean_dec(x_16); +return x_30; +} +} +} +else +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; +x_31 = lean_ctor_get(x_17, 1); +lean_inc(x_31); +lean_dec(x_17); +x_32 = lean_array_get_size(x_16); +x_33 = lean_unsigned_to_nat(0u); +x_34 = lean_nat_dec_lt(x_33, x_32); +if (x_34 == 0) +{ +lean_object* x_35; lean_object* x_36; +lean_dec(x_32); +lean_dec(x_16); +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); +x_35 = lean_box(0); +x_36 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_36, 0, x_35); +lean_ctor_set(x_36, 1, x_31); +return x_36; +} +else +{ +uint8_t x_37; +x_37 = lean_nat_dec_le(x_32, x_32); +if (x_37 == 0) +{ +lean_object* x_38; lean_object* x_39; +lean_dec(x_32); +lean_dec(x_16); +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); +x_38 = lean_box(0); +x_39 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_39, 0, x_38); +lean_ctor_set(x_39, 1, x_31); +return x_39; +} +else +{ +size_t x_40; size_t x_41; lean_object* x_42; lean_object* x_43; +x_40 = 0; +x_41 = lean_usize_of_nat(x_32); +lean_dec(x_32); +x_42 = lean_box(0); +x_43 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(x_16, x_40, x_41, x_42, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_31); +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_16); +return x_43; } } } } case 4: { -lean_object* x_43; lean_object* x_44; lean_object* x_45; uint8_t x_46; -x_43 = lean_ctor_get(x_1, 0); -lean_inc(x_43); -lean_dec(x_1); -x_44 = lean_ctor_get(x_43, 2); +lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; +x_44 = lean_ctor_get(x_1, 0); lean_inc(x_44); -x_45 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_44, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -x_46 = !lean_is_exclusive(x_45); -if (x_46 == 0) +lean_dec(x_1); +x_45 = lean_ctor_get(x_44, 2); +lean_inc(x_45); +x_46 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_45, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_47 = !lean_is_exclusive(x_46); +if (x_47 == 0) { -lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_52; -x_47 = lean_ctor_get(x_45, 1); -x_48 = lean_ctor_get(x_45, 0); -lean_dec(x_48); -x_49 = lean_ctor_get(x_43, 3); -lean_inc(x_49); -lean_dec(x_43); -x_50 = lean_array_get_size(x_49); -x_51 = lean_unsigned_to_nat(0u); -x_52 = lean_nat_dec_lt(x_51, x_50); -if (x_52 == 0) -{ -lean_object* x_53; -lean_dec(x_50); +lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; uint8_t x_53; +x_48 = lean_ctor_get(x_46, 1); +x_49 = lean_ctor_get(x_46, 0); lean_dec(x_49); +x_50 = lean_ctor_get(x_44, 3); +lean_inc(x_50); +lean_dec(x_44); +x_51 = lean_array_get_size(x_50); +x_52 = lean_unsigned_to_nat(0u); +x_53 = lean_nat_dec_lt(x_52, x_51); +if (x_53 == 0) +{ +lean_object* x_54; +lean_dec(x_51); +lean_dec(x_50); +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); -x_53 = lean_box(0); -lean_ctor_set(x_45, 0, x_53); -return x_45; +x_54 = lean_box(0); +lean_ctor_set(x_46, 0, x_54); +return x_46; } else { -uint8_t x_54; -x_54 = lean_nat_dec_le(x_50, x_50); -if (x_54 == 0) +uint8_t x_55; +x_55 = lean_nat_dec_le(x_51, x_51); +if (x_55 == 0) { -lean_object* x_55; +lean_object* x_56; +lean_dec(x_51); lean_dec(x_50); -lean_dec(x_49); +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); -x_55 = lean_box(0); -lean_ctor_set(x_45, 0, x_55); -return x_45; +x_56 = lean_box(0); +lean_ctor_set(x_46, 0, x_56); +return x_46; } else { -size_t x_56; size_t x_57; lean_object* x_58; lean_object* x_59; -lean_free_object(x_45); -x_56 = 0; -x_57 = lean_usize_of_nat(x_50); +size_t x_57; size_t x_58; lean_object* x_59; lean_object* x_60; +lean_free_object(x_46); +x_57 = 0; +x_58 = lean_usize_of_nat(x_51); +lean_dec(x_51); +x_59 = lean_box(0); +x_60 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__2(x_50, x_57, x_58, x_59, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_48); lean_dec(x_50); -x_58 = lean_box(0); -x_59 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__2(x_49, x_56, x_57, x_58, x_2, x_3, x_4, x_5, x_6, x_7, x_47); -lean_dec(x_49); -return x_59; +return x_60; } } } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; -x_60 = lean_ctor_get(x_45, 1); -lean_inc(x_60); -lean_dec(x_45); -x_61 = lean_ctor_get(x_43, 3); +lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; +x_61 = lean_ctor_get(x_46, 1); lean_inc(x_61); -lean_dec(x_43); -x_62 = lean_array_get_size(x_61); -x_63 = lean_unsigned_to_nat(0u); -x_64 = lean_nat_dec_lt(x_63, x_62); -if (x_64 == 0) +lean_dec(x_46); +x_62 = lean_ctor_get(x_44, 3); +lean_inc(x_62); +lean_dec(x_44); +x_63 = lean_array_get_size(x_62); +x_64 = lean_unsigned_to_nat(0u); +x_65 = lean_nat_dec_lt(x_64, x_63); +if (x_65 == 0) { -lean_object* x_65; lean_object* x_66; +lean_object* x_66; lean_object* x_67; +lean_dec(x_63); lean_dec(x_62); -lean_dec(x_61); +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); -x_65 = lean_box(0); -x_66 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_66, 0, x_65); -lean_ctor_set(x_66, 1, x_60); -return x_66; +x_66 = lean_box(0); +x_67 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_67, 0, x_66); +lean_ctor_set(x_67, 1, x_61); +return x_67; } else { -uint8_t x_67; -x_67 = lean_nat_dec_le(x_62, x_62); -if (x_67 == 0) +uint8_t x_68; +x_68 = lean_nat_dec_le(x_63, x_63); +if (x_68 == 0) { -lean_object* x_68; lean_object* x_69; +lean_object* x_69; lean_object* x_70; +lean_dec(x_63); lean_dec(x_62); -lean_dec(x_61); +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); -x_68 = lean_box(0); -x_69 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_69, 0, x_68); -lean_ctor_set(x_69, 1, x_60); -return x_69; +x_69 = lean_box(0); +x_70 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_70, 0, x_69); +lean_ctor_set(x_70, 1, x_61); +return x_70; } else { -size_t x_70; size_t x_71; lean_object* x_72; lean_object* x_73; -x_70 = 0; -x_71 = lean_usize_of_nat(x_62); +size_t x_71; size_t x_72; lean_object* x_73; lean_object* x_74; +x_71 = 0; +x_72 = lean_usize_of_nat(x_63); +lean_dec(x_63); +x_73 = lean_box(0); +x_74 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__2(x_62, x_71, x_72, x_73, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_61); lean_dec(x_62); -x_72 = lean_box(0); -x_73 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__2(x_61, x_70, x_71, x_72, x_2, x_3, x_4, x_5, x_6, x_7, x_60); -lean_dec(x_61); -return x_73; +return x_74; } } } } case 5: { -lean_object* x_74; lean_object* x_75; -x_74 = lean_ctor_get(x_1, 0); -lean_inc(x_74); +lean_object* x_75; lean_object* x_76; +x_75 = lean_ctor_get(x_1, 0); +lean_inc(x_75); lean_dec(x_1); -x_75 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_74, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +x_76 = l_Lean_Compiler_LCNF_Simp_markUsedFVar(x_75, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +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); -return x_75; +return x_76; } case 6: { -lean_object* x_76; lean_object* x_77; +lean_object* x_77; lean_object* x_78; +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -701,57 +718,59 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_76 = lean_box(0); -x_77 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_77, 0, x_76); -lean_ctor_set(x_77, 1, x_8); -return x_77; +x_77 = lean_box(0); +x_78 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_78, 0, x_77); +lean_ctor_set(x_78, 1, x_9); +return x_78; } default: { -lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_78 = lean_ctor_get(x_1, 0); -lean_inc(x_78); -x_79 = lean_ctor_get(x_1, 1); +lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; +x_79 = lean_ctor_get(x_1, 0); lean_inc(x_79); +x_80 = lean_ctor_get(x_1, 1); +lean_inc(x_80); lean_dec(x_1); +lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_80 = l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(x_78, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -x_81 = lean_ctor_get(x_80, 1); -lean_inc(x_81); -lean_dec(x_80); -x_1 = x_79; -x_8 = x_81; +x_81 = l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(x_79, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_82 = lean_ctor_get(x_81, 1); +lean_inc(x_82); +lean_dec(x_81); +x_1 = x_80; +x_9 = x_82; goto _start; } } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(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_Compiler_LCNF_Simp_markUsedFunDecl(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_object* x_10; -x_9 = lean_ctor_get(x_1, 4); -lean_inc(x_9); +lean_object* x_10; lean_object* x_11; +x_10 = lean_ctor_get(x_1, 4); +lean_inc(x_10); lean_dec(x_1); -x_10 = l_Lean_Compiler_LCNF_Simp_markUsedCode(x_9, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -return x_10; +x_11 = l_Lean_Compiler_LCNF_Simp_markUsedCode(x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_11; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__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_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__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) { _start: { -size_t x_12; size_t x_13; lean_object* x_14; -x_12 = lean_unbox_usize(x_2); +size_t x_13; size_t x_14; lean_object* x_15; +x_13 = lean_unbox_usize(x_2); lean_dec(x_2); -x_13 = lean_unbox_usize(x_3); +x_14 = lean_unbox_usize(x_3); lean_dec(x_3); -x_14 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(x_1, x_12, x_13, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +x_15 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__1(x_1, x_13, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); @@ -759,71 +778,72 @@ lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_1); -return x_14; +return x_15; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__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_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__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_12; size_t x_13; lean_object* x_14; -x_12 = lean_unbox_usize(x_2); +size_t x_13; size_t x_14; lean_object* x_15; +x_13 = lean_unbox_usize(x_2); lean_dec(x_2); -x_13 = lean_unbox_usize(x_3); +x_14 = lean_unbox_usize(x_3); lean_dec(x_3); -x_14 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__2(x_1, x_12, x_13, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +x_15 = l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Simp_markUsedCode___spec__2(x_1, x_13, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); lean_dec(x_1); -return x_14; +return x_15; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isUsed(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_Compiler_LCNF_Simp_isUsed(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_object* x_10; lean_object* x_11; uint8_t x_12; -x_9 = lean_st_ref_get(x_7, x_8); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_get(x_3, x_10); -x_12 = !lean_is_exclusive(x_11); -if (x_12 == 0) +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_10 = lean_st_ref_get(x_8, x_9); +x_11 = lean_ctor_get(x_10, 1); +lean_inc(x_11); +lean_dec(x_10); +x_12 = lean_st_ref_get(x_3, x_11); +x_13 = !lean_is_exclusive(x_12); +if (x_13 == 0) { -lean_object* x_13; lean_object* x_14; uint8_t x_15; lean_object* x_16; -x_13 = lean_ctor_get(x_11, 0); -x_14 = lean_ctor_get(x_13, 1); -lean_inc(x_14); -lean_dec(x_13); -x_15 = l_Lean_HashSetImp_contains___at_Lean_Compiler_LCNF_ElimDead_elimDead___spec__1(x_14, x_1); +lean_object* x_14; lean_object* x_15; uint8_t x_16; lean_object* x_17; +x_14 = lean_ctor_get(x_12, 0); +x_15 = lean_ctor_get(x_14, 1); +lean_inc(x_15); lean_dec(x_14); -x_16 = lean_box(x_15); -lean_ctor_set(x_11, 0, x_16); -return x_11; +x_16 = l_Lean_HashSetImp_contains___at_Lean_Compiler_LCNF_ElimDead_elimDead___spec__1(x_15, x_1); +lean_dec(x_15); +x_17 = lean_box(x_16); +lean_ctor_set(x_12, 0, x_17); +return x_12; } else { -lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; -x_17 = lean_ctor_get(x_11, 0); -x_18 = lean_ctor_get(x_11, 1); -lean_inc(x_18); -lean_inc(x_17); -lean_dec(x_11); -x_19 = lean_ctor_get(x_17, 1); +lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; lean_object* x_22; lean_object* x_23; +x_18 = lean_ctor_get(x_12, 0); +x_19 = lean_ctor_get(x_12, 1); lean_inc(x_19); -lean_dec(x_17); -x_20 = l_Lean_HashSetImp_contains___at_Lean_Compiler_LCNF_ElimDead_elimDead___spec__1(x_19, x_1); -lean_dec(x_19); -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_18); -return x_22; +lean_inc(x_18); +lean_dec(x_12); +x_20 = lean_ctor_get(x_18, 1); +lean_inc(x_20); +lean_dec(x_18); +x_21 = l_Lean_HashSetImp_contains___at_Lean_Compiler_LCNF_ElimDead_elimDead___spec__1(x_20, x_1); +lean_dec(x_20); +x_22 = lean_box(x_21); +x_23 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_19); +return x_23; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isUsed___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_isUsed___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) { _start: { -lean_object* x_9; -x_9 = l_Lean_Compiler_LCNF_Simp_isUsed(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_10; +x_10 = l_Lean_Compiler_LCNF_Simp_isUsed(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); @@ -831,7 +851,7 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -return x_9; +return x_10; } } static lean_object* _init_l_Lean_Compiler_LCNF_Simp_attachCodeDecls_go___closed__1() { @@ -871,15 +891,16 @@ x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); return x_6; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls_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, lean_object* x_10) { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls_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, lean_object* x_10, lean_object* x_11) { _start: { -lean_object* x_11; uint8_t x_12; -x_11 = lean_unsigned_to_nat(0u); -x_12 = lean_nat_dec_lt(x_11, x_2); -if (x_12 == 0) +lean_object* x_12; uint8_t x_13; +x_12 = lean_unsigned_to_nat(0u); +x_13 = lean_nat_dec_lt(x_12, x_2); +if (x_13 == 0) { -lean_object* x_13; +lean_object* x_14; +lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -887,138 +908,140 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_3); -lean_ctor_set(x_13, 1, x_10); -return x_13; +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_3); +lean_ctor_set(x_14, 1, x_11); +return x_14; } else { -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_44; uint8_t x_45; -x_14 = lean_unsigned_to_nat(1u); -x_15 = lean_nat_sub(x_2, x_14); +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_45; uint8_t x_46; +x_15 = lean_unsigned_to_nat(1u); +x_16 = lean_nat_sub(x_2, x_15); lean_dec(x_2); -x_44 = lean_array_get_size(x_1); -x_45 = lean_nat_dec_lt(x_15, x_44); -lean_dec(x_44); -if (x_45 == 0) +x_45 = lean_array_get_size(x_1); +x_46 = lean_nat_dec_lt(x_16, x_45); +lean_dec(x_45); +if (x_46 == 0) { -lean_object* x_46; lean_object* x_47; -x_46 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls_go___closed__4; -x_47 = l_panic___at_Lean_Compiler_LCNF_attachCodeDecls_go___spec__1(x_46); -x_16 = x_47; -goto block_43; +lean_object* x_47; lean_object* x_48; +x_47 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls_go___closed__4; +x_48 = l_panic___at_Lean_Compiler_LCNF_attachCodeDecls_go___spec__1(x_47); +x_17 = x_48; +goto block_44; } else { -lean_object* x_48; -x_48 = lean_array_fget(x_1, x_15); -x_16 = x_48; -goto block_43; +lean_object* x_49; +x_49 = lean_array_fget(x_1, x_16); +x_17 = x_49; +goto block_44; } -block_43: +block_44: { -lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; -x_17 = l_Lean_Compiler_LCNF_CodeDecl_fvarId(x_16); -x_18 = l_Lean_Compiler_LCNF_Simp_isUsed(x_17, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -lean_dec(x_17); -x_19 = lean_ctor_get(x_18, 0); -lean_inc(x_19); -x_20 = lean_unbox(x_19); -lean_dec(x_19); -if (x_20 == 0) -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_18, 1); -lean_inc(x_21); +lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; +x_18 = l_Lean_Compiler_LCNF_CodeDecl_fvarId(x_17); +x_19 = l_Lean_Compiler_LCNF_Simp_isUsed(x_18, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); lean_dec(x_18); -x_22 = l_Lean_Compiler_LCNF_eraseCodeDecl(x_16, x_6, x_7, x_8, x_9, x_21); -x_23 = lean_ctor_get(x_22, 1); -lean_inc(x_23); -lean_dec(x_22); -x_2 = x_15; -x_10 = x_23; +x_20 = lean_ctor_get(x_19, 0); +lean_inc(x_20); +x_21 = lean_unbox(x_20); +lean_dec(x_20); +if (x_21 == 0) +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_19, 1); +lean_inc(x_22); +lean_dec(x_19); +x_23 = l_Lean_Compiler_LCNF_eraseCodeDecl(x_17, x_7, x_8, x_9, x_10, x_22); +x_24 = lean_ctor_get(x_23, 1); +lean_inc(x_24); +lean_dec(x_23); +x_2 = x_16; +x_11 = x_24; goto _start; } else { -switch (lean_obj_tag(x_16)) { +switch (lean_obj_tag(x_17)) { case 0: { -lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_25 = lean_ctor_get(x_18, 1); -lean_inc(x_25); -lean_dec(x_18); -x_26 = lean_ctor_get(x_16, 0); +lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_26 = lean_ctor_get(x_19, 1); lean_inc(x_26); -lean_dec(x_16); -lean_inc(x_26); -x_27 = l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(x_26, x_4, x_5, x_6, x_7, x_8, x_9, x_25); -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_29, 0, x_26); -lean_ctor_set(x_29, 1, x_3); -x_2 = x_15; -x_3 = x_29; -x_10 = x_28; +lean_dec(x_19); +x_27 = lean_ctor_get(x_17, 0); +lean_inc(x_27); +lean_dec(x_17); +lean_inc(x_27); +x_28 = l_Lean_Compiler_LCNF_Simp_markUsedLetDecl(x_27, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_26); +x_29 = lean_ctor_get(x_28, 1); +lean_inc(x_29); +lean_dec(x_28); +x_30 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_30, 0, x_27); +lean_ctor_set(x_30, 1, x_3); +x_2 = x_16; +x_3 = x_30; +x_11 = x_29; goto _start; } case 1: { -lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_31 = lean_ctor_get(x_18, 1); -lean_inc(x_31); -lean_dec(x_18); -x_32 = lean_ctor_get(x_16, 0); +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; +x_32 = lean_ctor_get(x_19, 1); lean_inc(x_32); -lean_dec(x_16); +lean_dec(x_19); +x_33 = lean_ctor_get(x_17, 0); +lean_inc(x_33); +lean_dec(x_17); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -lean_inc(x_32); -x_33 = l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(x_32, x_4, x_5, x_6, x_7, x_8, x_9, x_31); -x_34 = lean_ctor_get(x_33, 1); -lean_inc(x_34); -lean_dec(x_33); -x_35 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_35, 0, x_32); -lean_ctor_set(x_35, 1, x_3); -x_2 = x_15; -x_3 = x_35; -x_10 = x_34; +lean_inc(x_33); +x_34 = l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(x_33, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_32); +x_35 = lean_ctor_get(x_34, 1); +lean_inc(x_35); +lean_dec(x_34); +x_36 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_36, 0, x_33); +lean_ctor_set(x_36, 1, x_3); +x_2 = x_16; +x_3 = x_36; +x_11 = x_35; goto _start; } default: { -lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; -x_37 = lean_ctor_get(x_18, 1); -lean_inc(x_37); -lean_dec(x_18); -x_38 = lean_ctor_get(x_16, 0); +lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; +x_38 = lean_ctor_get(x_19, 1); lean_inc(x_38); -lean_dec(x_16); +lean_dec(x_19); +x_39 = lean_ctor_get(x_17, 0); +lean_inc(x_39); +lean_dec(x_17); +lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -lean_inc(x_38); -x_39 = l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(x_38, x_4, x_5, x_6, x_7, x_8, x_9, x_37); -x_40 = lean_ctor_get(x_39, 1); -lean_inc(x_40); -lean_dec(x_39); -x_41 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_41, 0, x_38); -lean_ctor_set(x_41, 1, x_3); -x_2 = x_15; -x_3 = x_41; -x_10 = x_40; +lean_inc(x_39); +x_40 = l_Lean_Compiler_LCNF_Simp_markUsedFunDecl(x_39, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_38); +x_41 = lean_ctor_get(x_40, 1); +lean_inc(x_41); +lean_dec(x_40); +x_42 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_42, 0, x_39); +lean_ctor_set(x_42, 1, x_3); +x_2 = x_16; +x_3 = x_42; +x_11 = x_41; goto _start; } } @@ -1027,33 +1050,33 @@ goto _start; } } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls_go___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls_go___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) { +_start: +{ +lean_object* x_12; +x_12 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls_go(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_dec(x_1); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls(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; lean_object* x_12; +x_11 = lean_array_get_size(x_1); +x_12 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls_go(x_1, x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls___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) { _start: { lean_object* x_11; -x_11 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls_go(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +x_11 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); lean_dec(x_1); return x_11; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls(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_10; lean_object* x_11; -x_10 = lean_array_get_size(x_1); -x_11 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls_go(x_1, x_10, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_11; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Simp_attachCodeDecls___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) { -_start: -{ -lean_object* x_10; -x_10 = l_Lean_Compiler_LCNF_Simp_attachCodeDecls(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -lean_dec(x_1); -return x_10; -} -} lean_object* initialize_Init(uint8_t builtin, lean_object*); lean_object* initialize_Lean_Compiler_LCNF_Simp_SimpM(uint8_t builtin, lean_object*); static bool _G_initialized = false; diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Specialize.c b/stage0/stdlib/Lean/Compiler/LCNF/Specialize.c index 929987558a..6de9405506 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Specialize.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Specialize.c @@ -85,13 +85,13 @@ lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_Meta_ToHide_visitVisibleExpr_v lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_FunDeclCore_toExpr(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Specialize_cacheSpec___closed__1; -lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__1(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___lambda__3___closed__7; uint8_t lean_usize_dec_lt(size_t, size_t); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Specialize_expandCodeDecls___spec__1___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_cacheSpec___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Specialize_Collector_collectCode___spec__2(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_visitCode___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_Lean_RBNode_findCore___at_Lean_Meta_ToHide_isMarked___spec__1(lean_object*, lean_object*); extern lean_object* l_Lean_Compiler_LCNF_specExtension; lean_object* l_Lean_Compiler_LCNF_Code_inferType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_levelZero; @@ -176,7 +176,6 @@ LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_Specialize_specializeAp lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_Internalize_internalizeFunDecl___spec__1(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Specialize_Collector_collectExpr___closed__2; -lean_object* l_Lean_RBNode_findCore___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_findSpecCache_x3f(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_Collector_collectExpr___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___lambda__3___closed__12; @@ -194,6 +193,7 @@ static lean_object* l_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___lambda__ lean_object* l_Lean_Compiler_LCNF_findFunDecl_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_Collector_collectExpr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_getDecl_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__3(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___lambda__3___closed__11; lean_object* l_Lean_SimplePersistentEnvExtension_getState___rarg(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Specialize_specializeApp_x3f___lambda__1___closed__2; @@ -829,7 +829,7 @@ case 1: { lean_object* x_5; lean_object* x_6; x_5 = lean_ctor_get(x_2, 0); -x_6 = l_Lean_RBNode_findCore___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__1(x_1, x_5); +x_6 = l_Lean_RBNode_findCore___at_Lean_Meta_ToHide_isMarked___spec__1(x_1, x_5); if (lean_obj_tag(x_6) == 0) { uint8_t x_7; @@ -3081,7 +3081,7 @@ x_15 = lean_ctor_get(x_12, 1); x_16 = lean_ctor_get(x_14, 0); lean_inc(x_16); lean_dec(x_14); -x_17 = l_Lean_RBNode_findCore___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__1(x_16, x_1); +x_17 = l_Lean_RBNode_findCore___at_Lean_Meta_ToHide_isMarked___spec__1(x_16, x_1); lean_dec(x_16); if (lean_obj_tag(x_17) == 0) { @@ -3098,7 +3098,7 @@ x_21 = lean_ctor_get(x_18, 0); lean_dec(x_21); x_22 = lean_ctor_get(x_3, 0); lean_inc(x_22); -x_23 = l_Lean_RBNode_findCore___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__1(x_22, x_1); +x_23 = l_Lean_RBNode_findCore___at_Lean_Meta_ToHide_isMarked___spec__1(x_22, x_1); lean_dec(x_22); if (lean_obj_tag(x_23) == 0) { @@ -3732,7 +3732,7 @@ lean_inc(x_184); lean_dec(x_18); x_185 = lean_ctor_get(x_3, 0); lean_inc(x_185); -x_186 = l_Lean_RBNode_findCore___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__1(x_185, x_1); +x_186 = l_Lean_RBNode_findCore___at_Lean_Meta_ToHide_isMarked___spec__1(x_185, x_1); lean_dec(x_185); if (lean_obj_tag(x_186) == 0) { @@ -4290,7 +4290,7 @@ lean_dec(x_12); x_311 = lean_ctor_get(x_309, 0); lean_inc(x_311); lean_dec(x_309); -x_312 = l_Lean_RBNode_findCore___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__1(x_311, x_1); +x_312 = l_Lean_RBNode_findCore___at_Lean_Meta_ToHide_isMarked___spec__1(x_311, x_1); lean_dec(x_311); if (lean_obj_tag(x_312) == 0) { @@ -4309,7 +4309,7 @@ if (lean_is_exclusive(x_313)) { } x_316 = lean_ctor_get(x_3, 0); lean_inc(x_316); -x_317 = l_Lean_RBNode_findCore___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__1(x_316, x_1); +x_317 = l_Lean_RBNode_findCore___at_Lean_Meta_ToHide_isMarked___spec__1(x_316, x_1); lean_dec(x_316); if (lean_obj_tag(x_317) == 0) { @@ -7261,137 +7261,145 @@ goto block_24; } else { -lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; uint8_t x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; x_61 = lean_ctor_get(x_37, 0); lean_inc(x_61); lean_dec(x_37); -x_62 = lean_st_ref_get(x_7, x_12); -x_63 = lean_ctor_get(x_62, 0); +x_62 = lean_st_ref_get(x_11, x_12); +x_63 = lean_ctor_get(x_62, 1); lean_inc(x_63); -x_64 = lean_ctor_get(x_62, 1); -lean_inc(x_64); lean_dec(x_62); -x_65 = 1; -x_66 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_63, x_65, x_61); -x_67 = lean_st_ref_get(x_11, x_64); -x_68 = lean_ctor_get(x_67, 1); -lean_inc(x_68); -lean_dec(x_67); -x_69 = lean_st_ref_take(x_7, x_68); -x_70 = lean_ctor_get(x_69, 0); +x_64 = lean_st_ref_get(x_7, x_63); +x_65 = lean_ctor_get(x_64, 0); +lean_inc(x_65); +x_66 = lean_ctor_get(x_64, 1); +lean_inc(x_66); +lean_dec(x_64); +x_67 = 1; +x_68 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_65, x_67, x_61); +x_69 = lean_st_ref_get(x_11, x_66); +x_70 = lean_ctor_get(x_69, 1); lean_inc(x_70); -x_71 = lean_ctor_get(x_69, 1); -lean_inc(x_71); lean_dec(x_69); -x_72 = lean_ctor_get(x_15, 0); +x_71 = lean_st_ref_take(x_7, x_70); +x_72 = lean_ctor_get(x_71, 0); lean_inc(x_72); +x_73 = lean_ctor_get(x_71, 1); +lean_inc(x_73); +lean_dec(x_71); +x_74 = lean_ctor_get(x_15, 0); +lean_inc(x_74); lean_dec(x_15); -x_73 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_70, x_72, x_66); -x_74 = lean_st_ref_set(x_7, x_73, x_71); -x_75 = lean_ctor_get(x_74, 1); -lean_inc(x_75); -lean_dec(x_74); -x_76 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_76, 0, x_6); -x_16 = x_76; -x_17 = x_75; +x_75 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_72, x_74, x_68); +x_76 = lean_st_ref_set(x_7, x_75, x_73); +x_77 = lean_ctor_get(x_76, 1); +lean_inc(x_77); +lean_dec(x_76); +x_78 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_78, 0, x_6); +x_16 = x_78; +x_17 = x_77; goto block_24; } } else { -lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; +lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_dec(x_26); -x_77 = lean_array_fget(x_28, x_29); -x_78 = lean_unsigned_to_nat(1u); -x_79 = lean_nat_add(x_29, x_78); +x_79 = lean_array_fget(x_28, x_29); +x_80 = lean_unsigned_to_nat(1u); +x_81 = lean_nat_add(x_29, x_80); lean_dec(x_29); -x_80 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_80, 0, x_28); -lean_ctor_set(x_80, 1, x_79); -lean_ctor_set(x_80, 2, x_30); -if (lean_obj_tag(x_77) == 0) +x_82 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_82, 0, x_28); +lean_ctor_set(x_82, 1, x_81); +lean_ctor_set(x_82, 2, x_30); +if (lean_obj_tag(x_79) == 0) { -lean_object* x_81; lean_object* x_82; lean_object* x_83; uint8_t x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -x_81 = lean_ctor_get(x_15, 0); -lean_inc(x_81); -x_82 = lean_ctor_get(x_15, 1); -lean_inc(x_82); -x_83 = lean_ctor_get(x_15, 2); +lean_object* x_83; lean_object* x_84; lean_object* x_85; uint8_t x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; +x_83 = lean_ctor_get(x_15, 0); lean_inc(x_83); -x_84 = lean_ctor_get_uint8(x_15, sizeof(void*)*3); +x_84 = lean_ctor_get(x_15, 1); +lean_inc(x_84); +x_85 = lean_ctor_get(x_15, 2); +lean_inc(x_85); +x_86 = lean_ctor_get_uint8(x_15, sizeof(void*)*3); if (lean_is_exclusive(x_15)) { lean_ctor_release(x_15, 0); lean_ctor_release(x_15, 1); lean_ctor_release(x_15, 2); - x_85 = x_15; + x_87 = x_15; } else { lean_dec_ref(x_15); - x_85 = lean_box(0); + x_87 = lean_box(0); } -x_86 = lean_ctor_get(x_2, 1); -x_87 = l_Lean_Expr_instantiateLevelParamsCore_visit___at_Lean_Expr_instantiateLevelParams___spec__1(x_86, x_1, x_83); -if (lean_is_scalar(x_85)) { - x_88 = lean_alloc_ctor(0, 3, 1); +x_88 = lean_ctor_get(x_2, 1); +x_89 = l_Lean_Expr_instantiateLevelParamsCore_visit___at_Lean_Expr_instantiateLevelParams___spec__1(x_88, x_1, x_85); +if (lean_is_scalar(x_87)) { + x_90 = lean_alloc_ctor(0, 3, 1); } else { - x_88 = x_85; + x_90 = x_87; } -lean_ctor_set(x_88, 0, x_81); -lean_ctor_set(x_88, 1, x_82); -lean_ctor_set(x_88, 2, x_87); -lean_ctor_set_uint8(x_88, sizeof(void*)*3, x_84); -x_89 = l_Lean_Compiler_LCNF_Internalize_internalizeParam(x_88, x_7, x_8, x_9, x_10, x_11, x_12); -x_90 = lean_ctor_get(x_89, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_89, 1); -lean_inc(x_91); -lean_dec(x_89); -x_92 = lean_array_push(x_27, x_90); -lean_ctor_set(x_6, 1, x_92); -lean_ctor_set(x_6, 0, x_80); -x_93 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_93, 0, x_6); -x_16 = x_93; -x_17 = x_91; +lean_ctor_set(x_90, 0, x_83); +lean_ctor_set(x_90, 1, x_84); +lean_ctor_set(x_90, 2, x_89); +lean_ctor_set_uint8(x_90, sizeof(void*)*3, x_86); +x_91 = l_Lean_Compiler_LCNF_Internalize_internalizeParam(x_90, x_7, x_8, x_9, x_10, x_11, x_12); +x_92 = lean_ctor_get(x_91, 0); +lean_inc(x_92); +x_93 = lean_ctor_get(x_91, 1); +lean_inc(x_93); +lean_dec(x_91); +x_94 = lean_array_push(x_27, x_92); +lean_ctor_set(x_6, 1, x_94); +lean_ctor_set(x_6, 0, x_82); +x_95 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_95, 0, x_6); +x_16 = x_95; +x_17 = x_93; goto block_24; } else { -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; uint8_t x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; -x_94 = lean_ctor_get(x_77, 0); -lean_inc(x_94); -lean_dec(x_77); -x_95 = lean_st_ref_get(x_7, x_12); -x_96 = lean_ctor_get(x_95, 0); +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; uint8_t x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; +x_96 = lean_ctor_get(x_79, 0); lean_inc(x_96); -x_97 = lean_ctor_get(x_95, 1); -lean_inc(x_97); -lean_dec(x_95); -x_98 = 1; -x_99 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_96, x_98, x_94); -x_100 = lean_st_ref_get(x_11, x_97); -x_101 = lean_ctor_get(x_100, 1); +lean_dec(x_79); +x_97 = lean_st_ref_get(x_11, x_12); +x_98 = lean_ctor_get(x_97, 1); +lean_inc(x_98); +lean_dec(x_97); +x_99 = lean_st_ref_get(x_7, x_98); +x_100 = lean_ctor_get(x_99, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_99, 1); lean_inc(x_101); -lean_dec(x_100); -x_102 = lean_st_ref_take(x_7, x_101); -x_103 = lean_ctor_get(x_102, 0); -lean_inc(x_103); -x_104 = lean_ctor_get(x_102, 1); -lean_inc(x_104); -lean_dec(x_102); -x_105 = lean_ctor_get(x_15, 0); +lean_dec(x_99); +x_102 = 1; +x_103 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_100, x_102, x_96); +x_104 = lean_st_ref_get(x_11, x_101); +x_105 = lean_ctor_get(x_104, 1); lean_inc(x_105); -lean_dec(x_15); -x_106 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_103, x_105, x_99); -x_107 = lean_st_ref_set(x_7, x_106, x_104); -x_108 = lean_ctor_get(x_107, 1); +lean_dec(x_104); +x_106 = lean_st_ref_take(x_7, x_105); +x_107 = lean_ctor_get(x_106, 0); +lean_inc(x_107); +x_108 = lean_ctor_get(x_106, 1); lean_inc(x_108); -lean_dec(x_107); -lean_ctor_set(x_6, 0, x_80); -x_109 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_109, 0, x_6); -x_16 = x_109; -x_17 = x_108; +lean_dec(x_106); +x_109 = lean_ctor_get(x_15, 0); +lean_inc(x_109); +lean_dec(x_15); +x_110 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_107, x_109, x_103); +x_111 = lean_st_ref_set(x_7, x_110, x_108); +x_112 = lean_ctor_get(x_111, 1); +lean_inc(x_112); +lean_dec(x_111); +lean_ctor_set(x_6, 0, x_82); +x_113 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_113, 0, x_6); +x_16 = x_113; +x_17 = x_112; goto block_24; } } @@ -7399,144 +7407,148 @@ goto block_24; } else { -lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; uint8_t x_115; -x_110 = lean_ctor_get(x_6, 0); -x_111 = lean_ctor_get(x_6, 1); -lean_inc(x_111); -lean_inc(x_110); -lean_dec(x_6); -x_112 = lean_ctor_get(x_110, 0); -lean_inc(x_112); -x_113 = lean_ctor_get(x_110, 1); -lean_inc(x_113); -x_114 = lean_ctor_get(x_110, 2); +lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; uint8_t x_119; +x_114 = lean_ctor_get(x_6, 0); +x_115 = lean_ctor_get(x_6, 1); +lean_inc(x_115); lean_inc(x_114); -x_115 = lean_nat_dec_lt(x_113, x_114); -if (x_115 == 0) +lean_dec(x_6); +x_116 = lean_ctor_get(x_114, 0); +lean_inc(x_116); +x_117 = lean_ctor_get(x_114, 1); +lean_inc(x_117); +x_118 = lean_ctor_get(x_114, 2); +lean_inc(x_118); +x_119 = lean_nat_dec_lt(x_117, x_118); +if (x_119 == 0) { -lean_object* x_116; lean_object* x_117; -lean_dec(x_114); -lean_dec(x_113); -lean_dec(x_112); +lean_object* x_120; lean_object* x_121; +lean_dec(x_118); +lean_dec(x_117); +lean_dec(x_116); lean_dec(x_15); -x_116 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_116, 0, x_110); -lean_ctor_set(x_116, 1, x_111); -x_117 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_117, 0, x_116); -x_16 = x_117; +x_120 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_120, 0, x_114); +lean_ctor_set(x_120, 1, x_115); +x_121 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_121, 0, x_120); +x_16 = x_121; x_17 = x_12; goto block_24; } else { -lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; -if (lean_is_exclusive(x_110)) { - lean_ctor_release(x_110, 0); - lean_ctor_release(x_110, 1); - lean_ctor_release(x_110, 2); - x_118 = x_110; +lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; +if (lean_is_exclusive(x_114)) { + lean_ctor_release(x_114, 0); + lean_ctor_release(x_114, 1); + lean_ctor_release(x_114, 2); + x_122 = x_114; } else { - lean_dec_ref(x_110); - x_118 = lean_box(0); + lean_dec_ref(x_114); + x_122 = lean_box(0); } -x_119 = lean_array_fget(x_112, x_113); -x_120 = lean_unsigned_to_nat(1u); -x_121 = lean_nat_add(x_113, x_120); -lean_dec(x_113); -if (lean_is_scalar(x_118)) { - x_122 = lean_alloc_ctor(0, 3, 0); +x_123 = lean_array_fget(x_116, x_117); +x_124 = lean_unsigned_to_nat(1u); +x_125 = lean_nat_add(x_117, x_124); +lean_dec(x_117); +if (lean_is_scalar(x_122)) { + x_126 = lean_alloc_ctor(0, 3, 0); } else { - x_122 = x_118; + x_126 = x_122; } -lean_ctor_set(x_122, 0, x_112); -lean_ctor_set(x_122, 1, x_121); -lean_ctor_set(x_122, 2, x_114); -if (lean_obj_tag(x_119) == 0) +lean_ctor_set(x_126, 0, x_116); +lean_ctor_set(x_126, 1, x_125); +lean_ctor_set(x_126, 2, x_118); +if (lean_obj_tag(x_123) == 0) { -lean_object* x_123; lean_object* x_124; lean_object* x_125; uint8_t x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; -x_123 = lean_ctor_get(x_15, 0); -lean_inc(x_123); -x_124 = lean_ctor_get(x_15, 1); -lean_inc(x_124); -x_125 = lean_ctor_get(x_15, 2); -lean_inc(x_125); -x_126 = lean_ctor_get_uint8(x_15, sizeof(void*)*3); +lean_object* x_127; lean_object* x_128; lean_object* x_129; uint8_t x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; +x_127 = lean_ctor_get(x_15, 0); +lean_inc(x_127); +x_128 = lean_ctor_get(x_15, 1); +lean_inc(x_128); +x_129 = lean_ctor_get(x_15, 2); +lean_inc(x_129); +x_130 = lean_ctor_get_uint8(x_15, sizeof(void*)*3); if (lean_is_exclusive(x_15)) { lean_ctor_release(x_15, 0); lean_ctor_release(x_15, 1); lean_ctor_release(x_15, 2); - x_127 = x_15; + x_131 = x_15; } else { lean_dec_ref(x_15); - x_127 = lean_box(0); + x_131 = lean_box(0); } -x_128 = lean_ctor_get(x_2, 1); -x_129 = l_Lean_Expr_instantiateLevelParamsCore_visit___at_Lean_Expr_instantiateLevelParams___spec__1(x_128, x_1, x_125); -if (lean_is_scalar(x_127)) { - x_130 = lean_alloc_ctor(0, 3, 1); +x_132 = lean_ctor_get(x_2, 1); +x_133 = l_Lean_Expr_instantiateLevelParamsCore_visit___at_Lean_Expr_instantiateLevelParams___spec__1(x_132, x_1, x_129); +if (lean_is_scalar(x_131)) { + x_134 = lean_alloc_ctor(0, 3, 1); } else { - x_130 = x_127; + x_134 = x_131; } -lean_ctor_set(x_130, 0, x_123); -lean_ctor_set(x_130, 1, x_124); -lean_ctor_set(x_130, 2, x_129); -lean_ctor_set_uint8(x_130, sizeof(void*)*3, x_126); -x_131 = l_Lean_Compiler_LCNF_Internalize_internalizeParam(x_130, x_7, x_8, x_9, x_10, x_11, x_12); -x_132 = lean_ctor_get(x_131, 0); -lean_inc(x_132); -x_133 = lean_ctor_get(x_131, 1); -lean_inc(x_133); -lean_dec(x_131); -x_134 = lean_array_push(x_111, x_132); -x_135 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_135, 0, x_122); -lean_ctor_set(x_135, 1, x_134); -x_136 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_136, 0, x_135); -x_16 = x_136; -x_17 = x_133; +lean_ctor_set(x_134, 0, x_127); +lean_ctor_set(x_134, 1, x_128); +lean_ctor_set(x_134, 2, x_133); +lean_ctor_set_uint8(x_134, sizeof(void*)*3, x_130); +x_135 = l_Lean_Compiler_LCNF_Internalize_internalizeParam(x_134, x_7, x_8, x_9, x_10, x_11, x_12); +x_136 = lean_ctor_get(x_135, 0); +lean_inc(x_136); +x_137 = lean_ctor_get(x_135, 1); +lean_inc(x_137); +lean_dec(x_135); +x_138 = lean_array_push(x_115, x_136); +x_139 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_139, 0, x_126); +lean_ctor_set(x_139, 1, x_138); +x_140 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_140, 0, x_139); +x_16 = x_140; +x_17 = x_137; goto block_24; } else { -lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; uint8_t x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; -x_137 = lean_ctor_get(x_119, 0); -lean_inc(x_137); -lean_dec(x_119); -x_138 = lean_st_ref_get(x_7, x_12); -x_139 = lean_ctor_get(x_138, 0); -lean_inc(x_139); -x_140 = lean_ctor_get(x_138, 1); -lean_inc(x_140); -lean_dec(x_138); -x_141 = 1; -x_142 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_139, x_141, x_137); -x_143 = lean_st_ref_get(x_11, x_140); -x_144 = lean_ctor_get(x_143, 1); -lean_inc(x_144); -lean_dec(x_143); -x_145 = lean_st_ref_take(x_7, x_144); -x_146 = lean_ctor_get(x_145, 0); +lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; uint8_t x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; +x_141 = lean_ctor_get(x_123, 0); +lean_inc(x_141); +lean_dec(x_123); +x_142 = lean_st_ref_get(x_11, x_12); +x_143 = lean_ctor_get(x_142, 1); +lean_inc(x_143); +lean_dec(x_142); +x_144 = lean_st_ref_get(x_7, x_143); +x_145 = lean_ctor_get(x_144, 0); +lean_inc(x_145); +x_146 = lean_ctor_get(x_144, 1); lean_inc(x_146); -x_147 = lean_ctor_get(x_145, 1); -lean_inc(x_147); -lean_dec(x_145); -x_148 = lean_ctor_get(x_15, 0); -lean_inc(x_148); +lean_dec(x_144); +x_147 = 1; +x_148 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_normExprImp_go(x_145, x_147, x_141); +x_149 = lean_st_ref_get(x_11, x_146); +x_150 = lean_ctor_get(x_149, 1); +lean_inc(x_150); +lean_dec(x_149); +x_151 = lean_st_ref_take(x_7, x_150); +x_152 = lean_ctor_get(x_151, 0); +lean_inc(x_152); +x_153 = lean_ctor_get(x_151, 1); +lean_inc(x_153); +lean_dec(x_151); +x_154 = lean_ctor_get(x_15, 0); +lean_inc(x_154); lean_dec(x_15); -x_149 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_146, x_148, x_142); -x_150 = lean_st_ref_set(x_7, x_149, x_147); -x_151 = lean_ctor_get(x_150, 1); -lean_inc(x_151); -lean_dec(x_150); -x_152 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_152, 0, x_122); -lean_ctor_set(x_152, 1, x_111); -x_153 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_153, 0, x_152); -x_16 = x_153; -x_17 = x_151; +x_155 = l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_addFVarSubst___spec__1(x_152, x_154, x_148); +x_156 = lean_st_ref_set(x_7, x_155, x_153); +x_157 = lean_ctor_get(x_156, 1); +lean_inc(x_157); +lean_dec(x_156); +x_158 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_158, 0, x_126); +lean_ctor_set(x_158, 1, x_115); +x_159 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_159, 0, x_158); +x_16 = x_159; +x_17 = x_157; goto block_24; } } @@ -7649,7 +7661,7 @@ goto _start; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_mkSpecDecl_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, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { _start: { -lean_object* x_14; size_t x_15; size_t x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; size_t 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; uint8_t x_29; uint8_t x_30; lean_object* x_31; lean_object* x_32; size_t x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; size_t x_40; lean_object* x_41; size_t x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; +lean_object* x_14; size_t x_15; size_t x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; size_t x_21; lean_object* x_22; x_14 = lean_array_get_size(x_3); x_15 = lean_usize_of_nat(x_14); lean_dec(x_14); @@ -7663,7 +7675,14 @@ lean_dec(x_17); x_20 = lean_array_get_size(x_4); x_21 = lean_usize_of_nat(x_20); lean_dec(x_20); -x_22 = l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__1(x_21, x_16, x_4, x_8, x_9, x_10, x_11, x_12, x_19); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +x_22 = l_Array_mapMUnsafe_map___at___private_Lean_Compiler_LCNF_Simp_JpCases_0__Lean_Compiler_LCNF_Simp_mkJpAlt_go___spec__3(x_21, x_16, x_4, x_8, x_9, x_10, x_11, x_12, x_19); +if (lean_obj_tag(x_22) == 0) +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; uint8_t x_30; lean_object* x_31; lean_object* x_32; size_t x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; size_t x_40; lean_object* x_41; size_t x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; x_23 = lean_ctor_get(x_22, 0); lean_inc(x_23); x_24 = lean_ctor_get(x_22, 1); @@ -7712,7 +7731,7 @@ x_46 = l_Lean_Compiler_LCNF_Decl_instantiateValueLevelParams(x_6, x_1); x_47 = !lean_is_exclusive(x_6); if (x_47 == 0) { -lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; +lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; x_48 = lean_ctor_get(x_6, 4); lean_dec(x_48); x_49 = lean_ctor_get(x_6, 3); @@ -7723,7 +7742,14 @@ x_51 = lean_ctor_get(x_6, 1); lean_dec(x_51); x_52 = lean_ctor_get(x_6, 0); lean_dec(x_52); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); x_53 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_46, x_8, x_9, x_10, x_11, x_12, x_45); +if (lean_obj_tag(x_53) == 0) +{ +lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; x_54 = lean_ctor_get(x_53, 0); lean_inc(x_54); x_55 = lean_ctor_get(x_53, 1); @@ -7846,115 +7872,121 @@ return x_75; } else { -lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; -lean_dec(x_6); -x_76 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_46, x_8, x_9, x_10, x_11, x_12, x_45); -x_77 = lean_ctor_get(x_76, 0); -lean_inc(x_77); -x_78 = lean_ctor_get(x_76, 1); -lean_inc(x_78); -lean_dec(x_76); -x_79 = l_Lean_Compiler_LCNF_attachCodeDecls(x_23, x_77); +uint8_t x_76; +lean_free_object(x_6); +lean_dec(x_44); lean_dec(x_23); -lean_inc(x_12); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_79); -x_80 = l_Lean_Compiler_LCNF_Code_inferType(x_79, x_9, x_10, x_11, x_12, x_78); -if (lean_obj_tag(x_80) == 0) -{ -lean_object* x_81; lean_object* x_82; lean_object* x_83; -x_81 = lean_ctor_get(x_80, 0); -lean_inc(x_81); -x_82 = lean_ctor_get(x_80, 1); -lean_inc(x_82); -lean_dec(x_80); -lean_inc(x_44); -x_83 = l_Lean_Compiler_LCNF_mkForallParams(x_44, x_81, x_9, x_10, x_11, x_12, x_82); -if (lean_obj_tag(x_83) == 0) -{ -lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_84 = lean_ctor_get(x_83, 0); -lean_inc(x_84); -x_85 = lean_ctor_get(x_83, 1); -lean_inc(x_85); -if (lean_is_exclusive(x_83)) { - lean_ctor_release(x_83, 0); - lean_ctor_release(x_83, 1); - x_86 = x_83; -} else { - lean_dec_ref(x_83); - x_86 = lean_box(0); -} -x_87 = lean_alloc_ctor(0, 5, 2); -lean_ctor_set(x_87, 0, x_7); -lean_ctor_set(x_87, 1, x_5); -lean_ctor_set(x_87, 2, x_84); -lean_ctor_set(x_87, 3, x_44); -lean_ctor_set(x_87, 4, x_79); -lean_ctor_set_uint8(x_87, sizeof(void*)*5, x_29); -lean_ctor_set_uint8(x_87, sizeof(void*)*5 + 1, x_30); -x_88 = l_Lean_Compiler_LCNF_Decl_setLevelParams(x_87); -if (lean_is_scalar(x_86)) { - x_89 = lean_alloc_ctor(0, 2, 0); -} else { - x_89 = x_86; -} -lean_ctor_set(x_89, 0, x_88); -lean_ctor_set(x_89, 1, x_85); -return x_89; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -lean_dec(x_79); -lean_dec(x_44); -lean_dec(x_7); -lean_dec(x_5); -x_90 = lean_ctor_get(x_83, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_83, 1); -lean_inc(x_91); -if (lean_is_exclusive(x_83)) { - lean_ctor_release(x_83, 0); - lean_ctor_release(x_83, 1); - x_92 = x_83; -} else { - lean_dec_ref(x_83); - x_92 = lean_box(0); -} -if (lean_is_scalar(x_92)) { - x_93 = lean_alloc_ctor(1, 2, 0); -} else { - x_93 = x_92; -} -lean_ctor_set(x_93, 0, x_90); -lean_ctor_set(x_93, 1, x_91); -return x_93; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; -lean_dec(x_79); -lean_dec(x_44); lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_7); lean_dec(x_5); -x_94 = lean_ctor_get(x_80, 0); -lean_inc(x_94); -x_95 = lean_ctor_get(x_80, 1); -lean_inc(x_95); -if (lean_is_exclusive(x_80)) { - lean_ctor_release(x_80, 0); - lean_ctor_release(x_80, 1); - x_96 = x_80; +x_76 = !lean_is_exclusive(x_53); +if (x_76 == 0) +{ +return x_53; +} +else +{ +lean_object* x_77; lean_object* x_78; lean_object* x_79; +x_77 = lean_ctor_get(x_53, 0); +x_78 = lean_ctor_get(x_53, 1); +lean_inc(x_78); +lean_inc(x_77); +lean_dec(x_53); +x_79 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_79, 0, x_77); +lean_ctor_set(x_79, 1, x_78); +return x_79; +} +} +} +else +{ +lean_object* x_80; +lean_dec(x_6); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +x_80 = l_Lean_Compiler_LCNF_Internalize_internalizeCode(x_46, x_8, x_9, x_10, x_11, x_12, x_45); +if (lean_obj_tag(x_80) == 0) +{ +lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; +x_81 = lean_ctor_get(x_80, 0); +lean_inc(x_81); +x_82 = lean_ctor_get(x_80, 1); +lean_inc(x_82); +lean_dec(x_80); +x_83 = l_Lean_Compiler_LCNF_attachCodeDecls(x_23, x_81); +lean_dec(x_23); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_83); +x_84 = l_Lean_Compiler_LCNF_Code_inferType(x_83, x_9, x_10, x_11, x_12, x_82); +if (lean_obj_tag(x_84) == 0) +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_84, 0); +lean_inc(x_85); +x_86 = lean_ctor_get(x_84, 1); +lean_inc(x_86); +lean_dec(x_84); +lean_inc(x_44); +x_87 = l_Lean_Compiler_LCNF_mkForallParams(x_44, x_85, x_9, x_10, x_11, x_12, x_86); +if (lean_obj_tag(x_87) == 0) +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; +x_88 = lean_ctor_get(x_87, 0); +lean_inc(x_88); +x_89 = lean_ctor_get(x_87, 1); +lean_inc(x_89); +if (lean_is_exclusive(x_87)) { + lean_ctor_release(x_87, 0); + lean_ctor_release(x_87, 1); + x_90 = x_87; } else { - lean_dec_ref(x_80); + lean_dec_ref(x_87); + x_90 = lean_box(0); +} +x_91 = lean_alloc_ctor(0, 5, 2); +lean_ctor_set(x_91, 0, x_7); +lean_ctor_set(x_91, 1, x_5); +lean_ctor_set(x_91, 2, x_88); +lean_ctor_set(x_91, 3, x_44); +lean_ctor_set(x_91, 4, x_83); +lean_ctor_set_uint8(x_91, sizeof(void*)*5, x_29); +lean_ctor_set_uint8(x_91, sizeof(void*)*5 + 1, x_30); +x_92 = l_Lean_Compiler_LCNF_Decl_setLevelParams(x_91); +if (lean_is_scalar(x_90)) { + x_93 = lean_alloc_ctor(0, 2, 0); +} else { + x_93 = x_90; +} +lean_ctor_set(x_93, 0, x_92); +lean_ctor_set(x_93, 1, x_89); +return x_93; +} +else +{ +lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; +lean_dec(x_83); +lean_dec(x_44); +lean_dec(x_7); +lean_dec(x_5); +x_94 = lean_ctor_get(x_87, 0); +lean_inc(x_94); +x_95 = lean_ctor_get(x_87, 1); +lean_inc(x_95); +if (lean_is_exclusive(x_87)) { + lean_ctor_release(x_87, 0); + lean_ctor_release(x_87, 1); + x_96 = x_87; +} else { + lean_dec_ref(x_87); x_96 = lean_box(0); } if (lean_is_scalar(x_96)) { @@ -7967,6 +7999,105 @@ lean_ctor_set(x_97, 1, x_95); return x_97; } } +else +{ +lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; +lean_dec(x_83); +lean_dec(x_44); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_5); +x_98 = lean_ctor_get(x_84, 0); +lean_inc(x_98); +x_99 = lean_ctor_get(x_84, 1); +lean_inc(x_99); +if (lean_is_exclusive(x_84)) { + lean_ctor_release(x_84, 0); + lean_ctor_release(x_84, 1); + x_100 = x_84; +} else { + lean_dec_ref(x_84); + x_100 = lean_box(0); +} +if (lean_is_scalar(x_100)) { + x_101 = lean_alloc_ctor(1, 2, 0); +} else { + x_101 = x_100; +} +lean_ctor_set(x_101, 0, x_98); +lean_ctor_set(x_101, 1, x_99); +return x_101; +} +} +else +{ +lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; +lean_dec(x_44); +lean_dec(x_23); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_5); +x_102 = lean_ctor_get(x_80, 0); +lean_inc(x_102); +x_103 = lean_ctor_get(x_80, 1); +lean_inc(x_103); +if (lean_is_exclusive(x_80)) { + lean_ctor_release(x_80, 0); + lean_ctor_release(x_80, 1); + x_104 = x_80; +} else { + lean_dec_ref(x_80); + x_104 = lean_box(0); +} +if (lean_is_scalar(x_104)) { + x_105 = lean_alloc_ctor(1, 2, 0); +} else { + x_105 = x_104; +} +lean_ctor_set(x_105, 0, x_102); +lean_ctor_set(x_105, 1, x_103); +return x_105; +} +} +} +else +{ +uint8_t x_106; +lean_dec(x_18); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +x_106 = !lean_is_exclusive(x_22); +if (x_106 == 0) +{ +return x_22; +} +else +{ +lean_object* x_107; lean_object* x_108; lean_object* x_109; +x_107 = lean_ctor_get(x_22, 0); +x_108 = lean_ctor_get(x_22, 1); +lean_inc(x_108); +lean_inc(x_107); +lean_dec(x_22); +x_109 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_109, 0, x_107); +lean_ctor_set(x_109, 1, x_108); +return x_109; +} +} } } LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_Specialize_mkSpecDecl_go___spec__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) { @@ -8057,7 +8188,7 @@ return x_3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_mkSpecDecl(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_object* x_13) { _start: { -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; x_14 = lean_st_ref_get(x_12, x_13); x_15 = lean_ctor_get(x_14, 1); lean_inc(x_15); @@ -8085,7 +8216,14 @@ x_26 = lean_name_append_index_after(x_25, x_24); x_27 = l_Lean_Name_append(x_23, x_26); lean_dec(x_23); x_28 = l_Lean_Compiler_LCNF_Specialize_Collector_collectExpr___closed__1; +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); x_29 = l_Lean_Compiler_LCNF_Decl_internalize(x_1, x_28, x_9, x_10, x_11, x_12, x_18); +if (lean_obj_tag(x_29) == 0) +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; x_30 = lean_ctor_get(x_29, 0); lean_inc(x_30); x_31 = lean_ctor_get(x_29, 1); @@ -8187,6 +8325,39 @@ return x_55; } } } +else +{ +uint8_t x_56; +lean_dec(x_27); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_56 = !lean_is_exclusive(x_29); +if (x_56 == 0) +{ +return x_29; +} +else +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_57 = lean_ctor_get(x_29, 0); +x_58 = lean_ctor_get(x_29, 1); +lean_inc(x_58); +lean_inc(x_57); +lean_dec(x_29); +x_59 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_59, 0, x_57); +lean_ctor_set(x_59, 1, x_58); +return x_59; +} +} +} } LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Specialize_mkSpecDecl___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_object* x_13) { _start: diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Testing.c b/stage0/stdlib/Lean/Compiler/LCNF/Testing.c index 1b18db87b6..f6d8e3050d 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Testing.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Testing.c @@ -58,7 +58,7 @@ lean_object* l_Lean_Name_mkStr2(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); lean_object* lean_string_append(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Code_containsConst_goExpr___closed__2; -uint8_t l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646_(lean_object*, lean_object*); +uint8_t l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694_(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Compiler_LCNF_Testing_assertNoFun___spec__3(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_Testing_0__Lean_Compiler_LCNF_Testing_assertAfterTest___elambda__1___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_EXPORT lean_object* l_Lean_Compiler_LCNF_Testing_InOutAssertionM_run___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -76,7 +76,6 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Testing_assertAfterEachOccurrence( LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_containsConst___boxed(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Testing_assertReducesSize___closed__1; static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Testing_assert___spec__1___closed__6; -lean_object* l_panic___at_Lean_PrettyPrinter_Delaborator_TopDownAnalyze_analyzeAppStagedCore_maybeSetExplicit___spec__4(lean_object*); static lean_object* l_Lean_Compiler_LCNF_Testing_assertForEachDeclAfter___closed__1; LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_Testing_assert___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Compiler_LCNF_Testing_0__Lean_Compiler_LCNF_Testing_assertAfterTest___elambda__1___closed__2; @@ -96,6 +95,7 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Testing_assertAfter(lean_object*, LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Code_containsConst_goExpr(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Testing_assertNoFun___closed__1; static lean_object* l___private_Lean_Compiler_LCNF_Testing_0__Lean_Compiler_LCNF_Testing_assertAfterTest___elambda__1___closed__4; +lean_object* l_panic___at_Lean_Compiler_LCNF_isErasedCompatible_go___spec__1(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_Testing_assertReducesOrPreservesSize(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_Testing_assertIsAtFixPoint___closed__1; LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_Code_containsConst(lean_object*, lean_object*); @@ -282,7 +282,7 @@ case 8: { lean_object* x_15; lean_object* x_16; x_15 = l_Lean_Compiler_LCNF_Code_containsConst_goExpr___closed__4; -x_16 = l_panic___at_Lean_PrettyPrinter_Delaborator_TopDownAnalyze_analyzeAppStagedCore_maybeSetExplicit___spec__4(x_15); +x_16 = l_panic___at_Lean_Compiler_LCNF_isErasedCompatible_go___spec__1(x_15); return x_16; } case 11: @@ -2822,7 +2822,7 @@ else lean_object* x_10; lean_object* x_11; uint8_t x_12; x_10 = lean_array_fget(x_4, x_6); x_11 = lean_array_fget(x_5, x_6); -x_12 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3646_(x_10, x_11); +x_12 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_beqDecl____x40_Lean_Compiler_LCNF_Basic___hyg_3694_(x_10, x_11); lean_dec(x_11); if (x_12 == 0) { diff --git a/stage0/stdlib/Lean/Compiler/LCNF/ToLCNF.c b/stage0/stdlib/Lean/Compiler/LCNF/ToLCNF.c index 2b1b80d192..2ac7705ada 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/ToLCNF.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/ToLCNF.c @@ -21,6 +21,7 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_expandNoConfusionMaj LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_set(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_bindCases_findFun_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__2___boxed(lean_object*, 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_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___spec__3___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_State_toAny___default; static lean_object* l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__9; @@ -28,25 +29,28 @@ size_t lean_usize_add(size_t, size_t); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_run(lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_liftMetaM___rarg___closed__8; +static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_etaExpandN___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitLambda___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_erase_macro_scopes(lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___spec__3___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_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_stringToMessageData(lean_object*); +static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__2; lean_object* l_Lean_Expr_lam___override(lean_object*, lean_object*, lean_object*, uint8_t); -extern lean_object* l_Lean_Compiler_LCNF_anyTypeExpr; lean_object* lean_mk_empty_array_with_capacity(lean_object*); LEAN_EXPORT lean_object* l_Lean_throwMaxRecDepthAt___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__10(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__4; lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateParamImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_mkUnreachable___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__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*); LEAN_EXPORT lean_object* l_Lean_addTrace___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__1; static lean_object* l_Lean_Compiler_LCNF_ToLCNF_liftMetaM___rarg___closed__9; uint8_t lean_is_marked_borrowed(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_mkOverApplication(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visit(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__21; LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_usize_dec_eq(size_t, size_t); lean_object* lean_array_uget(lean_object*, size_t); @@ -56,9 +60,9 @@ static lean_object* l_Lean_Compiler_LCNF_ToLCNF_liftMetaM___rarg___closed__4; lean_object* l_Array_append___rarg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_visitLambda(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___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_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__2(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_State_lctx___default___closed__1; extern lean_object* l_Lean_noConfusionExt; -static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__2; lean_object* l_Lean_Compiler_LCNF_mkParam(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__13; lean_object* l_Lean_Compiler_LCNF_CasesInfo_numAlts(lean_object*); @@ -73,12 +77,12 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec(lean_o static lean_object* l_Lean_Compiler_LCNF_ToLCNF_State_cache___default___closed__1; static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitNoConfusion___lambda__2___closed__2; LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitLambda___spec__1(lean_object*, lean_object*); +static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__4; uint8_t l_Lean_Expr_isErased(lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_erase___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__2___boxed(lean_object*, lean_object*); size_t lean_usize_sub(size_t, size_t); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitQuotLift___lambda__1___closed__2; lean_object* lean_environment_find(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7___boxed(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_Compiler_LCNF_ToLCNF_mustEtaExpand___closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_withNewScope___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_moveEntries___at___private_Lean_Compiler_LCNF_ToLCNF_0__Lean_Compiler_LCNF_ToLCNF_isTypeFormerType___spec__4(lean_object*, lean_object*, lean_object*); @@ -99,6 +103,7 @@ static lean_object* l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___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* l_Lean_Compiler_LCNF_mkCasesResultType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_isAppOf(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__6; lean_object* l_Lean_Name_mkStr2(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at___private_Lean_Compiler_LCNF_ToLCNF_0__Lean_Compiler_LCNF_ToLCNF_isTypeFormerType___spec__8(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_etaExpandN___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -108,14 +113,15 @@ lean_object* lean_array_push(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMap_insert___at_Lean_Compiler_LCNF_ToLCNF_toLCNFType___spec__3(lean_object*, lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_run___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_ToLCNF_run___rarg___closed__2; static lean_object* l_Lean_Compiler_LCNF_ToLCNF_liftMetaM___rarg___closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_etaReduceImplicit(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_applyToAny___lambda__1___boxed(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__6; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visit___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__1; -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_ToLCNF_isLCProof(lean_object*); +LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__5(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_panic___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__5___closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_visitLambda_go___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_shift_right(size_t, size_t); @@ -123,22 +129,23 @@ LEAN_EXPORT lean_object* l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_ToLCN lean_object* l_Lean_Compiler_LCNF_eraseLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_ReplaceImpl_replaceUnsafe(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_State_lctx___default___closed__4; -LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__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_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__2(lean_object*, size_t, size_t, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_Param_toExpr(lean_object*); lean_object* l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__5___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_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__4(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_liftMetaM___rarg___closed__6; +static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__1; lean_object* l_Lean_Meta_inferType___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_usize_dec_lt(size_t, size_t); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_applyToAny___lambda__1___closed__1; static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__3; +LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn___closed__2; LEAN_EXPORT lean_object* l_panic___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_Code_inferType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_levelZero; lean_object* lean_nat_add(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__12; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_mkParam(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitMData___boxed(lean_object*); @@ -154,6 +161,7 @@ LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_ToLCNF_State_i static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitNoConfusion___lambda__2___closed__3; lean_object* l_Lean_Compiler_LCNF_Code_inferParamType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_expr_lower_loose_bvars(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_seqToCode(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); lean_object* l_Lean_MapDeclarationExtension_find_x3f___rarg(lean_object*, lean_object*, lean_object*, lean_object*); @@ -178,9 +186,11 @@ lean_object* l_Lean_RBNode_appendTrees___rarg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_cleanupBinderName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_etaExpandN___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__19; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitEqRec___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_whnf___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_take(lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndIffRecCore___closed__1; lean_object* lean_nat_sub(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__16; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_expandNoConfusionMajor___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -188,13 +198,10 @@ lean_object* l_Lean_RBNode_setBlack___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitLambda(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_ToLCNF_0__Lean_Compiler_LCNF_ToLCNF_isTypeFormerType___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_HashMapImp_find_x3f___at___private_Lean_Compiler_LCNF_ToLCNF_0__Lean_Compiler_LCNF_ToLCNF_isTypeFormerType___spec__7(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__4___boxed(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_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__7; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_State_isTypeFormerTypeCache___default; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visit___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_replaceExprFVars(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__11; LEAN_EXPORT lean_object* l_Lean_Meta_forallBoundedTelescope___at_Lean_Compiler_LCNF_ToLCNF_etaExpandN___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_instInhabitedProjectionFunctionInfo; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -215,11 +222,11 @@ lean_object* l_panic___at_Lean_Expr_getRevArg_x21___spec__1(lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__9; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toCode___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Name_quickCmp(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndRec(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitLambda___closed__1; lean_object* l___private_Lean_Meta_Basic_0__Lean_Meta_forallTelescopeReducingAux___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__4; LEAN_EXPORT uint8_t l_Lean_AssocList_contains___at_Lean_Compiler_LCNF_ToLCNF_toLCNFType___spec__4(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAppDefault___spec__1(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_mk_ref(lean_object*, lean_object*); @@ -228,6 +235,7 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Expr_withAppAux___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Expr_instHashableExpr; +static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__3; static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__17; uint64_t l_Lean_Expr_hash(lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__2; @@ -256,7 +264,6 @@ LEAN_EXPORT lean_object* l_Lean_AssocList_replace___at___private_Lean_Compiler_L LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_applyToAny___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_instInhabitedExpr; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_mkParam___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__3; static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitLambda___lambda__1___closed__1; LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_ToLCNF_State_typeCache___default___spec__1___boxed(lean_object*); lean_object* l_Lean_Core_instantiateValueLevelParams(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -272,6 +279,7 @@ LEAN_EXPORT lean_object* l_Lean_AssocList_contains___at___private_Lean_Compiler_ lean_object* l_Lean_RBNode_findCore___at_Lean_Compiler_LCNF_CompilerM_codeBind_go___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_getCasesInfo_x3f(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Compiler_LCNF_Code_ensureAnyType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitQuotLift___lambda__1___closed__3; static lean_object* l_Lean_Compiler_LCNF_ToLCNF_mustEtaExpand___closed__4; static lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___spec__3___closed__3; @@ -283,7 +291,6 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_visitLambda_go(lean_object* static lean_object* l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__3; lean_object* l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_whnf(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__5(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_isTypeFormerType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_mustEtaExpand___closed__2; lean_object* l_Lean_Compiler_LCNF_getBinderName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -297,10 +304,12 @@ LEAN_EXPORT lean_object* l___private_Lean_Compiler_LCNF_ToLCNF_0__Lean_Compiler_ size_t lean_usize_of_nat(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_applyToAny___lambda__1(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn___closed__1; +LEAN_EXPORT lean_object* l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_isLambda(lean_object*); lean_object* l_instBEqProd___rarg(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_replace___at_Lean_Compiler_LCNF_ToLCNF_toLCNFType___spec__8(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_toCtorIfLit(lean_object*); +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__4(lean_object*); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___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*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_etaIfUnderApplied(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_findFunDecl_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -325,7 +334,6 @@ LEAN_EXPORT lean_object* l_Lean_AssocList_find_x3f___at_Lean_Compiler_LCNF_ToLCN LEAN_EXPORT lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_Compiler_LCNF_ToLCNF_toLCNFType___spec__1(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_State_lctx___default___closed__5; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitLet(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__5; LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__1(lean_object*, lean_object*, lean_object*); lean_object* lean_local_ctx_mk_local_decl(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__10; @@ -339,12 +347,13 @@ lean_object* l___private_Lean_Data_HashMap_0__Lean_numBucketsForCapacity(lean_ob LEAN_EXPORT lean_object* l_Lean_Meta_forallBoundedTelescope___at_Lean_Compiler_LCNF_ToLCNF_etaExpandN___spec__1(lean_object*); lean_object* l_Lean_Expr_const___override(lean_object*, lean_object*); static lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn___spec__1___closed__2; +static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__6; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProj(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_mkAuxJpDecl_x27(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_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___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_Compiler_LCNF_ToLCNF_mkLetDecl(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_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_bindCases_visitAlts___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___spec__3___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__6; uint8_t lean_expr_eqv(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__7(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNFType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -357,12 +366,13 @@ uint8_t lean_nat_dec_le(lean_object*, lean_object*); uint8_t lean_usize_dec_le(size_t, size_t); lean_object* l_Lean_Expr_beta(lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_AltCore_getCode(lean_object*); +LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__3(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_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___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_getConstInfo___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__12; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_visitBoundedLambda___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Compiler_LCNF_eraseCode(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__4; extern lean_object* l_Lean_Core_instMonadCoreM; uint8_t l___private_Lean_Util_Trace_0__Lean_checkTraceOption(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_getConstInfo___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn___spec__1___closed__1; @@ -381,6 +391,7 @@ static lean_object* l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__4 LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitNoConfusion___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_ToLCNF_mustEtaExpand(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_mkAuxLetDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndIffRecCore(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_liftMetaM___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visit___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -396,6 +407,7 @@ lean_object* l_Lean_Compiler_LCNF_getCtorArity_x3f(lean_object*, lean_object*, l lean_object* lean_nat_mul(lean_object*, lean_object*); lean_object* l_Lean_Name_getPrefix(lean_object*); lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__5; LEAN_EXPORT lean_object* l_Lean_HashMap_insert___at___private_Lean_Compiler_LCNF_ToLCNF_0__Lean_Compiler_LCNF_ToLCNF_isTypeFormerType___spec__1___boxed(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_isFVar(lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__5; @@ -403,6 +415,7 @@ uint8_t lean_nat_dec_eq(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___lambda__1(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_Compiler_LCNF_ToLCNF_State_lctx___default___closed__2; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__20; lean_object* l_Lean_PersistentHashMap_mkEmptyEntries(lean_object*, lean_object*); lean_object* l_Lean_Expr_app___override(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_mustEtaExpand___closed__5; @@ -417,21 +430,24 @@ static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___c LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_liftMetaM(lean_object*); lean_object* l_Lean_RBNode_balRight___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_panic_fn(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_instHashableProd___rarg___boxed(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_MapDeclarationExtension_contains___rarg(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_AssocList_foldlM___at_Lean_Compiler_LCNF_ToLCNF_toLCNFType___spec__7(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__5; LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_mkLcProof(lean_object*); -static lean_object* l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__13; uint8_t l_Lean_TagDeclarationExtension_isTagged(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__5; lean_object* lean_mk_array(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_getProjectionFnInfo_x3f___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l___private_Lean_Expr_0__Lean_beqBinderInfo____x40_Lean_Expr___hyg_390_(uint8_t, uint8_t); +LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__4___boxed(lean_object*); static lean_object* l_Lean_throwMaxRecDepthAt___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__10___closed__1; extern lean_object* l_Lean_Expr_instBEqExpr; lean_object* l_Lean_Compiler_LCNF_mkAuxFunDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__3; static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__14; static lean_object* l_panic___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__5___closed__4; static lean_object* l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__2; @@ -460,11 +476,9 @@ static lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_T static lean_object* l_Lean_Compiler_LCNF_ToLCNF_isLCProof___closed__2; LEAN_EXPORT lean_object* l_Lean_HashMapImp_expand___at_Lean_Compiler_LCNF_ToLCNF_toLCNFType___spec__5(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAppArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_getAppFn(lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_del___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__3(lean_object*, lean_object*); -static lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__1; -static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1___closed__2; +LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__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*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNFType___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_State_cache___default; lean_object* l_Lean_RBNode_balLeft___rarg(lean_object*, lean_object*, lean_object*, lean_object*); @@ -484,18 +498,15 @@ lean_object* l_Lean_indentExpr(lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__10; static lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___spec__3___closed__1; static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitNoConfusion___closed__3; -static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndRec___closed__1; lean_object* l_Lean_Expr_isConstructorApp_x3f(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1___closed__1; static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__2___closed__2; LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__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*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__7; -LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__4(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitQuotLift___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_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_mkLetDecl___boxed(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_Lean_Expr_withAppAux___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___spec__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_Compiler_LCNF_ToLCNF_toLCNF_visitCases___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_Compiler_LCNF_ToLCNF_toLCNF_visitCases___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*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_State_seq___default; lean_object* l_Lean_mkApp3(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_throwMaxRecDepthAt___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__10___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -506,7 +517,6 @@ LEAN_EXPORT lean_object* l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_ToLC static lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__9; LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_ToLCNF_State_typeCache___default___spec__1(lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_isLCProof___closed__1() { _start: @@ -995,7 +1005,15 @@ x_4 = l_Lean_RBNode_setBlack___rarg(x_3); return x_4; } } -LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__4(lean_object* x_1, size_t x_2, size_t 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_mkHashMap___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__4(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_mkHashMapImp___rarg(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__5(lean_object* x_1, size_t x_2, size_t 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: { uint8_t x_11; @@ -1067,7 +1085,7 @@ goto _start; } } } -LEAN_EXPORT lean_object* l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -1103,7 +1121,7 @@ switch (x_13) { case 0: { lean_object* x_14; uint8_t x_15; -x_14 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(x_9, x_2, x_3); +x_14 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(x_9, x_2, x_3); x_15 = 0; lean_ctor_set(x_1, 0, x_14); lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_15); @@ -1123,7 +1141,7 @@ return x_1; default: { lean_object* x_17; uint8_t x_18; -x_17 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(x_12, x_2, x_3); +x_17 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(x_12, x_2, x_3); x_18 = 0; lean_ctor_set(x_1, 3, x_17); lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_18); @@ -1148,7 +1166,7 @@ switch (x_23) { case 0: { lean_object* x_24; uint8_t x_25; lean_object* x_26; -x_24 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(x_19, x_2, x_3); +x_24 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(x_19, x_2, x_3); x_25 = 0; x_26 = lean_alloc_ctor(1, 4, 1); lean_ctor_set(x_26, 0, x_24); @@ -1175,7 +1193,7 @@ return x_28; default: { lean_object* x_29; uint8_t x_30; lean_object* x_31; -x_29 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(x_22, x_2, x_3); +x_29 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(x_22, x_2, x_3); x_30 = 0; x_31 = lean_alloc_ctor(1, 4, 1); lean_ctor_set(x_31, 0, x_19); @@ -1204,7 +1222,7 @@ switch (x_37) { case 0: { lean_object* x_38; uint8_t x_39; -x_38 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(x_33, x_2, x_3); +x_38 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(x_33, x_2, x_3); x_39 = lean_ctor_get_uint8(x_38, sizeof(void*)*4); if (x_39 == 0) { @@ -1903,7 +1921,7 @@ return x_1; default: { lean_object* x_191; uint8_t x_192; -x_191 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(x_36, x_2, x_3); +x_191 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(x_36, x_2, x_3); x_192 = lean_ctor_get_uint8(x_191, sizeof(void*)*4); if (x_192 == 0) { @@ -2598,7 +2616,7 @@ switch (x_346) { case 0: { lean_object* x_347; uint8_t x_348; -x_347 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(x_342, x_2, x_3); +x_347 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(x_342, x_2, x_3); x_348 = lean_ctor_get_uint8(x_347, sizeof(void*)*4); if (x_348 == 0) { @@ -3027,7 +3045,7 @@ return x_423; default: { lean_object* x_424; uint8_t x_425; -x_424 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(x_345, x_2, x_3); +x_424 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(x_345, x_2, x_3); x_425 = lean_ctor_get_uint8(x_424, sizeof(void*)*4); if (x_425 == 0) { @@ -3445,7 +3463,7 @@ return x_498; } } } -LEAN_EXPORT lean_object* l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; @@ -3453,19 +3471,19 @@ x_4 = l_Lean_RBNode_isRed___rarg(x_1); if (x_4 == 0) { lean_object* x_5; -x_5 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(x_1, x_2, x_3); +x_5 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(x_1, x_2, x_3); return x_5; } else { lean_object* x_6; lean_object* x_7; -x_6 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(x_1, x_2, x_3); +x_6 = l_Lean_RBNode_ins___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(x_1, x_2, x_3); x_7 = l_Lean_RBNode_setBlack___rarg(x_6); return x_7; } } } -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(lean_object* x_1, size_t x_2, size_t 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_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8(lean_object* x_1, size_t x_2, size_t 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: { uint8_t x_11; @@ -3759,7 +3777,7 @@ return x_71; } } } -static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__1() { +static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__1() { _start: { lean_object* x_1; @@ -3767,21 +3785,21 @@ x_1 = l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_box(0), lean_box(0)); return x_1; } } -static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__2() { +static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__1; +x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__1; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__3() { +static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__2; +x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__2; x_2 = lean_unsigned_to_nat(0u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -3789,11 +3807,11 @@ lean_ctor_set(x_3, 1, x_2); return x_3; } } -static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__4() { +static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__4() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__2; +x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__2; x_2 = lean_unsigned_to_nat(0u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -3801,11 +3819,11 @@ lean_ctor_set(x_3, 1, x_2); return x_3; } } -static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__5() { +static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__2; +x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__2; x_2 = lean_unsigned_to_nat(0u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -3813,14 +3831,14 @@ lean_ctor_set(x_3, 1, x_2); return x_3; } } -static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__6() { +static lean_object* _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; x_1 = lean_unsigned_to_nat(0u); -x_2 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__3; -x_3 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__4; -x_4 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__5; +x_2 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__3; +x_3 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__4; +x_4 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__5; x_5 = lean_alloc_ctor(0, 8, 0); lean_ctor_set(x_5, 0, x_1); lean_ctor_set(x_5, 1, x_1); @@ -3833,7 +3851,7 @@ lean_ctor_set(x_5, 7, x_3); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8(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_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9(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; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; @@ -3858,7 +3876,7 @@ lean_inc(x_16); lean_dec(x_15); x_17 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_16); x_18 = lean_ctor_get(x_5, 2); -x_19 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__6; +x_19 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__6; lean_inc(x_18); x_20 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_20, 0, x_12); @@ -3889,7 +3907,7 @@ lean_inc(x_25); lean_dec(x_23); x_26 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_25); x_27 = lean_ctor_get(x_5, 2); -x_28 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__6; +x_28 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__6; lean_inc(x_27); x_29 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_29, 0, x_12); @@ -4211,41 +4229,35 @@ return x_2; static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__4() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(0u); -x_2 = l_Lean_mkHashMapImp___rarg(x_1); -return x_2; +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("_x", 2); +return x_1; } } static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__1; +x_1 = lean_box(0); x_2 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__4; -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); +x_3 = l_Lean_Name_str___override(x_1, x_2); return x_3; } } static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__6() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__1; -x_2 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(1u); +x_2 = lean_mk_empty_array_with_capacity(x_1); +return x_2; } } static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__7() { _start: { lean_object* x_1; -x_1 = lean_mk_string_from_bytes("_x", 2); +x_1 = lean_mk_string_from_bytes("_jp", 3); return x_1; } } @@ -4262,43 +4274,16 @@ return x_3; static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__9() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(1u); -x_2 = lean_mk_empty_array_with_capacity(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__10() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("_jp", 3); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__11() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__10; -x_3 = l_Lean_Name_str___override(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__12() { -_start: -{ lean_object* x_1; x_1 = lean_mk_string_from_bytes("`Code.bind` failed, empty `cases` found", 39); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__13() { +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__10() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__12; +x_1 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__9; x_2 = l_Lean_stringToMessageData(x_1); return x_2; } @@ -4458,156 +4443,163 @@ x_57 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__1( lean_dec(x_55); if (lean_obj_tag(x_57) == 0) { -lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; size_t x_62; lean_object* x_63; size_t x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; +lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; size_t x_66; lean_object* x_67; size_t x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_free_object(x_53); -x_58 = lean_ctor_get(x_41, 2); -lean_inc(x_58); +x_58 = l_Lean_mkHashMapImp___rarg(x_42); +x_59 = lean_ctor_get(x_41, 2); +lean_inc(x_59); lean_dec(x_41); -x_59 = lean_array_get_size(x_48); -x_60 = l_Array_toSubarray___rarg(x_58, x_42, x_59); -x_61 = lean_ctor_get(x_60, 2); -lean_inc(x_61); -x_62 = lean_usize_of_nat(x_61); -lean_dec(x_61); -x_63 = lean_ctor_get(x_60, 1); -lean_inc(x_63); -x_64 = lean_usize_of_nat(x_63); -lean_dec(x_63); -x_65 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__6; -x_66 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__4(x_60, x_62, x_64, x_65, x_3, x_4, x_5, x_6, x_7, x_56); -lean_dec(x_60); -x_67 = lean_ctor_get(x_66, 0); +x_60 = lean_array_get_size(x_48); +x_61 = l_Array_toSubarray___rarg(x_59, x_42, x_60); +x_62 = l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__1; +x_63 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_63, 0, x_62); +lean_ctor_set(x_63, 1, x_58); +x_64 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_64, 0, x_62); +lean_ctor_set(x_64, 1, x_63); +x_65 = lean_ctor_get(x_61, 2); +lean_inc(x_65); +x_66 = lean_usize_of_nat(x_65); +lean_dec(x_65); +x_67 = lean_ctor_get(x_61, 1); lean_inc(x_67); -x_68 = lean_ctor_get(x_67, 1); -lean_inc(x_68); -x_69 = lean_ctor_get(x_66, 1); -lean_inc(x_69); -lean_dec(x_66); -x_70 = lean_ctor_get(x_67, 0); -lean_inc(x_70); +x_68 = lean_usize_of_nat(x_67); lean_dec(x_67); -x_71 = lean_ctor_get(x_68, 0); +x_69 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__5(x_61, x_66, x_68, x_64, x_3, x_4, x_5, x_6, x_7, x_56); +lean_dec(x_61); +x_70 = lean_ctor_get(x_69, 0); +lean_inc(x_70); +x_71 = lean_ctor_get(x_70, 1); lean_inc(x_71); -lean_dec(x_68); -x_72 = l_Lean_mkAppN(x_22, x_70); -x_73 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_72 = lean_ctor_get(x_69, 1); +lean_inc(x_72); +lean_dec(x_69); +x_73 = lean_ctor_get(x_70, 0); +lean_inc(x_73); +lean_dec(x_70); +x_74 = lean_ctor_get(x_71, 0); +lean_inc(x_74); +lean_dec(x_71); +x_75 = l_Lean_mkAppN(x_22, x_73); +x_76 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -x_74 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_72, x_73, x_4, x_5, x_6, x_7, x_69); -if (lean_obj_tag(x_74) == 0) +x_77 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_75, x_76, x_4, x_5, x_6, x_7, x_72); +if (lean_obj_tag(x_77) == 0) { -lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; -x_75 = lean_ctor_get(x_74, 0); -lean_inc(x_75); -x_76 = lean_ctor_get(x_74, 1); -lean_inc(x_76); -lean_dec(x_74); -x_77 = lean_ctor_get(x_1, 0); -lean_inc(x_77); -lean_dec(x_1); -x_78 = lean_ctor_get(x_75, 0); +lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_78 = lean_ctor_get(x_77, 0); lean_inc(x_78); -x_79 = l_Lean_Expr_fvar___override(x_78); -x_80 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__9; -x_81 = lean_array_push(x_80, x_79); +x_79 = lean_ctor_get(x_77, 1); +lean_inc(x_79); +lean_dec(x_77); +x_80 = lean_ctor_get(x_1, 0); +lean_inc(x_80); +lean_dec(x_1); +x_81 = lean_ctor_get(x_78, 0); +lean_inc(x_81); +x_82 = l_Lean_Expr_fvar___override(x_81); +x_83 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__6; +x_84 = lean_array_push(x_83, x_82); lean_ctor_set_tag(x_2, 3); -lean_ctor_set(x_2, 1, x_81); -lean_ctor_set(x_2, 0, x_77); -x_82 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_82, 0, x_75); -lean_ctor_set(x_82, 1, x_2); -x_83 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__11; +lean_ctor_set(x_2, 1, x_84); +lean_ctor_set(x_2, 0, x_80); +x_85 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_85, 0, x_78); +lean_ctor_set(x_85, 1, x_2); +x_86 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; lean_inc(x_7); -x_84 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_71, x_82, x_83, x_4, x_5, x_6, x_7, x_76); -if (lean_obj_tag(x_84) == 0) +x_87 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_74, x_85, x_86, x_4, x_5, x_6, x_7, x_79); +if (lean_obj_tag(x_87) == 0) { -lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; uint8_t x_94; -x_85 = lean_ctor_get(x_84, 0); -lean_inc(x_85); -x_86 = lean_ctor_get(x_84, 1); -lean_inc(x_86); -lean_dec(x_84); -x_87 = lean_st_ref_get(x_7, x_86); -lean_dec(x_7); -x_88 = lean_ctor_get(x_87, 1); +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; uint8_t x_97; +x_88 = lean_ctor_get(x_87, 0); lean_inc(x_88); +x_89 = lean_ctor_get(x_87, 1); +lean_inc(x_89); lean_dec(x_87); -x_89 = lean_st_ref_take(x_3, x_88); -x_90 = lean_ctor_get(x_89, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_89, 1); +x_90 = lean_st_ref_get(x_7, x_89); +lean_dec(x_7); +x_91 = lean_ctor_get(x_90, 1); lean_inc(x_91); -lean_dec(x_89); -lean_inc(x_85); -x_92 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__5(x_90, x_26, x_85); -x_93 = lean_st_ref_set(x_3, x_92, x_91); +lean_dec(x_90); +x_92 = lean_st_ref_take(x_3, x_91); +x_93 = lean_ctor_get(x_92, 0); +lean_inc(x_93); +x_94 = lean_ctor_get(x_92, 1); +lean_inc(x_94); +lean_dec(x_92); +lean_inc(x_88); +x_95 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(x_93, x_26, x_88); +x_96 = lean_st_ref_set(x_3, x_95, x_94); lean_dec(x_3); -x_94 = !lean_is_exclusive(x_93); -if (x_94 == 0) +x_97 = !lean_is_exclusive(x_96); +if (x_97 == 0) { -lean_object* x_95; lean_object* x_96; lean_object* x_97; -x_95 = lean_ctor_get(x_93, 0); -lean_dec(x_95); -x_96 = lean_ctor_get(x_85, 0); -lean_inc(x_96); -lean_dec(x_85); -x_97 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_97, 0, x_96); -lean_ctor_set(x_97, 1, x_48); -lean_ctor_set(x_93, 0, x_97); -return x_93; -} -else -{ -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -x_98 = lean_ctor_get(x_93, 1); -lean_inc(x_98); -lean_dec(x_93); -x_99 = lean_ctor_get(x_85, 0); +lean_object* x_98; lean_object* x_99; lean_object* x_100; +x_98 = lean_ctor_get(x_96, 0); +lean_dec(x_98); +x_99 = lean_ctor_get(x_88, 0); lean_inc(x_99); -lean_dec(x_85); +lean_dec(x_88); x_100 = lean_alloc_ctor(3, 2, 0); lean_ctor_set(x_100, 0, x_99); lean_ctor_set(x_100, 1, x_48); -x_101 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_101, 0, x_100); -lean_ctor_set(x_101, 1, x_98); -return x_101; +lean_ctor_set(x_96, 0, x_100); +return x_96; +} +else +{ +lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; +x_101 = lean_ctor_get(x_96, 1); +lean_inc(x_101); +lean_dec(x_96); +x_102 = lean_ctor_get(x_88, 0); +lean_inc(x_102); +lean_dec(x_88); +x_103 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_103, 0, x_102); +lean_ctor_set(x_103, 1, x_48); +x_104 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_104, 0, x_103); +lean_ctor_set(x_104, 1, x_101); +return x_104; } } else { -uint8_t x_102; +uint8_t x_105; lean_dec(x_48); lean_dec(x_26); lean_dec(x_7); lean_dec(x_3); -x_102 = !lean_is_exclusive(x_84); -if (x_102 == 0) +x_105 = !lean_is_exclusive(x_87); +if (x_105 == 0) { -return x_84; +return x_87; } else { -lean_object* x_103; lean_object* x_104; lean_object* x_105; -x_103 = lean_ctor_get(x_84, 0); -x_104 = lean_ctor_get(x_84, 1); -lean_inc(x_104); -lean_inc(x_103); -lean_dec(x_84); -x_105 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_105, 0, x_103); -lean_ctor_set(x_105, 1, x_104); -return x_105; +lean_object* x_106; lean_object* x_107; lean_object* x_108; +x_106 = lean_ctor_get(x_87, 0); +x_107 = lean_ctor_get(x_87, 1); +lean_inc(x_107); +lean_inc(x_106); +lean_dec(x_87); +x_108 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_108, 0, x_106); +lean_ctor_set(x_108, 1, x_107); +return x_108; } } } else { -uint8_t x_106; -lean_dec(x_71); +uint8_t x_109; +lean_dec(x_74); lean_dec(x_48); lean_dec(x_26); lean_free_object(x_2); @@ -4617,29 +4609,29 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_106 = !lean_is_exclusive(x_74); -if (x_106 == 0) +x_109 = !lean_is_exclusive(x_77); +if (x_109 == 0) { -return x_74; +return x_77; } else { -lean_object* x_107; lean_object* x_108; lean_object* x_109; -x_107 = lean_ctor_get(x_74, 0); -x_108 = lean_ctor_get(x_74, 1); -lean_inc(x_108); -lean_inc(x_107); -lean_dec(x_74); -x_109 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_109, 0, x_107); -lean_ctor_set(x_109, 1, x_108); -return x_109; +lean_object* x_110; lean_object* x_111; lean_object* x_112; +x_110 = lean_ctor_get(x_77, 0); +x_111 = lean_ctor_get(x_77, 1); +lean_inc(x_111); +lean_inc(x_110); +lean_dec(x_77); +x_112 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_112, 0, x_110); +lean_ctor_set(x_112, 1, x_111); +return x_112; } } } else { -lean_object* x_110; lean_object* x_111; +lean_object* x_113; lean_object* x_114; lean_dec(x_41); lean_dec(x_26); lean_dec(x_22); @@ -4649,174 +4641,181 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_110 = lean_ctor_get(x_57, 0); -lean_inc(x_110); +x_113 = lean_ctor_get(x_57, 0); +lean_inc(x_113); lean_dec(x_57); -x_111 = lean_ctor_get(x_110, 0); -lean_inc(x_111); -lean_dec(x_110); +x_114 = lean_ctor_get(x_113, 0); +lean_inc(x_114); +lean_dec(x_113); lean_ctor_set_tag(x_2, 3); lean_ctor_set(x_2, 1, x_48); -lean_ctor_set(x_2, 0, x_111); +lean_ctor_set(x_2, 0, x_114); lean_ctor_set(x_53, 0, x_2); return x_53; } } else { -lean_object* x_112; lean_object* x_113; lean_object* x_114; -x_112 = lean_ctor_get(x_53, 0); -x_113 = lean_ctor_get(x_53, 1); -lean_inc(x_113); -lean_inc(x_112); -lean_dec(x_53); -x_114 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__1(x_112, x_26); -lean_dec(x_112); -if (lean_obj_tag(x_114) == 0) -{ -lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; size_t x_119; lean_object* x_120; size_t x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; -x_115 = lean_ctor_get(x_41, 2); +lean_object* x_115; lean_object* x_116; lean_object* x_117; +x_115 = lean_ctor_get(x_53, 0); +x_116 = lean_ctor_get(x_53, 1); +lean_inc(x_116); lean_inc(x_115); +lean_dec(x_53); +x_117 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__1(x_115, x_26); +lean_dec(x_115); +if (lean_obj_tag(x_117) == 0) +{ +lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; size_t x_126; lean_object* x_127; size_t x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; +x_118 = l_Lean_mkHashMapImp___rarg(x_42); +x_119 = lean_ctor_get(x_41, 2); +lean_inc(x_119); lean_dec(x_41); -x_116 = lean_array_get_size(x_48); -x_117 = l_Array_toSubarray___rarg(x_115, x_42, x_116); -x_118 = lean_ctor_get(x_117, 2); -lean_inc(x_118); -x_119 = lean_usize_of_nat(x_118); -lean_dec(x_118); -x_120 = lean_ctor_get(x_117, 1); -lean_inc(x_120); -x_121 = lean_usize_of_nat(x_120); -lean_dec(x_120); -x_122 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__6; -x_123 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__4(x_117, x_119, x_121, x_122, x_3, x_4, x_5, x_6, x_7, x_113); -lean_dec(x_117); -x_124 = lean_ctor_get(x_123, 0); -lean_inc(x_124); -x_125 = lean_ctor_get(x_124, 1); +x_120 = lean_array_get_size(x_48); +x_121 = l_Array_toSubarray___rarg(x_119, x_42, x_120); +x_122 = l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__1; +x_123 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_123, 0, x_122); +lean_ctor_set(x_123, 1, x_118); +x_124 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_124, 0, x_122); +lean_ctor_set(x_124, 1, x_123); +x_125 = lean_ctor_get(x_121, 2); lean_inc(x_125); -x_126 = lean_ctor_get(x_123, 1); -lean_inc(x_126); -lean_dec(x_123); -x_127 = lean_ctor_get(x_124, 0); -lean_inc(x_127); -lean_dec(x_124); -x_128 = lean_ctor_get(x_125, 0); -lean_inc(x_128); +x_126 = lean_usize_of_nat(x_125); lean_dec(x_125); -x_129 = l_Lean_mkAppN(x_22, x_127); -x_130 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_127 = lean_ctor_get(x_121, 1); +lean_inc(x_127); +x_128 = lean_usize_of_nat(x_127); +lean_dec(x_127); +x_129 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__5(x_121, x_126, x_128, x_124, x_3, x_4, x_5, x_6, x_7, x_116); +lean_dec(x_121); +x_130 = lean_ctor_get(x_129, 0); +lean_inc(x_130); +x_131 = lean_ctor_get(x_130, 1); +lean_inc(x_131); +x_132 = lean_ctor_get(x_129, 1); +lean_inc(x_132); +lean_dec(x_129); +x_133 = lean_ctor_get(x_130, 0); +lean_inc(x_133); +lean_dec(x_130); +x_134 = lean_ctor_get(x_131, 0); +lean_inc(x_134); +lean_dec(x_131); +x_135 = l_Lean_mkAppN(x_22, x_133); +x_136 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -x_131 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_129, x_130, x_4, x_5, x_6, x_7, x_126); -if (lean_obj_tag(x_131) == 0) +x_137 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_135, x_136, x_4, x_5, x_6, x_7, x_132); +if (lean_obj_tag(x_137) == 0) { -lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; -x_132 = lean_ctor_get(x_131, 0); -lean_inc(x_132); -x_133 = lean_ctor_get(x_131, 1); -lean_inc(x_133); -lean_dec(x_131); -x_134 = lean_ctor_get(x_1, 0); -lean_inc(x_134); +lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; +x_138 = lean_ctor_get(x_137, 0); +lean_inc(x_138); +x_139 = lean_ctor_get(x_137, 1); +lean_inc(x_139); +lean_dec(x_137); +x_140 = lean_ctor_get(x_1, 0); +lean_inc(x_140); lean_dec(x_1); -x_135 = lean_ctor_get(x_132, 0); -lean_inc(x_135); -x_136 = l_Lean_Expr_fvar___override(x_135); -x_137 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__9; -x_138 = lean_array_push(x_137, x_136); +x_141 = lean_ctor_get(x_138, 0); +lean_inc(x_141); +x_142 = l_Lean_Expr_fvar___override(x_141); +x_143 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__6; +x_144 = lean_array_push(x_143, x_142); lean_ctor_set_tag(x_2, 3); -lean_ctor_set(x_2, 1, x_138); -lean_ctor_set(x_2, 0, x_134); -x_139 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_139, 0, x_132); -lean_ctor_set(x_139, 1, x_2); -x_140 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__11; +lean_ctor_set(x_2, 1, x_144); +lean_ctor_set(x_2, 0, x_140); +x_145 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_145, 0, x_138); +lean_ctor_set(x_145, 1, x_2); +x_146 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; lean_inc(x_7); -x_141 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_128, x_139, x_140, x_4, x_5, x_6, x_7, x_133); -if (lean_obj_tag(x_141) == 0) +x_147 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_134, x_145, x_146, x_4, x_5, x_6, x_7, x_139); +if (lean_obj_tag(x_147) == 0) { -lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; lean_object* x_155; -x_142 = lean_ctor_get(x_141, 0); -lean_inc(x_142); -x_143 = lean_ctor_get(x_141, 1); -lean_inc(x_143); -lean_dec(x_141); -x_144 = lean_st_ref_get(x_7, x_143); -lean_dec(x_7); -x_145 = lean_ctor_get(x_144, 1); -lean_inc(x_145); -lean_dec(x_144); -x_146 = lean_st_ref_take(x_3, x_145); -x_147 = lean_ctor_get(x_146, 0); -lean_inc(x_147); -x_148 = lean_ctor_get(x_146, 1); +lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; lean_object* x_161; +x_148 = lean_ctor_get(x_147, 0); lean_inc(x_148); -lean_dec(x_146); -lean_inc(x_142); -x_149 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__5(x_147, x_26, x_142); -x_150 = lean_st_ref_set(x_3, x_149, x_148); -lean_dec(x_3); +x_149 = lean_ctor_get(x_147, 1); +lean_inc(x_149); +lean_dec(x_147); +x_150 = lean_st_ref_get(x_7, x_149); +lean_dec(x_7); x_151 = lean_ctor_get(x_150, 1); lean_inc(x_151); -if (lean_is_exclusive(x_150)) { - lean_ctor_release(x_150, 0); - lean_ctor_release(x_150, 1); - x_152 = x_150; -} else { - lean_dec_ref(x_150); - x_152 = lean_box(0); -} -x_153 = lean_ctor_get(x_142, 0); +lean_dec(x_150); +x_152 = lean_st_ref_take(x_3, x_151); +x_153 = lean_ctor_get(x_152, 0); lean_inc(x_153); -lean_dec(x_142); -x_154 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_154, 0, x_153); -lean_ctor_set(x_154, 1, x_48); -if (lean_is_scalar(x_152)) { - x_155 = lean_alloc_ctor(0, 2, 0); +x_154 = lean_ctor_get(x_152, 1); +lean_inc(x_154); +lean_dec(x_152); +lean_inc(x_148); +x_155 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(x_153, x_26, x_148); +x_156 = lean_st_ref_set(x_3, x_155, x_154); +lean_dec(x_3); +x_157 = lean_ctor_get(x_156, 1); +lean_inc(x_157); +if (lean_is_exclusive(x_156)) { + lean_ctor_release(x_156, 0); + lean_ctor_release(x_156, 1); + x_158 = x_156; } else { - x_155 = x_152; + lean_dec_ref(x_156); + x_158 = lean_box(0); } -lean_ctor_set(x_155, 0, x_154); -lean_ctor_set(x_155, 1, x_151); -return x_155; +x_159 = lean_ctor_get(x_148, 0); +lean_inc(x_159); +lean_dec(x_148); +x_160 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_160, 0, x_159); +lean_ctor_set(x_160, 1, x_48); +if (lean_is_scalar(x_158)) { + x_161 = lean_alloc_ctor(0, 2, 0); +} else { + x_161 = x_158; +} +lean_ctor_set(x_161, 0, x_160); +lean_ctor_set(x_161, 1, x_157); +return x_161; } else { -lean_object* x_156; lean_object* x_157; lean_object* x_158; lean_object* x_159; +lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_dec(x_48); lean_dec(x_26); lean_dec(x_7); lean_dec(x_3); -x_156 = lean_ctor_get(x_141, 0); -lean_inc(x_156); -x_157 = lean_ctor_get(x_141, 1); -lean_inc(x_157); -if (lean_is_exclusive(x_141)) { - lean_ctor_release(x_141, 0); - lean_ctor_release(x_141, 1); - x_158 = x_141; +x_162 = lean_ctor_get(x_147, 0); +lean_inc(x_162); +x_163 = lean_ctor_get(x_147, 1); +lean_inc(x_163); +if (lean_is_exclusive(x_147)) { + lean_ctor_release(x_147, 0); + lean_ctor_release(x_147, 1); + x_164 = x_147; } else { - lean_dec_ref(x_141); - x_158 = lean_box(0); + lean_dec_ref(x_147); + x_164 = lean_box(0); } -if (lean_is_scalar(x_158)) { - x_159 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_164)) { + x_165 = lean_alloc_ctor(1, 2, 0); } else { - x_159 = x_158; + x_165 = x_164; } -lean_ctor_set(x_159, 0, x_156); -lean_ctor_set(x_159, 1, x_157); -return x_159; +lean_ctor_set(x_165, 0, x_162); +lean_ctor_set(x_165, 1, x_163); +return x_165; } } else { -lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; -lean_dec(x_128); +lean_object* x_166; lean_object* x_167; lean_object* x_168; lean_object* x_169; +lean_dec(x_134); lean_dec(x_48); lean_dec(x_26); lean_free_object(x_2); @@ -4826,31 +4825,31 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_160 = lean_ctor_get(x_131, 0); -lean_inc(x_160); -x_161 = lean_ctor_get(x_131, 1); -lean_inc(x_161); -if (lean_is_exclusive(x_131)) { - lean_ctor_release(x_131, 0); - lean_ctor_release(x_131, 1); - x_162 = x_131; +x_166 = lean_ctor_get(x_137, 0); +lean_inc(x_166); +x_167 = lean_ctor_get(x_137, 1); +lean_inc(x_167); +if (lean_is_exclusive(x_137)) { + lean_ctor_release(x_137, 0); + lean_ctor_release(x_137, 1); + x_168 = x_137; } else { - lean_dec_ref(x_131); - x_162 = lean_box(0); + lean_dec_ref(x_137); + x_168 = lean_box(0); } -if (lean_is_scalar(x_162)) { - x_163 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_168)) { + x_169 = lean_alloc_ctor(1, 2, 0); } else { - x_163 = x_162; + x_169 = x_168; } -lean_ctor_set(x_163, 0, x_160); -lean_ctor_set(x_163, 1, x_161); -return x_163; +lean_ctor_set(x_169, 0, x_166); +lean_ctor_set(x_169, 1, x_167); +return x_169; } } else { -lean_object* x_164; lean_object* x_165; lean_object* x_166; +lean_object* x_170; lean_object* x_171; lean_object* x_172; lean_dec(x_41); lean_dec(x_26); lean_dec(x_22); @@ -4860,19 +4859,19 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_164 = lean_ctor_get(x_114, 0); -lean_inc(x_164); -lean_dec(x_114); -x_165 = lean_ctor_get(x_164, 0); -lean_inc(x_165); -lean_dec(x_164); +x_170 = lean_ctor_get(x_117, 0); +lean_inc(x_170); +lean_dec(x_117); +x_171 = lean_ctor_get(x_170, 0); +lean_inc(x_171); +lean_dec(x_170); lean_ctor_set_tag(x_2, 3); lean_ctor_set(x_2, 1, x_48); -lean_ctor_set(x_2, 0, x_165); -x_166 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_166, 0, x_2); -lean_ctor_set(x_166, 1, x_113); -return x_166; +lean_ctor_set(x_2, 0, x_171); +x_172 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_172, 0, x_2); +lean_ctor_set(x_172, 1, x_116); +return x_172; } } } @@ -4880,7 +4879,7 @@ return x_166; } else { -uint8_t x_167; +uint8_t x_173; lean_dec(x_26); lean_dec(x_22); lean_dec(x_18); @@ -4893,386 +4892,393 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_167 = !lean_is_exclusive(x_27); -if (x_167 == 0) +x_173 = !lean_is_exclusive(x_27); +if (x_173 == 0) { return x_27; } else { -lean_object* x_168; lean_object* x_169; lean_object* x_170; -x_168 = lean_ctor_get(x_27, 0); -x_169 = lean_ctor_get(x_27, 1); -lean_inc(x_169); -lean_inc(x_168); +lean_object* x_174; lean_object* x_175; lean_object* x_176; +x_174 = lean_ctor_get(x_27, 0); +x_175 = lean_ctor_get(x_27, 1); +lean_inc(x_175); +lean_inc(x_174); lean_dec(x_27); -x_170 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_170, 0, x_168); -lean_ctor_set(x_170, 1, x_169); -return x_170; -} -} -} -} -} -} -else -{ -lean_object* x_171; lean_object* x_172; lean_object* x_173; uint8_t x_174; -x_171 = lean_ctor_get(x_2, 0); -lean_inc(x_171); -lean_dec(x_2); -x_172 = lean_ctor_get(x_9, 0); -lean_inc(x_172); -x_173 = lean_ctor_get(x_171, 0); -lean_inc(x_173); -x_174 = lean_name_eq(x_173, x_172); -lean_dec(x_172); -lean_dec(x_173); -if (x_174 == 0) -{ -lean_object* x_175; lean_object* x_176; -x_175 = lean_box(0); -x_176 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__1(x_1, x_9, x_171, x_175, x_3, x_4, x_5, x_6, x_7, x_8); +x_176 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_176, 0, x_174); +lean_ctor_set(x_176, 1, x_175); return x_176; } +} +} +} +} +} else { -lean_object* x_177; uint8_t x_178; -x_177 = lean_ctor_get(x_171, 3); +lean_object* x_177; lean_object* x_178; lean_object* x_179; uint8_t x_180; +x_177 = lean_ctor_get(x_2, 0); lean_inc(x_177); -x_178 = l_Lean_Expr_isApp(x_177); -if (x_178 == 0) +lean_dec(x_2); +x_178 = lean_ctor_get(x_9, 0); +lean_inc(x_178); +x_179 = lean_ctor_get(x_177, 0); +lean_inc(x_179); +x_180 = lean_name_eq(x_179, x_178); +lean_dec(x_178); +lean_dec(x_179); +if (x_180 == 0) { -lean_object* x_179; lean_object* x_180; -lean_dec(x_177); -x_179 = lean_box(0); -x_180 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__1(x_1, x_9, x_171, x_179, x_3, x_4, x_5, x_6, x_7, x_8); -return x_180; +lean_object* x_181; lean_object* x_182; +x_181 = lean_box(0); +x_182 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__1(x_1, x_9, x_177, x_181, x_3, x_4, x_5, x_6, x_7, x_8); +return x_182; } else { -lean_object* x_181; uint8_t x_182; -x_181 = l_Lean_Expr_getAppFn(x_177); -x_182 = l_Lean_Expr_isFVar(x_181); -if (x_182 == 0) -{ -lean_object* x_183; lean_object* x_184; -lean_dec(x_181); -lean_dec(x_177); -x_183 = lean_box(0); -x_184 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__1(x_1, x_9, x_171, x_183, x_3, x_4, x_5, x_6, x_7, x_8); -return x_184; -} -else +lean_object* x_183; uint8_t x_184; +x_183 = lean_ctor_get(x_177, 3); +lean_inc(x_183); +x_184 = l_Lean_Expr_isApp(x_183); +if (x_184 == 0) { lean_object* x_185; lean_object* x_186; -lean_inc(x_181); -x_185 = l_Lean_Expr_fvarId_x21(x_181); -lean_inc(x_185); -x_186 = l_Lean_Compiler_LCNF_getBinderName(x_185, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_186) == 0) +lean_dec(x_183); +x_185 = lean_box(0); +x_186 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__1(x_1, x_9, x_177, x_185, x_3, x_4, x_5, x_6, x_7, x_8); +return x_186; +} +else { -lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; uint8_t x_191; -x_187 = lean_ctor_get(x_186, 0); -lean_inc(x_187); -x_188 = lean_ctor_get(x_186, 1); -lean_inc(x_188); -lean_dec(x_186); -x_189 = l_Lean_Name_getPrefix(x_187); +lean_object* x_187; uint8_t x_188; +x_187 = l_Lean_Expr_getAppFn(x_183); +x_188 = l_Lean_Expr_isFVar(x_187); +if (x_188 == 0) +{ +lean_object* x_189; lean_object* x_190; lean_dec(x_187); -x_190 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__2; -x_191 = lean_name_eq(x_189, x_190); -lean_dec(x_189); -if (x_191 == 0) -{ -lean_object* x_192; lean_object* x_193; -lean_dec(x_185); -lean_dec(x_181); -lean_dec(x_177); -x_192 = lean_box(0); -x_193 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__1(x_1, x_9, x_171, x_192, x_3, x_4, x_5, x_6, x_7, x_188); -return x_193; +lean_dec(x_183); +x_189 = lean_box(0); +x_190 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__1(x_1, x_9, x_177, x_189, x_3, x_4, x_5, x_6, x_7, x_8); +return x_190; } else { -lean_object* x_194; lean_object* x_195; -lean_inc(x_185); -x_194 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_findFun_x3f(x_185, x_4, x_5, x_6, x_7, x_188); -x_195 = lean_ctor_get(x_194, 0); -lean_inc(x_195); -if (lean_obj_tag(x_195) == 0) +lean_object* x_191; lean_object* x_192; +lean_inc(x_187); +x_191 = l_Lean_Expr_fvarId_x21(x_187); +lean_inc(x_191); +x_192 = l_Lean_Compiler_LCNF_getBinderName(x_191, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_192) == 0) { -lean_object* x_196; lean_object* x_197; lean_object* x_198; -lean_dec(x_185); -lean_dec(x_181); -lean_dec(x_177); -x_196 = lean_ctor_get(x_194, 1); -lean_inc(x_196); -lean_dec(x_194); -x_197 = lean_box(0); -x_198 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__1(x_1, x_9, x_171, x_197, x_3, x_4, x_5, x_6, x_7, x_196); -return x_198; -} -else -{ -lean_object* x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_object* x_207; lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; -lean_dec(x_9); -x_199 = lean_ctor_get(x_194, 1); -lean_inc(x_199); -lean_dec(x_194); -x_200 = lean_ctor_get(x_195, 0); -lean_inc(x_200); +lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; uint8_t x_197; +x_193 = lean_ctor_get(x_192, 0); +lean_inc(x_193); +x_194 = lean_ctor_get(x_192, 1); +lean_inc(x_194); +lean_dec(x_192); +x_195 = l_Lean_Name_getPrefix(x_193); +lean_dec(x_193); +x_196 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__2; +x_197 = lean_name_eq(x_195, x_196); lean_dec(x_195); -x_201 = lean_unsigned_to_nat(0u); -x_202 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_177, x_201); -x_203 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__3; -lean_inc(x_202); -x_204 = lean_mk_array(x_202, x_203); -x_205 = lean_unsigned_to_nat(1u); -x_206 = lean_nat_sub(x_202, x_205); -lean_dec(x_202); -x_207 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_177, x_204, x_206); -x_208 = l_Lean_Compiler_LCNF_eraseLetDecl(x_171, x_4, x_5, x_6, x_7, x_199); -lean_dec(x_171); -x_209 = lean_ctor_get(x_208, 1); -lean_inc(x_209); -lean_dec(x_208); -x_210 = lean_st_ref_get(x_7, x_209); -x_211 = lean_ctor_get(x_210, 1); -lean_inc(x_211); -lean_dec(x_210); -x_212 = lean_st_ref_get(x_3, x_211); -x_213 = lean_ctor_get(x_212, 0); -lean_inc(x_213); -x_214 = lean_ctor_get(x_212, 1); -lean_inc(x_214); -if (lean_is_exclusive(x_212)) { - lean_ctor_release(x_212, 0); - lean_ctor_release(x_212, 1); - x_215 = x_212; -} else { - lean_dec_ref(x_212); - x_215 = lean_box(0); -} -x_216 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__1(x_213, x_185); -lean_dec(x_213); -if (lean_obj_tag(x_216) == 0) +if (x_197 == 0) { -lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; size_t x_221; lean_object* x_222; size_t x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; lean_object* x_231; lean_object* x_232; lean_object* x_233; -lean_dec(x_215); -x_217 = lean_ctor_get(x_200, 2); -lean_inc(x_217); +lean_object* x_198; lean_object* x_199; +lean_dec(x_191); +lean_dec(x_187); +lean_dec(x_183); +x_198 = lean_box(0); +x_199 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__1(x_1, x_9, x_177, x_198, x_3, x_4, x_5, x_6, x_7, x_194); +return x_199; +} +else +{ +lean_object* x_200; lean_object* x_201; +lean_inc(x_191); +x_200 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_findFun_x3f(x_191, x_4, x_5, x_6, x_7, x_194); +x_201 = lean_ctor_get(x_200, 0); +lean_inc(x_201); +if (lean_obj_tag(x_201) == 0) +{ +lean_object* x_202; lean_object* x_203; lean_object* x_204; +lean_dec(x_191); +lean_dec(x_187); +lean_dec(x_183); +x_202 = lean_ctor_get(x_200, 1); +lean_inc(x_202); lean_dec(x_200); -x_218 = lean_array_get_size(x_207); -x_219 = l_Array_toSubarray___rarg(x_217, x_201, x_218); -x_220 = lean_ctor_get(x_219, 2); +x_203 = lean_box(0); +x_204 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__1(x_1, x_9, x_177, x_203, x_3, x_4, x_5, x_6, x_7, x_202); +return x_204; +} +else +{ +lean_object* x_205; lean_object* x_206; lean_object* x_207; lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; lean_object* x_222; +lean_dec(x_9); +x_205 = lean_ctor_get(x_200, 1); +lean_inc(x_205); +lean_dec(x_200); +x_206 = lean_ctor_get(x_201, 0); +lean_inc(x_206); +lean_dec(x_201); +x_207 = lean_unsigned_to_nat(0u); +x_208 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_183, x_207); +x_209 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__3; +lean_inc(x_208); +x_210 = lean_mk_array(x_208, x_209); +x_211 = lean_unsigned_to_nat(1u); +x_212 = lean_nat_sub(x_208, x_211); +lean_dec(x_208); +x_213 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_183, x_210, x_212); +x_214 = l_Lean_Compiler_LCNF_eraseLetDecl(x_177, x_4, x_5, x_6, x_7, x_205); +lean_dec(x_177); +x_215 = lean_ctor_get(x_214, 1); +lean_inc(x_215); +lean_dec(x_214); +x_216 = lean_st_ref_get(x_7, x_215); +x_217 = lean_ctor_get(x_216, 1); +lean_inc(x_217); +lean_dec(x_216); +x_218 = lean_st_ref_get(x_3, x_217); +x_219 = lean_ctor_get(x_218, 0); +lean_inc(x_219); +x_220 = lean_ctor_get(x_218, 1); lean_inc(x_220); -x_221 = lean_usize_of_nat(x_220); -lean_dec(x_220); -x_222 = lean_ctor_get(x_219, 1); -lean_inc(x_222); -x_223 = lean_usize_of_nat(x_222); -lean_dec(x_222); -x_224 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__6; -x_225 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__4(x_219, x_221, x_223, x_224, x_3, x_4, x_5, x_6, x_7, x_214); +if (lean_is_exclusive(x_218)) { + lean_ctor_release(x_218, 0); + lean_ctor_release(x_218, 1); + x_221 = x_218; +} else { + lean_dec_ref(x_218); + x_221 = lean_box(0); +} +x_222 = l_Lean_RBNode_find___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__1(x_219, x_191); lean_dec(x_219); -x_226 = lean_ctor_get(x_225, 0); -lean_inc(x_226); -x_227 = lean_ctor_get(x_226, 1); -lean_inc(x_227); -x_228 = lean_ctor_get(x_225, 1); -lean_inc(x_228); -lean_dec(x_225); -x_229 = lean_ctor_get(x_226, 0); -lean_inc(x_229); -lean_dec(x_226); -x_230 = lean_ctor_get(x_227, 0); +if (lean_obj_tag(x_222) == 0) +{ +lean_object* x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; size_t x_231; lean_object* x_232; size_t x_233; lean_object* x_234; lean_object* x_235; lean_object* x_236; lean_object* x_237; lean_object* x_238; lean_object* x_239; lean_object* x_240; lean_object* x_241; lean_object* x_242; +lean_dec(x_221); +x_223 = l_Lean_mkHashMapImp___rarg(x_207); +x_224 = lean_ctor_get(x_206, 2); +lean_inc(x_224); +lean_dec(x_206); +x_225 = lean_array_get_size(x_213); +x_226 = l_Array_toSubarray___rarg(x_224, x_207, x_225); +x_227 = l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__1; +x_228 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_228, 0, x_227); +lean_ctor_set(x_228, 1, x_223); +x_229 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_229, 0, x_227); +lean_ctor_set(x_229, 1, x_228); +x_230 = lean_ctor_get(x_226, 2); lean_inc(x_230); -lean_dec(x_227); -x_231 = l_Lean_mkAppN(x_181, x_229); -x_232 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_231 = lean_usize_of_nat(x_230); +lean_dec(x_230); +x_232 = lean_ctor_get(x_226, 1); +lean_inc(x_232); +x_233 = lean_usize_of_nat(x_232); +lean_dec(x_232); +x_234 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__5(x_226, x_231, x_233, x_229, x_3, x_4, x_5, x_6, x_7, x_220); +lean_dec(x_226); +x_235 = lean_ctor_get(x_234, 0); +lean_inc(x_235); +x_236 = lean_ctor_get(x_235, 1); +lean_inc(x_236); +x_237 = lean_ctor_get(x_234, 1); +lean_inc(x_237); +lean_dec(x_234); +x_238 = lean_ctor_get(x_235, 0); +lean_inc(x_238); +lean_dec(x_235); +x_239 = lean_ctor_get(x_236, 0); +lean_inc(x_239); +lean_dec(x_236); +x_240 = l_Lean_mkAppN(x_187, x_238); +x_241 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -x_233 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_231, x_232, x_4, x_5, x_6, x_7, x_228); -if (lean_obj_tag(x_233) == 0) +x_242 = l_Lean_Compiler_LCNF_mkAuxLetDecl(x_240, x_241, x_4, x_5, x_6, x_7, x_237); +if (lean_obj_tag(x_242) == 0) { -lean_object* x_234; lean_object* x_235; lean_object* x_236; lean_object* x_237; lean_object* x_238; lean_object* x_239; lean_object* x_240; lean_object* x_241; lean_object* x_242; lean_object* x_243; lean_object* x_244; -x_234 = lean_ctor_get(x_233, 0); -lean_inc(x_234); -x_235 = lean_ctor_get(x_233, 1); -lean_inc(x_235); -lean_dec(x_233); -x_236 = lean_ctor_get(x_1, 0); -lean_inc(x_236); +lean_object* x_243; lean_object* x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; lean_object* x_249; lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; +x_243 = lean_ctor_get(x_242, 0); +lean_inc(x_243); +x_244 = lean_ctor_get(x_242, 1); +lean_inc(x_244); +lean_dec(x_242); +x_245 = lean_ctor_get(x_1, 0); +lean_inc(x_245); lean_dec(x_1); -x_237 = lean_ctor_get(x_234, 0); -lean_inc(x_237); -x_238 = l_Lean_Expr_fvar___override(x_237); -x_239 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__9; -x_240 = lean_array_push(x_239, x_238); -x_241 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_241, 0, x_236); -lean_ctor_set(x_241, 1, x_240); -x_242 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_242, 0, x_234); -lean_ctor_set(x_242, 1, x_241); -x_243 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__11; -lean_inc(x_7); -x_244 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_230, x_242, x_243, x_4, x_5, x_6, x_7, x_235); -if (lean_obj_tag(x_244) == 0) -{ -lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; lean_object* x_249; lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; lean_object* x_255; lean_object* x_256; lean_object* x_257; lean_object* x_258; -x_245 = lean_ctor_get(x_244, 0); -lean_inc(x_245); -x_246 = lean_ctor_get(x_244, 1); +x_246 = lean_ctor_get(x_243, 0); lean_inc(x_246); -lean_dec(x_244); -x_247 = lean_st_ref_get(x_7, x_246); -lean_dec(x_7); -x_248 = lean_ctor_get(x_247, 1); -lean_inc(x_248); -lean_dec(x_247); -x_249 = lean_st_ref_take(x_3, x_248); -x_250 = lean_ctor_get(x_249, 0); -lean_inc(x_250); -x_251 = lean_ctor_get(x_249, 1); -lean_inc(x_251); -lean_dec(x_249); -lean_inc(x_245); -x_252 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__5(x_250, x_185, x_245); -x_253 = lean_st_ref_set(x_3, x_252, x_251); -lean_dec(x_3); -x_254 = lean_ctor_get(x_253, 1); +x_247 = l_Lean_Expr_fvar___override(x_246); +x_248 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__6; +x_249 = lean_array_push(x_248, x_247); +x_250 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_250, 0, x_245); +lean_ctor_set(x_250, 1, x_249); +x_251 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_251, 0, x_243); +lean_ctor_set(x_251, 1, x_250); +x_252 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +lean_inc(x_7); +x_253 = l_Lean_Compiler_LCNF_mkAuxFunDecl(x_239, x_251, x_252, x_4, x_5, x_6, x_7, x_244); +if (lean_obj_tag(x_253) == 0) +{ +lean_object* x_254; lean_object* x_255; lean_object* x_256; lean_object* x_257; lean_object* x_258; lean_object* x_259; lean_object* x_260; lean_object* x_261; lean_object* x_262; lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; lean_object* x_267; +x_254 = lean_ctor_get(x_253, 0); lean_inc(x_254); +x_255 = lean_ctor_get(x_253, 1); +lean_inc(x_255); +lean_dec(x_253); +x_256 = lean_st_ref_get(x_7, x_255); +lean_dec(x_7); +x_257 = lean_ctor_get(x_256, 1); +lean_inc(x_257); +lean_dec(x_256); +x_258 = lean_st_ref_take(x_3, x_257); +x_259 = lean_ctor_get(x_258, 0); +lean_inc(x_259); +x_260 = lean_ctor_get(x_258, 1); +lean_inc(x_260); +lean_dec(x_258); +lean_inc(x_254); +x_261 = l_Lean_RBNode_insert___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__6(x_259, x_191, x_254); +x_262 = lean_st_ref_set(x_3, x_261, x_260); +lean_dec(x_3); +x_263 = lean_ctor_get(x_262, 1); +lean_inc(x_263); +if (lean_is_exclusive(x_262)) { + lean_ctor_release(x_262, 0); + lean_ctor_release(x_262, 1); + x_264 = x_262; +} else { + lean_dec_ref(x_262); + x_264 = lean_box(0); +} +x_265 = lean_ctor_get(x_254, 0); +lean_inc(x_265); +lean_dec(x_254); +x_266 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_266, 0, x_265); +lean_ctor_set(x_266, 1, x_213); +if (lean_is_scalar(x_264)) { + x_267 = lean_alloc_ctor(0, 2, 0); +} else { + x_267 = x_264; +} +lean_ctor_set(x_267, 0, x_266); +lean_ctor_set(x_267, 1, x_263); +return x_267; +} +else +{ +lean_object* x_268; lean_object* x_269; lean_object* x_270; lean_object* x_271; +lean_dec(x_213); +lean_dec(x_191); +lean_dec(x_7); +lean_dec(x_3); +x_268 = lean_ctor_get(x_253, 0); +lean_inc(x_268); +x_269 = lean_ctor_get(x_253, 1); +lean_inc(x_269); if (lean_is_exclusive(x_253)) { lean_ctor_release(x_253, 0); lean_ctor_release(x_253, 1); - x_255 = x_253; + x_270 = x_253; } else { lean_dec_ref(x_253); - x_255 = lean_box(0); + x_270 = lean_box(0); } -x_256 = lean_ctor_get(x_245, 0); -lean_inc(x_256); -lean_dec(x_245); -x_257 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_257, 0, x_256); -lean_ctor_set(x_257, 1, x_207); -if (lean_is_scalar(x_255)) { - x_258 = lean_alloc_ctor(0, 2, 0); +if (lean_is_scalar(x_270)) { + x_271 = lean_alloc_ctor(1, 2, 0); } else { - x_258 = x_255; + x_271 = x_270; } -lean_ctor_set(x_258, 0, x_257); -lean_ctor_set(x_258, 1, x_254); -return x_258; -} -else -{ -lean_object* x_259; lean_object* x_260; lean_object* x_261; lean_object* x_262; -lean_dec(x_207); -lean_dec(x_185); -lean_dec(x_7); -lean_dec(x_3); -x_259 = lean_ctor_get(x_244, 0); -lean_inc(x_259); -x_260 = lean_ctor_get(x_244, 1); -lean_inc(x_260); -if (lean_is_exclusive(x_244)) { - lean_ctor_release(x_244, 0); - lean_ctor_release(x_244, 1); - x_261 = x_244; -} else { - lean_dec_ref(x_244); - x_261 = lean_box(0); -} -if (lean_is_scalar(x_261)) { - x_262 = lean_alloc_ctor(1, 2, 0); -} else { - x_262 = x_261; -} -lean_ctor_set(x_262, 0, x_259); -lean_ctor_set(x_262, 1, x_260); -return x_262; +lean_ctor_set(x_271, 0, x_268); +lean_ctor_set(x_271, 1, x_269); +return x_271; } } else { -lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; -lean_dec(x_230); -lean_dec(x_207); -lean_dec(x_185); +lean_object* x_272; lean_object* x_273; lean_object* x_274; lean_object* x_275; +lean_dec(x_239); +lean_dec(x_213); +lean_dec(x_191); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_263 = lean_ctor_get(x_233, 0); -lean_inc(x_263); -x_264 = lean_ctor_get(x_233, 1); -lean_inc(x_264); -if (lean_is_exclusive(x_233)) { - lean_ctor_release(x_233, 0); - lean_ctor_release(x_233, 1); - x_265 = x_233; +x_272 = lean_ctor_get(x_242, 0); +lean_inc(x_272); +x_273 = lean_ctor_get(x_242, 1); +lean_inc(x_273); +if (lean_is_exclusive(x_242)) { + lean_ctor_release(x_242, 0); + lean_ctor_release(x_242, 1); + x_274 = x_242; } else { - lean_dec_ref(x_233); - x_265 = lean_box(0); + lean_dec_ref(x_242); + x_274 = lean_box(0); } -if (lean_is_scalar(x_265)) { - x_266 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_274)) { + x_275 = lean_alloc_ctor(1, 2, 0); } else { - x_266 = x_265; + x_275 = x_274; } -lean_ctor_set(x_266, 0, x_263); -lean_ctor_set(x_266, 1, x_264); -return x_266; +lean_ctor_set(x_275, 0, x_272); +lean_ctor_set(x_275, 1, x_273); +return x_275; } } else { -lean_object* x_267; lean_object* x_268; lean_object* x_269; lean_object* x_270; -lean_dec(x_200); -lean_dec(x_185); -lean_dec(x_181); +lean_object* x_276; lean_object* x_277; lean_object* x_278; lean_object* x_279; +lean_dec(x_206); +lean_dec(x_191); +lean_dec(x_187); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_267 = lean_ctor_get(x_216, 0); -lean_inc(x_267); -lean_dec(x_216); -x_268 = lean_ctor_get(x_267, 0); -lean_inc(x_268); -lean_dec(x_267); -x_269 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_269, 0, x_268); -lean_ctor_set(x_269, 1, x_207); -if (lean_is_scalar(x_215)) { - x_270 = lean_alloc_ctor(0, 2, 0); +x_276 = lean_ctor_get(x_222, 0); +lean_inc(x_276); +lean_dec(x_222); +x_277 = lean_ctor_get(x_276, 0); +lean_inc(x_277); +lean_dec(x_276); +x_278 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_278, 0, x_277); +lean_ctor_set(x_278, 1, x_213); +if (lean_is_scalar(x_221)) { + x_279 = lean_alloc_ctor(0, 2, 0); } else { - x_270 = x_215; + x_279 = x_221; } -lean_ctor_set(x_270, 0, x_269); -lean_ctor_set(x_270, 1, x_214); -return x_270; +lean_ctor_set(x_279, 0, x_278); +lean_ctor_set(x_279, 1, x_220); +return x_279; } } } } else { -lean_object* x_271; lean_object* x_272; lean_object* x_273; lean_object* x_274; -lean_dec(x_185); -lean_dec(x_181); +lean_object* x_280; lean_object* x_281; lean_object* x_282; lean_object* x_283; +lean_dec(x_191); +lean_dec(x_187); +lean_dec(x_183); lean_dec(x_177); -lean_dec(x_171); lean_dec(x_9); lean_dec(x_7); lean_dec(x_6); @@ -5280,26 +5286,26 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_271 = lean_ctor_get(x_186, 0); -lean_inc(x_271); -x_272 = lean_ctor_get(x_186, 1); -lean_inc(x_272); -if (lean_is_exclusive(x_186)) { - lean_ctor_release(x_186, 0); - lean_ctor_release(x_186, 1); - x_273 = x_186; +x_280 = lean_ctor_get(x_192, 0); +lean_inc(x_280); +x_281 = lean_ctor_get(x_192, 1); +lean_inc(x_281); +if (lean_is_exclusive(x_192)) { + lean_ctor_release(x_192, 0); + lean_ctor_release(x_192, 1); + x_282 = x_192; } else { - lean_dec_ref(x_186); - x_273 = lean_box(0); + lean_dec_ref(x_192); + x_282 = lean_box(0); } -if (lean_is_scalar(x_273)) { - x_274 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_282)) { + x_283 = lean_alloc_ctor(1, 2, 0); } else { - x_274 = x_273; + x_283 = x_282; } -lean_ctor_set(x_274, 0, x_271); -lean_ctor_set(x_274, 1, x_272); -return x_274; +lean_ctor_set(x_283, 0, x_280); +lean_ctor_set(x_283, 1, x_281); +return x_283; } } } @@ -5308,622 +5314,622 @@ return x_274; } else { -lean_object* x_275; lean_object* x_276; lean_object* x_277; -x_275 = lean_ctor_get(x_2, 0); -lean_inc(x_275); +lean_object* x_284; lean_object* x_285; lean_object* x_286; +x_284 = lean_ctor_get(x_2, 0); +lean_inc(x_284); lean_dec(x_2); -x_276 = lean_box(0); -x_277 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__1(x_1, x_9, x_275, x_276, x_3, x_4, x_5, x_6, x_7, x_8); -return x_277; +x_285 = lean_box(0); +x_286 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__1(x_1, x_9, x_284, x_285, x_3, x_4, x_5, x_6, x_7, x_8); +return x_286; } } case 1: { -uint8_t x_278; -x_278 = !lean_is_exclusive(x_2); -if (x_278 == 0) -{ -lean_object* x_279; lean_object* x_280; lean_object* x_281; -x_279 = lean_ctor_get(x_2, 0); -x_280 = lean_ctor_get(x_2, 1); -x_281 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go(x_1, x_280, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_281) == 0) -{ -uint8_t x_282; -x_282 = !lean_is_exclusive(x_281); -if (x_282 == 0) -{ -lean_object* x_283; -x_283 = lean_ctor_get(x_281, 0); -lean_ctor_set(x_2, 1, x_283); -lean_ctor_set(x_281, 0, x_2); -return x_281; -} -else -{ -lean_object* x_284; lean_object* x_285; lean_object* x_286; -x_284 = lean_ctor_get(x_281, 0); -x_285 = lean_ctor_get(x_281, 1); -lean_inc(x_285); -lean_inc(x_284); -lean_dec(x_281); -lean_ctor_set(x_2, 1, x_284); -x_286 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_286, 0, x_2); -lean_ctor_set(x_286, 1, x_285); -return x_286; -} -} -else -{ uint8_t x_287; -lean_free_object(x_2); -lean_dec(x_279); -x_287 = !lean_is_exclusive(x_281); +x_287 = !lean_is_exclusive(x_2); if (x_287 == 0) { -return x_281; -} -else -{ lean_object* x_288; lean_object* x_289; lean_object* x_290; -x_288 = lean_ctor_get(x_281, 0); -x_289 = lean_ctor_get(x_281, 1); -lean_inc(x_289); -lean_inc(x_288); -lean_dec(x_281); -x_290 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_290, 0, x_288); -lean_ctor_set(x_290, 1, x_289); +x_288 = lean_ctor_get(x_2, 0); +x_289 = lean_ctor_get(x_2, 1); +x_290 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go(x_1, x_289, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_290) == 0) +{ +uint8_t x_291; +x_291 = !lean_is_exclusive(x_290); +if (x_291 == 0) +{ +lean_object* x_292; +x_292 = lean_ctor_get(x_290, 0); +lean_ctor_set(x_2, 1, x_292); +lean_ctor_set(x_290, 0, x_2); return x_290; } -} -} else { -lean_object* x_291; lean_object* x_292; lean_object* x_293; -x_291 = lean_ctor_get(x_2, 0); -x_292 = lean_ctor_get(x_2, 1); -lean_inc(x_292); -lean_inc(x_291); -lean_dec(x_2); -x_293 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go(x_1, x_292, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_293) == 0) -{ -lean_object* x_294; lean_object* x_295; lean_object* x_296; lean_object* x_297; lean_object* x_298; -x_294 = lean_ctor_get(x_293, 0); +lean_object* x_293; lean_object* x_294; lean_object* x_295; +x_293 = lean_ctor_get(x_290, 0); +x_294 = lean_ctor_get(x_290, 1); lean_inc(x_294); -x_295 = lean_ctor_get(x_293, 1); -lean_inc(x_295); -if (lean_is_exclusive(x_293)) { - lean_ctor_release(x_293, 0); - lean_ctor_release(x_293, 1); - x_296 = x_293; -} else { - lean_dec_ref(x_293); - x_296 = lean_box(0); +lean_inc(x_293); +lean_dec(x_290); +lean_ctor_set(x_2, 1, x_293); +x_295 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_295, 0, x_2); +lean_ctor_set(x_295, 1, x_294); +return x_295; } -x_297 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_297, 0, x_291); -lean_ctor_set(x_297, 1, x_294); -if (lean_is_scalar(x_296)) { - x_298 = lean_alloc_ctor(0, 2, 0); -} else { - x_298 = x_296; -} -lean_ctor_set(x_298, 0, x_297); -lean_ctor_set(x_298, 1, x_295); -return x_298; } else { -lean_object* x_299; lean_object* x_300; lean_object* x_301; lean_object* x_302; -lean_dec(x_291); -x_299 = lean_ctor_get(x_293, 0); -lean_inc(x_299); -x_300 = lean_ctor_get(x_293, 1); +uint8_t x_296; +lean_free_object(x_2); +lean_dec(x_288); +x_296 = !lean_is_exclusive(x_290); +if (x_296 == 0) +{ +return x_290; +} +else +{ +lean_object* x_297; lean_object* x_298; lean_object* x_299; +x_297 = lean_ctor_get(x_290, 0); +x_298 = lean_ctor_get(x_290, 1); +lean_inc(x_298); +lean_inc(x_297); +lean_dec(x_290); +x_299 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_299, 0, x_297); +lean_ctor_set(x_299, 1, x_298); +return x_299; +} +} +} +else +{ +lean_object* x_300; lean_object* x_301; lean_object* x_302; +x_300 = lean_ctor_get(x_2, 0); +x_301 = lean_ctor_get(x_2, 1); +lean_inc(x_301); lean_inc(x_300); -if (lean_is_exclusive(x_293)) { - lean_ctor_release(x_293, 0); - lean_ctor_release(x_293, 1); - x_301 = x_293; +lean_dec(x_2); +x_302 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go(x_1, x_301, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_302) == 0) +{ +lean_object* x_303; lean_object* x_304; lean_object* x_305; lean_object* x_306; lean_object* x_307; +x_303 = lean_ctor_get(x_302, 0); +lean_inc(x_303); +x_304 = lean_ctor_get(x_302, 1); +lean_inc(x_304); +if (lean_is_exclusive(x_302)) { + lean_ctor_release(x_302, 0); + lean_ctor_release(x_302, 1); + x_305 = x_302; } else { - lean_dec_ref(x_293); - x_301 = lean_box(0); + lean_dec_ref(x_302); + x_305 = lean_box(0); } -if (lean_is_scalar(x_301)) { - x_302 = lean_alloc_ctor(1, 2, 0); +x_306 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_306, 0, x_300); +lean_ctor_set(x_306, 1, x_303); +if (lean_is_scalar(x_305)) { + x_307 = lean_alloc_ctor(0, 2, 0); } else { - x_302 = x_301; + x_307 = x_305; } -lean_ctor_set(x_302, 0, x_299); -lean_ctor_set(x_302, 1, x_300); -return x_302; +lean_ctor_set(x_307, 0, x_306); +lean_ctor_set(x_307, 1, x_304); +return x_307; +} +else +{ +lean_object* x_308; lean_object* x_309; lean_object* x_310; lean_object* x_311; +lean_dec(x_300); +x_308 = lean_ctor_get(x_302, 0); +lean_inc(x_308); +x_309 = lean_ctor_get(x_302, 1); +lean_inc(x_309); +if (lean_is_exclusive(x_302)) { + lean_ctor_release(x_302, 0); + lean_ctor_release(x_302, 1); + x_310 = x_302; +} else { + lean_dec_ref(x_302); + x_310 = lean_box(0); +} +if (lean_is_scalar(x_310)) { + x_311 = lean_alloc_ctor(1, 2, 0); +} else { + x_311 = x_310; +} +lean_ctor_set(x_311, 0, x_308); +lean_ctor_set(x_311, 1, x_309); +return x_311; } } } case 2: { -uint8_t x_303; -x_303 = !lean_is_exclusive(x_2); -if (x_303 == 0) +uint8_t x_312; +x_312 = !lean_is_exclusive(x_2); +if (x_312 == 0) { -lean_object* x_304; lean_object* x_305; lean_object* x_306; lean_object* x_307; -x_304 = lean_ctor_get(x_2, 0); -x_305 = lean_ctor_get(x_2, 1); -x_306 = lean_ctor_get(x_304, 4); -lean_inc(x_306); +lean_object* x_313; lean_object* x_314; lean_object* x_315; lean_object* x_316; +x_313 = lean_ctor_get(x_2, 0); +x_314 = lean_ctor_get(x_2, 1); +x_315 = lean_ctor_get(x_313, 4); +lean_inc(x_315); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_1); -x_307 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go(x_1, x_306, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_307) == 0) +x_316 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go(x_1, x_315, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_316) == 0) { -lean_object* x_308; lean_object* x_309; lean_object* x_310; lean_object* x_311; -x_308 = lean_ctor_get(x_307, 0); -lean_inc(x_308); -x_309 = lean_ctor_get(x_307, 1); -lean_inc(x_309); -lean_dec(x_307); -x_310 = lean_ctor_get(x_304, 2); -lean_inc(x_310); +lean_object* x_317; lean_object* x_318; lean_object* x_319; lean_object* x_320; +x_317 = lean_ctor_get(x_316, 0); +lean_inc(x_317); +x_318 = lean_ctor_get(x_316, 1); +lean_inc(x_318); +lean_dec(x_316); +x_319 = lean_ctor_get(x_313, 2); +lean_inc(x_319); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -lean_inc(x_308); -lean_inc(x_310); -x_311 = l_Lean_Compiler_LCNF_Code_inferParamType(x_310, x_308, x_4, x_5, x_6, x_7, x_309); -if (lean_obj_tag(x_311) == 0) +lean_inc(x_317); +lean_inc(x_319); +x_320 = l_Lean_Compiler_LCNF_Code_inferParamType(x_319, x_317, x_4, x_5, x_6, x_7, x_318); +if (lean_obj_tag(x_320) == 0) { -lean_object* x_312; lean_object* x_313; lean_object* x_314; lean_object* x_315; lean_object* x_316; lean_object* x_317; -x_312 = lean_ctor_get(x_311, 0); -lean_inc(x_312); -x_313 = lean_ctor_get(x_311, 1); -lean_inc(x_313); -lean_dec(x_311); -x_314 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_304, x_312, x_310, x_308, x_4, x_5, x_6, x_7, x_313); -x_315 = lean_ctor_get(x_314, 0); -lean_inc(x_315); -x_316 = lean_ctor_get(x_314, 1); -lean_inc(x_316); -lean_dec(x_314); -x_317 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go(x_1, x_305, x_3, x_4, x_5, x_6, x_7, x_316); -if (lean_obj_tag(x_317) == 0) -{ -uint8_t x_318; -x_318 = !lean_is_exclusive(x_317); -if (x_318 == 0) -{ -lean_object* x_319; -x_319 = lean_ctor_get(x_317, 0); -lean_ctor_set(x_2, 1, x_319); -lean_ctor_set(x_2, 0, x_315); -lean_ctor_set(x_317, 0, x_2); -return x_317; -} -else -{ -lean_object* x_320; lean_object* x_321; lean_object* x_322; -x_320 = lean_ctor_get(x_317, 0); -x_321 = lean_ctor_get(x_317, 1); +lean_object* x_321; lean_object* x_322; lean_object* x_323; lean_object* x_324; lean_object* x_325; lean_object* x_326; +x_321 = lean_ctor_get(x_320, 0); lean_inc(x_321); -lean_inc(x_320); -lean_dec(x_317); -lean_ctor_set(x_2, 1, x_320); -lean_ctor_set(x_2, 0, x_315); -x_322 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_322, 0, x_2); -lean_ctor_set(x_322, 1, x_321); -return x_322; -} -} -else -{ -uint8_t x_323; -lean_dec(x_315); -lean_free_object(x_2); -x_323 = !lean_is_exclusive(x_317); -if (x_323 == 0) -{ -return x_317; -} -else -{ -lean_object* x_324; lean_object* x_325; lean_object* x_326; -x_324 = lean_ctor_get(x_317, 0); -x_325 = lean_ctor_get(x_317, 1); -lean_inc(x_325); +x_322 = lean_ctor_get(x_320, 1); +lean_inc(x_322); +lean_dec(x_320); +x_323 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_313, x_321, x_319, x_317, x_4, x_5, x_6, x_7, x_322); +x_324 = lean_ctor_get(x_323, 0); lean_inc(x_324); -lean_dec(x_317); -x_326 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_326, 0, x_324); -lean_ctor_set(x_326, 1, x_325); -return x_326; -} -} -} -else +x_325 = lean_ctor_get(x_323, 1); +lean_inc(x_325); +lean_dec(x_323); +x_326 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go(x_1, x_314, x_3, x_4, x_5, x_6, x_7, x_325); +if (lean_obj_tag(x_326) == 0) { uint8_t x_327; -lean_dec(x_310); -lean_dec(x_308); -lean_free_object(x_2); -lean_dec(x_305); -lean_dec(x_304); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_1); -x_327 = !lean_is_exclusive(x_311); +x_327 = !lean_is_exclusive(x_326); if (x_327 == 0) { -return x_311; +lean_object* x_328; +x_328 = lean_ctor_get(x_326, 0); +lean_ctor_set(x_2, 1, x_328); +lean_ctor_set(x_2, 0, x_324); +lean_ctor_set(x_326, 0, x_2); +return x_326; } else { -lean_object* x_328; lean_object* x_329; lean_object* x_330; -x_328 = lean_ctor_get(x_311, 0); -x_329 = lean_ctor_get(x_311, 1); +lean_object* x_329; lean_object* x_330; lean_object* x_331; +x_329 = lean_ctor_get(x_326, 0); +x_330 = lean_ctor_get(x_326, 1); +lean_inc(x_330); lean_inc(x_329); -lean_inc(x_328); -lean_dec(x_311); -x_330 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_330, 0, x_328); -lean_ctor_set(x_330, 1, x_329); -return x_330; +lean_dec(x_326); +lean_ctor_set(x_2, 1, x_329); +lean_ctor_set(x_2, 0, x_324); +x_331 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_331, 0, x_2); +lean_ctor_set(x_331, 1, x_330); +return x_331; +} +} +else +{ +uint8_t x_332; +lean_dec(x_324); +lean_free_object(x_2); +x_332 = !lean_is_exclusive(x_326); +if (x_332 == 0) +{ +return x_326; +} +else +{ +lean_object* x_333; lean_object* x_334; lean_object* x_335; +x_333 = lean_ctor_get(x_326, 0); +x_334 = lean_ctor_get(x_326, 1); +lean_inc(x_334); +lean_inc(x_333); +lean_dec(x_326); +x_335 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_335, 0, x_333); +lean_ctor_set(x_335, 1, x_334); +return x_335; } } } else { -uint8_t x_331; +uint8_t x_336; +lean_dec(x_319); +lean_dec(x_317); lean_free_object(x_2); -lean_dec(x_305); -lean_dec(x_304); +lean_dec(x_314); +lean_dec(x_313); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_331 = !lean_is_exclusive(x_307); -if (x_331 == 0) +x_336 = !lean_is_exclusive(x_320); +if (x_336 == 0) { -return x_307; +return x_320; } else { -lean_object* x_332; lean_object* x_333; lean_object* x_334; -x_332 = lean_ctor_get(x_307, 0); -x_333 = lean_ctor_get(x_307, 1); -lean_inc(x_333); -lean_inc(x_332); -lean_dec(x_307); -x_334 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_334, 0, x_332); -lean_ctor_set(x_334, 1, x_333); -return x_334; -} -} -} -else -{ -lean_object* x_335; lean_object* x_336; lean_object* x_337; lean_object* x_338; -x_335 = lean_ctor_get(x_2, 0); -x_336 = lean_ctor_get(x_2, 1); -lean_inc(x_336); -lean_inc(x_335); -lean_dec(x_2); -x_337 = lean_ctor_get(x_335, 4); +lean_object* x_337; lean_object* x_338; lean_object* x_339; +x_337 = lean_ctor_get(x_320, 0); +x_338 = lean_ctor_get(x_320, 1); +lean_inc(x_338); lean_inc(x_337); +lean_dec(x_320); +x_339 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_339, 0, x_337); +lean_ctor_set(x_339, 1, x_338); +return x_339; +} +} +} +else +{ +uint8_t x_340; +lean_free_object(x_2); +lean_dec(x_314); +lean_dec(x_313); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_340 = !lean_is_exclusive(x_316); +if (x_340 == 0) +{ +return x_316; +} +else +{ +lean_object* x_341; lean_object* x_342; lean_object* x_343; +x_341 = lean_ctor_get(x_316, 0); +x_342 = lean_ctor_get(x_316, 1); +lean_inc(x_342); +lean_inc(x_341); +lean_dec(x_316); +x_343 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_343, 0, x_341); +lean_ctor_set(x_343, 1, x_342); +return x_343; +} +} +} +else +{ +lean_object* x_344; lean_object* x_345; lean_object* x_346; lean_object* x_347; +x_344 = lean_ctor_get(x_2, 0); +x_345 = lean_ctor_get(x_2, 1); +lean_inc(x_345); +lean_inc(x_344); +lean_dec(x_2); +x_346 = lean_ctor_get(x_344, 4); +lean_inc(x_346); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_1); -x_338 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go(x_1, x_337, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_338) == 0) +x_347 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go(x_1, x_346, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_347) == 0) { -lean_object* x_339; lean_object* x_340; lean_object* x_341; lean_object* x_342; -x_339 = lean_ctor_get(x_338, 0); -lean_inc(x_339); -x_340 = lean_ctor_get(x_338, 1); -lean_inc(x_340); -lean_dec(x_338); -x_341 = lean_ctor_get(x_335, 2); -lean_inc(x_341); +lean_object* x_348; lean_object* x_349; lean_object* x_350; lean_object* x_351; +x_348 = lean_ctor_get(x_347, 0); +lean_inc(x_348); +x_349 = lean_ctor_get(x_347, 1); +lean_inc(x_349); +lean_dec(x_347); +x_350 = lean_ctor_get(x_344, 2); +lean_inc(x_350); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -lean_inc(x_339); -lean_inc(x_341); -x_342 = l_Lean_Compiler_LCNF_Code_inferParamType(x_341, x_339, x_4, x_5, x_6, x_7, x_340); -if (lean_obj_tag(x_342) == 0) -{ -lean_object* x_343; lean_object* x_344; lean_object* x_345; lean_object* x_346; lean_object* x_347; lean_object* x_348; -x_343 = lean_ctor_get(x_342, 0); -lean_inc(x_343); -x_344 = lean_ctor_get(x_342, 1); -lean_inc(x_344); -lean_dec(x_342); -x_345 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_335, x_343, x_341, x_339, x_4, x_5, x_6, x_7, x_344); -x_346 = lean_ctor_get(x_345, 0); -lean_inc(x_346); -x_347 = lean_ctor_get(x_345, 1); -lean_inc(x_347); -lean_dec(x_345); -x_348 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go(x_1, x_336, x_3, x_4, x_5, x_6, x_7, x_347); -if (lean_obj_tag(x_348) == 0) -{ -lean_object* x_349; lean_object* x_350; lean_object* x_351; lean_object* x_352; lean_object* x_353; -x_349 = lean_ctor_get(x_348, 0); -lean_inc(x_349); -x_350 = lean_ctor_get(x_348, 1); +lean_inc(x_348); lean_inc(x_350); -if (lean_is_exclusive(x_348)) { - lean_ctor_release(x_348, 0); - lean_ctor_release(x_348, 1); - x_351 = x_348; -} else { - lean_dec_ref(x_348); - x_351 = lean_box(0); -} -x_352 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_352, 0, x_346); -lean_ctor_set(x_352, 1, x_349); -if (lean_is_scalar(x_351)) { - x_353 = lean_alloc_ctor(0, 2, 0); -} else { - x_353 = x_351; -} -lean_ctor_set(x_353, 0, x_352); -lean_ctor_set(x_353, 1, x_350); -return x_353; -} -else +x_351 = l_Lean_Compiler_LCNF_Code_inferParamType(x_350, x_348, x_4, x_5, x_6, x_7, x_349); +if (lean_obj_tag(x_351) == 0) { -lean_object* x_354; lean_object* x_355; lean_object* x_356; lean_object* x_357; -lean_dec(x_346); -x_354 = lean_ctor_get(x_348, 0); -lean_inc(x_354); -x_355 = lean_ctor_get(x_348, 1); +lean_object* x_352; lean_object* x_353; lean_object* x_354; lean_object* x_355; lean_object* x_356; lean_object* x_357; +x_352 = lean_ctor_get(x_351, 0); +lean_inc(x_352); +x_353 = lean_ctor_get(x_351, 1); +lean_inc(x_353); +lean_dec(x_351); +x_354 = l___private_Lean_Compiler_LCNF_CompilerM_0__Lean_Compiler_LCNF_updateFunDeclImp(x_344, x_352, x_350, x_348, x_4, x_5, x_6, x_7, x_353); +x_355 = lean_ctor_get(x_354, 0); lean_inc(x_355); -if (lean_is_exclusive(x_348)) { - lean_ctor_release(x_348, 0); - lean_ctor_release(x_348, 1); - x_356 = x_348; -} else { - lean_dec_ref(x_348); - x_356 = lean_box(0); -} -if (lean_is_scalar(x_356)) { - x_357 = lean_alloc_ctor(1, 2, 0); -} else { - x_357 = x_356; -} -lean_ctor_set(x_357, 0, x_354); -lean_ctor_set(x_357, 1, x_355); -return x_357; -} -} -else +x_356 = lean_ctor_get(x_354, 1); +lean_inc(x_356); +lean_dec(x_354); +x_357 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go(x_1, x_345, x_3, x_4, x_5, x_6, x_7, x_356); +if (lean_obj_tag(x_357) == 0) { -lean_object* x_358; lean_object* x_359; lean_object* x_360; lean_object* x_361; -lean_dec(x_341); -lean_dec(x_339); -lean_dec(x_336); -lean_dec(x_335); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_1); -x_358 = lean_ctor_get(x_342, 0); +lean_object* x_358; lean_object* x_359; lean_object* x_360; lean_object* x_361; lean_object* x_362; +x_358 = lean_ctor_get(x_357, 0); lean_inc(x_358); -x_359 = lean_ctor_get(x_342, 1); +x_359 = lean_ctor_get(x_357, 1); lean_inc(x_359); -if (lean_is_exclusive(x_342)) { - lean_ctor_release(x_342, 0); - lean_ctor_release(x_342, 1); - x_360 = x_342; +if (lean_is_exclusive(x_357)) { + lean_ctor_release(x_357, 0); + lean_ctor_release(x_357, 1); + x_360 = x_357; } else { - lean_dec_ref(x_342); + lean_dec_ref(x_357); x_360 = lean_box(0); } +x_361 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_361, 0, x_355); +lean_ctor_set(x_361, 1, x_358); if (lean_is_scalar(x_360)) { - x_361 = lean_alloc_ctor(1, 2, 0); + x_362 = lean_alloc_ctor(0, 2, 0); } else { - x_361 = x_360; + x_362 = x_360; } -lean_ctor_set(x_361, 0, x_358); -lean_ctor_set(x_361, 1, x_359); -return x_361; +lean_ctor_set(x_362, 0, x_361); +lean_ctor_set(x_362, 1, x_359); +return x_362; +} +else +{ +lean_object* x_363; lean_object* x_364; lean_object* x_365; lean_object* x_366; +lean_dec(x_355); +x_363 = lean_ctor_get(x_357, 0); +lean_inc(x_363); +x_364 = lean_ctor_get(x_357, 1); +lean_inc(x_364); +if (lean_is_exclusive(x_357)) { + lean_ctor_release(x_357, 0); + lean_ctor_release(x_357, 1); + x_365 = x_357; +} else { + lean_dec_ref(x_357); + x_365 = lean_box(0); +} +if (lean_is_scalar(x_365)) { + x_366 = lean_alloc_ctor(1, 2, 0); +} else { + x_366 = x_365; +} +lean_ctor_set(x_366, 0, x_363); +lean_ctor_set(x_366, 1, x_364); +return x_366; } } else { -lean_object* x_362; lean_object* x_363; lean_object* x_364; lean_object* x_365; -lean_dec(x_336); -lean_dec(x_335); +lean_object* x_367; lean_object* x_368; lean_object* x_369; lean_object* x_370; +lean_dec(x_350); +lean_dec(x_348); +lean_dec(x_345); +lean_dec(x_344); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_362 = lean_ctor_get(x_338, 0); -lean_inc(x_362); -x_363 = lean_ctor_get(x_338, 1); -lean_inc(x_363); -if (lean_is_exclusive(x_338)) { - lean_ctor_release(x_338, 0); - lean_ctor_release(x_338, 1); - x_364 = x_338; +x_367 = lean_ctor_get(x_351, 0); +lean_inc(x_367); +x_368 = lean_ctor_get(x_351, 1); +lean_inc(x_368); +if (lean_is_exclusive(x_351)) { + lean_ctor_release(x_351, 0); + lean_ctor_release(x_351, 1); + x_369 = x_351; } else { - lean_dec_ref(x_338); - x_364 = lean_box(0); + lean_dec_ref(x_351); + x_369 = lean_box(0); } -if (lean_is_scalar(x_364)) { - x_365 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_369)) { + x_370 = lean_alloc_ctor(1, 2, 0); } else { - x_365 = x_364; + x_370 = x_369; } -lean_ctor_set(x_365, 0, x_362); -lean_ctor_set(x_365, 1, x_363); -return x_365; +lean_ctor_set(x_370, 0, x_367); +lean_ctor_set(x_370, 1, x_368); +return x_370; +} +} +else +{ +lean_object* x_371; lean_object* x_372; lean_object* x_373; lean_object* x_374; +lean_dec(x_345); +lean_dec(x_344); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_371 = lean_ctor_get(x_347, 0); +lean_inc(x_371); +x_372 = lean_ctor_get(x_347, 1); +lean_inc(x_372); +if (lean_is_exclusive(x_347)) { + lean_ctor_release(x_347, 0); + lean_ctor_release(x_347, 1); + x_373 = x_347; +} else { + lean_dec_ref(x_347); + x_373 = lean_box(0); +} +if (lean_is_scalar(x_373)) { + x_374 = lean_alloc_ctor(1, 2, 0); +} else { + x_374 = x_373; +} +lean_ctor_set(x_374, 0, x_371); +lean_ctor_set(x_374, 1, x_372); +return x_374; } } } case 4: { -lean_object* x_366; lean_object* x_367; lean_object* x_368; lean_object* x_369; lean_object* x_370; size_t x_371; size_t x_372; lean_object* x_373; -x_366 = lean_ctor_get(x_2, 0); -lean_inc(x_366); +lean_object* x_375; lean_object* x_376; lean_object* x_377; lean_object* x_378; lean_object* x_379; size_t x_380; size_t x_381; lean_object* x_382; +x_375 = lean_ctor_get(x_2, 0); +lean_inc(x_375); lean_dec(x_2); -x_367 = lean_ctor_get(x_366, 0); -lean_inc(x_367); -x_368 = lean_ctor_get(x_366, 2); -lean_inc(x_368); -x_369 = lean_ctor_get(x_366, 3); -lean_inc(x_369); -lean_dec(x_366); -x_370 = lean_array_get_size(x_369); -x_371 = lean_usize_of_nat(x_370); -lean_dec(x_370); -x_372 = 0; +x_376 = lean_ctor_get(x_375, 0); +lean_inc(x_376); +x_377 = lean_ctor_get(x_375, 2); +lean_inc(x_377); +x_378 = lean_ctor_get(x_375, 3); +lean_inc(x_378); +lean_dec(x_375); +x_379 = lean_array_get_size(x_378); +x_380 = lean_usize_of_nat(x_379); +lean_dec(x_379); +x_381 = 0; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_373 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(x_1, x_371, x_372, x_369, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_373) == 0) +x_382 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8(x_1, x_380, x_381, x_378, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_382) == 0) { -lean_object* x_374; lean_object* x_375; uint8_t x_376; -x_374 = lean_ctor_get(x_373, 0); -lean_inc(x_374); -x_375 = lean_ctor_get(x_373, 1); -lean_inc(x_375); -lean_dec(x_373); -x_376 = l_Array_isEmpty___rarg(x_374); -if (x_376 == 0) -{ -lean_object* x_377; lean_object* x_378; -x_377 = lean_box(0); -x_378 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__2(x_374, x_367, x_368, x_377, x_3, x_4, x_5, x_6, x_7, x_375); -lean_dec(x_3); -return x_378; -} -else -{ -lean_object* x_379; lean_object* x_380; uint8_t x_381; -lean_dec(x_374); -lean_dec(x_368); -lean_dec(x_367); -x_379 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__13; -x_380 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8(x_379, x_3, x_4, x_5, x_6, x_7, x_375); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_381 = !lean_is_exclusive(x_380); -if (x_381 == 0) -{ -return x_380; -} -else -{ -lean_object* x_382; lean_object* x_383; lean_object* x_384; -x_382 = lean_ctor_get(x_380, 0); -x_383 = lean_ctor_get(x_380, 1); +lean_object* x_383; lean_object* x_384; uint8_t x_385; +x_383 = lean_ctor_get(x_382, 0); lean_inc(x_383); -lean_inc(x_382); -lean_dec(x_380); -x_384 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_384, 0, x_382); -lean_ctor_set(x_384, 1, x_383); -return x_384; -} -} -} -else -{ -uint8_t x_385; -lean_dec(x_368); -lean_dec(x_367); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_385 = !lean_is_exclusive(x_373); +x_384 = lean_ctor_get(x_382, 1); +lean_inc(x_384); +lean_dec(x_382); +x_385 = l_Array_isEmpty___rarg(x_383); if (x_385 == 0) { -return x_373; +lean_object* x_386; lean_object* x_387; +x_386 = lean_box(0); +x_387 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___lambda__2(x_383, x_376, x_377, x_386, x_3, x_4, x_5, x_6, x_7, x_384); +lean_dec(x_3); +return x_387; } else { -lean_object* x_386; lean_object* x_387; lean_object* x_388; -x_386 = lean_ctor_get(x_373, 0); -x_387 = lean_ctor_get(x_373, 1); -lean_inc(x_387); -lean_inc(x_386); -lean_dec(x_373); -x_388 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_388, 0, x_386); -lean_ctor_set(x_388, 1, x_387); -return x_388; +lean_object* x_388; lean_object* x_389; uint8_t x_390; +lean_dec(x_383); +lean_dec(x_377); +lean_dec(x_376); +x_388 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__10; +x_389 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9(x_388, x_3, x_4, x_5, x_6, x_7, x_384); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_390 = !lean_is_exclusive(x_389); +if (x_390 == 0) +{ +return x_389; +} +else +{ +lean_object* x_391; lean_object* x_392; lean_object* x_393; +x_391 = lean_ctor_get(x_389, 0); +x_392 = lean_ctor_get(x_389, 1); +lean_inc(x_392); +lean_inc(x_391); +lean_dec(x_389); +x_393 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_393, 0, x_391); +lean_ctor_set(x_393, 1, x_392); +return x_393; +} +} +} +else +{ +uint8_t x_394; +lean_dec(x_377); +lean_dec(x_376); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_394 = !lean_is_exclusive(x_382); +if (x_394 == 0) +{ +return x_382; +} +else +{ +lean_object* x_395; lean_object* x_396; lean_object* x_397; +x_395 = lean_ctor_get(x_382, 0); +x_396 = lean_ctor_get(x_382, 1); +lean_inc(x_396); +lean_inc(x_395); +lean_dec(x_382); +x_397 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_397, 0, x_395); +lean_ctor_set(x_397, 1, x_396); +return x_397; } } } case 5: { -lean_object* x_389; lean_object* x_390; lean_object* x_391; lean_object* x_392; lean_object* x_393; lean_object* x_394; lean_object* x_395; +lean_object* x_398; lean_object* x_399; lean_object* x_400; lean_object* x_401; lean_object* x_402; lean_object* x_403; lean_object* x_404; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); -x_389 = lean_ctor_get(x_2, 0); -lean_inc(x_389); +x_398 = lean_ctor_get(x_2, 0); +lean_inc(x_398); lean_dec(x_2); -x_390 = lean_ctor_get(x_1, 0); -lean_inc(x_390); +x_399 = lean_ctor_get(x_1, 0); +lean_inc(x_399); lean_dec(x_1); -x_391 = l_Lean_Expr_fvar___override(x_389); -x_392 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__9; -x_393 = lean_array_push(x_392, x_391); -x_394 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_394, 0, x_390); -lean_ctor_set(x_394, 1, x_393); -x_395 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_395, 0, x_394); -lean_ctor_set(x_395, 1, x_8); -return x_395; +x_400 = l_Lean_Expr_fvar___override(x_398); +x_401 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__6; +x_402 = lean_array_push(x_401, x_400); +x_403 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_403, 0, x_399); +lean_ctor_set(x_403, 1, x_402); +x_404 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_404, 0, x_403); +lean_ctor_set(x_404, 1, x_8); +return x_404; } default: { -lean_object* x_396; +lean_object* x_405; lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_396 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_396, 0, x_2); -lean_ctor_set(x_396, 1, x_8); -return x_396; +x_405 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_405, 0, x_2); +lean_ctor_set(x_405, 1, x_8); +return x_405; } } } @@ -5956,7 +5962,16 @@ lean_dec(x_1); return x_3; } } -LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__4___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_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__4___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_mkHashMap___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__4(x_1); +lean_dec(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__5___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) { _start: { size_t x_11; size_t x_12; lean_object* x_13; @@ -5964,7 +5979,7 @@ x_11 = lean_unbox_usize(x_2); lean_dec(x_2); x_12 = lean_unbox_usize(x_3); lean_dec(x_3); -x_13 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__4(x_1, x_11, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +x_13 = l_Subarray_forInUnsafe_loop___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__5(x_1, x_11, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -5974,7 +5989,7 @@ lean_dec(x_1); return x_13; } } -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7___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_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___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) { _start: { size_t x_11; size_t x_12; lean_object* x_13; @@ -5982,15 +5997,15 @@ x_11 = lean_unbox_usize(x_2); lean_dec(x_2); x_12 = lean_unbox_usize(x_3); lean_dec(x_3); -x_13 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__7(x_1, x_11, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +x_13 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8(x_1, x_11, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10); return x_13; } } -LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___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_EXPORT lean_object* l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___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_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_8 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9(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); @@ -6845,7 +6860,7 @@ goto _start; else { lean_object* x_83; lean_object* x_84; -x_83 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__11; +x_83 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); @@ -7213,7 +7228,7 @@ return x_11; else { lean_object* x_12; lean_object* x_13; -x_12 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_12 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); @@ -7274,7 +7289,7 @@ static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_State_lctx___default___clo _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__2; +x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__2; x_2 = lean_unsigned_to_nat(0u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -7342,7 +7357,7 @@ static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_State_cache___default___cl _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__2; +x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__2; x_2 = lean_unsigned_to_nat(0u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -7456,7 +7471,7 @@ static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_liftMetaM___rarg___closed_ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__2; +x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__2; x_2 = lean_unsigned_to_nat(0u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -7476,7 +7491,7 @@ static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_liftMetaM___rarg___closed_ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__2; +x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__2; x_2 = lean_unsigned_to_nat(0u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -7510,7 +7525,7 @@ static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_liftMetaM___rarg___closed_ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__2; +x_1 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__2; x_2 = lean_unsigned_to_nat(0u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -7541,7 +7556,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; x_1 = lean_box(0); -x_2 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__6; +x_2 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__6; x_3 = l_Lean_Compiler_LCNF_ToLCNF_liftMetaM___rarg___closed__8; x_4 = l_Lean_Compiler_LCNF_ToLCNF_State_lctx___default___closed__4; x_5 = lean_alloc_ctor(0, 4, 0); @@ -7995,11 +8010,20 @@ return x_9; static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_run___rarg___closed__1() { _start: { +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(0u); +x_2 = l_Lean_mkHashMapImp___rarg(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_run___rarg___closed__2() { +_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 = lean_box(0); x_2 = l_Lean_Compiler_LCNF_ToLCNF_State_lctx___default___closed__5; x_3 = l_Lean_Compiler_LCNF_ToLCNF_State_cache___default___closed__1; -x_4 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__4; +x_4 = l_Lean_Compiler_LCNF_ToLCNF_run___rarg___closed__1; x_5 = l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__1; x_6 = lean_alloc_ctor(0, 6, 0); lean_ctor_set(x_6, 0, x_2); @@ -8019,7 +8043,7 @@ x_7 = lean_st_ref_get(x_5, x_6); x_8 = lean_ctor_get(x_7, 1); lean_inc(x_8); lean_dec(x_7); -x_9 = l_Lean_Compiler_LCNF_ToLCNF_run___rarg___closed__1; +x_9 = l_Lean_Compiler_LCNF_ToLCNF_run___rarg___closed__2; x_10 = lean_st_mk_ref(x_9, x_8); x_11 = lean_ctor_get(x_10, 0); lean_inc(x_11); @@ -9550,7 +9574,7 @@ static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_applyToAny___lambda__1___c _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_1 = l_Lean_Compiler_LCNF_erasedExpr; x_2 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; @@ -12549,7 +12573,7 @@ lean_inc(x_16); lean_dec(x_15); x_17 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_16); x_18 = lean_ctor_get(x_5, 2); -x_19 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__6; +x_19 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__6; lean_inc(x_18); x_20 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_20, 0, x_12); @@ -12580,7 +12604,7 @@ lean_inc(x_25); lean_dec(x_23); x_26 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_25); x_27 = lean_ctor_get(x_5, 2); -x_28 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__6; +x_28 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__6; lean_inc(x_27); x_29 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_29, 0, x_12); @@ -12890,7 +12914,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_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__1; x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__2; -x_3 = lean_unsigned_to_nat(412u); +x_3 = lean_unsigned_to_nat(414u); x_4 = lean_unsigned_to_nat(24u); x_5 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -12937,7 +12961,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_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__1; x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__2; -x_3 = lean_unsigned_to_nat(410u); +x_3 = lean_unsigned_to_nat(412u); x_4 = lean_unsigned_to_nat(24u); x_5 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -13041,7 +13065,7 @@ else { lean_object* x_27; lean_object* x_28; lean_dec(x_25); -x_27 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_27 = l_Lean_Compiler_LCNF_erasedExpr; x_28 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__1(x_1, x_27, x_3, x_4, x_5, x_6, x_7, x_23); lean_dec(x_7); lean_dec(x_6); @@ -13269,7 +13293,7 @@ return x_65; case 9: { lean_object* x_66; lean_object* x_67; -x_66 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_66 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); @@ -14888,7 +14912,7 @@ x_12 = lean_ctor_get(x_10, 1); lean_inc(x_12); lean_dec(x_10); x_13 = l_Lean_Expr_proj___override(x_1, x_2, x_11); -x_14 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_14 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; x_15 = l_Lean_Compiler_LCNF_ToLCNF_mkAuxLetDecl(x_13, x_14, x_4, x_5, x_6, x_7, x_8, x_12); lean_dec(x_4); return x_15; @@ -15166,6 +15190,24 @@ return x_3; static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__12() { _start: { +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("Iff", 3); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__13() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__12; +x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__8; +x_3 = l_Lean_Name_mkStr2(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__14() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__10; x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__6; @@ -15173,7 +15215,17 @@ x_3 = l_Lean_Name_mkStr2(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__13() { +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__15() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__12; +x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__6; +x_3 = l_Lean_Name_mkStr2(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__16() { _start: { lean_object* x_1; @@ -15181,40 +15233,12 @@ x_1 = lean_mk_string_from_bytes("False", 5); return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__14() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__13; -x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__8; -x_3 = l_Lean_Name_mkStr2(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__15() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("Empty", 5); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__16() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__15; -x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__8; -x_3 = l_Lean_Name_mkStr2(x_1, x_2); -return x_3; -} -} static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__17() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__13; -x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__6; +x_1 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__16; +x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__8; x_3 = l_Lean_Name_mkStr2(x_1, x_2); return x_3; } @@ -15222,8 +15246,36 @@ return x_3; static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__18() { _start: { +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("Empty", 5); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__19() { +_start: +{ lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__15; +x_1 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__18; +x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__8; +x_3 = l_Lean_Name_mkStr2(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__20() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__16; +x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__6; +x_3 = l_Lean_Name_mkStr2(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__21() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__18; x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__6; x_3 = l_Lean_Name_mkStr2(x_1, x_2); return x_3; @@ -15270,7 +15322,7 @@ x_21 = lean_name_eq(x_9, x_20); if (x_21 == 0) { lean_object* x_22; uint8_t x_23; -x_22 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__12; +x_22 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__13; x_23 = lean_name_eq(x_9, x_22); if (x_23 == 0) { @@ -15280,7 +15332,7 @@ x_25 = lean_name_eq(x_9, x_24); if (x_25 == 0) { lean_object* x_26; uint8_t x_27; -x_26 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__16; +x_26 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__15; x_27 = lean_name_eq(x_9, x_26); if (x_27 == 0) { @@ -15290,156 +15342,122 @@ x_29 = lean_name_eq(x_9, x_28); if (x_29 == 0) { lean_object* x_30; uint8_t x_31; -x_30 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__18; +x_30 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__19; x_31 = lean_name_eq(x_9, x_30); if (x_31 == 0) { -lean_object* x_32; +lean_object* x_32; uint8_t x_33; +x_32 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__20; +x_33 = lean_name_eq(x_9, x_32); +if (x_33 == 0) +{ +lean_object* x_34; uint8_t x_35; +x_34 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__21; +x_35 = lean_name_eq(x_9, x_34); +if (x_35 == 0) +{ +lean_object* x_36; lean_inc(x_6); lean_inc(x_5); lean_inc(x_9); -x_32 = l_Lean_Compiler_LCNF_getCasesInfo_x3f(x_9, x_5, x_6, x_7); -if (lean_obj_tag(x_32) == 0) -{ -lean_object* x_33; -x_33 = lean_ctor_get(x_32, 0); -lean_inc(x_33); -if (lean_obj_tag(x_33) == 0) -{ -lean_object* x_34; lean_object* x_35; -x_34 = lean_ctor_get(x_32, 1); -lean_inc(x_34); -lean_dec(x_32); -lean_inc(x_9); -x_35 = l_Lean_Compiler_LCNF_getCtorArity_x3f(x_9, x_5, x_6, x_34); -if (lean_obj_tag(x_35) == 0) -{ -lean_object* x_36; -x_36 = lean_ctor_get(x_35, 0); -lean_inc(x_36); +x_36 = l_Lean_Compiler_LCNF_getCasesInfo_x3f(x_9, x_5, x_6, x_7); if (lean_obj_tag(x_36) == 0) { -lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; -x_37 = lean_ctor_get(x_35, 1); +lean_object* x_37; +x_37 = lean_ctor_get(x_36, 0); lean_inc(x_37); -lean_dec(x_35); -x_38 = lean_st_ref_get(x_6, x_37); -x_39 = lean_ctor_get(x_38, 0); -lean_inc(x_39); -x_40 = lean_ctor_get(x_38, 1); +if (lean_obj_tag(x_37) == 0) +{ +lean_object* x_38; lean_object* x_39; +x_38 = lean_ctor_get(x_36, 1); +lean_inc(x_38); +lean_dec(x_36); +lean_inc(x_9); +x_39 = l_Lean_Compiler_LCNF_getCtorArity_x3f(x_9, x_5, x_6, x_38); +if (lean_obj_tag(x_39) == 0) +{ +lean_object* x_40; +x_40 = lean_ctor_get(x_39, 0); lean_inc(x_40); -lean_dec(x_38); -x_41 = lean_ctor_get(x_39, 0); +if (lean_obj_tag(x_40) == 0) +{ +lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; +x_41 = lean_ctor_get(x_39, 1); lean_inc(x_41); lean_dec(x_39); -x_42 = l_Lean_Compiler_LCNF_ToLCNF_mustEtaExpand___closed__1; -lean_inc(x_9); -x_43 = l_Lean_TagDeclarationExtension_isTagged(x_42, x_41, x_9); -if (x_43 == 0) -{ -lean_object* x_44; lean_object* x_45; -x_44 = l_Lean_getProjectionFnInfo_x3f___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___spec__2(x_9, x_2, x_3, x_4, x_5, x_6, x_40); -x_45 = lean_ctor_get(x_44, 0); +x_42 = lean_st_ref_get(x_6, x_41); +x_43 = lean_ctor_get(x_42, 0); +lean_inc(x_43); +x_44 = lean_ctor_get(x_42, 1); +lean_inc(x_44); +lean_dec(x_42); +x_45 = lean_ctor_get(x_43, 0); lean_inc(x_45); -if (lean_obj_tag(x_45) == 0) +lean_dec(x_43); +x_46 = l_Lean_Compiler_LCNF_ToLCNF_mustEtaExpand___closed__1; +lean_inc(x_9); +x_47 = l_Lean_TagDeclarationExtension_isTagged(x_46, x_45, x_9); +if (x_47 == 0) { -lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; -x_46 = lean_ctor_get(x_44, 1); -lean_inc(x_46); -lean_dec(x_44); -x_47 = lean_unsigned_to_nat(0u); -x_48 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_47); -x_49 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__3; -lean_inc(x_48); -x_50 = lean_mk_array(x_48, x_49); -x_51 = lean_unsigned_to_nat(1u); -x_52 = lean_nat_sub(x_48, x_51); +lean_object* x_48; lean_object* x_49; +x_48 = l_Lean_getProjectionFnInfo_x3f___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___spec__2(x_9, x_2, x_3, x_4, x_5, x_6, x_44); +x_49 = lean_ctor_get(x_48, 0); +lean_inc(x_49); +if (lean_obj_tag(x_49) == 0) +{ +lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; +x_50 = lean_ctor_get(x_48, 1); +lean_inc(x_50); lean_dec(x_48); -x_53 = l_Lean_Expr_withAppAux___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___spec__3(x_1, x_50, x_52, x_2, x_3, x_4, x_5, x_6, x_46); -return x_53; -} -else -{ -lean_object* x_54; lean_object* x_55; lean_object* x_56; -x_54 = lean_ctor_get(x_44, 1); -lean_inc(x_54); -lean_dec(x_44); -x_55 = lean_ctor_get(x_45, 0); -lean_inc(x_55); -lean_dec(x_45); -x_56 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn(x_55, x_1, x_2, x_3, x_4, x_5, x_6, x_54); -return x_56; -} -} -else -{ -lean_object* x_57; -lean_dec(x_9); -x_57 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitNoConfusion(x_1, x_2, x_3, x_4, x_5, x_6, x_40); +x_51 = lean_unsigned_to_nat(0u); +x_52 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_51); +x_53 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__3; +lean_inc(x_52); +x_54 = lean_mk_array(x_52, x_53); +x_55 = lean_unsigned_to_nat(1u); +x_56 = lean_nat_sub(x_52, x_55); +lean_dec(x_52); +x_57 = l_Lean_Expr_withAppAux___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___spec__3(x_1, x_54, x_56, x_2, x_3, x_4, x_5, x_6, x_50); return x_57; } -} else { lean_object* x_58; lean_object* x_59; lean_object* x_60; -lean_dec(x_9); -x_58 = lean_ctor_get(x_35, 1); +x_58 = lean_ctor_get(x_48, 1); lean_inc(x_58); -lean_dec(x_35); -x_59 = lean_ctor_get(x_36, 0); +lean_dec(x_48); +x_59 = lean_ctor_get(x_49, 0); lean_inc(x_59); -lean_dec(x_36); -x_60 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCtor(x_59, x_1, x_2, x_3, x_4, x_5, x_6, x_58); +lean_dec(x_49); +x_60 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn(x_59, x_1, x_2, x_3, x_4, x_5, x_6, x_58); return x_60; } } else { -uint8_t x_61; +lean_object* x_61; lean_dec(x_9); -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_61 = !lean_is_exclusive(x_35); -if (x_61 == 0) -{ -return x_35; +x_61 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitNoConfusion(x_1, x_2, x_3, x_4, x_5, x_6, x_44); +return x_61; +} } else { lean_object* x_62; lean_object* x_63; lean_object* x_64; -x_62 = lean_ctor_get(x_35, 0); -x_63 = lean_ctor_get(x_35, 1); -lean_inc(x_63); +lean_dec(x_9); +x_62 = lean_ctor_get(x_39, 1); lean_inc(x_62); -lean_dec(x_35); -x_64 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_64, 0, x_62); -lean_ctor_set(x_64, 1, x_63); +lean_dec(x_39); +x_63 = lean_ctor_get(x_40, 0); +lean_inc(x_63); +lean_dec(x_40); +x_64 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCtor(x_63, x_1, x_2, x_3, x_4, x_5, x_6, x_62); return x_64; } } -} else { -lean_object* x_65; lean_object* x_66; lean_object* x_67; -lean_dec(x_9); -x_65 = lean_ctor_get(x_32, 1); -lean_inc(x_65); -lean_dec(x_32); -x_66 = lean_ctor_get(x_33, 0); -lean_inc(x_66); -lean_dec(x_33); -x_67 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases(x_66, x_1, x_2, x_3, x_4, x_5, x_6, x_65); -return x_67; -} -} -else -{ -uint8_t x_68; +uint8_t x_65; lean_dec(x_9); lean_dec(x_6); lean_dec(x_5); @@ -15447,63 +15465,75 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_68 = !lean_is_exclusive(x_32); -if (x_68 == 0) +x_65 = !lean_is_exclusive(x_39); +if (x_65 == 0) { -return x_32; +return x_39; +} +else +{ +lean_object* x_66; lean_object* x_67; lean_object* x_68; +x_66 = lean_ctor_get(x_39, 0); +x_67 = lean_ctor_get(x_39, 1); +lean_inc(x_67); +lean_inc(x_66); +lean_dec(x_39); +x_68 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_68, 0, x_66); +lean_ctor_set(x_68, 1, x_67); +return x_68; +} +} } else { lean_object* x_69; lean_object* x_70; lean_object* x_71; -x_69 = lean_ctor_get(x_32, 0); -x_70 = lean_ctor_get(x_32, 1); -lean_inc(x_70); +lean_dec(x_9); +x_69 = lean_ctor_get(x_36, 1); lean_inc(x_69); -lean_dec(x_32); -x_71 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_71, 0, x_69); -lean_ctor_set(x_71, 1, x_70); +lean_dec(x_36); +x_70 = lean_ctor_get(x_37, 0); +lean_inc(x_70); +lean_dec(x_37); +x_71 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases(x_70, x_1, x_2, x_3, x_4, x_5, x_6, x_69); return x_71; } } +else +{ +uint8_t x_72; +lean_dec(x_9); +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_72 = !lean_is_exclusive(x_36); +if (x_72 == 0) +{ +return x_36; } else { -lean_object* x_72; -lean_dec(x_9); -x_72 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); -return x_72; -} -} -else -{ -lean_object* x_73; -lean_dec(x_9); -x_73 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); -return x_73; -} -} -else -{ -lean_object* x_74; -lean_dec(x_9); -x_74 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); -return x_74; -} -} -else -{ -lean_object* x_75; -lean_dec(x_9); -x_75 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_object* x_73; lean_object* x_74; lean_object* x_75; +x_73 = lean_ctor_get(x_36, 0); +x_74 = lean_ctor_get(x_36, 1); +lean_inc(x_74); +lean_inc(x_73); +lean_dec(x_36); +x_75 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_74); return x_75; } } +} else { lean_object* x_76; lean_dec(x_9); -x_76 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_76 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); return x_76; } } @@ -15511,7 +15541,7 @@ else { lean_object* x_77; lean_dec(x_9); -x_77 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_77 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); return x_77; } } @@ -15519,7 +15549,7 @@ else { lean_object* x_78; lean_dec(x_9); -x_78 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitEqRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_78 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); return x_78; } } @@ -15527,51 +15557,103 @@ else { lean_object* x_79; lean_dec(x_9); -x_79 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitEqRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_79 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); return x_79; } } else { -lean_object* x_80; +lean_object* x_80; lean_object* x_81; lean_dec(x_9); -x_80 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitEqRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); -return x_80; +x_80 = lean_unsigned_to_nat(4u); +x_81 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndIffRecCore(x_1, x_80, x_2, x_3, x_4, x_5, x_6, x_7); +return x_81; } } else { -lean_object* x_81; lean_object* x_82; +lean_object* x_82; lean_object* x_83; lean_dec(x_9); -x_81 = lean_unsigned_to_nat(3u); -x_82 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCtor(x_81, x_1, x_2, x_3, x_4, x_5, x_6, x_7); -return x_82; -} -} -else -{ -lean_object* x_83; -lean_dec(x_9); -x_83 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitQuotLift(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_82 = lean_unsigned_to_nat(4u); +x_83 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndIffRecCore(x_1, x_82, x_2, x_3, x_4, x_5, x_6, x_7); return x_83; } } else { -lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; -lean_dec(x_8); -x_84 = lean_unsigned_to_nat(0u); -x_85 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_84); -x_86 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__3; -lean_inc(x_85); -x_87 = lean_mk_array(x_85, x_86); -x_88 = lean_unsigned_to_nat(1u); -x_89 = lean_nat_sub(x_85, x_88); -lean_dec(x_85); -x_90 = l_Lean_Expr_withAppAux___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___spec__1(x_1, x_87, x_89, x_2, x_3, x_4, x_5, x_6, x_7); +lean_object* x_84; lean_object* x_85; +lean_dec(x_9); +x_84 = lean_unsigned_to_nat(3u); +x_85 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndIffRecCore(x_1, x_84, x_2, x_3, x_4, x_5, x_6, x_7); +return x_85; +} +} +else +{ +lean_object* x_86; lean_object* x_87; +lean_dec(x_9); +x_86 = lean_unsigned_to_nat(3u); +x_87 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndIffRecCore(x_1, x_86, x_2, x_3, x_4, x_5, x_6, x_7); +return x_87; +} +} +else +{ +lean_object* x_88; +lean_dec(x_9); +x_88 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitEqRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +return x_88; +} +} +else +{ +lean_object* x_89; +lean_dec(x_9); +x_89 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitEqRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +return x_89; +} +} +else +{ +lean_object* x_90; +lean_dec(x_9); +x_90 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitEqRec(x_1, x_2, x_3, x_4, x_5, x_6, x_7); return x_90; } } +else +{ +lean_object* x_91; lean_object* x_92; +lean_dec(x_9); +x_91 = lean_unsigned_to_nat(3u); +x_92 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCtor(x_91, x_1, x_2, x_3, x_4, x_5, x_6, x_7); +return x_92; +} +} +else +{ +lean_object* x_93; +lean_dec(x_9); +x_93 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitQuotLift(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +return x_93; +} +} +else +{ +lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; +lean_dec(x_8); +x_94 = lean_unsigned_to_nat(0u); +x_95 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_94); +x_96 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__3; +lean_inc(x_95); +x_97 = lean_mk_array(x_95, x_96); +x_98 = lean_unsigned_to_nat(1u); +x_99 = lean_nat_sub(x_95, x_98); +lean_dec(x_95); +x_100 = l_Lean_Expr_withAppAux___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___spec__1(x_1, x_97, x_99, x_2, x_3, x_4, x_5, x_6, x_7); +return x_100; +} +} } LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAppDefault___spec__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) { _start: @@ -15677,7 +15759,7 @@ x_15 = lean_ctor_get(x_13, 1); lean_inc(x_15); lean_dec(x_13); x_16 = l_Lean_mkAppN(x_1, x_14); -x_17 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_17 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; x_18 = l_Lean_Compiler_LCNF_ToLCNF_mkAuxLetDecl(x_16, x_17, x_3, x_4, x_5, x_6, x_7, x_15); lean_dec(x_3); return x_18; @@ -16168,7 +16250,7 @@ lean_inc(x_16); lean_dec(x_15); x_17 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_16); x_18 = lean_ctor_get(x_5, 2); -x_19 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__6; +x_19 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__6; lean_inc(x_18); x_20 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_20, 0, x_12); @@ -16199,7 +16281,7 @@ lean_inc(x_25); lean_dec(x_23); x_26 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_25); x_27 = lean_ctor_get(x_5, 2); -x_28 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__6; +x_28 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__6; lean_inc(x_27); x_29 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_29, 0, x_12); @@ -16360,7 +16442,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_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__1; x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn___closed__1; -x_3 = lean_unsigned_to_nat(640u); +x_3 = lean_unsigned_to_nat(660u); x_4 = lean_unsigned_to_nat(45u); x_5 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -16935,7 +17017,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_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__1; x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitNoConfusion___closed__1; -x_3 = lean_unsigned_to_nat(597u); +x_3 = lean_unsigned_to_nat(617u); x_4 = lean_unsigned_to_nat(42u); x_5 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -16948,7 +17030,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_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__1; x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitNoConfusion___closed__1; -x_3 = lean_unsigned_to_nat(599u); +x_3 = lean_unsigned_to_nat(619u); x_4 = lean_unsigned_to_nat(56u); x_5 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -17402,7 +17484,7 @@ lean_dec(x_54); x_78 = lean_ctor_get(x_75, 1); lean_inc(x_78); lean_dec(x_75); -x_79 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_79 = l_Lean_Compiler_LCNF_erasedExpr; x_80 = lean_box(0); x_81 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_74, x_56, x_50, x_53, x_79, x_80, x_9, x_10, x_11, x_12, x_13, x_78); x_82 = lean_ctor_get(x_81, 0); @@ -17546,7 +17628,7 @@ lean_dec(x_54); x_106 = lean_ctor_get(x_103, 1); lean_inc(x_106); lean_dec(x_103); -x_107 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_107 = l_Lean_Compiler_LCNF_erasedExpr; x_108 = lean_box(0); x_109 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_102, x_56, x_50, x_53, x_107, x_108, x_9, x_10, x_11, x_12, x_13, x_106); x_110 = lean_ctor_get(x_109, 0); @@ -17704,7 +17786,7 @@ lean_dec(x_54); x_138 = lean_ctor_get(x_135, 1); lean_inc(x_138); lean_dec(x_135); -x_139 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_139 = l_Lean_Compiler_LCNF_erasedExpr; x_140 = lean_box(0); x_141 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_134, x_56, x_127, x_53, x_139, x_140, x_9, x_10, x_11, x_12, x_13, x_138); x_142 = lean_ctor_get(x_141, 0); @@ -17852,7 +17934,7 @@ lean_dec(x_54); x_166 = lean_ctor_get(x_163, 1); lean_inc(x_166); lean_dec(x_163); -x_167 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_167 = l_Lean_Compiler_LCNF_erasedExpr; x_168 = lean_box(0); x_169 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_162, x_56, x_127, x_53, x_167, x_168, x_9, x_10, x_11, x_12, x_13, x_166); x_170 = lean_ctor_get(x_169, 0); @@ -18068,7 +18150,7 @@ lean_dec(x_186); x_209 = lean_ctor_get(x_206, 1); lean_inc(x_209); lean_dec(x_206); -x_210 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_210 = l_Lean_Compiler_LCNF_erasedExpr; x_211 = lean_box(0); x_212 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_205, x_188, x_198, x_185, x_210, x_211, x_9, x_10, x_11, x_12, x_13, x_209); x_213 = lean_ctor_get(x_212, 0); @@ -18216,7 +18298,7 @@ lean_dec(x_186); x_237 = lean_ctor_get(x_234, 1); lean_inc(x_237); lean_dec(x_234); -x_238 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_238 = l_Lean_Compiler_LCNF_erasedExpr; x_239 = lean_box(0); x_240 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_233, x_188, x_198, x_185, x_238, x_239, x_9, x_10, x_11, x_12, x_13, x_237); x_241 = lean_ctor_get(x_240, 0); @@ -18450,7 +18532,7 @@ lean_dec(x_259); x_284 = lean_ctor_get(x_281, 1); lean_inc(x_284); lean_dec(x_281); -x_285 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_285 = l_Lean_Compiler_LCNF_erasedExpr; x_286 = lean_box(0); x_287 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_280, x_262, x_273, x_258, x_285, x_286, x_9, x_10, x_11, x_12, x_13, x_284); x_288 = lean_ctor_get(x_287, 0); @@ -18598,7 +18680,7 @@ lean_dec(x_259); x_312 = lean_ctor_get(x_309, 1); lean_inc(x_312); lean_dec(x_309); -x_313 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_313 = l_Lean_Compiler_LCNF_erasedExpr; x_314 = lean_box(0); x_315 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_308, x_262, x_273, x_258, x_313, x_314, x_9, x_10, x_11, x_12, x_13, x_312); x_316 = lean_ctor_get(x_315, 0); @@ -18900,7 +18982,7 @@ lean_dec(x_345); x_371 = lean_ctor_get(x_368, 1); lean_inc(x_371); lean_dec(x_368); -x_372 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_372 = l_Lean_Compiler_LCNF_erasedExpr; x_373 = lean_box(0); x_374 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_367, x_348, x_360, x_344, x_372, x_373, x_9, x_10, x_11, x_12, x_13, x_371); x_375 = lean_ctor_get(x_374, 0); @@ -19048,7 +19130,7 @@ lean_dec(x_345); x_399 = lean_ctor_get(x_396, 1); lean_inc(x_399); lean_dec(x_396); -x_400 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_400 = l_Lean_Compiler_LCNF_erasedExpr; x_401 = lean_box(0); x_402 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_395, x_348, x_360, x_344, x_400, x_401, x_9, x_10, x_11, x_12, x_13, x_399); x_403 = lean_ctor_get(x_402, 0); @@ -19228,7 +19310,84 @@ return x_419; } } } -LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__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, lean_object* x_11, lean_object* x_12, lean_object* x_13) { +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__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) { +_start: +{ +uint8_t x_10; +x_10 = lean_usize_dec_lt(x_2, x_1); +if (x_10 == 0) +{ +lean_object* x_11; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_3); +lean_ctor_set(x_11, 1, x_9); +return x_11; +} +else +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_12 = lean_array_uget(x_3, x_2); +x_13 = lean_unsigned_to_nat(0u); +x_14 = lean_array_uset(x_3, x_2, x_13); +x_15 = l_Lean_Compiler_LCNF_AltCore_getCode(x_12); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +x_16 = l_Lean_Compiler_LCNF_Code_ensureAnyType(x_15, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_16) == 0) +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; size_t x_20; size_t x_21; lean_object* x_22; +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = l___private_Lean_Compiler_LCNF_Basic_0__Lean_Compiler_LCNF_updateAltCodeImp(x_12, x_17); +x_20 = 1; +x_21 = lean_usize_add(x_2, x_20); +x_22 = lean_array_uset(x_14, x_2, x_19); +x_2 = x_21; +x_3 = x_22; +x_9 = x_18; +goto _start; +} +else +{ +uint8_t x_24; +lean_dec(x_14); +lean_dec(x_12); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +x_24 = !lean_is_exclusive(x_16); +if (x_24 == 0) +{ +return x_16; +} +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_16, 0); +x_26 = lean_ctor_get(x_16, 1); +lean_inc(x_26); +lean_inc(x_25); +lean_dec(x_16); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_25); +lean_ctor_set(x_27, 1, x_26); +return x_27; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__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, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { _start: { uint8_t x_14; @@ -19435,7 +19594,7 @@ lean_dec(x_53); x_78 = lean_ctor_get(x_75, 1); lean_inc(x_78); lean_dec(x_75); -x_79 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_79 = l_Lean_Compiler_LCNF_erasedExpr; x_80 = lean_box(0); x_81 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_74, x_55, x_49, x_52, x_79, x_80, x_8, x_9, x_10, x_11, x_12, x_78); x_82 = lean_ctor_get(x_81, 0); @@ -19577,7 +19736,7 @@ lean_dec(x_53); x_106 = lean_ctor_get(x_103, 1); lean_inc(x_106); lean_dec(x_103); -x_107 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_107 = l_Lean_Compiler_LCNF_erasedExpr; x_108 = lean_box(0); x_109 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_102, x_55, x_49, x_52, x_107, x_108, x_8, x_9, x_10, x_11, x_12, x_106); x_110 = lean_ctor_get(x_109, 0); @@ -19733,7 +19892,7 @@ lean_dec(x_53); x_139 = lean_ctor_get(x_136, 1); lean_inc(x_139); lean_dec(x_136); -x_140 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_140 = l_Lean_Compiler_LCNF_erasedExpr; x_141 = lean_box(0); x_142 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_135, x_55, x_127, x_52, x_140, x_141, x_8, x_9, x_10, x_11, x_12, x_139); x_143 = lean_ctor_get(x_142, 0); @@ -19879,7 +20038,7 @@ lean_dec(x_53); x_167 = lean_ctor_get(x_164, 1); lean_inc(x_167); lean_dec(x_164); -x_168 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_168 = l_Lean_Compiler_LCNF_erasedExpr; x_169 = lean_box(0); x_170 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_163, x_55, x_127, x_52, x_168, x_169, x_8, x_9, x_10, x_11, x_12, x_167); x_171 = lean_ctor_get(x_170, 0); @@ -20093,7 +20252,7 @@ lean_dec(x_187); x_211 = lean_ctor_get(x_208, 1); lean_inc(x_211); lean_dec(x_208); -x_212 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_212 = l_Lean_Compiler_LCNF_erasedExpr; x_213 = lean_box(0); x_214 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_207, x_189, x_199, x_186, x_212, x_213, x_8, x_9, x_10, x_11, x_12, x_211); x_215 = lean_ctor_get(x_214, 0); @@ -20239,7 +20398,7 @@ lean_dec(x_187); x_239 = lean_ctor_get(x_236, 1); lean_inc(x_239); lean_dec(x_236); -x_240 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_240 = l_Lean_Compiler_LCNF_erasedExpr; x_241 = lean_box(0); x_242 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_235, x_189, x_199, x_186, x_240, x_241, x_8, x_9, x_10, x_11, x_12, x_239); x_243 = lean_ctor_get(x_242, 0); @@ -20471,7 +20630,7 @@ lean_dec(x_261); x_287 = lean_ctor_get(x_284, 1); lean_inc(x_287); lean_dec(x_284); -x_288 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_288 = l_Lean_Compiler_LCNF_erasedExpr; x_289 = lean_box(0); x_290 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_283, x_264, x_275, x_260, x_288, x_289, x_8, x_9, x_10, x_11, x_12, x_287); x_291 = lean_ctor_get(x_290, 0); @@ -20617,7 +20776,7 @@ lean_dec(x_261); x_315 = lean_ctor_get(x_312, 1); lean_inc(x_315); lean_dec(x_312); -x_316 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_316 = l_Lean_Compiler_LCNF_erasedExpr; x_317 = lean_box(0); x_318 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_311, x_264, x_275, x_260, x_316, x_317, x_8, x_9, x_10, x_11, x_12, x_315); x_319 = lean_ctor_get(x_318, 0); @@ -20917,7 +21076,7 @@ lean_dec(x_348); x_375 = lean_ctor_get(x_372, 1); lean_inc(x_375); lean_dec(x_372); -x_376 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_376 = l_Lean_Compiler_LCNF_erasedExpr; x_377 = lean_box(0); x_378 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_371, x_351, x_363, x_347, x_376, x_377, x_8, x_9, x_10, x_11, x_12, x_375); x_379 = lean_ctor_get(x_378, 0); @@ -21063,7 +21222,7 @@ lean_dec(x_348); x_403 = lean_ctor_get(x_400, 1); lean_inc(x_403); lean_dec(x_400); -x_404 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_404 = l_Lean_Compiler_LCNF_erasedExpr; x_405 = lean_box(0); x_406 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1___lambda__1(x_399, x_351, x_363, x_347, x_404, x_405, x_8, x_9, x_10, x_11, x_12, x_403); x_407 = lean_ctor_get(x_406, 0); @@ -21238,7 +21397,100 @@ return x_423; } } } -static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1___closed__1() { +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___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_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14) { +_start: +{ +lean_object* x_15; lean_object* x_16; uint8_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; +lean_dec(x_8); +x_15 = l_Lean_Expr_fvarId_x21(x_1); +lean_inc(x_3); +x_16 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_16, 0, x_2); +lean_ctor_set(x_16, 1, x_3); +lean_ctor_set(x_16, 2, x_15); +lean_ctor_set(x_16, 3, x_7); +x_17 = 0; +x_18 = l_Lean_Compiler_LCNF_mkAuxParam(x_3, x_17, x_10, x_11, x_12, x_13, x_14); +x_19 = lean_ctor_get(x_18, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_18, 1); +lean_inc(x_20); +lean_dec(x_18); +lean_inc(x_19); +x_21 = lean_alloc_ctor(3, 2, 0); +lean_ctor_set(x_21, 0, x_19); +lean_ctor_set(x_21, 1, x_16); +x_22 = l_Lean_Compiler_LCNF_ToLCNF_pushElement(x_21, x_9, x_10, x_11, x_12, x_13, x_20); +x_23 = !lean_is_exclusive(x_22); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; +x_24 = lean_ctor_get(x_22, 1); +x_25 = lean_ctor_get(x_22, 0); +lean_dec(x_25); +x_26 = lean_ctor_get(x_19, 0); +lean_inc(x_26); +lean_dec(x_19); +x_27 = l_Lean_Expr_fvar___override(x_26); +x_28 = lean_nat_dec_eq(x_4, x_5); +lean_dec(x_4); +if (x_28 == 0) +{ +lean_object* x_29; +lean_free_object(x_22); +x_29 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_mkOverApplication(x_27, x_6, x_5, x_9, x_10, x_11, x_12, x_13, x_24); +return x_29; +} +else +{ +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_6); +lean_dec(x_5); +lean_ctor_set(x_22, 0, x_27); +return x_22; +} +} +else +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; +x_30 = lean_ctor_get(x_22, 1); +lean_inc(x_30); +lean_dec(x_22); +x_31 = lean_ctor_get(x_19, 0); +lean_inc(x_31); +lean_dec(x_19); +x_32 = l_Lean_Expr_fvar___override(x_31); +x_33 = lean_nat_dec_eq(x_4, x_5); +lean_dec(x_4); +if (x_33 == 0) +{ +lean_object* x_34; +x_34 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_mkOverApplication(x_32, x_6, x_5, x_9, x_10, x_11, x_12, x_13, x_30); +return x_34; +} +else +{ +lean_object* x_35; +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_6); +lean_dec(x_5); +x_35 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_35, 0, x_32); +lean_ctor_set(x_35, 1, x_30); +return x_35; +} +} +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__1() { _start: { lean_object* x_1; @@ -21246,20 +21498,54 @@ x_1 = lean_mk_string_from_bytes("Lean.Compiler.LCNF.ToLCNF.toLCNF.visitCases", 4 return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1___closed__2() { +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__2() { _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_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__1; -x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1___closed__1; -x_3 = lean_unsigned_to_nat(531u); +x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__1; +x_3 = lean_unsigned_to_nat(533u); x_4 = lean_unsigned_to_nat(57u); x_5 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); return x_6; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___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) { +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("unsupported `", 13); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__3; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("` application during code generation", 36); +return x_1; +} +} +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__5; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___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; @@ -21284,7 +21570,6 @@ lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint x_17 = lean_ctor_get(x_1, 0); lean_inc(x_17); x_18 = l_Lean_Name_getPrefix(x_17); -lean_dec(x_17); x_19 = lean_ctor_get(x_1, 3); lean_inc(x_19); x_20 = lean_array_get_size(x_2); @@ -21318,158 +21603,138 @@ x_28 = lean_ctor_get(x_27, 0); lean_inc(x_28); if (lean_obj_tag(x_28) == 5) { -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; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +lean_object* x_29; lean_object* x_30; uint8_t x_31; x_29 = lean_ctor_get(x_27, 1); lean_inc(x_29); lean_dec(x_27); x_30 = lean_ctor_get(x_28, 0); lean_inc(x_30); lean_dec(x_28); -x_31 = lean_ctor_get(x_1, 5); -lean_inc(x_31); -x_32 = lean_array_get_size(x_31); -x_33 = l_Array_toSubarray___rarg(x_31, x_15, x_32); -x_34 = lean_ctor_get(x_30, 4); -lean_inc(x_34); +x_31 = l_Lean_Expr_isFVar(x_25); +if (x_31 == 0) +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_dec(x_30); -x_35 = lean_ctor_get(x_1, 4); -lean_inc(x_35); +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_18); +lean_dec(x_12); +lean_dec(x_3); +lean_dec(x_2); lean_dec(x_1); -x_36 = l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__1; -x_37 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_37, 0, x_36); -lean_ctor_set(x_37, 1, x_12); -x_38 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_38, 0, x_34); -lean_ctor_set(x_38, 1, x_37); -x_39 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_39, 0, x_33); -lean_ctor_set(x_39, 1, x_38); -x_40 = lean_ctor_get(x_35, 1); -lean_inc(x_40); -x_41 = lean_ctor_get(x_35, 0); +x_32 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_32, 0, x_17); +x_33 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__4; +x_34 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_34, 0, x_33); +lean_ctor_set(x_34, 1, x_32); +x_35 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__6; +x_36 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_36, 0, x_34); +lean_ctor_set(x_36, 1, x_35); +x_37 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__6(x_36, x_5, x_6, x_7, x_8, x_9, x_29); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +return x_37; +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; +lean_dec(x_17); +x_38 = lean_ctor_get(x_1, 5); +lean_inc(x_38); +x_39 = lean_array_get_size(x_38); +x_40 = l_Array_toSubarray___rarg(x_38, x_15, x_39); +x_41 = lean_ctor_get(x_30, 4); lean_inc(x_41); -x_42 = lean_ctor_get(x_35, 2); +lean_dec(x_30); +x_42 = lean_ctor_get(x_1, 4); lean_inc(x_42); -lean_dec(x_35); +lean_dec(x_1); +x_43 = l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__1; +x_44 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_44, 0, x_43); +lean_ctor_set(x_44, 1, x_12); +x_45 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_45, 0, x_41); +lean_ctor_set(x_45, 1, x_44); +x_46 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_46, 0, x_40); +lean_ctor_set(x_46, 1, x_45); +x_47 = lean_ctor_get(x_42, 1); +lean_inc(x_47); +x_48 = lean_ctor_get(x_42, 0); +lean_inc(x_48); +x_49 = lean_ctor_get(x_42, 2); +lean_inc(x_49); +lean_dec(x_42); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -lean_inc(x_40); -x_43 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1(x_2, x_20, x_22, x_40, x_41, x_40, x_42, x_39, x_5, x_6, x_7, x_8, x_9, x_29); -lean_dec(x_42); -lean_dec(x_40); -if (lean_obj_tag(x_43) == 0) -{ -lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; uint8_t x_58; -x_44 = lean_ctor_get(x_43, 0); -lean_inc(x_44); -x_45 = lean_ctor_get(x_44, 1); -lean_inc(x_45); -lean_dec(x_44); -x_46 = lean_ctor_get(x_45, 1); -lean_inc(x_46); -lean_dec(x_45); -x_47 = lean_ctor_get(x_43, 1); lean_inc(x_47); -lean_dec(x_43); -x_48 = lean_ctor_get(x_46, 0); -lean_inc(x_48); -x_49 = lean_ctor_get(x_46, 1); -lean_inc(x_49); -lean_dec(x_46); -x_50 = l_Lean_Expr_fvarId_x21(x_25); -lean_inc(x_49); -x_51 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_51, 0, x_18); -lean_ctor_set(x_51, 1, x_49); -lean_ctor_set(x_51, 2, x_50); -lean_ctor_set(x_51, 3, x_48); -x_52 = 0; -x_53 = l_Lean_Compiler_LCNF_mkAuxParam(x_49, x_52, x_6, x_7, x_8, x_9, x_47); -x_54 = lean_ctor_get(x_53, 0); +x_50 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__1(x_2, x_20, x_22, x_47, x_48, x_47, x_49, x_46, x_5, x_6, x_7, x_8, x_9, x_29); +lean_dec(x_49); +lean_dec(x_47); +if (lean_obj_tag(x_50) == 0) +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; uint8_t x_57; +x_51 = lean_ctor_get(x_50, 0); +lean_inc(x_51); +x_52 = lean_ctor_get(x_51, 1); +lean_inc(x_52); +lean_dec(x_51); +x_53 = lean_ctor_get(x_52, 1); +lean_inc(x_53); +lean_dec(x_52); +x_54 = lean_ctor_get(x_50, 1); lean_inc(x_54); -x_55 = lean_ctor_get(x_53, 1); +lean_dec(x_50); +x_55 = lean_ctor_get(x_53, 0); lean_inc(x_55); +x_56 = lean_ctor_get(x_53, 1); +lean_inc(x_56); lean_dec(x_53); -lean_inc(x_54); -x_56 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_56, 0, x_54); -lean_ctor_set(x_56, 1, x_51); -x_57 = l_Lean_Compiler_LCNF_ToLCNF_pushElement(x_56, x_5, x_6, x_7, x_8, x_9, x_55); -x_58 = !lean_is_exclusive(x_57); -if (x_58 == 0) +x_57 = l_Lean_Expr_isErased(x_56); +if (x_57 == 0) { -lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; -x_59 = lean_ctor_get(x_57, 1); -x_60 = lean_ctor_get(x_57, 0); +lean_object* x_58; lean_object* x_59; +x_58 = lean_box(0); +x_59 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1(x_25, x_18, x_56, x_20, x_3, x_2, x_55, x_58, x_5, x_6, x_7, x_8, x_9, x_54); +return x_59; +} +else +{ +lean_object* x_60; size_t x_61; size_t x_62; lean_object* x_63; +x_60 = lean_array_get_size(x_55); +x_61 = lean_usize_of_nat(x_60); lean_dec(x_60); -x_61 = lean_ctor_get(x_54, 0); -lean_inc(x_61); -lean_dec(x_54); -x_62 = l_Lean_Expr_fvar___override(x_61); -x_63 = lean_nat_dec_eq(x_20, x_3); -lean_dec(x_20); -if (x_63 == 0) +x_62 = 0; +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_63 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__2(x_61, x_62, x_55, x_5, x_6, x_7, x_8, x_9, x_54); +if (lean_obj_tag(x_63) == 0) { -lean_object* x_64; -lean_free_object(x_57); -x_64 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_mkOverApplication(x_62, x_2, x_3, x_5, x_6, x_7, x_8, x_9, x_59); -return x_64; -} -else -{ -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -lean_ctor_set(x_57, 0, x_62); -return x_57; -} -} -else -{ -lean_object* x_65; lean_object* x_66; lean_object* x_67; uint8_t x_68; -x_65 = lean_ctor_get(x_57, 1); +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +x_64 = lean_ctor_get(x_63, 0); +lean_inc(x_64); +x_65 = lean_ctor_get(x_63, 1); lean_inc(x_65); -lean_dec(x_57); -x_66 = lean_ctor_get(x_54, 0); -lean_inc(x_66); -lean_dec(x_54); -x_67 = l_Lean_Expr_fvar___override(x_66); -x_68 = lean_nat_dec_eq(x_20, x_3); -lean_dec(x_20); -if (x_68 == 0) -{ -lean_object* x_69; -x_69 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_mkOverApplication(x_67, x_2, x_3, x_5, x_6, x_7, x_8, x_9, x_65); -return x_69; +lean_dec(x_63); +x_66 = lean_box(0); +x_67 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1(x_25, x_18, x_56, x_20, x_3, x_2, x_64, x_66, x_5, x_6, x_7, x_8, x_9, x_65); +return x_67; } else { -lean_object* x_70; -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -x_70 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_70, 0, x_67); -lean_ctor_set(x_70, 1, x_65); -return x_70; -} -} -} -else -{ -uint8_t x_71; +uint8_t x_68; +lean_dec(x_56); lean_dec(x_25); lean_dec(x_20); lean_dec(x_18); @@ -21480,51 +21745,88 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_3); lean_dec(x_2); -x_71 = !lean_is_exclusive(x_43); -if (x_71 == 0) +x_68 = !lean_is_exclusive(x_63); +if (x_68 == 0) { -return x_43; +return x_63; } else { -lean_object* x_72; lean_object* x_73; lean_object* x_74; -x_72 = lean_ctor_get(x_43, 0); -x_73 = lean_ctor_get(x_43, 1); +lean_object* x_69; lean_object* x_70; lean_object* x_71; +x_69 = lean_ctor_get(x_63, 0); +x_70 = lean_ctor_get(x_63, 1); +lean_inc(x_70); +lean_inc(x_69); +lean_dec(x_63); +x_71 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_71, 0, x_69); +lean_ctor_set(x_71, 1, x_70); +return x_71; +} +} +} +} +else +{ +uint8_t x_72; +lean_dec(x_25); +lean_dec(x_20); +lean_dec(x_18); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_72 = !lean_is_exclusive(x_50); +if (x_72 == 0) +{ +return x_50; +} +else +{ +lean_object* x_73; lean_object* x_74; lean_object* x_75; +x_73 = lean_ctor_get(x_50, 0); +x_74 = lean_ctor_get(x_50, 1); +lean_inc(x_74); lean_inc(x_73); -lean_inc(x_72); -lean_dec(x_43); -x_74 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_74, 0, x_72); -lean_ctor_set(x_74, 1, x_73); -return x_74; +lean_dec(x_50); +x_75 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_74); +return x_75; +} } } } else { -lean_object* x_75; lean_object* x_76; lean_object* x_77; +lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_dec(x_28); lean_dec(x_25); lean_dec(x_20); lean_dec(x_18); +lean_dec(x_17); lean_dec(x_12); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_75 = lean_ctor_get(x_27, 1); -lean_inc(x_75); +x_76 = lean_ctor_get(x_27, 1); +lean_inc(x_76); lean_dec(x_27); -x_76 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1___closed__2; -x_77 = l_panic___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__5(x_76, x_5, x_6, x_7, x_8, x_9, x_75); -return x_77; +x_77 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__2; +x_78 = l_panic___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__5(x_77, x_5, x_6, x_7, x_8, x_9, x_76); +return x_78; } } else { -uint8_t x_78; +uint8_t x_79; lean_dec(x_25); lean_dec(x_20); lean_dec(x_18); +lean_dec(x_17); lean_dec(x_12); lean_dec(x_9); lean_dec(x_8); @@ -21534,31 +21836,32 @@ lean_dec(x_5); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_78 = !lean_is_exclusive(x_27); -if (x_78 == 0) +x_79 = !lean_is_exclusive(x_27); +if (x_79 == 0) { return x_27; } else { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_27, 0); -x_80 = lean_ctor_get(x_27, 1); +lean_object* x_80; lean_object* x_81; lean_object* x_82; +x_80 = lean_ctor_get(x_27, 0); +x_81 = lean_ctor_get(x_27, 1); +lean_inc(x_81); lean_inc(x_80); -lean_inc(x_79); lean_dec(x_27); -x_81 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_81, 0, x_79); -lean_ctor_set(x_81, 1, x_80); -return x_81; +x_82 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_82, 0, x_80); +lean_ctor_set(x_82, 1, x_81); +return x_82; } } } else { -uint8_t x_82; +uint8_t x_83; lean_dec(x_20); lean_dec(x_18); +lean_dec(x_17); lean_dec(x_12); lean_dec(x_9); lean_dec(x_8); @@ -21568,207 +21871,221 @@ lean_dec(x_5); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_82 = !lean_is_exclusive(x_24); -if (x_82 == 0) +x_83 = !lean_is_exclusive(x_24); +if (x_83 == 0) { return x_24; } else { -lean_object* x_83; lean_object* x_84; lean_object* x_85; -x_83 = lean_ctor_get(x_24, 0); -x_84 = lean_ctor_get(x_24, 1); +lean_object* x_84; lean_object* x_85; lean_object* x_86; +x_84 = lean_ctor_get(x_24, 0); +x_85 = lean_ctor_get(x_24, 1); +lean_inc(x_85); lean_inc(x_84); -lean_inc(x_83); lean_dec(x_24); -x_85 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_85, 0, x_83); -lean_ctor_set(x_85, 1, x_84); -return x_85; +x_86 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_86, 0, x_84); +lean_ctor_set(x_86, 1, x_85); +return x_86; } } } else { -lean_object* x_86; lean_object* x_87; -x_86 = lean_array_fget(x_2, x_19); +lean_object* x_87; lean_object* x_88; +x_87 = lean_array_fget(x_2, x_19); lean_dec(x_19); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_87 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAppArg(x_86, x_5, x_6, x_7, x_8, x_9, x_13); -if (lean_obj_tag(x_87) == 0) +x_88 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAppArg(x_87, x_5, x_6, x_7, x_8, x_9, x_13); +if (lean_obj_tag(x_88) == 0) { -lean_object* x_88; lean_object* x_89; lean_object* x_90; -x_88 = lean_ctor_get(x_87, 0); -lean_inc(x_88); -x_89 = lean_ctor_get(x_87, 1); +lean_object* x_89; lean_object* x_90; lean_object* x_91; +x_89 = lean_ctor_get(x_88, 0); lean_inc(x_89); -lean_dec(x_87); +x_90 = lean_ctor_get(x_88, 1); +lean_inc(x_90); +lean_dec(x_88); lean_inc(x_18); -x_90 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn___spec__1(x_18, x_5, x_6, x_7, x_8, x_9, x_89); -if (lean_obj_tag(x_90) == 0) +x_91 = l_Lean_getConstInfo___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn___spec__1(x_18, x_5, x_6, x_7, x_8, x_9, x_90); +if (lean_obj_tag(x_91) == 0) { -lean_object* x_91; -x_91 = lean_ctor_get(x_90, 0); -lean_inc(x_91); -if (lean_obj_tag(x_91) == 5) -{ -lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; -x_92 = lean_ctor_get(x_90, 1); +lean_object* x_92; +x_92 = lean_ctor_get(x_91, 0); lean_inc(x_92); -lean_dec(x_90); -x_93 = lean_ctor_get(x_91, 0); +if (lean_obj_tag(x_92) == 5) +{ +lean_object* x_93; lean_object* x_94; uint8_t x_95; +x_93 = lean_ctor_get(x_91, 1); lean_inc(x_93); lean_dec(x_91); -x_94 = lean_ctor_get(x_1, 5); +x_94 = lean_ctor_get(x_92, 0); lean_inc(x_94); -x_95 = lean_array_get_size(x_94); -x_96 = l_Array_toSubarray___rarg(x_94, x_15, x_95); -x_97 = lean_ctor_get(x_93, 4); -lean_inc(x_97); -lean_dec(x_93); -x_98 = lean_ctor_get(x_1, 4); -lean_inc(x_98); +lean_dec(x_92); +x_95 = l_Lean_Expr_isFVar(x_89); +if (x_95 == 0) +{ +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; +lean_dec(x_94); +lean_dec(x_89); +lean_dec(x_20); +lean_dec(x_18); +lean_dec(x_12); +lean_dec(x_3); +lean_dec(x_2); lean_dec(x_1); -x_99 = l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__1; -x_100 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_100, 0, x_99); -lean_ctor_set(x_100, 1, x_12); -x_101 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_101, 0, x_97); -lean_ctor_set(x_101, 1, x_100); -x_102 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_102, 0, x_96); -lean_ctor_set(x_102, 1, x_101); -x_103 = lean_ctor_get(x_98, 1); -lean_inc(x_103); -x_104 = lean_ctor_get(x_98, 0); -lean_inc(x_104); -x_105 = lean_ctor_get(x_98, 2); +x_96 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_96, 0, x_17); +x_97 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__4; +x_98 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_98, 0, x_97); +lean_ctor_set(x_98, 1, x_96); +x_99 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__6; +x_100 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_100, 0, x_98); +lean_ctor_set(x_100, 1, x_99); +x_101 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__6(x_100, x_5, x_6, x_7, x_8, x_9, x_93); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +return x_101; +} +else +{ +lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; +lean_dec(x_17); +x_102 = lean_ctor_get(x_1, 5); +lean_inc(x_102); +x_103 = lean_array_get_size(x_102); +x_104 = l_Array_toSubarray___rarg(x_102, x_15, x_103); +x_105 = lean_ctor_get(x_94, 4); lean_inc(x_105); -lean_dec(x_98); +lean_dec(x_94); +x_106 = lean_ctor_get(x_1, 4); +lean_inc(x_106); +lean_dec(x_1); +x_107 = l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__1; +x_108 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_108, 0, x_107); +lean_ctor_set(x_108, 1, x_12); +x_109 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_109, 0, x_105); +lean_ctor_set(x_109, 1, x_108); +x_110 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_110, 0, x_104); +lean_ctor_set(x_110, 1, x_109); +x_111 = lean_ctor_get(x_106, 1); +lean_inc(x_111); +x_112 = lean_ctor_get(x_106, 0); +lean_inc(x_112); +x_113 = lean_ctor_get(x_106, 2); +lean_inc(x_113); +lean_dec(x_106); lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -lean_inc(x_103); -x_106 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__2(x_2, x_20, x_103, x_104, x_103, x_105, x_102, x_5, x_6, x_7, x_8, x_9, x_92); -lean_dec(x_105); -lean_dec(x_103); -if (lean_obj_tag(x_106) == 0) -{ -lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; uint8_t x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; uint8_t x_121; -x_107 = lean_ctor_get(x_106, 0); -lean_inc(x_107); -x_108 = lean_ctor_get(x_107, 1); -lean_inc(x_108); -lean_dec(x_107); -x_109 = lean_ctor_get(x_108, 1); -lean_inc(x_109); -lean_dec(x_108); -x_110 = lean_ctor_get(x_106, 1); -lean_inc(x_110); -lean_dec(x_106); -x_111 = lean_ctor_get(x_109, 0); lean_inc(x_111); -x_112 = lean_ctor_get(x_109, 1); -lean_inc(x_112); -lean_dec(x_109); -x_113 = l_Lean_Expr_fvarId_x21(x_88); -lean_inc(x_112); -x_114 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_114, 0, x_18); -lean_ctor_set(x_114, 1, x_112); -lean_ctor_set(x_114, 2, x_113); -lean_ctor_set(x_114, 3, x_111); -x_115 = 0; -x_116 = l_Lean_Compiler_LCNF_mkAuxParam(x_112, x_115, x_6, x_7, x_8, x_9, x_110); -x_117 = lean_ctor_get(x_116, 0); +x_114 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__3(x_2, x_20, x_111, x_112, x_111, x_113, x_110, x_5, x_6, x_7, x_8, x_9, x_93); +lean_dec(x_113); +lean_dec(x_111); +if (lean_obj_tag(x_114) == 0) +{ +lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; uint8_t x_121; +x_115 = lean_ctor_get(x_114, 0); +lean_inc(x_115); +x_116 = lean_ctor_get(x_115, 1); +lean_inc(x_116); +lean_dec(x_115); +x_117 = lean_ctor_get(x_116, 1); lean_inc(x_117); -x_118 = lean_ctor_get(x_116, 1); -lean_inc(x_118); lean_dec(x_116); -lean_inc(x_117); -x_119 = lean_alloc_ctor(3, 2, 0); -lean_ctor_set(x_119, 0, x_117); -lean_ctor_set(x_119, 1, x_114); -x_120 = l_Lean_Compiler_LCNF_ToLCNF_pushElement(x_119, x_5, x_6, x_7, x_8, x_9, x_118); -x_121 = !lean_is_exclusive(x_120); +x_118 = lean_ctor_get(x_114, 1); +lean_inc(x_118); +lean_dec(x_114); +x_119 = lean_ctor_get(x_117, 0); +lean_inc(x_119); +x_120 = lean_ctor_get(x_117, 1); +lean_inc(x_120); +lean_dec(x_117); +x_121 = l_Lean_Expr_isErased(x_120); if (x_121 == 0) { -lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; uint8_t x_126; -x_122 = lean_ctor_get(x_120, 1); -x_123 = lean_ctor_get(x_120, 0); -lean_dec(x_123); -x_124 = lean_ctor_get(x_117, 0); -lean_inc(x_124); -lean_dec(x_117); -x_125 = l_Lean_Expr_fvar___override(x_124); -x_126 = lean_nat_dec_eq(x_20, x_3); -lean_dec(x_20); -if (x_126 == 0) +lean_object* x_122; lean_object* x_123; +x_122 = lean_box(0); +x_123 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1(x_89, x_18, x_120, x_20, x_3, x_2, x_119, x_122, x_5, x_6, x_7, x_8, x_9, x_118); +return x_123; +} +else +{ +lean_object* x_124; size_t x_125; size_t x_126; lean_object* x_127; +x_124 = lean_array_get_size(x_119); +x_125 = lean_usize_of_nat(x_124); +lean_dec(x_124); +x_126 = 0; +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_127 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__2(x_125, x_126, x_119, x_5, x_6, x_7, x_8, x_9, x_118); +if (lean_obj_tag(x_127) == 0) +{ +lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; +x_128 = lean_ctor_get(x_127, 0); +lean_inc(x_128); +x_129 = lean_ctor_get(x_127, 1); +lean_inc(x_129); +lean_dec(x_127); +x_130 = lean_box(0); +x_131 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1(x_89, x_18, x_120, x_20, x_3, x_2, x_128, x_130, x_5, x_6, x_7, x_8, x_9, x_129); +return x_131; +} +else +{ +uint8_t x_132; +lean_dec(x_120); +lean_dec(x_89); +lean_dec(x_20); +lean_dec(x_18); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_132 = !lean_is_exclusive(x_127); +if (x_132 == 0) { -lean_object* x_127; -lean_free_object(x_120); -x_127 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_mkOverApplication(x_125, x_2, x_3, x_5, x_6, x_7, x_8, x_9, x_122); return x_127; } else { -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -lean_ctor_set(x_120, 0, x_125); -return x_120; +lean_object* x_133; lean_object* x_134; lean_object* x_135; +x_133 = lean_ctor_get(x_127, 0); +x_134 = lean_ctor_get(x_127, 1); +lean_inc(x_134); +lean_inc(x_133); +lean_dec(x_127); +x_135 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_135, 0, x_133); +lean_ctor_set(x_135, 1, x_134); +return x_135; } } -else -{ -lean_object* x_128; lean_object* x_129; lean_object* x_130; uint8_t x_131; -x_128 = lean_ctor_get(x_120, 1); -lean_inc(x_128); -lean_dec(x_120); -x_129 = lean_ctor_get(x_117, 0); -lean_inc(x_129); -lean_dec(x_117); -x_130 = l_Lean_Expr_fvar___override(x_129); -x_131 = lean_nat_dec_eq(x_20, x_3); -lean_dec(x_20); -if (x_131 == 0) -{ -lean_object* x_132; -x_132 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_mkOverApplication(x_130, x_2, x_3, x_5, x_6, x_7, x_8, x_9, x_128); -return x_132; -} -else -{ -lean_object* x_133; -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -x_133 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_133, 0, x_130); -lean_ctor_set(x_133, 1, x_128); -return x_133; -} } } else { -uint8_t x_134; -lean_dec(x_88); +uint8_t x_136; +lean_dec(x_89); lean_dec(x_20); lean_dec(x_18); lean_dec(x_9); @@ -21778,52 +22095,137 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_3); lean_dec(x_2); -x_134 = !lean_is_exclusive(x_106); -if (x_134 == 0) +x_136 = !lean_is_exclusive(x_114); +if (x_136 == 0) { -return x_106; +return x_114; } else { -lean_object* x_135; lean_object* x_136; lean_object* x_137; -x_135 = lean_ctor_get(x_106, 0); -x_136 = lean_ctor_get(x_106, 1); -lean_inc(x_136); -lean_inc(x_135); -lean_dec(x_106); -x_137 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_137, 0, x_135); -lean_ctor_set(x_137, 1, x_136); -return x_137; -} -} -} -else -{ -lean_object* x_138; lean_object* x_139; lean_object* x_140; -lean_dec(x_91); -lean_dec(x_88); -lean_dec(x_20); -lean_dec(x_18); -lean_dec(x_12); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_138 = lean_ctor_get(x_90, 1); +lean_object* x_137; lean_object* x_138; lean_object* x_139; +x_137 = lean_ctor_get(x_114, 0); +x_138 = lean_ctor_get(x_114, 1); lean_inc(x_138); -lean_dec(x_90); -x_139 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1___closed__2; -x_140 = l_panic___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__5(x_139, x_5, x_6, x_7, x_8, x_9, x_138); -return x_140; +lean_inc(x_137); +lean_dec(x_114); +x_139 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_139, 0, x_137); +lean_ctor_set(x_139, 1, x_138); +return x_139; +} +} } } else { -uint8_t x_141; +lean_object* x_140; lean_object* x_141; lean_object* x_142; +lean_dec(x_92); +lean_dec(x_89); +lean_dec(x_20); +lean_dec(x_18); +lean_dec(x_17); +lean_dec(x_12); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_140 = lean_ctor_get(x_91, 1); +lean_inc(x_140); +lean_dec(x_91); +x_141 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__2; +x_142 = l_panic___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___spec__5(x_141, x_5, x_6, x_7, x_8, x_9, x_140); +return x_142; +} +} +else +{ +uint8_t x_143; +lean_dec(x_89); +lean_dec(x_20); +lean_dec(x_18); +lean_dec(x_17); +lean_dec(x_12); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_143 = !lean_is_exclusive(x_91); +if (x_143 == 0) +{ +return x_91; +} +else +{ +lean_object* x_144; lean_object* x_145; lean_object* x_146; +x_144 = lean_ctor_get(x_91, 0); +x_145 = lean_ctor_get(x_91, 1); +lean_inc(x_145); +lean_inc(x_144); +lean_dec(x_91); +x_146 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_146, 0, x_144); +lean_ctor_set(x_146, 1, x_145); +return x_146; +} +} +} +else +{ +uint8_t x_147; +lean_dec(x_20); +lean_dec(x_18); +lean_dec(x_17); +lean_dec(x_12); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_147 = !lean_is_exclusive(x_88); +if (x_147 == 0) +{ +return x_88; +} +else +{ +lean_object* x_148; lean_object* x_149; lean_object* x_150; +x_148 = lean_ctor_get(x_88, 0); +x_149 = lean_ctor_get(x_88, 1); +lean_inc(x_149); +lean_inc(x_148); lean_dec(x_88); -lean_dec(x_20); -lean_dec(x_18); -lean_dec(x_12); +x_150 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_150, 0, x_148); +lean_ctor_set(x_150, 1, x_149); +return x_150; +} +} +} +} +else +{ +lean_object* x_151; +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_151 = l_Lean_Compiler_LCNF_ToLCNF_mkUnreachable(x_12, x_5, x_6, x_7, x_8, x_9, x_13); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +return x_151; +} +} +else +{ +uint8_t x_152; lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -21832,104 +22234,23 @@ lean_dec(x_5); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_141 = !lean_is_exclusive(x_90); -if (x_141 == 0) -{ -return x_90; -} -else -{ -lean_object* x_142; lean_object* x_143; lean_object* x_144; -x_142 = lean_ctor_get(x_90, 0); -x_143 = lean_ctor_get(x_90, 1); -lean_inc(x_143); -lean_inc(x_142); -lean_dec(x_90); -x_144 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_144, 0, x_142); -lean_ctor_set(x_144, 1, x_143); -return x_144; -} -} -} -else -{ -uint8_t x_145; -lean_dec(x_20); -lean_dec(x_18); -lean_dec(x_12); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_145 = !lean_is_exclusive(x_87); -if (x_145 == 0) -{ -return x_87; -} -else -{ -lean_object* x_146; lean_object* x_147; lean_object* x_148; -x_146 = lean_ctor_get(x_87, 0); -x_147 = lean_ctor_get(x_87, 1); -lean_inc(x_147); -lean_inc(x_146); -lean_dec(x_87); -x_148 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_148, 0, x_146); -lean_ctor_set(x_148, 1, x_147); -return x_148; -} -} -} -} -else -{ -lean_object* x_149; -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_149 = l_Lean_Compiler_LCNF_ToLCNF_mkUnreachable(x_12, x_5, x_6, x_7, x_8, x_9, x_13); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -return x_149; -} -} -else -{ -uint8_t x_150; -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_150 = !lean_is_exclusive(x_11); -if (x_150 == 0) +x_152 = !lean_is_exclusive(x_11); +if (x_152 == 0) { return x_11; } else { -lean_object* x_151; lean_object* x_152; lean_object* x_153; -x_151 = lean_ctor_get(x_11, 0); -x_152 = lean_ctor_get(x_11, 1); -lean_inc(x_152); -lean_inc(x_151); +lean_object* x_153; lean_object* x_154; lean_object* x_155; +x_153 = lean_ctor_get(x_11, 0); +x_154 = lean_ctor_get(x_11, 1); +lean_inc(x_154); +lean_inc(x_153); lean_dec(x_11); -x_153 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_153, 0, x_151); -lean_ctor_set(x_153, 1, x_152); -return x_153; +x_155 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_155, 0, x_153); +lean_ctor_set(x_155, 1, x_154); +return x_155; } } } @@ -21961,7 +22282,7 @@ lean_closure_set(x_21, 0, x_20); x_22 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ToLCNF_liftMetaM___rarg___boxed), 7, 1); lean_closure_set(x_22, 0, x_21); lean_inc(x_9); -x_23 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1), 10, 3); +x_23 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2), 10, 3); lean_closure_set(x_23, 0, x_1); lean_closure_set(x_23, 1, x_16); lean_closure_set(x_23, 2, x_9); @@ -22103,7 +22424,7 @@ x_11 = lean_nat_dec_eq(x_10, x_3); if (x_11 == 0) { lean_object* x_12; lean_object* x_13; -x_12 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_12 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); @@ -22210,7 +22531,7 @@ lean_object* x_33; lean_object* x_34; lean_dec(x_10); lean_dec(x_3); lean_dec(x_2); -x_33 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_33 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; x_34 = l_Lean_Compiler_LCNF_ToLCNF_mkAuxLetDecl(x_1, x_33, x_4, x_5, x_6, x_7, x_8, x_9); lean_dec(x_4); return x_34; @@ -22291,7 +22612,7 @@ lean_inc(x_17); lean_dec(x_15); x_18 = l_Lean_Compiler_LCNF_LCtx_toLocalContext(x_17); x_19 = lean_ctor_get(x_6, 2); -x_20 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__6; +x_20 = l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__6; lean_inc(x_19); x_21 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_21, 0, x_13); @@ -23240,7 +23561,7 @@ x_13 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_etaIfUnderApplied(x_1, x_12, x_11, x_2 return x_13; } } -static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndRec___closed__1() { +static lean_object* _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndIffRecCore___closed__1() { _start: { lean_object* x_1; lean_object* x_2; @@ -23249,134 +23570,117 @@ x_2 = lean_mk_empty_array_with_capacity(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndRec(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_Compiler_LCNF_ToLCNF_toLCNF_visitAndIffRecCore(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; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; uint8_t x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_8 = lean_unsigned_to_nat(0u); -x_9 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_8); -x_10 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__3; -lean_inc(x_9); -x_11 = lean_mk_array(x_9, x_10); -x_12 = lean_unsigned_to_nat(1u); -x_13 = lean_nat_sub(x_9, x_12); -lean_dec(x_9); +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; uint8_t x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_9 = lean_unsigned_to_nat(0u); +x_10 = l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(x_1, x_9); +x_11 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__3; +lean_inc(x_10); +x_12 = lean_mk_array(x_10, x_11); +x_13 = lean_unsigned_to_nat(1u); +x_14 = lean_nat_sub(x_10, x_13); +lean_dec(x_10); lean_inc(x_1); -x_14 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_11, x_13); -x_15 = lean_array_get_size(x_14); -x_16 = lean_nat_dec_lt(x_8, x_15); -x_17 = lean_nat_dec_lt(x_12, x_15); -x_18 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__11; -x_19 = l_Lean_Expr_isAppOf(x_1, x_18); -x_20 = lean_array_get_size(x_14); +x_15 = l___private_Lean_Expr_0__Lean_Expr_getAppArgsAux(x_1, x_12, x_14); +x_16 = lean_array_get_size(x_15); +x_17 = lean_nat_dec_lt(x_9, x_16); +x_18 = lean_nat_dec_lt(x_13, x_16); +x_19 = lean_nat_dec_lt(x_2, x_16); +lean_dec(x_16); +x_20 = lean_array_get_size(x_15); x_21 = lean_unsigned_to_nat(5u); -lean_inc(x_14); -x_22 = l_Array_toSubarray___rarg(x_14, x_21, x_20); +lean_inc(x_15); +x_22 = l_Array_toSubarray___rarg(x_15, x_21, x_20); x_23 = l_Array_ofSubarray___rarg(x_22); -if (x_16 == 0) -{ -lean_object* x_62; lean_object* x_63; -x_62 = l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__4; -x_63 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_62); -x_24 = x_63; -goto block_61; -} -else -{ -lean_object* x_64; -x_64 = lean_array_fget(x_14, x_8); -x_24 = x_64; -goto block_61; -} -block_61: -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_25 = l_Lean_Compiler_LCNF_ToLCNF_mkLcProof(x_24); -x_26 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndRec___closed__1; -x_27 = lean_array_push(x_26, x_25); if (x_17 == 0) { -lean_object* x_58; lean_object* x_59; -x_58 = l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__4; -x_59 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_58); -x_28 = x_59; -goto block_57; +lean_object* x_57; lean_object* x_58; +x_57 = l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__4; +x_58 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_57); +x_24 = x_58; +goto block_56; } else { -lean_object* x_60; -x_60 = lean_array_fget(x_14, x_12); -x_28 = x_60; -goto block_57; +lean_object* x_59; +x_59 = lean_array_fget(x_15, x_9); +x_24 = x_59; +goto block_56; } -block_57: +block_56: { -lean_object* x_29; lean_object* x_30; -x_29 = l_Lean_Compiler_LCNF_ToLCNF_mkLcProof(x_28); -x_30 = lean_array_push(x_27, x_29); +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = l_Lean_Compiler_LCNF_ToLCNF_mkLcProof(x_24); +x_26 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndIffRecCore___closed__1; +x_27 = lean_array_push(x_26, x_25); +if (x_18 == 0) +{ +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_28 = l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__4; +x_29 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_28); +x_30 = l_Lean_Compiler_LCNF_ToLCNF_mkLcProof(x_29); +x_31 = lean_array_push(x_27, x_30); if (x_19 == 0) { -lean_object* x_31; uint8_t x_32; -x_31 = lean_unsigned_to_nat(4u); -x_32 = lean_nat_dec_lt(x_31, x_15); +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_dec(x_15); -if (x_32 == 0) -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; -lean_dec(x_14); -x_33 = l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__4; -x_34 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_33); -x_35 = l_Lean_Expr_beta(x_34, x_30); -x_36 = l_Lean_mkAppN(x_35, x_23); -x_37 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visit), 7, 1); -lean_closure_set(x_37, 0, x_36); -x_38 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_etaIfUnderApplied(x_1, x_21, x_37, x_2, x_3, x_4, x_5, x_6, x_7); -return x_38; +lean_dec(x_2); +x_32 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_28); +x_33 = l_Lean_Expr_beta(x_32, x_31); +x_34 = l_Lean_mkAppN(x_33, x_23); +x_35 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visit), 7, 1); +lean_closure_set(x_35, 0, x_34); +x_36 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_etaIfUnderApplied(x_1, x_21, x_35, x_3, x_4, x_5, x_6, x_7, x_8); +return x_36; } else { -lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_39 = lean_array_fget(x_14, x_31); -lean_dec(x_14); -x_40 = l_Lean_Expr_beta(x_39, x_30); -x_41 = l_Lean_mkAppN(x_40, x_23); -x_42 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visit), 7, 1); -lean_closure_set(x_42, 0, x_41); -x_43 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_etaIfUnderApplied(x_1, x_21, x_42, x_2, x_3, x_4, x_5, x_6, x_7); -return x_43; -} -} -else -{ -lean_object* x_44; uint8_t x_45; -x_44 = lean_unsigned_to_nat(3u); -x_45 = lean_nat_dec_lt(x_44, x_15); +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_37 = lean_array_fget(x_15, x_2); +lean_dec(x_2); lean_dec(x_15); -if (x_45 == 0) -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; -lean_dec(x_14); -x_46 = l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__4; -x_47 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_46); -x_48 = l_Lean_Expr_beta(x_47, x_30); -x_49 = l_Lean_mkAppN(x_48, x_23); -x_50 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visit), 7, 1); -lean_closure_set(x_50, 0, x_49); -x_51 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_etaIfUnderApplied(x_1, x_21, x_50, x_2, x_3, x_4, x_5, x_6, x_7); -return x_51; +x_38 = l_Lean_Expr_beta(x_37, x_31); +x_39 = l_Lean_mkAppN(x_38, x_23); +x_40 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visit), 7, 1); +lean_closure_set(x_40, 0, x_39); +x_41 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_etaIfUnderApplied(x_1, x_21, x_40, x_3, x_4, x_5, x_6, x_7, x_8); +return x_41; +} } else { -lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; -x_52 = lean_array_fget(x_14, x_44); -lean_dec(x_14); -x_53 = l_Lean_Expr_beta(x_52, x_30); -x_54 = l_Lean_mkAppN(x_53, x_23); -x_55 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visit), 7, 1); -lean_closure_set(x_55, 0, x_54); -x_56 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_etaIfUnderApplied(x_1, x_21, x_55, x_2, x_3, x_4, x_5, x_6, x_7); -return x_56; +lean_object* x_42; lean_object* x_43; lean_object* x_44; +x_42 = lean_array_fget(x_15, x_13); +x_43 = l_Lean_Compiler_LCNF_ToLCNF_mkLcProof(x_42); +x_44 = lean_array_push(x_27, x_43); +if (x_19 == 0) +{ +lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; +lean_dec(x_15); +lean_dec(x_2); +x_45 = l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__4; +x_46 = l_panic___at_Lean_Expr_getRevArg_x21___spec__1(x_45); +x_47 = l_Lean_Expr_beta(x_46, x_44); +x_48 = l_Lean_mkAppN(x_47, x_23); +x_49 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visit), 7, 1); +lean_closure_set(x_49, 0, x_48); +x_50 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_etaIfUnderApplied(x_1, x_21, x_49, x_3, x_4, x_5, x_6, x_7, x_8); +return x_50; } +else +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; +x_51 = lean_array_fget(x_15, x_2); +lean_dec(x_2); +lean_dec(x_15); +x_52 = l_Lean_Expr_beta(x_51, x_44); +x_53 = l_Lean_mkAppN(x_52, x_23); +x_54 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visit), 7, 1); +lean_closure_set(x_54, 0, x_53); +x_55 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_etaIfUnderApplied(x_1, x_21, x_54, x_3, x_4, x_5, x_6, x_7, x_8); +return x_55; } } } @@ -23473,7 +23777,7 @@ lean_object* x_123; lean_object* x_124; lean_object* x_125; x_123 = lean_ctor_get(x_120, 1); lean_inc(x_123); lean_dec(x_120); -x_124 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_124 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); @@ -23718,7 +24022,7 @@ lean_object* x_166; lean_object* x_167; lean_object* x_168; x_166 = lean_ctor_get(x_163, 1); lean_inc(x_166); lean_dec(x_163); -x_167 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_167 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); @@ -23989,7 +24293,7 @@ lean_object* x_28; lean_object* x_29; lean_object* x_30; x_28 = lean_ctor_get(x_25, 1); lean_inc(x_28); lean_dec(x_25); -x_29 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_29 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); @@ -24234,7 +24538,7 @@ lean_object* x_71; lean_object* x_72; lean_object* x_73; x_71 = lean_ctor_get(x_68, 1); lean_inc(x_71); lean_dec(x_68); -x_72 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_72 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); @@ -24532,7 +24836,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_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__1; x_2 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitQuotLift___lambda__1___closed__1; -x_3 = lean_unsigned_to_nat(558u); +x_3 = lean_unsigned_to_nat(578u); x_4 = lean_unsigned_to_nat(42u); x_5 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCore___lambda__2___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -24656,7 +24960,7 @@ lean_ctor_set(x_21, 0, x_27); x_29 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitQuotLift___lambda__1___closed__4; x_30 = l_Lean_Expr_const___override(x_29, x_21); x_31 = l_Lean_mkApp3(x_30, x_2, x_3, x_15); -x_32 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_32 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); @@ -24740,7 +25044,7 @@ lean_ctor_set(x_48, 1, x_47); x_49 = l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitQuotLift___lambda__1___closed__4; x_50 = l_Lean_Expr_const___override(x_49, x_48); x_51 = l_Lean_mkApp3(x_50, x_2, x_3, x_15); -x_52 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__8; +x_52 = l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__5; lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); @@ -25125,11 +25429,24 @@ lean_dec(x_1); return x_15; } } -LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__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_object* x_13) { +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__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) { +_start: +{ +size_t x_10; size_t x_11; lean_object* x_12; +x_10 = lean_unbox_usize(x_1); +lean_dec(x_1); +x_11 = lean_unbox_usize(x_2); +lean_dec(x_2); +x_12 = l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__2(x_10, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_4); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__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, lean_object* x_13) { _start: { lean_object* x_14; -x_14 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +x_14 = l_Std_Range_forIn_loop___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___spec__3(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); lean_dec(x_6); lean_dec(x_5); lean_dec(x_2); @@ -25301,18 +25618,18 @@ l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__5 = _init_l_Lean_Comp lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement___closed__5); l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement = _init_l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement(); lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_instInhabitedElement); -l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__1 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__1(); -lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__1); -l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__2 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__2(); -lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__2); -l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__3 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__3(); -lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__3); -l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__4 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__4(); -lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__4); -l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__5 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__5(); -lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__5); -l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__6 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__6(); -lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__8___closed__6); +l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__1 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__1(); +lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__1); +l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__2 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__2(); +lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__2); +l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__3 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__3(); +lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__3); +l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__4 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__4(); +lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__4); +l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__5 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__5(); +lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__5); +l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__6 = _init_l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__6(); +lean_mark_persistent(l_Lean_throwError___at_Lean_Compiler_LCNF_ToLCNF_bindCases_go___spec__9___closed__6); l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__1 = _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__1); l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__2 = _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__2(); @@ -25333,12 +25650,6 @@ l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__9 = _init_l_Lean_Compiler_LCN lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__9); l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__10 = _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__10(); lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__10); -l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__11 = _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__11(); -lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__11); -l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__12 = _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__12(); -lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__12); -l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__13 = _init_l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__13(); -lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_bindCases_go___closed__13); l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__1 = _init_l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__1); l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__2 = _init_l_Lean_Compiler_LCNF_ToLCNF_seqToCode_go___closed__2(); @@ -25391,6 +25702,8 @@ l_Lean_Compiler_LCNF_ToLCNF_liftMetaM___rarg___closed__9 = _init_l_Lean_Compiler lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_liftMetaM___rarg___closed__9); l_Lean_Compiler_LCNF_ToLCNF_run___rarg___closed__1 = _init_l_Lean_Compiler_LCNF_ToLCNF_run___rarg___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_run___rarg___closed__1); +l_Lean_Compiler_LCNF_ToLCNF_run___rarg___closed__2 = _init_l_Lean_Compiler_LCNF_ToLCNF_run___rarg___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_run___rarg___closed__2); l_Lean_Compiler_LCNF_ToLCNF_applyToAny___lambda__1___closed__1 = _init_l_Lean_Compiler_LCNF_ToLCNF_applyToAny___lambda__1___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_applyToAny___lambda__1___closed__1); l_Lean_Compiler_LCNF_ToLCNF_mustEtaExpand___closed__1 = _init_l_Lean_Compiler_LCNF_ToLCNF_mustEtaExpand___closed__1(); @@ -25479,6 +25792,12 @@ l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__17 = _init_l_Lean_Compiler lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__17); l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__18 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__18(); lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__18); +l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__19 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__19(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__19); +l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__20 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__20(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__20); +l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__21 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__21(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitApp___closed__21); l_Lean_getConstInfo___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn___spec__1___closed__1 = _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn___spec__1___closed__1(); lean_mark_persistent(l_Lean_getConstInfo___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn___spec__1___closed__1); l_Lean_getConstInfo___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn___spec__1___closed__2 = _init_l_Lean_getConstInfo___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitProjFn___spec__1___closed__2(); @@ -25505,10 +25824,18 @@ l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitNoConfusion___closed__2 = _init_l_Lean_C lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitNoConfusion___closed__2); l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitNoConfusion___closed__3 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitNoConfusion___closed__3(); lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitNoConfusion___closed__3); -l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1___closed__1 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1___closed__1); -l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1___closed__2 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__1___closed__2); +l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__1 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__1); +l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__2 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__2(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__2); +l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__3 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__3(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__3); +l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__4 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__4(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__4); +l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__5 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__5(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__5); +l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__6 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__6(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitCases___lambda__2___closed__6); l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___spec__1___closed__1 = _init_l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___spec__1___closed__1(); lean_mark_persistent(l_Lean_isTracingEnabledFor___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___spec__1___closed__1); l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___spec__3___closed__1 = _init_l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___spec__3___closed__1(); @@ -25523,8 +25850,8 @@ l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___spec__3_ lean_mark_persistent(l_Array_mapMUnsafe_map___at_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAlt___spec__3___closed__5); l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec___closed__1 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitFalseRec___closed__1); -l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndRec___closed__1 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndRec___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndRec___closed__1); +l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndIffRecCore___closed__1 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndIffRecCore___closed__1(); +lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitAndIffRecCore___closed__1); l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitQuotLift___lambda__1___closed__1 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitQuotLift___lambda__1___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitQuotLift___lambda__1___closed__1); l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitQuotLift___lambda__1___closed__2 = _init_l_Lean_Compiler_LCNF_ToLCNF_toLCNF_visitQuotLift___lambda__1___closed__2(); diff --git a/stage0/stdlib/Lean/Compiler/LCNF/Types.c b/stage0/stdlib/Lean/Compiler/LCNF/Types.c index 01b99f80f4..2d4d31fa5d 100644 --- a/stage0/stdlib/Lean/Compiler/LCNF/Types.c +++ b/stage0/stdlib/Lean/Compiler/LCNF/Types.c @@ -13,71 +13,37 @@ #ifdef __cplusplus extern "C" { #endif -static lean_object* l_Lean_Compiler_LCNF_saveLCNFType___closed__2; lean_object* lean_array_set(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__14; size_t lean_usize_add(size_t, size_t); LEAN_EXPORT lean_object* l_Lean_Expr_withAppAux___at_Lean_Compiler_LCNF_toLCNFType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_lam___override(lean_object*, lean_object*, lean_object*, uint8_t); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_anyTypeExpr; -static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__1; lean_object* lean_mk_empty_array_with_capacity(lean_object*); -static size_t l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__2; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Types___hyg_656_(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveLCNFType___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_forallE___override(lean_object*, lean_object*, lean_object*, uint8_t); -static lean_object* l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__2; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__5; lean_object* lean_array_uget(lean_object*, size_t); -static lean_object* l_Lean_Compiler_LCNF_joinTypes_x3f___closed__2; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_append___rarg(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1; -static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__3; -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__15; -lean_object* l_Lean_EnvExtensionInterfaceUnsafe_registerExt___rarg(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__2(lean_object*, size_t, lean_object*); LEAN_EXPORT uint8_t l_Lean_Expr_isErased(lean_object*); lean_object* l___private_Lean_Meta_Basic_0__Lean_Meta_withLocalDeclImp___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toLCNFType___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__18; -lean_object* l_Lean_EnvExtensionInterfaceUnsafe_imp___elambda__2___rarg(lean_object*, lean_object*, lean_object*); -size_t lean_usize_sub(size_t, size_t); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isArrowClass_x3f(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_getConstInfo___at_Lean_Meta_mkConstWithFreshMVarLevels___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__7; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__3; lean_object* lean_st_ref_get(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_term_u22a4___closed__4; LEAN_EXPORT lean_object* l_Lean_Expr_isErased___boxed(lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t lean_name_eq(lean_object*, lean_object*); static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__7; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toLCNFType_visitForall(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Expr_isAnyType___boxed(lean_object*); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__16; static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__5; lean_object* l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______macroRules__precMax__1___spec__1(lean_object*, lean_object*); uint8_t l_Lean_Expr_isAppOf(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__1; static lean_object* l_Lean_Compiler_term_u25fe___closed__7; lean_object* lean_expr_instantiate1(lean_object*, lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isPropFormerType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_mkStr3(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_getConstInfo___at___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_isValidMacroInline___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); -size_t lean_usize_shift_right(size_t, size_t); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__3; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_term_u22a4___closed__1; uint8_t lean_usize_dec_lt(size_t, size_t); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isArrowClass_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__9; static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u25fe__1___closed__3; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toLCNFType___lambda__1(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_levelZero; @@ -86,117 +52,61 @@ LEAN_EXPORT lean_object* l_Lean_Meta_withLocalDecl___at_Lean_Compiler_LCNF_isPro static lean_object* l_Lean_Compiler_term_u25fe___closed__4; static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u25fe__1___closed__4; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_joinTypes_x3f(lean_object*, lean_object*); -size_t lean_uint64_to_usize(uint64_t); -lean_object* l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_erasedExpr; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toLCNFType_whnfEta(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint64_t l_Lean_Name_hash___override(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState; -lean_object* l_Lean_ConstantInfo_levelParams(lean_object*); -static lean_object* l_Lean_Compiler_term_u22a4___closed__2; -lean_object* lean_array_fget(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_term_u22a4; -lean_object* lean_st_ref_take(lean_object*, lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); lean_object* l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______unexpand__Function__comp__1___spec__1(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__10; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_toLCNFType_visitApp___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_headBeta(lean_object*); -static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__5; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toLCNFType_visitApp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_replaceRef(lean_object*, lean_object*); -lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_term_u25fe___closed__3; static lean_object* l_Lean_Compiler_term_u25fe___closed__5; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getArrowArity(lean_object*); -uint8_t l_List_beq___at_Lean_Core_instantiateTypeLevelParams___spec__8(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_saveLCNFType___spec__1(lean_object*, lean_object*, lean_object*); -lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcAny__1(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_term_u25fe___closed__6; -static lean_object* l_Lean_Compiler_LCNF_saveLCNFType___closed__1; -static lean_object* l_Lean_Compiler_term_u22a4___closed__5; -LEAN_EXPORT lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Expr_0__Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*); -lean_object* lean_st_mk_ref(lean_object*, lean_object*); -extern lean_object* l_Lean_Expr_instHashableExpr; LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_isPropFormerTypeQuick(lean_object*); lean_object* l_Lean_Expr_sort___override(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toLCNFType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -size_t lean_usize_shift_left(size_t, size_t); -lean_object* l_Lean_Meta_InfoCacheKey_instHashableInfoCacheKey___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isPropFormerType_go___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isClass_x3f(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_toLCNFType___lambda__2___closed__1; LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_isPredicateType(lean_object*); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__11; -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__19; -size_t lean_usize_mul(size_t, size_t); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u25fe__1___closed__1; lean_object* lean_whnf(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_maybeTypeFormerType___boxed(lean_object*); size_t lean_usize_of_nat(lean_object*); -lean_object* l_Lean_ConstantInfo_type(lean_object*); LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_maybeTypeFormerType(lean_object*); -lean_object* l_instBEqProd___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_addMacroScope(lean_object*, lean_object*, lean_object*); -size_t lean_usize_land(size_t, size_t); -lean_object* l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isPropFormerType_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toLCNFType_visitApp___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_anyTypeExpr___closed__1; -static lean_object* l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState___closed__1; lean_object* l_Lean_Expr_const___override(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__8; -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__17; -static lean_object* l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__3; lean_object* l_Lean_Expr_eta(lean_object*); lean_object* l_Array_mkArray1___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_withLocalDecl___at_Lean_Compiler_LCNF_isPropFormerType_go___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u25fe__1___closed__2; uint8_t lean_expr_eqv(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__4; -uint8_t lean_usize_dec_le(size_t, size_t); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_joinTypes(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__1; lean_object* l_Lean_Syntax_getArgs(lean_object*); static lean_object* l_Lean_Compiler_term_u25fe___closed__2; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_saveLCNFType___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_String_toSubstring_x27(lean_object*); static lean_object* l_Lean_Compiler_term_u25fe___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u25fe__1(lean_object*, lean_object*, lean_object*); lean_object* l_Array_mkArray2___rarg(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__4(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT uint8_t l_Lean_Expr_isAnyType(lean_object*); static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__4; -static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__2; -lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__9; -lean_object* l_Lean_PersistentHashMap_mkEmptyEntries(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_term_u22a4___closed__3; lean_object* l_Lean_Expr_app___override(lean_object*, lean_object*); -static lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__3; -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__13; static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__8; lean_object* lean_infer_type(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_expr_instantiate_rev(lean_object*, lean_object*); static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__2; -lean_object* l_instHashableProd___rarg___boxed(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__1; lean_object* lean_mk_array(lean_object*, lean_object*); uint8_t l_Lean_Syntax_isOfKind(lean_object*, lean_object*); static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u25fe__1___closed__5; lean_object* lean_expr_abstract(lean_object*, lean_object*); -extern lean_object* l_Lean_Expr_instBEqExpr; -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__1(lean_object*, lean_object*); static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__1; LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isClass_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___boxed(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_saveLCNFType___spec__3(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__2; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_lcnfTypeExt; LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_isTypeFormerType(lean_object*); static lean_object* l_Lean_Compiler_LCNF_erasedExpr___closed__1; lean_object* l_Lean_Meta_whnfD(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -206,40 +116,20 @@ lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isPropFormer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_getAppFn(lean_object*); -lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Core_instantiateTypeLevelParams___spec__1(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__6; LEAN_EXPORT lean_object* l_Lean_Meta_withLocalDecl___at_Lean_Compiler_LCNF_isPropFormerType_go___spec__1(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l_List_isEmpty___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isPredicateType___boxed(lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_isTypeFormer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2(lean_object*, size_t, size_t, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_LCNF_toLCNFType___lambda__1___closed__1; lean_object* l_Lean_Name_mkStr4(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* lean_usize_to_nat(size_t); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toLCNFType___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* l_Lean_Expr_instantiateLevelParamsCore_visit___at_Lean_Expr_instantiateLevelParams___spec__1(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__6; -lean_object* l_EStateM_pure___rarg(lean_object*, lean_object*); lean_object* l_Lean_Meta_isProp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Compiler_LCNF_toLCNFType_visitApp___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_EnvExtensionInterfaceUnsafe_getState___rarg(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcAny__1___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toLCNFType_visitApp___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_LCNFTypeExtState_instLevelType___default; -lean_object* l_Lean_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_toLCNFType_visitForall___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_isTypeFormerType___boxed(lean_object*); uint8_t lean_is_class(lean_object*, lean_object*); -lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Core_instantiateTypeLevelParams___spec__5(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Types___hyg_656____closed__1; -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveLCNFType___lambda__1(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveLCNFType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_term_u25fe; -uint8_t lean_nat_dec_lt(lean_object*, lean_object*); -static lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__4; -static lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType___closed__12; static lean_object* _init_l_Lean_Compiler_term_u25fe___closed__1() { _start: { @@ -707,460 +597,6 @@ lean_dec(x_2); return x_4; } } -static lean_object* _init_l_Lean_Compiler_term_u22a4___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("term⊤", 7); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_term_u22a4___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Compiler_term_u25fe___closed__1; -x_2 = l_Lean_Compiler_term_u25fe___closed__2; -x_3 = l_Lean_Compiler_term_u22a4___closed__1; -x_4 = l_Lean_Name_mkStr3(x_1, x_2, x_3); -return x_4; -} -} -static lean_object* _init_l_Lean_Compiler_term_u22a4___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("⊤", 3); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_term_u22a4___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_term_u22a4___closed__3; -x_2 = lean_alloc_ctor(5, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_term_u22a4___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_1 = l_Lean_Compiler_term_u22a4___closed__2; -x_2 = lean_unsigned_to_nat(1024u); -x_3 = l_Lean_Compiler_term_u22a4___closed__4; -x_4 = lean_alloc_ctor(3, 3, 0); -lean_ctor_set(x_4, 0, x_1); -lean_ctor_set(x_4, 1, x_2); -lean_ctor_set(x_4, 2, x_3); -return x_4; -} -} -static lean_object* _init_l_Lean_Compiler_term_u22a4() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Compiler_term_u22a4___closed__5; -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("lcAny", 5); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__1; -x_2 = l_String_toSubstring_x27(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__1; -x_3 = l_Lean_Name_str___override(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__3; -x_3 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_3, 0, x_2); -lean_ctor_set(x_3, 1, x_1); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__4; -x_3 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_3, 0, x_2); -lean_ctor_set(x_3, 1, x_1); -return x_3; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; uint8_t x_5; -x_4 = l_Lean_Compiler_term_u22a4___closed__2; -x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); -if (x_5 == 0) -{ -lean_object* x_6; lean_object* x_7; -lean_dec(x_2); -x_6 = lean_box(1); -x_7 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_7, 0, x_6); -lean_ctor_set(x_7, 1, x_3); -return x_7; -} -else -{ -lean_object* x_8; uint8_t x_9; -lean_inc(x_2); -x_8 = l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______macroRules__precMax__1___spec__1(x_2, x_3); -x_9 = !lean_is_exclusive(x_8); -if (x_9 == 0) -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_10 = lean_ctor_get(x_8, 0); -x_11 = lean_ctor_get(x_2, 2); -lean_inc(x_11); -x_12 = lean_ctor_get(x_2, 1); -lean_inc(x_12); -lean_dec(x_2); -x_13 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__3; -x_14 = l_Lean_addMacroScope(x_12, x_13, x_11); -x_15 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__2; -x_16 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__5; -x_17 = lean_alloc_ctor(3, 4, 0); -lean_ctor_set(x_17, 0, x_10); -lean_ctor_set(x_17, 1, x_15); -lean_ctor_set(x_17, 2, x_14); -lean_ctor_set(x_17, 3, x_16); -lean_ctor_set(x_8, 0, x_17); -return x_8; -} -else -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_18 = lean_ctor_get(x_8, 0); -x_19 = lean_ctor_get(x_8, 1); -lean_inc(x_19); -lean_inc(x_18); -lean_dec(x_8); -x_20 = lean_ctor_get(x_2, 2); -lean_inc(x_20); -x_21 = lean_ctor_get(x_2, 1); -lean_inc(x_21); -lean_dec(x_2); -x_22 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__3; -x_23 = l_Lean_addMacroScope(x_21, x_22, x_20); -x_24 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__2; -x_25 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__5; -x_26 = lean_alloc_ctor(3, 4, 0); -lean_ctor_set(x_26, 0, x_18); -lean_ctor_set(x_26, 1, x_24); -lean_ctor_set(x_26, 2, x_23); -lean_ctor_set(x_26, 3, x_25); -x_27 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_27, 0, x_26); -lean_ctor_set(x_27, 1, x_19); -return x_27; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcAny__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; uint8_t x_5; -x_4 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__2; -lean_inc(x_1); -x_5 = l_Lean_Syntax_isOfKind(x_1, x_4); -if (x_5 == 0) -{ -lean_object* x_6; uint8_t x_7; -x_6 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__6; -lean_inc(x_1); -x_7 = l_Lean_Syntax_isOfKind(x_1, x_6); -if (x_7 == 0) -{ -lean_object* x_8; lean_object* x_9; -lean_dec(x_1); -x_8 = lean_box(0); -x_9 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_9, 0, x_8); -lean_ctor_set(x_9, 1, x_3); -return x_9; -} -else -{ -lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_10 = lean_unsigned_to_nat(0u); -x_11 = l_Lean_Syntax_getArg(x_1, x_10); -lean_inc(x_11); -x_12 = l_Lean_Syntax_isOfKind(x_11, x_4); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; -lean_dec(x_11); -lean_dec(x_1); -x_13 = lean_box(0); -x_14 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_14, 0, x_13); -lean_ctor_set(x_14, 1, x_3); -return x_14; -} -else -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; -x_15 = lean_unsigned_to_nat(1u); -x_16 = l_Lean_Syntax_getArg(x_1, x_15); -lean_dec(x_1); -x_17 = l_Lean_Syntax_getArgs(x_16); -lean_dec(x_16); -x_18 = l_Lean_replaceRef(x_11, x_2); -lean_dec(x_11); -x_19 = l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______unexpand__Function__comp__1___spec__1(x_18, x_3); -x_20 = !lean_is_exclusive(x_19); -if (x_20 == 0) -{ -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; lean_object* x_32; -x_21 = lean_ctor_get(x_19, 0); -x_22 = l_Lean_Compiler_term_u22a4___closed__3; -lean_inc(x_21); -x_23 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_23, 0, x_21); -lean_ctor_set(x_23, 1, x_22); -x_24 = l_Array_mkArray1___rarg(x_23); -x_25 = l_Lean_Compiler_term_u22a4___closed__2; -lean_inc(x_21); -x_26 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_26, 0, x_21); -lean_ctor_set(x_26, 1, x_25); -lean_ctor_set(x_26, 2, x_24); -x_27 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__9; -x_28 = l_Array_append___rarg(x_27, x_17); -x_29 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__8; -lean_inc(x_21); -x_30 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_30, 0, x_21); -lean_ctor_set(x_30, 1, x_29); -lean_ctor_set(x_30, 2, x_28); -x_31 = l_Array_mkArray2___rarg(x_26, x_30); -x_32 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_32, 0, x_21); -lean_ctor_set(x_32, 1, x_6); -lean_ctor_set(x_32, 2, x_31); -lean_ctor_set(x_19, 0, x_32); -return x_19; -} -else -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; -x_33 = lean_ctor_get(x_19, 0); -x_34 = lean_ctor_get(x_19, 1); -lean_inc(x_34); -lean_inc(x_33); -lean_dec(x_19); -x_35 = l_Lean_Compiler_term_u22a4___closed__3; -lean_inc(x_33); -x_36 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_36, 0, x_33); -lean_ctor_set(x_36, 1, x_35); -x_37 = l_Array_mkArray1___rarg(x_36); -x_38 = l_Lean_Compiler_term_u22a4___closed__2; -lean_inc(x_33); -x_39 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_39, 0, x_33); -lean_ctor_set(x_39, 1, x_38); -lean_ctor_set(x_39, 2, x_37); -x_40 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__9; -x_41 = l_Array_append___rarg(x_40, x_17); -x_42 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__8; -lean_inc(x_33); -x_43 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_43, 0, x_33); -lean_ctor_set(x_43, 1, x_42); -lean_ctor_set(x_43, 2, x_41); -x_44 = l_Array_mkArray2___rarg(x_39, x_43); -x_45 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_45, 0, x_33); -lean_ctor_set(x_45, 1, x_6); -lean_ctor_set(x_45, 2, x_44); -x_46 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_46, 0, x_45); -lean_ctor_set(x_46, 1, x_34); -return x_46; -} -} -} -} -else -{ -lean_object* x_47; lean_object* x_48; uint8_t x_49; -x_47 = l_Lean_replaceRef(x_1, x_2); -lean_dec(x_1); -x_48 = l_Lean_MonadRef_mkInfoFromRefPos___at___aux__Init__Notation______unexpand__Function__comp__1___spec__1(x_47, x_3); -x_49 = !lean_is_exclusive(x_48); -if (x_49 == 0) -{ -lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_50 = lean_ctor_get(x_48, 0); -x_51 = l_Lean_Compiler_term_u22a4___closed__3; -lean_inc(x_50); -x_52 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -x_53 = l_Array_mkArray1___rarg(x_52); -x_54 = l_Lean_Compiler_term_u22a4___closed__2; -x_55 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_55, 0, x_50); -lean_ctor_set(x_55, 1, x_54); -lean_ctor_set(x_55, 2, x_53); -lean_ctor_set(x_48, 0, x_55); -return x_48; -} -else -{ -lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; -x_56 = lean_ctor_get(x_48, 0); -x_57 = lean_ctor_get(x_48, 1); -lean_inc(x_57); -lean_inc(x_56); -lean_dec(x_48); -x_58 = l_Lean_Compiler_term_u22a4___closed__3; -lean_inc(x_56); -x_59 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_59, 0, x_56); -lean_ctor_set(x_59, 1, x_58); -x_60 = l_Array_mkArray1___rarg(x_59); -x_61 = l_Lean_Compiler_term_u22a4___closed__2; -x_62 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_62, 0, x_56); -lean_ctor_set(x_62, 1, x_61); -lean_ctor_set(x_62, 2, x_60); -x_63 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_63, 0, x_62); -lean_ctor_set(x_63, 1, x_57); -return x_63; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcAny__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcAny__1(x_1, x_2, x_3); -lean_dec(x_2); -return x_4; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_box(0), lean_box(0)); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__1; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__3; -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_LCNFTypeExtState_instLevelType___default() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__3; -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__3; -x_2 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_2, 0, x_1); -lean_ctor_set(x_2, 1, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState___closed__1; -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Types___hyg_656____closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState___closed__1; -x_2 = lean_alloc_closure((void*)(l_EStateM_pure___rarg), 2, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Types___hyg_656_(lean_object* x_1) { -_start: -{ -lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Types___hyg_656____closed__1; -x_3 = l_Lean_EnvExtensionInterfaceUnsafe_registerExt___rarg(x_2, x_1); -return x_3; -} -} static lean_object* _init_l_Lean_Compiler_LCNF_erasedExpr___closed__1() { _start: { @@ -1179,43 +615,6 @@ x_1 = l_Lean_Compiler_LCNF_erasedExpr___closed__1; return x_1; } } -static lean_object* _init_l_Lean_Compiler_LCNF_anyTypeExpr___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__3; -x_3 = l_Lean_Expr_const___override(x_2, x_1); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_anyTypeExpr() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Compiler_LCNF_anyTypeExpr___closed__1; -return x_1; -} -} -LEAN_EXPORT uint8_t l_Lean_Expr_isAnyType(lean_object* x_1) { -_start: -{ -lean_object* x_2; uint8_t x_3; -x_2 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__3; -x_3 = l_Lean_Expr_isAppOf(x_1, x_2); -return x_3; -} -} -LEAN_EXPORT lean_object* l_Lean_Expr_isAnyType___boxed(lean_object* x_1) { -_start: -{ -uint8_t x_2; lean_object* x_3; -x_2 = l_Lean_Expr_isAnyType(x_1); -lean_dec(x_1); -x_3 = lean_box(x_2); -return x_3; -} -} LEAN_EXPORT uint8_t l_Lean_Expr_isErased(lean_object* x_1) { _start: { @@ -2165,21 +1564,17 @@ if (x_16 == 0) { lean_object* x_17; uint8_t x_18; x_17 = lean_ctor_get(x_15, 0); -x_18 = l_Lean_Expr_isAnyType(x_17); +x_18 = l_Lean_Expr_isErased(x_17); if (x_18 == 0) { -uint8_t x_19; -x_19 = l_Lean_Expr_isErased(x_17); -if (x_19 == 0) -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_20 = l_Lean_Compiler_LCNF_toLCNFType___lambda__1___closed__1; -x_21 = lean_array_push(x_20, x_5); -x_22 = lean_expr_abstract(x_17, x_21); -lean_dec(x_21); +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_19 = l_Lean_Compiler_LCNF_toLCNFType___lambda__1___closed__1; +x_20 = lean_array_push(x_19, x_5); +x_21 = lean_expr_abstract(x_17, x_20); +lean_dec(x_20); lean_dec(x_17); -x_23 = l_Lean_Expr_lam___override(x_3, x_12, x_22, x_4); -lean_ctor_set(x_15, 0, x_23); +x_22 = l_Lean_Expr_lam___override(x_3, x_12, x_21, x_4); +lean_ctor_set(x_15, 0, x_22); return x_15; } else @@ -2192,116 +1587,92 @@ return x_15; } else { -lean_dec(x_12); -lean_dec(x_5); -lean_dec(x_3); -return x_15; -} -} -else -{ -lean_object* x_24; lean_object* x_25; uint8_t x_26; -x_24 = lean_ctor_get(x_15, 0); -x_25 = lean_ctor_get(x_15, 1); -lean_inc(x_25); +lean_object* x_23; lean_object* x_24; uint8_t x_25; +x_23 = lean_ctor_get(x_15, 0); +x_24 = lean_ctor_get(x_15, 1); lean_inc(x_24); +lean_inc(x_23); lean_dec(x_15); -x_26 = l_Lean_Expr_isAnyType(x_24); -if (x_26 == 0) +x_25 = l_Lean_Expr_isErased(x_23); +if (x_25 == 0) { -uint8_t x_27; -x_27 = l_Lean_Expr_isErased(x_24); -if (x_27 == 0) -{ -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; -x_28 = l_Lean_Compiler_LCNF_toLCNFType___lambda__1___closed__1; -x_29 = lean_array_push(x_28, x_5); -x_30 = lean_expr_abstract(x_24, x_29); -lean_dec(x_29); -lean_dec(x_24); -x_31 = l_Lean_Expr_lam___override(x_3, x_12, x_30, x_4); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_31); -lean_ctor_set(x_32, 1, x_25); -return x_32; +lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_26 = l_Lean_Compiler_LCNF_toLCNFType___lambda__1___closed__1; +x_27 = lean_array_push(x_26, x_5); +x_28 = lean_expr_abstract(x_23, x_27); +lean_dec(x_27); +lean_dec(x_23); +x_29 = l_Lean_Expr_lam___override(x_3, x_12, x_28, x_4); +x_30 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_30, 0, x_29); +lean_ctor_set(x_30, 1, x_24); +return x_30; } else { -lean_object* x_33; +lean_object* x_31; lean_dec(x_12); lean_dec(x_5); lean_dec(x_3); -x_33 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_33, 0, x_24); -lean_ctor_set(x_33, 1, x_25); -return x_33; -} -} -else -{ -lean_object* x_34; -lean_dec(x_12); -lean_dec(x_5); -lean_dec(x_3); -x_34 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_34, 0, x_24); -lean_ctor_set(x_34, 1, x_25); -return x_34; +x_31 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_31, 0, x_23); +lean_ctor_set(x_31, 1, x_24); +return x_31; } } } else { -uint8_t x_35; +uint8_t x_32; lean_dec(x_12); lean_dec(x_5); lean_dec(x_3); -x_35 = !lean_is_exclusive(x_15); -if (x_35 == 0) +x_32 = !lean_is_exclusive(x_15); +if (x_32 == 0) { return x_15; } else { -lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_36 = lean_ctor_get(x_15, 0); -x_37 = lean_ctor_get(x_15, 1); -lean_inc(x_37); -lean_inc(x_36); +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_dec(x_15); -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_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_39; +uint8_t x_36; lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_3); -x_39 = !lean_is_exclusive(x_11); -if (x_39 == 0) +x_36 = !lean_is_exclusive(x_11); +if (x_36 == 0) { return x_11; } else { -lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_40 = lean_ctor_get(x_11, 0); -x_41 = lean_ctor_get(x_11, 1); -lean_inc(x_41); -lean_inc(x_40); +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_dec(x_11); -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; +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; } } } @@ -2453,7 +1824,7 @@ if (x_43 == 0) lean_object* x_44; lean_object* x_45; x_44 = lean_ctor_get(x_8, 0); lean_dec(x_44); -x_45 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_45 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_8, 0, x_45); return x_8; } @@ -2463,7 +1834,7 @@ lean_object* x_46; lean_object* x_47; lean_object* x_48; x_46 = lean_ctor_get(x_8, 1); lean_inc(x_46); lean_dec(x_8); -x_47 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_47 = l_Lean_Compiler_LCNF_erasedExpr; x_48 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_48, 0, x_47); lean_ctor_set(x_48, 1, x_46); @@ -2974,7 +2345,7 @@ if (x_16 == 0) lean_object* x_17; lean_object* x_18; x_17 = lean_ctor_get(x_11, 0); lean_dec(x_17); -x_18 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_18 = l_Lean_Compiler_LCNF_erasedExpr; lean_ctor_set(x_11, 0, x_18); return x_11; } @@ -2984,7 +2355,7 @@ lean_object* x_19; lean_object* x_20; lean_object* x_21; x_19 = lean_ctor_get(x_11, 1); lean_inc(x_19); lean_dec(x_11); -x_20 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_20 = l_Lean_Compiler_LCNF_erasedExpr; x_21 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_21, 0, x_20); lean_ctor_set(x_21, 1, x_19); @@ -3031,7 +2402,7 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_26 = l_Lean_Compiler_LCNF_anyTypeExpr; +x_26 = l_Lean_Compiler_LCNF_erasedExpr; x_27 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_27, 0, x_26); lean_ctor_set(x_27, 1, x_7); @@ -3083,1867 +2454,6 @@ lean_dec(x_1); return x_8; } } -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_saveLCNFType___spec__3(size_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { -_start: -{ -lean_object* x_7; uint8_t x_8; -x_7 = lean_array_get_size(x_2); -x_8 = lean_nat_dec_lt(x_5, x_7); -lean_dec(x_7); -if (x_8 == 0) -{ -lean_dec(x_5); -return x_6; -} -else -{ -lean_object* x_9; lean_object* x_10; uint64_t x_11; size_t x_12; size_t x_13; size_t x_14; size_t x_15; size_t x_16; size_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_9 = lean_array_fget(x_2, x_5); -x_10 = lean_array_fget(x_3, x_5); -x_11 = l_Lean_Name_hash___override(x_9); -x_12 = lean_uint64_to_usize(x_11); -x_13 = 1; -x_14 = lean_usize_sub(x_1, x_13); -x_15 = 5; -x_16 = lean_usize_mul(x_15, x_14); -x_17 = lean_usize_shift_right(x_12, x_16); -x_18 = lean_unsigned_to_nat(1u); -x_19 = lean_nat_add(x_5, x_18); -lean_dec(x_5); -x_20 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2(x_6, x_17, x_1, x_9, x_10); -x_4 = lean_box(0); -x_5 = x_19; -x_6 = x_20; -goto _start; -} -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; -x_5 = lean_ctor_get(x_1, 0); -lean_inc(x_5); -x_6 = lean_ctor_get(x_1, 1); -lean_inc(x_6); -x_7 = lean_array_get_size(x_5); -x_8 = lean_nat_dec_lt(x_2, x_7); -lean_dec(x_7); -if (x_8 == 0) -{ -uint8_t x_9; -lean_dec(x_2); -x_9 = !lean_is_exclusive(x_1); -if (x_9 == 0) -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; -x_10 = lean_ctor_get(x_1, 1); -lean_dec(x_10); -x_11 = lean_ctor_get(x_1, 0); -lean_dec(x_11); -x_12 = lean_array_push(x_5, x_3); -x_13 = lean_array_push(x_6, x_4); -lean_ctor_set(x_1, 1, x_13); -lean_ctor_set(x_1, 0, x_12); -return x_1; -} -else -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; -lean_dec(x_1); -x_14 = lean_array_push(x_5, x_3); -x_15 = lean_array_push(x_6, x_4); -x_16 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_16, 0, x_14); -lean_ctor_set(x_16, 1, x_15); -return x_16; -} -} -else -{ -lean_object* x_17; uint8_t x_18; -x_17 = lean_array_fget(x_5, x_2); -x_18 = lean_name_eq(x_3, x_17); -lean_dec(x_17); -if (x_18 == 0) -{ -lean_object* x_19; lean_object* x_20; -lean_dec(x_6); -lean_dec(x_5); -x_19 = lean_unsigned_to_nat(1u); -x_20 = lean_nat_add(x_2, x_19); -lean_dec(x_2); -x_2 = x_20; -goto _start; -} -else -{ -uint8_t x_22; -x_22 = !lean_is_exclusive(x_1); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_23 = lean_ctor_get(x_1, 1); -lean_dec(x_23); -x_24 = lean_ctor_get(x_1, 0); -lean_dec(x_24); -x_25 = lean_array_fset(x_5, x_2, x_3); -x_26 = lean_array_fset(x_6, x_2, x_4); -lean_dec(x_2); -lean_ctor_set(x_1, 1, x_26); -lean_ctor_set(x_1, 0, x_25); -return x_1; -} -else -{ -lean_object* x_27; lean_object* x_28; lean_object* x_29; -lean_dec(x_1); -x_27 = lean_array_fset(x_5, x_2, x_3); -x_28 = lean_array_fset(x_6, x_2, x_4); -lean_dec(x_2); -x_29 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_29, 0, x_27); -lean_ctor_set(x_29, 1, x_28); -return x_29; -} -} -} -} -} -static size_t _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__1() { -_start: -{ -size_t x_1; size_t x_2; size_t x_3; -x_1 = 1; -x_2 = 5; -x_3 = lean_usize_shift_left(x_1, x_2); -return x_3; -} -} -static size_t _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__2() { -_start: -{ -size_t x_1; size_t x_2; size_t x_3; -x_1 = 1; -x_2 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__1; -x_3 = lean_usize_sub(x_2, x_1); -return x_3; -} -} -static lean_object* _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_PersistentHashMap_mkEmptyEntries(lean_box(0), lean_box(0)); -return x_1; -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2(lean_object* x_1, size_t x_2, size_t x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -uint8_t x_6; -x_6 = !lean_is_exclusive(x_1); -if (x_6 == 0) -{ -lean_object* x_7; size_t x_8; size_t x_9; size_t x_10; size_t x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_7 = lean_ctor_get(x_1, 0); -x_8 = 1; -x_9 = 5; -x_10 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__2; -x_11 = lean_usize_land(x_2, x_10); -x_12 = lean_usize_to_nat(x_11); -x_13 = lean_array_get_size(x_7); -x_14 = lean_nat_dec_lt(x_12, x_13); -lean_dec(x_13); -if (x_14 == 0) -{ -lean_dec(x_12); -lean_dec(x_5); -lean_dec(x_4); -return x_1; -} -else -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_15 = lean_array_fget(x_7, x_12); -x_16 = lean_box(0); -x_17 = lean_array_fset(x_7, x_12, x_16); -switch (lean_obj_tag(x_15)) { -case 0: -{ -uint8_t x_18; -x_18 = !lean_is_exclusive(x_15); -if (x_18 == 0) -{ -lean_object* x_19; lean_object* x_20; uint8_t x_21; -x_19 = lean_ctor_get(x_15, 0); -x_20 = lean_ctor_get(x_15, 1); -x_21 = lean_name_eq(x_4, x_19); -if (x_21 == 0) -{ -lean_object* x_22; lean_object* x_23; lean_object* x_24; -lean_free_object(x_15); -x_22 = l_Lean_PersistentHashMap_mkCollisionNode___rarg(x_19, x_20, x_4, x_5); -x_23 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_23, 0, x_22); -x_24 = lean_array_fset(x_17, x_12, x_23); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_24); -return x_1; -} -else -{ -lean_object* x_25; -lean_dec(x_20); -lean_dec(x_19); -lean_ctor_set(x_15, 1, x_5); -lean_ctor_set(x_15, 0, x_4); -x_25 = lean_array_fset(x_17, x_12, x_15); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_25); -return x_1; -} -} -else -{ -lean_object* x_26; lean_object* x_27; uint8_t x_28; -x_26 = lean_ctor_get(x_15, 0); -x_27 = lean_ctor_get(x_15, 1); -lean_inc(x_27); -lean_inc(x_26); -lean_dec(x_15); -x_28 = lean_name_eq(x_4, x_26); -if (x_28 == 0) -{ -lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_29 = l_Lean_PersistentHashMap_mkCollisionNode___rarg(x_26, x_27, x_4, x_5); -x_30 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_30, 0, x_29); -x_31 = lean_array_fset(x_17, x_12, x_30); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_31); -return x_1; -} -else -{ -lean_object* x_32; lean_object* x_33; -lean_dec(x_27); -lean_dec(x_26); -x_32 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_32, 0, x_4); -lean_ctor_set(x_32, 1, x_5); -x_33 = lean_array_fset(x_17, x_12, x_32); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_33); -return x_1; -} -} -} -case 1: -{ -uint8_t x_34; -x_34 = !lean_is_exclusive(x_15); -if (x_34 == 0) -{ -lean_object* x_35; size_t x_36; size_t x_37; lean_object* x_38; lean_object* x_39; -x_35 = lean_ctor_get(x_15, 0); -x_36 = lean_usize_shift_right(x_2, x_9); -x_37 = lean_usize_add(x_3, x_8); -x_38 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2(x_35, x_36, x_37, x_4, x_5); -lean_ctor_set(x_15, 0, x_38); -x_39 = lean_array_fset(x_17, x_12, x_15); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_39); -return x_1; -} -else -{ -lean_object* x_40; size_t x_41; size_t x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; -x_40 = lean_ctor_get(x_15, 0); -lean_inc(x_40); -lean_dec(x_15); -x_41 = lean_usize_shift_right(x_2, x_9); -x_42 = lean_usize_add(x_3, x_8); -x_43 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2(x_40, x_41, x_42, x_4, x_5); -x_44 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_44, 0, x_43); -x_45 = lean_array_fset(x_17, x_12, x_44); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_45); -return x_1; -} -} -default: -{ -lean_object* x_46; lean_object* x_47; -x_46 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_46, 0, x_4); -lean_ctor_set(x_46, 1, x_5); -x_47 = lean_array_fset(x_17, x_12, x_46); -lean_dec(x_12); -lean_ctor_set(x_1, 0, x_47); -return x_1; -} -} -} -} -else -{ -lean_object* x_48; size_t x_49; size_t x_50; size_t x_51; size_t x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; -x_48 = lean_ctor_get(x_1, 0); -lean_inc(x_48); -lean_dec(x_1); -x_49 = 1; -x_50 = 5; -x_51 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__2; -x_52 = lean_usize_land(x_2, x_51); -x_53 = lean_usize_to_nat(x_52); -x_54 = lean_array_get_size(x_48); -x_55 = lean_nat_dec_lt(x_53, x_54); -lean_dec(x_54); -if (x_55 == 0) -{ -lean_object* x_56; -lean_dec(x_53); -lean_dec(x_5); -lean_dec(x_4); -x_56 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_56, 0, x_48); -return x_56; -} -else -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_57 = lean_array_fget(x_48, x_53); -x_58 = lean_box(0); -x_59 = lean_array_fset(x_48, x_53, x_58); -switch (lean_obj_tag(x_57)) { -case 0: -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; -x_60 = lean_ctor_get(x_57, 0); -lean_inc(x_60); -x_61 = lean_ctor_get(x_57, 1); -lean_inc(x_61); -if (lean_is_exclusive(x_57)) { - lean_ctor_release(x_57, 0); - lean_ctor_release(x_57, 1); - x_62 = x_57; -} else { - lean_dec_ref(x_57); - x_62 = lean_box(0); -} -x_63 = lean_name_eq(x_4, x_60); -if (x_63 == 0) -{ -lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; -lean_dec(x_62); -x_64 = l_Lean_PersistentHashMap_mkCollisionNode___rarg(x_60, x_61, x_4, x_5); -x_65 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_65, 0, x_64); -x_66 = lean_array_fset(x_59, x_53, x_65); -lean_dec(x_53); -x_67 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_67, 0, x_66); -return x_67; -} -else -{ -lean_object* x_68; lean_object* x_69; lean_object* x_70; -lean_dec(x_61); -lean_dec(x_60); -if (lean_is_scalar(x_62)) { - x_68 = lean_alloc_ctor(0, 2, 0); -} else { - x_68 = x_62; -} -lean_ctor_set(x_68, 0, x_4); -lean_ctor_set(x_68, 1, x_5); -x_69 = lean_array_fset(x_59, x_53, x_68); -lean_dec(x_53); -x_70 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_70, 0, x_69); -return x_70; -} -} -case 1: -{ -lean_object* x_71; lean_object* x_72; size_t x_73; size_t x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_71 = lean_ctor_get(x_57, 0); -lean_inc(x_71); -if (lean_is_exclusive(x_57)) { - lean_ctor_release(x_57, 0); - x_72 = x_57; -} else { - lean_dec_ref(x_57); - x_72 = lean_box(0); -} -x_73 = lean_usize_shift_right(x_2, x_50); -x_74 = lean_usize_add(x_3, x_49); -x_75 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2(x_71, x_73, x_74, x_4, x_5); -if (lean_is_scalar(x_72)) { - x_76 = lean_alloc_ctor(1, 1, 0); -} else { - x_76 = x_72; -} -lean_ctor_set(x_76, 0, x_75); -x_77 = lean_array_fset(x_59, x_53, x_76); -lean_dec(x_53); -x_78 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_78, 0, x_77); -return x_78; -} -default: -{ -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_79, 0, x_4); -lean_ctor_set(x_79, 1, x_5); -x_80 = lean_array_fset(x_59, x_53, x_79); -lean_dec(x_53); -x_81 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_81, 0, x_80); -return x_81; -} -} -} -} -} -else -{ -uint8_t x_82; -x_82 = !lean_is_exclusive(x_1); -if (x_82 == 0) -{ -lean_object* x_83; lean_object* x_84; size_t x_85; uint8_t x_86; -x_83 = lean_unsigned_to_nat(0u); -x_84 = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__4(x_1, x_83, x_4, x_5); -x_85 = 7; -x_86 = lean_usize_dec_le(x_85, x_3); -if (x_86 == 0) -{ -lean_object* x_87; lean_object* x_88; uint8_t x_89; -x_87 = l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(x_84); -x_88 = lean_unsigned_to_nat(4u); -x_89 = lean_nat_dec_lt(x_87, x_88); -lean_dec(x_87); -if (x_89 == 0) -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; -x_90 = lean_ctor_get(x_84, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_84, 1); -lean_inc(x_91); -lean_dec(x_84); -x_92 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__3; -x_93 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_saveLCNFType___spec__3(x_3, x_90, x_91, lean_box(0), x_83, x_92); -lean_dec(x_91); -lean_dec(x_90); -return x_93; -} -else -{ -return x_84; -} -} -else -{ -return x_84; -} -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; size_t x_99; uint8_t x_100; -x_94 = lean_ctor_get(x_1, 0); -x_95 = lean_ctor_get(x_1, 1); -lean_inc(x_95); -lean_inc(x_94); -lean_dec(x_1); -x_96 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_96, 0, x_94); -lean_ctor_set(x_96, 1, x_95); -x_97 = lean_unsigned_to_nat(0u); -x_98 = l_Lean_PersistentHashMap_insertAtCollisionNodeAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__4(x_96, x_97, x_4, x_5); -x_99 = 7; -x_100 = lean_usize_dec_le(x_99, x_3); -if (x_100 == 0) -{ -lean_object* x_101; lean_object* x_102; uint8_t x_103; -x_101 = l_Lean_PersistentHashMap_getCollisionNodeSize___rarg(x_98); -x_102 = lean_unsigned_to_nat(4u); -x_103 = lean_nat_dec_lt(x_101, x_102); -lean_dec(x_101); -if (x_103 == 0) -{ -lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; -x_104 = lean_ctor_get(x_98, 0); -lean_inc(x_104); -x_105 = lean_ctor_get(x_98, 1); -lean_inc(x_105); -lean_dec(x_98); -x_106 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__3; -x_107 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_saveLCNFType___spec__3(x_3, x_104, x_105, lean_box(0), x_97, x_106); -lean_dec(x_105); -lean_dec(x_104); -return x_107; -} -else -{ -return x_98; -} -} -else -{ -return x_98; -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_saveLCNFType___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -uint8_t x_4; -x_4 = !lean_is_exclusive(x_1); -if (x_4 == 0) -{ -lean_object* x_5; lean_object* x_6; uint64_t x_7; size_t x_8; size_t x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; -x_5 = lean_ctor_get(x_1, 0); -x_6 = lean_ctor_get(x_1, 1); -x_7 = l_Lean_Name_hash___override(x_2); -x_8 = lean_uint64_to_usize(x_7); -x_9 = 1; -x_10 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2(x_5, x_8, x_9, x_2, x_3); -x_11 = lean_unsigned_to_nat(1u); -x_12 = lean_nat_add(x_6, x_11); -lean_dec(x_6); -lean_ctor_set(x_1, 1, x_12); -lean_ctor_set(x_1, 0, x_10); -return x_1; -} -else -{ -lean_object* x_13; lean_object* x_14; uint64_t x_15; size_t x_16; size_t x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_13 = lean_ctor_get(x_1, 0); -x_14 = lean_ctor_get(x_1, 1); -lean_inc(x_14); -lean_inc(x_13); -lean_dec(x_1); -x_15 = l_Lean_Name_hash___override(x_2); -x_16 = lean_uint64_to_usize(x_15); -x_17 = 1; -x_18 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2(x_13, x_16, x_17, x_2, x_3); -x_19 = lean_unsigned_to_nat(1u); -x_20 = lean_nat_add(x_14, x_19); -lean_dec(x_14); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_18); -lean_ctor_set(x_21, 1, x_20); -return x_21; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveLCNFType___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -uint8_t x_4; -x_4 = !lean_is_exclusive(x_3); -if (x_4 == 0) -{ -lean_object* x_5; lean_object* x_6; -x_5 = lean_ctor_get(x_3, 0); -x_6 = l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_saveLCNFType___spec__1(x_5, x_1, x_2); -lean_ctor_set(x_3, 0, x_6); -return x_3; -} -else -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_7 = lean_ctor_get(x_3, 0); -x_8 = lean_ctor_get(x_3, 1); -lean_inc(x_8); -lean_inc(x_7); -lean_dec(x_3); -x_9 = l_Lean_PersistentHashMap_insert___at_Lean_Compiler_LCNF_saveLCNFType___spec__1(x_7, x_1, x_2); -x_10 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_10, 0, x_9); -lean_ctor_set(x_10, 1, x_8); -return x_10; -} -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_saveLCNFType___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = l_Lean_Compiler_LCNF_lcnfTypeExt; -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_saveLCNFType___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__3; -x_2 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_2, 0, x_1); -lean_ctor_set(x_2, 1, x_1); -return x_2; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveLCNFType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9; -x_6 = lean_st_ref_take(x_4, x_5); -x_7 = lean_ctor_get(x_6, 0); -lean_inc(x_7); -x_8 = lean_ctor_get(x_6, 1); -lean_inc(x_8); -lean_dec(x_6); -x_9 = !lean_is_exclusive(x_7); -if (x_9 == 0) -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_10 = lean_ctor_get(x_7, 0); -x_11 = lean_ctor_get(x_7, 4); -lean_dec(x_11); -x_12 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_saveLCNFType___lambda__1), 3, 2); -lean_closure_set(x_12, 0, x_1); -lean_closure_set(x_12, 1, x_2); -x_13 = l_Lean_Compiler_LCNF_saveLCNFType___closed__1; -x_14 = l_Lean_EnvExtensionInterfaceUnsafe_imp___elambda__2___rarg(x_13, x_10, x_12); -x_15 = l_Lean_Compiler_LCNF_saveLCNFType___closed__2; -lean_ctor_set(x_7, 4, x_15); -lean_ctor_set(x_7, 0, x_14); -x_16 = lean_st_ref_set(x_4, x_7, x_8); -x_17 = !lean_is_exclusive(x_16); -if (x_17 == 0) -{ -lean_object* x_18; lean_object* x_19; -x_18 = lean_ctor_get(x_16, 0); -lean_dec(x_18); -x_19 = lean_box(0); -lean_ctor_set(x_16, 0, x_19); -return x_16; -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_16, 1); -lean_inc(x_20); -lean_dec(x_16); -x_21 = lean_box(0); -x_22 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_20); -return x_22; -} -} -else -{ -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; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_23 = lean_ctor_get(x_7, 0); -x_24 = lean_ctor_get(x_7, 1); -x_25 = lean_ctor_get(x_7, 2); -x_26 = lean_ctor_get(x_7, 3); -x_27 = lean_ctor_get(x_7, 5); -x_28 = lean_ctor_get(x_7, 6); -lean_inc(x_28); -lean_inc(x_27); -lean_inc(x_26); -lean_inc(x_25); -lean_inc(x_24); -lean_inc(x_23); -lean_dec(x_7); -x_29 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_saveLCNFType___lambda__1), 3, 2); -lean_closure_set(x_29, 0, x_1); -lean_closure_set(x_29, 1, x_2); -x_30 = l_Lean_Compiler_LCNF_saveLCNFType___closed__1; -x_31 = l_Lean_EnvExtensionInterfaceUnsafe_imp___elambda__2___rarg(x_30, x_23, x_29); -x_32 = l_Lean_Compiler_LCNF_saveLCNFType___closed__2; -x_33 = lean_alloc_ctor(0, 7, 0); -lean_ctor_set(x_33, 0, x_31); -lean_ctor_set(x_33, 1, x_24); -lean_ctor_set(x_33, 2, x_25); -lean_ctor_set(x_33, 3, x_26); -lean_ctor_set(x_33, 4, x_32); -lean_ctor_set(x_33, 5, x_27); -lean_ctor_set(x_33, 6, x_28); -x_34 = lean_st_ref_set(x_4, x_33, x_8); -x_35 = lean_ctor_get(x_34, 1); -lean_inc(x_35); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - lean_ctor_release(x_34, 1); - x_36 = x_34; -} else { - lean_dec_ref(x_34); - x_36 = lean_box(0); -} -x_37 = lean_box(0); -if (lean_is_scalar(x_36)) { - x_38 = lean_alloc_ctor(0, 2, 0); -} else { - x_38 = x_36; -} -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_35); -return x_38; -} -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_saveLCNFType___spec__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) { -_start: -{ -size_t x_7; lean_object* x_8; -x_7 = lean_unbox_usize(x_1); -lean_dec(x_1); -x_8 = l_Lean_PersistentHashMap_insertAux_traverse___at_Lean_Compiler_LCNF_saveLCNFType___spec__3(x_7, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_3); -lean_dec(x_2); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -size_t x_6; size_t x_7; lean_object* x_8; -x_6 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_7 = lean_unbox_usize(x_3); -lean_dec(x_3); -x_8 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2(x_1, x_6, x_7, x_4, x_5); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_saveLCNFType___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; -x_6 = l_Lean_Compiler_LCNF_saveLCNFType(x_1, x_2, x_3, x_4, x_5); -lean_dec(x_4); -lean_dec(x_3); -return x_6; -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; uint8_t x_7; -x_6 = lean_array_get_size(x_1); -x_7 = lean_nat_dec_lt(x_4, x_6); -lean_dec(x_6); -if (x_7 == 0) -{ -lean_object* x_8; -lean_dec(x_4); -x_8 = lean_box(0); -return x_8; -} -else -{ -lean_object* x_9; uint8_t x_10; -x_9 = lean_array_fget(x_1, x_4); -x_10 = lean_name_eq(x_5, x_9); -lean_dec(x_9); -if (x_10 == 0) -{ -lean_object* x_11; lean_object* x_12; -x_11 = lean_unsigned_to_nat(1u); -x_12 = lean_nat_add(x_4, x_11); -lean_dec(x_4); -x_3 = lean_box(0); -x_4 = x_12; -goto _start; -} -else -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_array_fget(x_2, x_4); -lean_dec(x_4); -x_15 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_15, 0, x_14); -return x_15; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__2(lean_object* x_1, size_t x_2, lean_object* x_3) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_4; size_t x_5; size_t x_6; size_t x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_4 = lean_ctor_get(x_1, 0); -lean_inc(x_4); -lean_dec(x_1); -x_5 = 5; -x_6 = l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__2; -x_7 = lean_usize_land(x_2, x_6); -x_8 = lean_usize_to_nat(x_7); -x_9 = lean_box(2); -x_10 = lean_array_get(x_9, x_4, x_8); -lean_dec(x_8); -lean_dec(x_4); -switch (lean_obj_tag(x_10)) { -case 0: -{ -lean_object* x_11; lean_object* x_12; uint8_t x_13; -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_10, 1); -lean_inc(x_12); -lean_dec(x_10); -x_13 = lean_name_eq(x_3, x_11); -lean_dec(x_11); -if (x_13 == 0) -{ -lean_object* x_14; -lean_dec(x_12); -x_14 = lean_box(0); -return x_14; -} -else -{ -lean_object* x_15; -x_15 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_15, 0, x_12); -return x_15; -} -} -case 1: -{ -lean_object* x_16; size_t x_17; -x_16 = lean_ctor_get(x_10, 0); -lean_inc(x_16); -lean_dec(x_10); -x_17 = lean_usize_shift_right(x_2, x_5); -x_1 = x_16; -x_2 = x_17; -goto _start; -} -default: -{ -lean_object* x_19; -x_19 = lean_box(0); -return x_19; -} -} -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_20 = lean_ctor_get(x_1, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_1, 1); -lean_inc(x_21); -lean_dec(x_1); -x_22 = lean_unsigned_to_nat(0u); -x_23 = l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__3(x_20, x_21, lean_box(0), x_22, x_3); -lean_dec(x_21); -lean_dec(x_20); -return x_23; -} -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; uint64_t x_4; size_t x_5; lean_object* x_6; -x_3 = lean_ctor_get(x_1, 0); -lean_inc(x_3); -lean_dec(x_1); -x_4 = l_Lean_Name_hash___override(x_2); -x_5 = lean_uint64_to_usize(x_4); -x_6 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__2(x_3, x_5, x_2); -lean_dec(x_2); -return x_6; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__1() { -_start: -{ -uint8_t x_1; uint8_t x_2; uint8_t x_3; uint8_t x_4; lean_object* x_5; -x_1 = 0; -x_2 = 1; -x_3 = 1; -x_4 = 0; -x_5 = lean_alloc_ctor(0, 0, 14); -lean_ctor_set_uint8(x_5, 0, x_1); -lean_ctor_set_uint8(x_5, 1, x_1); -lean_ctor_set_uint8(x_5, 2, x_1); -lean_ctor_set_uint8(x_5, 3, x_1); -lean_ctor_set_uint8(x_5, 4, x_1); -lean_ctor_set_uint8(x_5, 5, x_2); -lean_ctor_set_uint8(x_5, 6, x_3); -lean_ctor_set_uint8(x_5, 7, x_1); -lean_ctor_set_uint8(x_5, 8, x_3); -lean_ctor_set_uint8(x_5, 9, x_3); -lean_ctor_set_uint8(x_5, 10, x_1); -lean_ctor_set_uint8(x_5, 11, x_3); -lean_ctor_set_uint8(x_5, 12, x_3); -lean_ctor_set_uint8(x_5, 13, x_4); -return x_5; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(32u); -x_2 = lean_mk_empty_array_with_capacity(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__3; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__5() { -_start: -{ -size_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_1 = 5; -x_2 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__4; -x_3 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__3; -x_4 = lean_unsigned_to_nat(0u); -x_5 = lean_alloc_ctor(0, 4, sizeof(size_t)*1); -lean_ctor_set(x_5, 0, x_2); -lean_ctor_set(x_5, 1, x_3); -lean_ctor_set(x_5, 2, x_4); -lean_ctor_set(x_5, 3, x_4); -lean_ctor_set_usize(x_5, 4, x_1); -return x_5; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__2; -x_2 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__5; -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__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 = lean_box(0); -x_2 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__1; -x_3 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__6; -x_4 = l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__9; -x_5 = lean_unsigned_to_nat(0u); -x_6 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_6, 0, x_2); -lean_ctor_set(x_6, 1, x_3); -lean_ctor_set(x_6, 2, x_4); -lean_ctor_set(x_6, 3, x_1); -lean_ctor_set(x_6, 4, x_5); -lean_ctor_set(x_6, 5, x_1); -return x_6; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__8() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__9() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__10() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_1 = lean_unsigned_to_nat(0u); -x_2 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__8; -x_3 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__9; -x_4 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__3; -x_5 = lean_alloc_ctor(0, 8, 0); -lean_ctor_set(x_5, 0, x_1); -lean_ctor_set(x_5, 1, x_1); -lean_ctor_set(x_5, 2, x_2); -lean_ctor_set(x_5, 3, x_3); -lean_ctor_set(x_5, 4, x_4); -lean_ctor_set(x_5, 5, x_2); -lean_ctor_set(x_5, 6, x_3); -lean_ctor_set(x_5, 7, x_3); -return x_5; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__11() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__12() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Meta_InfoCacheKey_instHashableInfoCacheKey___boxed), 1, 0); -return x_1; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__13() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__14() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__15() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Expr_instBEqExpr; -x_2 = lean_alloc_closure((void*)(l_instBEqProd___rarg), 4, 2); -lean_closure_set(x_2, 0, x_1); -lean_closure_set(x_2, 1, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__16() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Expr_instHashableExpr; -x_2 = lean_alloc_closure((void*)(l_instHashableProd___rarg___boxed), 3, 2); -lean_closure_set(x_2, 0, x_1); -lean_closure_set(x_2, 1, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__17() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__2; -x_2 = lean_unsigned_to_nat(0u); -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_1); -lean_ctor_set(x_3, 1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__18() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_1 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__11; -x_2 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__13; -x_3 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__14; -x_4 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__17; -x_5 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_5, 0, x_1); -lean_ctor_set(x_5, 1, x_2); -lean_ctor_set(x_5, 2, x_3); -lean_ctor_set(x_5, 3, x_1); -lean_ctor_set(x_5, 4, x_1); -lean_ctor_set(x_5, 5, x_4); -return x_5; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__19() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_1 = lean_box(0); -x_2 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__10; -x_3 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__18; -x_4 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__5; -x_5 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_5, 0, x_2); -lean_ctor_set(x_5, 1, x_3); -lean_ctor_set(x_5, 2, x_1); -lean_ctor_set(x_5, 3, x_4); -return x_5; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_getDeclLCNFType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -lean_object* x_5; uint8_t x_6; -x_5 = lean_st_ref_get(x_3, x_4); -x_6 = !lean_is_exclusive(x_5); -if (x_6 == 0) -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; -x_7 = lean_ctor_get(x_5, 0); -x_8 = lean_ctor_get(x_5, 1); -x_9 = lean_ctor_get(x_7, 0); -lean_inc(x_9); -lean_dec(x_7); -x_10 = l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState; -x_11 = l_Lean_Compiler_LCNF_saveLCNFType___closed__1; -x_12 = l_Lean_EnvExtensionInterfaceUnsafe_getState___rarg(x_10, x_11, x_9); -lean_dec(x_9); -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -lean_dec(x_12); -lean_inc(x_1); -x_14 = l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__1(x_13, x_1); -if (lean_obj_tag(x_14) == 0) -{ -lean_object* x_15; -lean_free_object(x_5); -lean_inc(x_1); -x_15 = l_Lean_getConstInfo___at___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_isValidMacroInline___spec__1(x_1, x_2, x_3, x_8); -if (lean_obj_tag(x_15) == 0) -{ -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); -x_18 = l_Lean_ConstantInfo_type(x_16); -lean_dec(x_16); -x_19 = lean_st_ref_get(x_3, x_17); -x_20 = lean_ctor_get(x_19, 1); -lean_inc(x_20); -lean_dec(x_19); -x_21 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__19; -x_22 = lean_st_mk_ref(x_21, x_20); -x_23 = lean_ctor_get(x_22, 0); -lean_inc(x_23); -x_24 = lean_ctor_get(x_22, 1); -lean_inc(x_24); -lean_dec(x_22); -x_25 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__7; -lean_inc(x_3); -lean_inc(x_2); -lean_inc(x_23); -x_26 = l_Lean_Compiler_LCNF_toLCNFType(x_18, x_25, x_23, x_2, x_3, x_24); -if (lean_obj_tag(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; uint8_t x_34; -x_27 = lean_ctor_get(x_26, 0); -lean_inc(x_27); -x_28 = lean_ctor_get(x_26, 1); -lean_inc(x_28); -lean_dec(x_26); -x_29 = lean_st_ref_get(x_3, x_28); -x_30 = lean_ctor_get(x_29, 1); -lean_inc(x_30); -lean_dec(x_29); -x_31 = lean_st_ref_get(x_23, x_30); -lean_dec(x_23); -x_32 = lean_ctor_get(x_31, 1); -lean_inc(x_32); -lean_dec(x_31); -lean_inc(x_27); -x_33 = l_Lean_Compiler_LCNF_saveLCNFType(x_1, x_27, x_2, x_3, x_32); -lean_dec(x_3); -lean_dec(x_2); -x_34 = !lean_is_exclusive(x_33); -if (x_34 == 0) -{ -lean_object* x_35; -x_35 = lean_ctor_get(x_33, 0); -lean_dec(x_35); -lean_ctor_set(x_33, 0, x_27); -return x_33; -} -else -{ -lean_object* x_36; lean_object* x_37; -x_36 = lean_ctor_get(x_33, 1); -lean_inc(x_36); -lean_dec(x_33); -x_37 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_37, 0, x_27); -lean_ctor_set(x_37, 1, x_36); -return x_37; -} -} -else -{ -uint8_t x_38; -lean_dec(x_23); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_38 = !lean_is_exclusive(x_26); -if (x_38 == 0) -{ -return x_26; -} -else -{ -lean_object* x_39; lean_object* x_40; lean_object* x_41; -x_39 = lean_ctor_get(x_26, 0); -x_40 = lean_ctor_get(x_26, 1); -lean_inc(x_40); -lean_inc(x_39); -lean_dec(x_26); -x_41 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_41, 0, x_39); -lean_ctor_set(x_41, 1, x_40); -return x_41; -} -} -} -else -{ -uint8_t x_42; -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_42 = !lean_is_exclusive(x_15); -if (x_42 == 0) -{ -return x_15; -} -else -{ -lean_object* x_43; lean_object* x_44; lean_object* x_45; -x_43 = lean_ctor_get(x_15, 0); -x_44 = lean_ctor_get(x_15, 1); -lean_inc(x_44); -lean_inc(x_43); -lean_dec(x_15); -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; -} -} -} -else -{ -lean_object* x_46; -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_46 = lean_ctor_get(x_14, 0); -lean_inc(x_46); -lean_dec(x_14); -lean_ctor_set(x_5, 0, x_46); -return x_5; -} -} -else -{ -lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; -x_47 = lean_ctor_get(x_5, 0); -x_48 = lean_ctor_get(x_5, 1); -lean_inc(x_48); -lean_inc(x_47); -lean_dec(x_5); -x_49 = lean_ctor_get(x_47, 0); -lean_inc(x_49); -lean_dec(x_47); -x_50 = l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState; -x_51 = l_Lean_Compiler_LCNF_saveLCNFType___closed__1; -x_52 = l_Lean_EnvExtensionInterfaceUnsafe_getState___rarg(x_50, x_51, x_49); -lean_dec(x_49); -x_53 = lean_ctor_get(x_52, 0); -lean_inc(x_53); -lean_dec(x_52); -lean_inc(x_1); -x_54 = l_Lean_PersistentHashMap_find_x3f___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__1(x_53, x_1); -if (lean_obj_tag(x_54) == 0) -{ -lean_object* x_55; -lean_inc(x_1); -x_55 = l_Lean_getConstInfo___at___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_isValidMacroInline___spec__1(x_1, x_2, x_3, x_48); -if (lean_obj_tag(x_55) == 0) -{ -lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; -x_56 = lean_ctor_get(x_55, 0); -lean_inc(x_56); -x_57 = lean_ctor_get(x_55, 1); -lean_inc(x_57); -lean_dec(x_55); -x_58 = l_Lean_ConstantInfo_type(x_56); -lean_dec(x_56); -x_59 = lean_st_ref_get(x_3, x_57); -x_60 = lean_ctor_get(x_59, 1); -lean_inc(x_60); -lean_dec(x_59); -x_61 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__19; -x_62 = lean_st_mk_ref(x_61, x_60); -x_63 = lean_ctor_get(x_62, 0); -lean_inc(x_63); -x_64 = lean_ctor_get(x_62, 1); -lean_inc(x_64); -lean_dec(x_62); -x_65 = l_Lean_Compiler_LCNF_getDeclLCNFType___closed__7; -lean_inc(x_3); -lean_inc(x_2); -lean_inc(x_63); -x_66 = l_Lean_Compiler_LCNF_toLCNFType(x_58, x_65, x_63, x_2, x_3, x_64); -if (lean_obj_tag(x_66) == 0) -{ -lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; -x_67 = lean_ctor_get(x_66, 0); -lean_inc(x_67); -x_68 = lean_ctor_get(x_66, 1); -lean_inc(x_68); -lean_dec(x_66); -x_69 = lean_st_ref_get(x_3, x_68); -x_70 = lean_ctor_get(x_69, 1); -lean_inc(x_70); -lean_dec(x_69); -x_71 = lean_st_ref_get(x_63, x_70); -lean_dec(x_63); -x_72 = lean_ctor_get(x_71, 1); -lean_inc(x_72); -lean_dec(x_71); -lean_inc(x_67); -x_73 = l_Lean_Compiler_LCNF_saveLCNFType(x_1, x_67, x_2, x_3, x_72); -lean_dec(x_3); -lean_dec(x_2); -x_74 = lean_ctor_get(x_73, 1); -lean_inc(x_74); -if (lean_is_exclusive(x_73)) { - lean_ctor_release(x_73, 0); - lean_ctor_release(x_73, 1); - x_75 = x_73; -} else { - lean_dec_ref(x_73); - x_75 = lean_box(0); -} -if (lean_is_scalar(x_75)) { - x_76 = lean_alloc_ctor(0, 2, 0); -} else { - x_76 = x_75; -} -lean_ctor_set(x_76, 0, x_67); -lean_ctor_set(x_76, 1, x_74); -return x_76; -} -else -{ -lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; -lean_dec(x_63); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_77 = lean_ctor_get(x_66, 0); -lean_inc(x_77); -x_78 = lean_ctor_get(x_66, 1); -lean_inc(x_78); -if (lean_is_exclusive(x_66)) { - lean_ctor_release(x_66, 0); - lean_ctor_release(x_66, 1); - x_79 = x_66; -} else { - lean_dec_ref(x_66); - x_79 = lean_box(0); -} -if (lean_is_scalar(x_79)) { - x_80 = lean_alloc_ctor(1, 2, 0); -} else { - x_80 = x_79; -} -lean_ctor_set(x_80, 0, x_77); -lean_ctor_set(x_80, 1, x_78); -return x_80; -} -} -else -{ -lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_81 = lean_ctor_get(x_55, 0); -lean_inc(x_81); -x_82 = lean_ctor_get(x_55, 1); -lean_inc(x_82); -if (lean_is_exclusive(x_55)) { - lean_ctor_release(x_55, 0); - lean_ctor_release(x_55, 1); - x_83 = x_55; -} else { - lean_dec_ref(x_55); - x_83 = lean_box(0); -} -if (lean_is_scalar(x_83)) { - x_84 = lean_alloc_ctor(1, 2, 0); -} else { - x_84 = x_83; -} -lean_ctor_set(x_84, 0, x_81); -lean_ctor_set(x_84, 1, x_82); -return x_84; -} -} -else -{ -lean_object* x_85; lean_object* x_86; -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_85 = lean_ctor_get(x_54, 0); -lean_inc(x_85); -lean_dec(x_54); -x_86 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_86, 0, x_85); -lean_ctor_set(x_86, 1, x_48); -return x_86; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -lean_object* x_6; -x_6 = l_Lean_PersistentHashMap_findAtAux___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__3(x_1, x_2, x_3, x_4, x_5); -lean_dec(x_5); -lean_dec(x_2); -lean_dec(x_1); -return x_6; -} -} -LEAN_EXPORT lean_object* l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -size_t x_4; lean_object* x_5; -x_4 = lean_unbox_usize(x_2); -lean_dec(x_2); -x_5 = l_Lean_PersistentHashMap_findAux___at_Lean_Compiler_LCNF_getDeclLCNFType___spec__2(x_1, x_4, x_3); -lean_dec(x_3); -return x_5; -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -uint8_t x_5; -x_5 = !lean_is_exclusive(x_4); -if (x_5 == 0) -{ -lean_object* x_6; lean_object* x_7; lean_object* x_8; -x_6 = lean_ctor_get(x_4, 1); -x_7 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_7, 0, x_1); -lean_ctor_set(x_7, 1, x_2); -x_8 = l_Lean_PersistentHashMap_insert___at_Lean_Core_instantiateTypeLevelParams___spec__1(x_6, x_3, x_7); -lean_ctor_set(x_4, 1, x_8); -return x_4; -} -else -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; -x_9 = lean_ctor_get(x_4, 0); -x_10 = lean_ctor_get(x_4, 1); -lean_inc(x_10); -lean_inc(x_9); -lean_dec(x_4); -x_11 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_11, 0, x_1); -lean_ctor_set(x_11, 1, x_2); -x_12 = l_Lean_PersistentHashMap_insert___at_Lean_Core_instantiateTypeLevelParams___spec__1(x_10, x_3, x_11); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_9); -lean_ctor_set(x_13, 1, x_12); -return x_13; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams___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) { -_start: -{ -lean_object* x_7; -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_1); -x_7 = l_Lean_Compiler_LCNF_getDeclLCNFType(x_1, x_4, x_5, x_6); -if (lean_obj_tag(x_7) == 0) -{ -lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_8 = lean_ctor_get(x_7, 0); -lean_inc(x_8); -x_9 = lean_ctor_get(x_7, 1); -lean_inc(x_9); -lean_dec(x_7); -lean_inc(x_1); -x_10 = l_Lean_getConstInfo___at___private_Lean_Compiler_InlineAttrs_0__Lean_Compiler_isValidMacroInline___spec__1(x_1, x_4, x_5, x_9); -lean_dec(x_4); -if (lean_obj_tag(x_10) == 0) -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_10, 1); -lean_inc(x_12); -lean_dec(x_10); -x_13 = l_Lean_ConstantInfo_levelParams(x_11); -lean_dec(x_11); -x_14 = l_Lean_Expr_instantiateLevelParamsCore_visit___at_Lean_Expr_instantiateLevelParams___spec__1(x_13, x_2, x_8); -lean_dec(x_13); -x_15 = lean_st_ref_take(x_5, x_12); -x_16 = lean_ctor_get(x_15, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); -x_18 = !lean_is_exclusive(x_16); -if (x_18 == 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; uint8_t x_26; -x_19 = lean_ctor_get(x_16, 0); -x_20 = lean_ctor_get(x_16, 4); -lean_dec(x_20); -lean_inc(x_14); -x_21 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams___lambda__1), 4, 3); -lean_closure_set(x_21, 0, x_2); -lean_closure_set(x_21, 1, x_14); -lean_closure_set(x_21, 2, x_1); -x_22 = l_Lean_Compiler_LCNF_saveLCNFType___closed__1; -x_23 = l_Lean_EnvExtensionInterfaceUnsafe_imp___elambda__2___rarg(x_22, x_19, x_21); -x_24 = l_Lean_Compiler_LCNF_saveLCNFType___closed__2; -lean_ctor_set(x_16, 4, x_24); -lean_ctor_set(x_16, 0, x_23); -x_25 = lean_st_ref_set(x_5, x_16, x_17); -lean_dec(x_5); -x_26 = !lean_is_exclusive(x_25); -if (x_26 == 0) -{ -lean_object* x_27; -x_27 = lean_ctor_get(x_25, 0); -lean_dec(x_27); -lean_ctor_set(x_25, 0, x_14); -return x_25; -} -else -{ -lean_object* x_28; lean_object* x_29; -x_28 = lean_ctor_get(x_25, 1); -lean_inc(x_28); -lean_dec(x_25); -x_29 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_29, 0, x_14); -lean_ctor_set(x_29, 1, x_28); -return x_29; -} -} -else -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_30 = lean_ctor_get(x_16, 0); -x_31 = lean_ctor_get(x_16, 1); -x_32 = lean_ctor_get(x_16, 2); -x_33 = lean_ctor_get(x_16, 3); -x_34 = lean_ctor_get(x_16, 5); -x_35 = lean_ctor_get(x_16, 6); -lean_inc(x_35); -lean_inc(x_34); -lean_inc(x_33); -lean_inc(x_32); -lean_inc(x_31); -lean_inc(x_30); -lean_dec(x_16); -lean_inc(x_14); -x_36 = lean_alloc_closure((void*)(l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams___lambda__1), 4, 3); -lean_closure_set(x_36, 0, x_2); -lean_closure_set(x_36, 1, x_14); -lean_closure_set(x_36, 2, x_1); -x_37 = l_Lean_Compiler_LCNF_saveLCNFType___closed__1; -x_38 = l_Lean_EnvExtensionInterfaceUnsafe_imp___elambda__2___rarg(x_37, x_30, x_36); -x_39 = l_Lean_Compiler_LCNF_saveLCNFType___closed__2; -x_40 = lean_alloc_ctor(0, 7, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_31); -lean_ctor_set(x_40, 2, x_32); -lean_ctor_set(x_40, 3, x_33); -lean_ctor_set(x_40, 4, x_39); -lean_ctor_set(x_40, 5, x_34); -lean_ctor_set(x_40, 6, x_35); -x_41 = lean_st_ref_set(x_5, x_40, x_17); -lean_dec(x_5); -x_42 = lean_ctor_get(x_41, 1); -lean_inc(x_42); -if (lean_is_exclusive(x_41)) { - lean_ctor_release(x_41, 0); - lean_ctor_release(x_41, 1); - x_43 = x_41; -} else { - lean_dec_ref(x_41); - x_43 = lean_box(0); -} -if (lean_is_scalar(x_43)) { - x_44 = lean_alloc_ctor(0, 2, 0); -} else { - x_44 = x_43; -} -lean_ctor_set(x_44, 0, x_14); -lean_ctor_set(x_44, 1, x_42); -return x_44; -} -} -else -{ -uint8_t x_45; -lean_dec(x_8); -lean_dec(x_5); -lean_dec(x_2); -lean_dec(x_1); -x_45 = !lean_is_exclusive(x_10); -if (x_45 == 0) -{ -return x_10; -} -else -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_10, 0); -x_47 = lean_ctor_get(x_10, 1); -lean_inc(x_47); -lean_inc(x_46); -lean_dec(x_10); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_46); -lean_ctor_set(x_48, 1, x_47); -return x_48; -} -} -} -else -{ -uint8_t x_49; -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_2); -lean_dec(x_1); -x_49 = !lean_is_exclusive(x_7); -if (x_49 == 0) -{ -return x_7; -} -else -{ -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_7, 0); -x_51 = lean_ctor_get(x_7, 1); -lean_inc(x_51); -lean_inc(x_50); -lean_dec(x_7); -x_52 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_52, 0, x_50); -lean_ctor_set(x_52, 1, x_51); -return x_52; -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { -_start: -{ -uint8_t x_6; -x_6 = l_List_isEmpty___rarg(x_2); -if (x_6 == 0) -{ -lean_object* x_7; uint8_t x_8; -x_7 = lean_st_ref_get(x_4, x_5); -x_8 = !lean_is_exclusive(x_7); -if (x_8 == 0) -{ -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; -x_9 = lean_ctor_get(x_7, 0); -x_10 = lean_ctor_get(x_7, 1); -x_11 = lean_ctor_get(x_9, 0); -lean_inc(x_11); -lean_dec(x_9); -x_12 = l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState; -x_13 = l_Lean_Compiler_LCNF_saveLCNFType___closed__1; -x_14 = l_Lean_EnvExtensionInterfaceUnsafe_getState___rarg(x_12, x_13, x_11); -lean_dec(x_11); -x_15 = lean_ctor_get(x_14, 1); -lean_inc(x_15); -lean_dec(x_14); -lean_inc(x_1); -x_16 = l_Lean_PersistentHashMap_find_x3f___at_Lean_Core_instantiateTypeLevelParams___spec__5(x_15, x_1); -if (lean_obj_tag(x_16) == 0) -{ -lean_object* x_17; lean_object* x_18; -lean_free_object(x_7); -x_17 = lean_box(0); -x_18 = l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams___lambda__2(x_1, x_2, x_17, x_3, x_4, x_10); -return x_18; -} -else -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; uint8_t x_22; -x_19 = lean_ctor_get(x_16, 0); -lean_inc(x_19); -lean_dec(x_16); -x_20 = lean_ctor_get(x_19, 0); -lean_inc(x_20); -x_21 = lean_ctor_get(x_19, 1); -lean_inc(x_21); -lean_dec(x_19); -x_22 = l_List_beq___at_Lean_Core_instantiateTypeLevelParams___spec__8(x_2, x_20); -lean_dec(x_20); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; -lean_dec(x_21); -lean_free_object(x_7); -x_23 = lean_box(0); -x_24 = l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams___lambda__2(x_1, x_2, x_23, x_3, x_4, x_10); -return x_24; -} -else -{ -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -lean_ctor_set(x_7, 0, x_21); -return x_7; -} -} -} -else -{ -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; lean_object* x_32; -x_25 = lean_ctor_get(x_7, 0); -x_26 = lean_ctor_get(x_7, 1); -lean_inc(x_26); -lean_inc(x_25); -lean_dec(x_7); -x_27 = lean_ctor_get(x_25, 0); -lean_inc(x_27); -lean_dec(x_25); -x_28 = l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState; -x_29 = l_Lean_Compiler_LCNF_saveLCNFType___closed__1; -x_30 = l_Lean_EnvExtensionInterfaceUnsafe_getState___rarg(x_28, x_29, x_27); -lean_dec(x_27); -x_31 = lean_ctor_get(x_30, 1); -lean_inc(x_31); -lean_dec(x_30); -lean_inc(x_1); -x_32 = l_Lean_PersistentHashMap_find_x3f___at_Lean_Core_instantiateTypeLevelParams___spec__5(x_31, x_1); -if (lean_obj_tag(x_32) == 0) -{ -lean_object* x_33; lean_object* x_34; -x_33 = lean_box(0); -x_34 = l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams___lambda__2(x_1, x_2, x_33, x_3, x_4, x_26); -return x_34; -} -else -{ -lean_object* x_35; lean_object* x_36; lean_object* x_37; uint8_t x_38; -x_35 = lean_ctor_get(x_32, 0); -lean_inc(x_35); -lean_dec(x_32); -x_36 = lean_ctor_get(x_35, 0); -lean_inc(x_36); -x_37 = lean_ctor_get(x_35, 1); -lean_inc(x_37); -lean_dec(x_35); -x_38 = l_List_beq___at_Lean_Core_instantiateTypeLevelParams___spec__8(x_2, x_36); -lean_dec(x_36); -if (x_38 == 0) -{ -lean_object* x_39; lean_object* x_40; -lean_dec(x_37); -x_39 = lean_box(0); -x_40 = l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams___lambda__2(x_1, x_2, x_39, x_3, x_4, x_26); -return x_40; -} -else -{ -lean_object* x_41; -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_41 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_41, 0, x_37); -lean_ctor_set(x_41, 1, x_26); -return x_41; -} -} -} -} -else -{ -lean_object* x_42; -lean_dec(x_2); -x_42 = l_Lean_Compiler_LCNF_getDeclLCNFType(x_1, x_3, x_4, x_5); -return x_42; -} -} -} -LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams___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) { -_start: -{ -lean_object* x_7; -x_7 = l_Lean_Compiler_LCNF_instantiateLCNFTypeLevelParams___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_3); -return x_7; -} -} LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_joinTypes(lean_object* x_1, lean_object* x_2) { _start: { @@ -4959,16 +2469,6 @@ static lean_object* _init_l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Compiler_LCNF_anyTypeExpr; -x_2 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Compiler_LCNF_joinTypes_x3f___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Compiler_LCNF_erasedExpr; x_2 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_2, 0, x_1); @@ -4979,114 +2479,106 @@ LEAN_EXPORT lean_object* l_Lean_Compiler_LCNF_joinTypes_x3f(lean_object* x_1, le _start: { uint8_t x_3; -x_3 = l_Lean_Expr_isAnyType(x_1); +x_3 = l_Lean_Expr_isErased(x_1); if (x_3 == 0) { uint8_t x_4; -x_4 = l_Lean_Expr_isAnyType(x_2); +x_4 = l_Lean_Expr_isErased(x_2); if (x_4 == 0) { uint8_t x_5; x_5 = lean_expr_eqv(x_1, x_2); if (x_5 == 0) { -uint8_t x_6; -x_6 = l_Lean_Expr_isErased(x_1); -if (x_6 == 0) -{ -uint8_t x_7; -x_7 = l_Lean_Expr_isErased(x_2); -if (x_7 == 0) -{ -lean_object* x_8; lean_object* x_9; uint8_t x_10; +lean_object* x_6; lean_object* x_7; uint8_t x_8; lean_inc(x_1); -x_8 = l_Lean_Expr_headBeta(x_1); +x_6 = l_Lean_Expr_headBeta(x_1); lean_inc(x_2); -x_9 = l_Lean_Expr_headBeta(x_2); -x_10 = lean_expr_eqv(x_1, x_8); +x_7 = l_Lean_Expr_headBeta(x_2); +x_8 = lean_expr_eqv(x_1, x_6); +if (x_8 == 0) +{ +lean_dec(x_2); +lean_dec(x_1); +x_1 = x_6; +x_2 = x_7; +goto _start; +} +else +{ +uint8_t x_10; +x_10 = lean_expr_eqv(x_2, x_7); if (x_10 == 0) { lean_dec(x_2); lean_dec(x_1); -x_1 = x_8; -x_2 = x_9; +x_1 = x_6; +x_2 = x_7; goto _start; } else { -uint8_t x_12; -x_12 = lean_expr_eqv(x_2, x_9); -if (x_12 == 0) -{ -lean_dec(x_2); -lean_dec(x_1); -x_1 = x_8; -x_2 = x_9; -goto _start; -} -else -{ -lean_dec(x_9); -lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); switch (lean_obj_tag(x_1)) { case 5: { switch (lean_obj_tag(x_2)) { case 5: { -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; -x_14 = lean_ctor_get(x_1, 0); -lean_inc(x_14); -x_15 = lean_ctor_get(x_1, 1); -lean_inc(x_15); +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; uint8_t x_19; +x_12 = lean_ctor_get(x_1, 0); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 1); +lean_inc(x_13); lean_dec(x_1); -x_16 = lean_ctor_get(x_2, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_2, 1); -lean_inc(x_17); +x_14 = lean_ctor_get(x_2, 0); +lean_inc(x_14); +x_15 = lean_ctor_get(x_2, 1); +lean_inc(x_15); lean_dec(x_2); -x_18 = l_Lean_Compiler_LCNF_joinTypes_x3f(x_14, x_16); -x_19 = lean_ctor_get(x_18, 0); -lean_inc(x_19); -lean_dec(x_18); -x_20 = l_Lean_Compiler_LCNF_joinTypes_x3f(x_15, x_17); -x_21 = !lean_is_exclusive(x_20); -if (x_21 == 0) +x_16 = l_Lean_Compiler_LCNF_joinTypes_x3f(x_12, x_14); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +lean_dec(x_16); +x_18 = l_Lean_Compiler_LCNF_joinTypes_x3f(x_13, x_15); +x_19 = !lean_is_exclusive(x_18); +if (x_19 == 0) { -lean_object* x_22; lean_object* x_23; -x_22 = lean_ctor_get(x_20, 0); -x_23 = l_Lean_Expr_app___override(x_19, x_22); -lean_ctor_set(x_20, 0, x_23); -return x_20; +lean_object* x_20; lean_object* x_21; +x_20 = lean_ctor_get(x_18, 0); +x_21 = l_Lean_Expr_app___override(x_17, x_20); +lean_ctor_set(x_18, 0, x_21); +return x_18; } else { -lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_24 = lean_ctor_get(x_20, 0); -lean_inc(x_24); -lean_dec(x_20); -x_25 = l_Lean_Expr_app___override(x_19, x_24); -x_26 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_26, 0, x_25); -return x_26; +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_18, 0); +lean_inc(x_22); +lean_dec(x_18); +x_23 = l_Lean_Expr_app___override(x_17, x_22); +x_24 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_24, 0, x_23); +return x_24; } } case 10: { +lean_object* x_25; +x_25 = lean_ctor_get(x_2, 1); +lean_inc(x_25); +lean_dec(x_2); +x_2 = x_25; +goto _start; +} +default: +{ lean_object* x_27; -x_27 = lean_ctor_get(x_2, 1); -lean_inc(x_27); -lean_dec(x_2); -x_2 = x_27; -goto _start; -} -default: -{ -lean_object* x_29; lean_dec(x_2); lean_dec(x_1); -x_29 = l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1; -return x_29; +x_27 = l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1; +return x_27; } } } @@ -5095,61 +2587,61 @@ case 6: switch (lean_obj_tag(x_2)) { case 6: { -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; -x_30 = lean_ctor_get(x_1, 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; uint8_t x_34; +x_28 = lean_ctor_get(x_1, 0); +lean_inc(x_28); +x_29 = lean_ctor_get(x_1, 1); +lean_inc(x_29); +x_30 = lean_ctor_get(x_1, 2); lean_inc(x_30); -x_31 = lean_ctor_get(x_1, 1); -lean_inc(x_31); -x_32 = lean_ctor_get(x_1, 2); -lean_inc(x_32); lean_dec(x_1); -x_33 = lean_ctor_get(x_2, 1); -lean_inc(x_33); -x_34 = lean_ctor_get(x_2, 2); -lean_inc(x_34); +x_31 = lean_ctor_get(x_2, 1); +lean_inc(x_31); +x_32 = lean_ctor_get(x_2, 2); +lean_inc(x_32); lean_dec(x_2); -x_35 = l_Lean_Compiler_LCNF_joinTypes_x3f(x_31, x_33); -x_36 = !lean_is_exclusive(x_35); -if (x_36 == 0) +x_33 = l_Lean_Compiler_LCNF_joinTypes_x3f(x_29, x_31); +x_34 = !lean_is_exclusive(x_33); +if (x_34 == 0) { -lean_object* x_37; lean_object* x_38; uint8_t x_39; lean_object* x_40; -x_37 = lean_ctor_get(x_35, 0); -x_38 = l_Lean_Compiler_LCNF_joinTypes(x_32, x_34); -x_39 = 0; -x_40 = l_Lean_Expr_lam___override(x_30, x_37, x_38, x_39); -lean_ctor_set(x_35, 0, x_40); -return x_35; +lean_object* x_35; lean_object* x_36; uint8_t x_37; lean_object* x_38; +x_35 = lean_ctor_get(x_33, 0); +x_36 = l_Lean_Compiler_LCNF_joinTypes(x_30, x_32); +x_37 = 0; +x_38 = l_Lean_Expr_lam___override(x_28, x_35, x_36, x_37); +lean_ctor_set(x_33, 0, x_38); +return x_33; } else { -lean_object* x_41; lean_object* x_42; uint8_t x_43; lean_object* x_44; lean_object* x_45; -x_41 = lean_ctor_get(x_35, 0); -lean_inc(x_41); -lean_dec(x_35); -x_42 = l_Lean_Compiler_LCNF_joinTypes(x_32, x_34); -x_43 = 0; -x_44 = l_Lean_Expr_lam___override(x_30, x_41, x_42, x_43); -x_45 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_45, 0, x_44); -return x_45; +lean_object* x_39; lean_object* x_40; uint8_t x_41; lean_object* x_42; lean_object* x_43; +x_39 = lean_ctor_get(x_33, 0); +lean_inc(x_39); +lean_dec(x_33); +x_40 = l_Lean_Compiler_LCNF_joinTypes(x_30, x_32); +x_41 = 0; +x_42 = l_Lean_Expr_lam___override(x_28, x_39, x_40, x_41); +x_43 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_43, 0, x_42); +return x_43; } } case 10: { +lean_object* x_44; +x_44 = lean_ctor_get(x_2, 1); +lean_inc(x_44); +lean_dec(x_2); +x_2 = x_44; +goto _start; +} +default: +{ lean_object* x_46; -x_46 = lean_ctor_get(x_2, 1); -lean_inc(x_46); -lean_dec(x_2); -x_2 = x_46; -goto _start; -} -default: -{ -lean_object* x_48; lean_dec(x_2); lean_dec(x_1); -x_48 = l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1; -return x_48; +x_46 = l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1; +return x_46; } } } @@ -5158,86 +2650,108 @@ case 7: switch (lean_obj_tag(x_2)) { case 7: { -lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; -x_49 = lean_ctor_get(x_1, 0); +lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; uint8_t x_53; +x_47 = lean_ctor_get(x_1, 0); +lean_inc(x_47); +x_48 = lean_ctor_get(x_1, 1); +lean_inc(x_48); +x_49 = lean_ctor_get(x_1, 2); lean_inc(x_49); -x_50 = lean_ctor_get(x_1, 1); -lean_inc(x_50); -x_51 = lean_ctor_get(x_1, 2); -lean_inc(x_51); lean_dec(x_1); -x_52 = lean_ctor_get(x_2, 1); -lean_inc(x_52); -x_53 = lean_ctor_get(x_2, 2); -lean_inc(x_53); +x_50 = lean_ctor_get(x_2, 1); +lean_inc(x_50); +x_51 = lean_ctor_get(x_2, 2); +lean_inc(x_51); lean_dec(x_2); -x_54 = l_Lean_Compiler_LCNF_joinTypes_x3f(x_50, x_52); -x_55 = !lean_is_exclusive(x_54); -if (x_55 == 0) +x_52 = l_Lean_Compiler_LCNF_joinTypes_x3f(x_48, x_50); +x_53 = !lean_is_exclusive(x_52); +if (x_53 == 0) { -lean_object* x_56; lean_object* x_57; uint8_t x_58; lean_object* x_59; -x_56 = lean_ctor_get(x_54, 0); -x_57 = l_Lean_Compiler_LCNF_joinTypes(x_51, x_53); -x_58 = 0; -x_59 = l_Lean_Expr_forallE___override(x_49, x_56, x_57, x_58); -lean_ctor_set(x_54, 0, x_59); -return x_54; +lean_object* x_54; lean_object* x_55; uint8_t x_56; lean_object* x_57; +x_54 = lean_ctor_get(x_52, 0); +x_55 = l_Lean_Compiler_LCNF_joinTypes(x_49, x_51); +x_56 = 0; +x_57 = l_Lean_Expr_forallE___override(x_47, x_54, x_55, x_56); +lean_ctor_set(x_52, 0, x_57); +return x_52; } else { -lean_object* x_60; lean_object* x_61; uint8_t x_62; lean_object* x_63; lean_object* x_64; -x_60 = lean_ctor_get(x_54, 0); -lean_inc(x_60); -lean_dec(x_54); -x_61 = l_Lean_Compiler_LCNF_joinTypes(x_51, x_53); -x_62 = 0; -x_63 = l_Lean_Expr_forallE___override(x_49, x_60, x_61, x_62); -x_64 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_64, 0, x_63); -return x_64; +lean_object* x_58; lean_object* x_59; uint8_t x_60; lean_object* x_61; lean_object* x_62; +x_58 = lean_ctor_get(x_52, 0); +lean_inc(x_58); +lean_dec(x_52); +x_59 = l_Lean_Compiler_LCNF_joinTypes(x_49, x_51); +x_60 = 0; +x_61 = l_Lean_Expr_forallE___override(x_47, x_58, x_59, x_60); +x_62 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_62, 0, x_61); +return x_62; } } case 10: { -lean_object* x_65; -x_65 = lean_ctor_get(x_2, 1); -lean_inc(x_65); +lean_object* x_63; +x_63 = lean_ctor_get(x_2, 1); +lean_inc(x_63); lean_dec(x_2); -x_2 = x_65; +x_2 = x_63; goto _start; } default: { -lean_object* x_67; +lean_object* x_65; lean_dec(x_2); lean_dec(x_1); -x_67 = l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1; -return x_67; +x_65 = l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1; +return x_65; } } } case 10: { -lean_object* x_68; -x_68 = lean_ctor_get(x_1, 1); -lean_inc(x_68); +lean_object* x_66; +x_66 = lean_ctor_get(x_1, 1); +lean_inc(x_66); lean_dec(x_1); -x_1 = x_68; +x_1 = x_66; goto _start; } default: { if (lean_obj_tag(x_2) == 10) { -lean_object* x_70; -x_70 = lean_ctor_get(x_2, 1); -lean_inc(x_70); +lean_object* x_68; +x_68 = lean_ctor_get(x_2, 1); +lean_inc(x_68); lean_dec(x_2); -x_2 = x_70; +x_2 = x_68; goto _start; } else { +lean_object* x_70; +lean_dec(x_2); +lean_dec(x_1); +x_70 = l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1; +return x_70; +} +} +} +} +} +} +else +{ +lean_object* x_71; +lean_dec(x_2); +x_71 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_71, 0, x_1); +return x_71; +} +} +else +{ lean_object* x_72; lean_dec(x_2); lean_dec(x_1); @@ -5245,55 +2759,15 @@ x_72 = l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1; return x_72; } } -} -} -} -} else { lean_object* x_73; lean_dec(x_2); lean_dec(x_1); -x_73 = l_Lean_Compiler_LCNF_joinTypes_x3f___closed__2; +x_73 = l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1; return x_73; } } -else -{ -lean_object* x_74; -lean_dec(x_2); -lean_dec(x_1); -x_74 = l_Lean_Compiler_LCNF_joinTypes_x3f___closed__2; -return x_74; -} -} -else -{ -lean_object* x_75; -lean_dec(x_2); -x_75 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_75, 0, x_1); -return x_75; -} -} -else -{ -lean_object* x_76; -lean_dec(x_1); -x_76 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_76, 0, x_2); -return x_76; -} -} -else -{ -lean_object* x_77; -lean_dec(x_2); -x_77 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_77, 0, x_1); -return x_77; -} -} } LEAN_EXPORT uint8_t l_Lean_Compiler_LCNF_isTypeFormerType(lean_object* x_1) { _start: @@ -5419,7 +2893,7 @@ default: { uint8_t x_6; lean_dec(x_2); -x_6 = l_Lean_Expr_isAnyType(x_1); +x_6 = l_Lean_Expr_isErased(x_1); lean_dec(x_1); return x_6; } @@ -5651,111 +3125,16 @@ l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___ lean_mark_persistent(l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__8); l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__9 = _init_l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__9(); lean_mark_persistent(l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______unexpand__lcErased__1___closed__9); -l_Lean_Compiler_term_u22a4___closed__1 = _init_l_Lean_Compiler_term_u22a4___closed__1(); -lean_mark_persistent(l_Lean_Compiler_term_u22a4___closed__1); -l_Lean_Compiler_term_u22a4___closed__2 = _init_l_Lean_Compiler_term_u22a4___closed__2(); -lean_mark_persistent(l_Lean_Compiler_term_u22a4___closed__2); -l_Lean_Compiler_term_u22a4___closed__3 = _init_l_Lean_Compiler_term_u22a4___closed__3(); -lean_mark_persistent(l_Lean_Compiler_term_u22a4___closed__3); -l_Lean_Compiler_term_u22a4___closed__4 = _init_l_Lean_Compiler_term_u22a4___closed__4(); -lean_mark_persistent(l_Lean_Compiler_term_u22a4___closed__4); -l_Lean_Compiler_term_u22a4___closed__5 = _init_l_Lean_Compiler_term_u22a4___closed__5(); -lean_mark_persistent(l_Lean_Compiler_term_u22a4___closed__5); -l_Lean_Compiler_term_u22a4 = _init_l_Lean_Compiler_term_u22a4(); -lean_mark_persistent(l_Lean_Compiler_term_u22a4); -l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__1 = _init_l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__1(); -lean_mark_persistent(l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__1); -l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__2 = _init_l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__2(); -lean_mark_persistent(l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__2); -l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__3 = _init_l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__3(); -lean_mark_persistent(l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__3); -l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__4 = _init_l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__4(); -lean_mark_persistent(l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__4); -l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__5 = _init_l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__5(); -lean_mark_persistent(l_Lean_Compiler___aux__Lean__Compiler__LCNF__Types______macroRules__Lean__Compiler__term_u22a4__1___closed__5); -l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__1 = _init_l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__1); -l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__2 = _init_l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__2); -l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__3 = _init_l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__3(); -lean_mark_persistent(l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default___closed__3); -l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default = _init_l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default(); -lean_mark_persistent(l_Lean_Compiler_LCNF_LCNFTypeExtState_types___default); -l_Lean_Compiler_LCNF_LCNFTypeExtState_instLevelType___default = _init_l_Lean_Compiler_LCNF_LCNFTypeExtState_instLevelType___default(); -lean_mark_persistent(l_Lean_Compiler_LCNF_LCNFTypeExtState_instLevelType___default); -l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState___closed__1 = _init_l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState___closed__1); -l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState = _init_l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState(); -lean_mark_persistent(l_Lean_Compiler_LCNF_instInhabitedLCNFTypeExtState); -l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Types___hyg_656____closed__1 = _init_l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Types___hyg_656____closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Types___hyg_656____closed__1); -if (builtin) {res = l_Lean_Compiler_LCNF_initFn____x40_Lean_Compiler_LCNF_Types___hyg_656_(lean_io_mk_world()); -if (lean_io_result_is_error(res)) return res; -l_Lean_Compiler_LCNF_lcnfTypeExt = lean_io_result_get_value(res); -lean_mark_persistent(l_Lean_Compiler_LCNF_lcnfTypeExt); -lean_dec_ref(res); -}l_Lean_Compiler_LCNF_erasedExpr___closed__1 = _init_l_Lean_Compiler_LCNF_erasedExpr___closed__1(); +l_Lean_Compiler_LCNF_erasedExpr___closed__1 = _init_l_Lean_Compiler_LCNF_erasedExpr___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_erasedExpr___closed__1); l_Lean_Compiler_LCNF_erasedExpr = _init_l_Lean_Compiler_LCNF_erasedExpr(); lean_mark_persistent(l_Lean_Compiler_LCNF_erasedExpr); -l_Lean_Compiler_LCNF_anyTypeExpr___closed__1 = _init_l_Lean_Compiler_LCNF_anyTypeExpr___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_anyTypeExpr___closed__1); -l_Lean_Compiler_LCNF_anyTypeExpr = _init_l_Lean_Compiler_LCNF_anyTypeExpr(); -lean_mark_persistent(l_Lean_Compiler_LCNF_anyTypeExpr); l_Lean_Compiler_LCNF_toLCNFType___lambda__1___closed__1 = _init_l_Lean_Compiler_LCNF_toLCNFType___lambda__1___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_toLCNFType___lambda__1___closed__1); l_Lean_Compiler_LCNF_toLCNFType___lambda__2___closed__1 = _init_l_Lean_Compiler_LCNF_toLCNFType___lambda__2___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_toLCNFType___lambda__2___closed__1); -l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__1 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__1(); -l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__2 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__2(); -l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__3 = _init_l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__3(); -lean_mark_persistent(l_Lean_PersistentHashMap_insertAux___at_Lean_Compiler_LCNF_saveLCNFType___spec__2___closed__3); -l_Lean_Compiler_LCNF_saveLCNFType___closed__1 = _init_l_Lean_Compiler_LCNF_saveLCNFType___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_saveLCNFType___closed__1); -l_Lean_Compiler_LCNF_saveLCNFType___closed__2 = _init_l_Lean_Compiler_LCNF_saveLCNFType___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_saveLCNFType___closed__2); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__1 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__1(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__1); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__2 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__2); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__3 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__3(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__3); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__4 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__4(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__4); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__5 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__5(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__5); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__6 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__6(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__6); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__7 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__7(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__7); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__8 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__8(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__8); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__9 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__9(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__9); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__10 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__10(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__10); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__11 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__11(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__11); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__12 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__12(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__12); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__13 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__13(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__13); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__14 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__14(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__14); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__15 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__15(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__15); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__16 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__16(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__16); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__17 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__17(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__17); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__18 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__18(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__18); -l_Lean_Compiler_LCNF_getDeclLCNFType___closed__19 = _init_l_Lean_Compiler_LCNF_getDeclLCNFType___closed__19(); -lean_mark_persistent(l_Lean_Compiler_LCNF_getDeclLCNFType___closed__19); l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1 = _init_l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1(); lean_mark_persistent(l_Lean_Compiler_LCNF_joinTypes_x3f___closed__1); -l_Lean_Compiler_LCNF_joinTypes_x3f___closed__2 = _init_l_Lean_Compiler_LCNF_joinTypes_x3f___closed__2(); -lean_mark_persistent(l_Lean_Compiler_LCNF_joinTypes_x3f___closed__2); return lean_io_result_mk_ok(lean_box(0)); } #ifdef __cplusplus diff --git a/stage0/stdlib/Lean/Compiler/Main.c b/stage0/stdlib/Lean/Compiler/Main.c index 2e14144a5a..aa1d821ad8 100644 --- a/stage0/stdlib/Lean/Compiler/Main.c +++ b/stage0/stdlib/Lean/Compiler/Main.c @@ -17,35 +17,15 @@ lean_object* l_Lean_registerTraceClass(lean_object*, uint8_t, lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); lean_object* l_Lean_Name_mkStr2(lean_object*, lean_object*); static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Main___hyg_49____closed__4; -LEAN_EXPORT lean_object* l_Lean_profileitM___at_Lean_Compiler_compile___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Main___hyg_49_(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_compile(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_profileitM___at_Lean_Compiler_LCNF_main___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Main___hyg_49____closed__3; static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Main___hyg_49____closed__1; static lean_object* l_Lean_Compiler_compile___closed__1; lean_object* l_Lean_Compiler_LCNF_compile(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_profileitM___at_Lean_Compiler_compile___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_profileitIOUnsafe___rarg(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Compiler_initFn____x40_Lean_Compiler_Main___hyg_49____closed__2; -LEAN_EXPORT lean_object* l_Lean_profileitM___at_Lean_Compiler_compile___spec__1(lean_object*); LEAN_EXPORT lean_object* l_Lean_Compiler_compile___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_profileitM___at_Lean_Compiler_compile___spec__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { -_start: -{ -lean_object* x_7; lean_object* x_8; -x_7 = lean_apply_2(x_3, x_4, x_5); -x_8 = l_Lean_profileitIOUnsafe___rarg(x_1, x_2, x_7, x_6); -return x_8; -} -} -LEAN_EXPORT lean_object* l_Lean_profileitM___at_Lean_Compiler_compile___spec__1(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_profileitM___at_Lean_Compiler_compile___spec__1___rarg___boxed), 6, 0); -return x_2; -} -} LEAN_EXPORT lean_object* l_Lean_Compiler_compile___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { @@ -118,21 +98,11 @@ lean_inc(x_5); x_6 = lean_alloc_closure((void*)(l_Lean_Compiler_compile___lambda__1), 4, 1); lean_closure_set(x_6, 0, x_1); x_7 = l_Lean_Compiler_compile___closed__1; -x_8 = l_Lean_profileitM___at_Lean_Compiler_compile___spec__1___rarg(x_7, x_5, x_6, x_2, x_3, x_4); +x_8 = l_Lean_profileitM___at_Lean_Compiler_LCNF_main___spec__1___rarg(x_7, x_5, x_6, x_2, x_3, x_4); lean_dec(x_5); return x_8; } } -LEAN_EXPORT lean_object* l_Lean_profileitM___at_Lean_Compiler_compile___spec__1___rarg___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) { -_start: -{ -lean_object* x_7; -x_7 = l_Lean_profileitM___at_Lean_Compiler_compile___spec__1___rarg(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_2); -lean_dec(x_1); -return x_7; -} -} static lean_object* _init_l_Lean_Compiler_initFn____x40_Lean_Compiler_Main___hyg_49____closed__1() { _start: { diff --git a/stage0/stdlib/Lean/Data/Name.c b/stage0/stdlib/Lean/Data/Name.c index 24c8e1230d..e39e5bd011 100644 --- a/stage0/stdlib/Lean/Data/Name.c +++ b/stage0/stdlib/Lean/Data/Name.c @@ -42,7 +42,6 @@ LEAN_EXPORT uint8_t l_Lean_Name_eqStr(lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Name_instDecidableRelNameLtHasLtQuick___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_String_toName(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Name_components_x27(lean_object*); lean_object* l_Lean_Name_num___override(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Name_hashEx___boxed(lean_object*); LEAN_EXPORT uint64_t lean_name_hash_exported(lean_object*); @@ -80,6 +79,7 @@ LEAN_EXPORT lean_object* l_Lean_Name_isNum___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_Name_isPrefixOf___boxed(lean_object*, lean_object*); static lean_object* l_Lean_Name_getString_x21___closed__4; LEAN_EXPORT lean_object* l_panic___at_Lean_Name_getString_x21___spec__1(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Name_componentsRev(lean_object*); LEAN_EXPORT lean_object* l_Lean_Name_components(lean_object*); uint8_t lean_string_dec_lt(lean_object*, lean_object*); uint8_t lean_string_dec_eq(lean_object*, lean_object*); @@ -275,7 +275,7 @@ return x_7; } } } -LEAN_EXPORT lean_object* l_Lean_Name_components_x27(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Name_componentsRev(lean_object* x_1) { _start: { switch (lean_obj_tag(x_1)) { @@ -295,7 +295,7 @@ lean_inc(x_4); lean_dec(x_1); x_5 = lean_box(0); x_6 = l_Lean_Name_str___override(x_5, x_4); -x_7 = l_Lean_Name_components_x27(x_3); +x_7 = l_Lean_Name_componentsRev(x_3); x_8 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_8, 0, x_6); lean_ctor_set(x_8, 1, x_7); @@ -311,7 +311,7 @@ lean_inc(x_10); lean_dec(x_1); x_11 = lean_box(0); x_12 = l_Lean_Name_num___override(x_11, x_10); -x_13 = l_Lean_Name_components_x27(x_9); +x_13 = l_Lean_Name_componentsRev(x_9); x_14 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_14, 0, x_12); lean_ctor_set(x_14, 1, x_13); @@ -324,7 +324,7 @@ LEAN_EXPORT lean_object* l_Lean_Name_components(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_Name_components_x27(x_1); +x_2 = l_Lean_Name_componentsRev(x_1); x_3 = l_List_reverse___rarg(x_2); return x_3; } diff --git a/stage0/stdlib/Lean/Data/Position.c b/stage0/stdlib/Lean/Data/Position.c index fc32f0ae42..04c8883f65 100644 --- a/stage0/stdlib/Lean/Data/Position.c +++ b/stage0/stdlib/Lean/Data/Position.c @@ -38,7 +38,6 @@ lean_object* lean_string_append(lean_object*, lean_object*); static lean_object* l___private_Lean_Data_Position_0__Lean_reprPosition____x40_Lean_Data_Position___hyg_162____closed__18; lean_object* l_Lean_Name_mkStr3(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Position_instToFormatPosition___closed__2; -lean_object* l_prodHasDecidableLt___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Data_Position_0__Lean_reprPosition____x40_Lean_Data_Position___hyg_162____closed__5; static lean_object* l___private_Lean_Data_Position_0__Lean_reprPosition____x40_Lean_Data_Position___hyg_162____closed__2; static lean_object* l_Lean_FileMap_toPosition_loop___closed__3; @@ -84,6 +83,7 @@ LEAN_EXPORT lean_object* l_Lean_FileMap_toPosition_toColumn___boxed(lean_object* LEAN_EXPORT uint8_t l_Lean_instDecidableEqPosition(lean_object*, lean_object*); static lean_object* l___private_Lean_Data_Position_0__Lean_reprPosition____x40_Lean_Data_Position___hyg_162____closed__7; LEAN_EXPORT lean_object* l_Lean_Position_instToStringPosition(lean_object*); +lean_object* l_Prod_lexLtDec___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_FileMap_toPosition_loop(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_uint32_dec_eq(uint32_t, uint32_t); static lean_object* l_Lean_Position_instToExprPosition___lambda__1___closed__5; @@ -492,7 +492,7 @@ lean_ctor_set(x_8, 0, x_5); lean_ctor_set(x_8, 1, x_6); x_9 = l_Lean_Position_lt___closed__1; x_10 = l_Lean_Position_lt___closed__2; -x_11 = l_prodHasDecidableLt___rarg(x_9, x_9, x_10, x_10, x_7, x_8); +x_11 = l_Prod_lexLtDec___rarg(x_9, x_9, x_10, x_10, x_7, x_8); return x_11; } } diff --git a/stage0/stdlib/Lean/Data/RBMap.c b/stage0/stdlib/Lean/Data/RBMap.c index c8f0176283..c3b13e968c 100644 --- a/stage0/stdlib/Lean/Data/RBMap.c +++ b/stage0/stdlib/Lean/Data/RBMap.c @@ -62,6 +62,7 @@ LEAN_EXPORT lean_object* l_Lean_RBMap_max___rarg___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_min___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_findCore_x3f___rarg(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_appendTrees(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Data_RBMap_0__Lean_RBNode_depth_match__1_splitter___rarg___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_forM___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_min_x21(lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Lean_RBMap_isEmpty___rarg(lean_object*); @@ -106,7 +107,6 @@ LEAN_EXPORT lean_object* l_Lean_RBNode_fold___at_Lean_RBMap_intersectBy___spec__ LEAN_EXPORT lean_object* l_Lean_RBNode_any___rarg___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_forIn_visit___at_Lean_RBMap_forIn___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_forM___rarg(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_RBNode_balance_u2083___rarg(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_intersectBy___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_fold___at_Lean_RBMap_mergeBy___spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_mkRBMap(lean_object*, lean_object*, lean_object*); @@ -133,6 +133,7 @@ LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_RBMap_fromArray___s LEAN_EXPORT lean_object* l_Lean_RBNode_min___rarg___boxed(lean_object*); static lean_object* l_Lean_RBMap_min_x21___rarg___closed__3; LEAN_EXPORT lean_object* l_Lean_RBMap_any___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_RBNode_size___rarg___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_depth(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_contains___rarg___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_instEmptyCollectionRBMap(lean_object*, lean_object*, lean_object*); @@ -144,6 +145,7 @@ LEAN_EXPORT lean_object* l_Lean_RBMap_instReprRBMap(lean_object*, lean_object*, LEAN_EXPORT lean_object* l_Lean_RBNode_mapM___rarg___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_max(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_instForInRBMapProd___rarg___lambda__1(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Data_RBMap_0__Lean_RBNode_depth_match__1_splitter(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_forIn___rarg___lambda__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_mapM___rarg(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_instForInRBMapProd___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -154,12 +156,14 @@ LEAN_EXPORT lean_object* l_Lean_RBMap_all(lean_object*, lean_object*, lean_objec LEAN_EXPORT lean_object* l_Lean_RBNode_foldM___rarg(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_maxDepth___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_balance2(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_RBNode_size___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_max___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_instForInRBMapProd(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_instReprRBMap___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_RBMap_instReprRBMap___rarg___closed__1; LEAN_EXPORT lean_object* l_Lean_RBNode_foldM___rarg___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_forIn(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_RBNode_size(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_find_x3f___rarg(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_max_x21(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_all___rarg___boxed(lean_object*, lean_object*); @@ -185,7 +189,6 @@ static lean_object* l_Lean_RBMap_find_x21___rarg___closed__2; LEAN_EXPORT lean_object* l_Lean_RBMap_fromArray(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_balRight(lean_object*, lean_object*); size_t lean_usize_of_nat(lean_object*); -LEAN_EXPORT lean_object* l_Lean_RBNode_balance_u2083(lean_object*, lean_object*); static lean_object* l_Lean_RBMap_maxDepth___rarg___closed__1; LEAN_EXPORT lean_object* l_Lean_RBMap_min___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_fold___boxed(lean_object*, lean_object*, lean_object*, lean_object*); @@ -224,6 +227,7 @@ lean_object* l_panic___rarg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_forM___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBMap_any(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_balance2___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l___private_Lean_Data_RBMap_0__Lean_RBNode_depth_match__1_splitter___rarg(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_forIn_visit___at_Lean_RBMap_instForInRBMapProd___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Rbcolor_noConfusion___rarg___lambda__1(lean_object*); LEAN_EXPORT lean_object* l_Lean_RBNode_ins(lean_object*, lean_object*); @@ -5159,9459 +5163,6 @@ x_3 = lean_alloc_closure((void*)(l_Lean_RBNode_insert___rarg), 4, 0); return x_3; } } -LEAN_EXPORT lean_object* l_Lean_RBNode_balance_u2083___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_5; lean_object* x_6; -x_5 = 1; -x_6 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_6, 0, x_1); -lean_ctor_set(x_6, 1, x_2); -lean_ctor_set(x_6, 2, x_3); -lean_ctor_set(x_6, 3, x_4); -lean_ctor_set_uint8(x_6, sizeof(void*)*4, x_5); -return x_6; -} -else -{ -uint8_t x_7; -x_7 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_7 == 0) -{ -lean_object* x_8; -x_8 = lean_ctor_get(x_4, 0); -lean_inc(x_8); -if (lean_obj_tag(x_8) == 0) -{ -lean_object* x_9; -x_9 = lean_ctor_get(x_4, 3); -lean_inc(x_9); -if (lean_obj_tag(x_9) == 0) -{ -uint8_t x_10; lean_object* x_11; -x_10 = 1; -x_11 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_11, 0, x_1); -lean_ctor_set(x_11, 1, x_2); -lean_ctor_set(x_11, 2, x_3); -lean_ctor_set(x_11, 3, x_4); -lean_ctor_set_uint8(x_11, sizeof(void*)*4, x_10); -return x_11; -} -else -{ -uint8_t x_12; -x_12 = lean_ctor_get_uint8(x_9, sizeof(void*)*4); -if (x_12 == 0) -{ -uint8_t x_13; -x_13 = !lean_is_exclusive(x_4); -if (x_13 == 0) -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; -x_14 = lean_ctor_get(x_4, 1); -x_15 = lean_ctor_get(x_4, 2); -x_16 = lean_ctor_get(x_4, 3); -lean_dec(x_16); -x_17 = lean_ctor_get(x_4, 0); -lean_dec(x_17); -x_18 = !lean_is_exclusive(x_9); -if (x_18 == 0) -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; uint8_t x_24; lean_object* x_25; -x_19 = lean_ctor_get(x_9, 0); -x_20 = lean_ctor_get(x_9, 1); -x_21 = lean_ctor_get(x_9, 2); -x_22 = lean_ctor_get(x_9, 3); -x_23 = 1; -lean_ctor_set(x_9, 3, x_8); -lean_ctor_set(x_9, 2, x_3); -lean_ctor_set(x_9, 1, x_2); -lean_ctor_set(x_9, 0, x_1); -lean_ctor_set_uint8(x_9, sizeof(void*)*4, x_23); -lean_ctor_set(x_4, 3, x_22); -lean_ctor_set(x_4, 2, x_21); -lean_ctor_set(x_4, 1, x_20); -lean_ctor_set(x_4, 0, x_19); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_23); -x_24 = 0; -x_25 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_25, 0, x_9); -lean_ctor_set(x_25, 1, x_14); -lean_ctor_set(x_25, 2, x_15); -lean_ctor_set(x_25, 3, x_4); -lean_ctor_set_uint8(x_25, sizeof(void*)*4, x_24); -return x_25; -} -else -{ -lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; uint8_t x_30; lean_object* x_31; uint8_t x_32; lean_object* x_33; -x_26 = lean_ctor_get(x_9, 0); -x_27 = lean_ctor_get(x_9, 1); -x_28 = lean_ctor_get(x_9, 2); -x_29 = lean_ctor_get(x_9, 3); -lean_inc(x_29); -lean_inc(x_28); -lean_inc(x_27); -lean_inc(x_26); -lean_dec(x_9); -x_30 = 1; -x_31 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_31, 0, x_1); -lean_ctor_set(x_31, 1, x_2); -lean_ctor_set(x_31, 2, x_3); -lean_ctor_set(x_31, 3, x_8); -lean_ctor_set_uint8(x_31, sizeof(void*)*4, x_30); -lean_ctor_set(x_4, 3, x_29); -lean_ctor_set(x_4, 2, x_28); -lean_ctor_set(x_4, 1, x_27); -lean_ctor_set(x_4, 0, x_26); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_30); -x_32 = 0; -x_33 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_33, 0, x_31); -lean_ctor_set(x_33, 1, x_14); -lean_ctor_set(x_33, 2, x_15); -lean_ctor_set(x_33, 3, x_4); -lean_ctor_set_uint8(x_33, sizeof(void*)*4, x_32); -return x_33; -} -} -else -{ -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; lean_object* x_42; lean_object* x_43; uint8_t x_44; lean_object* x_45; -x_34 = lean_ctor_get(x_4, 1); -x_35 = lean_ctor_get(x_4, 2); -lean_inc(x_35); -lean_inc(x_34); -lean_dec(x_4); -x_36 = lean_ctor_get(x_9, 0); -lean_inc(x_36); -x_37 = lean_ctor_get(x_9, 1); -lean_inc(x_37); -x_38 = lean_ctor_get(x_9, 2); -lean_inc(x_38); -x_39 = lean_ctor_get(x_9, 3); -lean_inc(x_39); -if (lean_is_exclusive(x_9)) { - lean_ctor_release(x_9, 0); - lean_ctor_release(x_9, 1); - lean_ctor_release(x_9, 2); - lean_ctor_release(x_9, 3); - x_40 = x_9; -} else { - lean_dec_ref(x_9); - x_40 = lean_box(0); -} -x_41 = 1; -if (lean_is_scalar(x_40)) { - x_42 = lean_alloc_ctor(1, 4, 1); -} else { - x_42 = x_40; -} -lean_ctor_set(x_42, 0, x_1); -lean_ctor_set(x_42, 1, x_2); -lean_ctor_set(x_42, 2, x_3); -lean_ctor_set(x_42, 3, x_8); -lean_ctor_set_uint8(x_42, sizeof(void*)*4, x_41); -x_43 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_43, 0, x_36); -lean_ctor_set(x_43, 1, x_37); -lean_ctor_set(x_43, 2, x_38); -lean_ctor_set(x_43, 3, x_39); -lean_ctor_set_uint8(x_43, sizeof(void*)*4, x_41); -x_44 = 0; -x_45 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_45, 0, x_42); -lean_ctor_set(x_45, 1, x_34); -lean_ctor_set(x_45, 2, x_35); -lean_ctor_set(x_45, 3, x_43); -lean_ctor_set_uint8(x_45, sizeof(void*)*4, x_44); -return x_45; -} -} -else -{ -uint8_t x_46; -x_46 = !lean_is_exclusive(x_9); -if (x_46 == 0) -{ -lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; -x_47 = lean_ctor_get(x_9, 3); -lean_dec(x_47); -x_48 = lean_ctor_get(x_9, 2); -lean_dec(x_48); -x_49 = lean_ctor_get(x_9, 1); -lean_dec(x_49); -x_50 = lean_ctor_get(x_9, 0); -lean_dec(x_50); -x_51 = 1; -lean_ctor_set(x_9, 3, x_4); -lean_ctor_set(x_9, 2, x_3); -lean_ctor_set(x_9, 1, x_2); -lean_ctor_set(x_9, 0, x_1); -lean_ctor_set_uint8(x_9, sizeof(void*)*4, x_51); -return x_9; -} -else -{ -uint8_t x_52; lean_object* x_53; -lean_dec(x_9); -x_52 = 1; -x_53 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_53, 0, x_1); -lean_ctor_set(x_53, 1, x_2); -lean_ctor_set(x_53, 2, x_3); -lean_ctor_set(x_53, 3, x_4); -lean_ctor_set_uint8(x_53, sizeof(void*)*4, x_52); -return x_53; -} -} -} -} -else -{ -uint8_t x_54; -x_54 = lean_ctor_get_uint8(x_8, sizeof(void*)*4); -if (x_54 == 0) -{ -lean_object* x_55; -x_55 = lean_ctor_get(x_4, 3); -lean_inc(x_55); -if (lean_obj_tag(x_55) == 0) -{ -uint8_t x_56; -x_56 = !lean_is_exclusive(x_4); -if (x_56 == 0) -{ -lean_object* x_57; lean_object* x_58; uint8_t x_59; -x_57 = lean_ctor_get(x_4, 3); -lean_dec(x_57); -x_58 = lean_ctor_get(x_4, 0); -lean_dec(x_58); -x_59 = !lean_is_exclusive(x_8); -if (x_59 == 0) -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; uint8_t x_65; lean_object* x_66; -x_60 = lean_ctor_get(x_8, 0); -x_61 = lean_ctor_get(x_8, 1); -x_62 = lean_ctor_get(x_8, 2); -x_63 = lean_ctor_get(x_8, 3); -x_64 = 1; -lean_ctor_set(x_8, 3, x_60); -lean_ctor_set(x_8, 2, x_3); -lean_ctor_set(x_8, 1, x_2); -lean_ctor_set(x_8, 0, x_1); -lean_ctor_set_uint8(x_8, sizeof(void*)*4, x_64); -lean_ctor_set(x_4, 0, x_63); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_64); -x_65 = 0; -x_66 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_66, 0, x_8); -lean_ctor_set(x_66, 1, x_61); -lean_ctor_set(x_66, 2, x_62); -lean_ctor_set(x_66, 3, x_4); -lean_ctor_set_uint8(x_66, sizeof(void*)*4, x_65); -return x_66; -} -else -{ -lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; uint8_t x_71; lean_object* x_72; uint8_t x_73; lean_object* x_74; -x_67 = lean_ctor_get(x_8, 0); -x_68 = lean_ctor_get(x_8, 1); -x_69 = lean_ctor_get(x_8, 2); -x_70 = lean_ctor_get(x_8, 3); -lean_inc(x_70); -lean_inc(x_69); -lean_inc(x_68); -lean_inc(x_67); -lean_dec(x_8); -x_71 = 1; -x_72 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_72, 0, x_1); -lean_ctor_set(x_72, 1, x_2); -lean_ctor_set(x_72, 2, x_3); -lean_ctor_set(x_72, 3, x_67); -lean_ctor_set_uint8(x_72, sizeof(void*)*4, x_71); -lean_ctor_set(x_4, 0, x_70); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_71); -x_73 = 0; -x_74 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_74, 0, x_72); -lean_ctor_set(x_74, 1, x_68); -lean_ctor_set(x_74, 2, x_69); -lean_ctor_set(x_74, 3, x_4); -lean_ctor_set_uint8(x_74, sizeof(void*)*4, x_73); -return x_74; -} -} -else -{ -lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; uint8_t x_82; lean_object* x_83; lean_object* x_84; uint8_t x_85; lean_object* x_86; -x_75 = lean_ctor_get(x_4, 1); -x_76 = lean_ctor_get(x_4, 2); -lean_inc(x_76); -lean_inc(x_75); -lean_dec(x_4); -x_77 = lean_ctor_get(x_8, 0); -lean_inc(x_77); -x_78 = lean_ctor_get(x_8, 1); -lean_inc(x_78); -x_79 = lean_ctor_get(x_8, 2); -lean_inc(x_79); -x_80 = lean_ctor_get(x_8, 3); -lean_inc(x_80); -if (lean_is_exclusive(x_8)) { - lean_ctor_release(x_8, 0); - lean_ctor_release(x_8, 1); - lean_ctor_release(x_8, 2); - lean_ctor_release(x_8, 3); - x_81 = x_8; -} else { - lean_dec_ref(x_8); - x_81 = lean_box(0); -} -x_82 = 1; -if (lean_is_scalar(x_81)) { - x_83 = lean_alloc_ctor(1, 4, 1); -} else { - x_83 = x_81; -} -lean_ctor_set(x_83, 0, x_1); -lean_ctor_set(x_83, 1, x_2); -lean_ctor_set(x_83, 2, x_3); -lean_ctor_set(x_83, 3, x_77); -lean_ctor_set_uint8(x_83, sizeof(void*)*4, x_82); -x_84 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_84, 0, x_80); -lean_ctor_set(x_84, 1, x_75); -lean_ctor_set(x_84, 2, x_76); -lean_ctor_set(x_84, 3, x_55); -lean_ctor_set_uint8(x_84, sizeof(void*)*4, x_82); -x_85 = 0; -x_86 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_86, 0, x_83); -lean_ctor_set(x_86, 1, x_78); -lean_ctor_set(x_86, 2, x_79); -lean_ctor_set(x_86, 3, x_84); -lean_ctor_set_uint8(x_86, sizeof(void*)*4, x_85); -return x_86; -} -} -else -{ -uint8_t x_87; -x_87 = lean_ctor_get_uint8(x_55, sizeof(void*)*4); -if (x_87 == 0) -{ -uint8_t x_88; -x_88 = !lean_is_exclusive(x_4); -if (x_88 == 0) -{ -lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; uint8_t x_93; -x_89 = lean_ctor_get(x_4, 1); -x_90 = lean_ctor_get(x_4, 2); -x_91 = lean_ctor_get(x_4, 3); -lean_dec(x_91); -x_92 = lean_ctor_get(x_4, 0); -lean_dec(x_92); -x_93 = !lean_is_exclusive(x_8); -if (x_93 == 0) -{ -uint8_t x_94; -x_94 = !lean_is_exclusive(x_55); -if (x_94 == 0) -{ -lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; uint8_t x_103; uint8_t x_104; lean_object* x_105; -x_95 = lean_ctor_get(x_8, 0); -x_96 = lean_ctor_get(x_8, 1); -x_97 = lean_ctor_get(x_8, 2); -x_98 = lean_ctor_get(x_8, 3); -x_99 = lean_ctor_get(x_55, 0); -x_100 = lean_ctor_get(x_55, 1); -x_101 = lean_ctor_get(x_55, 2); -x_102 = lean_ctor_get(x_55, 3); -lean_ctor_set(x_55, 3, x_98); -lean_ctor_set(x_55, 2, x_97); -lean_ctor_set(x_55, 1, x_96); -lean_ctor_set(x_55, 0, x_95); -x_103 = 1; -lean_ctor_set(x_8, 3, x_55); -lean_ctor_set(x_8, 2, x_3); -lean_ctor_set(x_8, 1, x_2); -lean_ctor_set(x_8, 0, x_1); -lean_ctor_set_uint8(x_8, sizeof(void*)*4, x_103); -lean_ctor_set(x_4, 3, x_102); -lean_ctor_set(x_4, 2, x_101); -lean_ctor_set(x_4, 1, x_100); -lean_ctor_set(x_4, 0, x_99); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_103); -x_104 = 0; -x_105 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_105, 0, x_8); -lean_ctor_set(x_105, 1, x_89); -lean_ctor_set(x_105, 2, x_90); -lean_ctor_set(x_105, 3, x_4); -lean_ctor_set_uint8(x_105, sizeof(void*)*4, x_104); -return x_105; -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; uint8_t x_115; uint8_t x_116; lean_object* x_117; -x_106 = lean_ctor_get(x_8, 0); -x_107 = lean_ctor_get(x_8, 1); -x_108 = lean_ctor_get(x_8, 2); -x_109 = lean_ctor_get(x_8, 3); -x_110 = lean_ctor_get(x_55, 0); -x_111 = lean_ctor_get(x_55, 1); -x_112 = lean_ctor_get(x_55, 2); -x_113 = lean_ctor_get(x_55, 3); -lean_inc(x_113); -lean_inc(x_112); -lean_inc(x_111); -lean_inc(x_110); -lean_dec(x_55); -x_114 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_114, 0, x_106); -lean_ctor_set(x_114, 1, x_107); -lean_ctor_set(x_114, 2, x_108); -lean_ctor_set(x_114, 3, x_109); -lean_ctor_set_uint8(x_114, sizeof(void*)*4, x_87); -x_115 = 1; -lean_ctor_set(x_8, 3, x_114); -lean_ctor_set(x_8, 2, x_3); -lean_ctor_set(x_8, 1, x_2); -lean_ctor_set(x_8, 0, x_1); -lean_ctor_set_uint8(x_8, sizeof(void*)*4, x_115); -lean_ctor_set(x_4, 3, x_113); -lean_ctor_set(x_4, 2, x_112); -lean_ctor_set(x_4, 1, x_111); -lean_ctor_set(x_4, 0, x_110); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_115); -x_116 = 0; -x_117 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_117, 0, x_8); -lean_ctor_set(x_117, 1, x_89); -lean_ctor_set(x_117, 2, x_90); -lean_ctor_set(x_117, 3, x_4); -lean_ctor_set_uint8(x_117, sizeof(void*)*4, x_116); -return x_117; -} -} -else -{ -lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; uint8_t x_128; lean_object* x_129; uint8_t x_130; lean_object* x_131; -x_118 = lean_ctor_get(x_8, 0); -x_119 = lean_ctor_get(x_8, 1); -x_120 = lean_ctor_get(x_8, 2); -x_121 = lean_ctor_get(x_8, 3); -lean_inc(x_121); -lean_inc(x_120); -lean_inc(x_119); -lean_inc(x_118); -lean_dec(x_8); -x_122 = lean_ctor_get(x_55, 0); -lean_inc(x_122); -x_123 = lean_ctor_get(x_55, 1); -lean_inc(x_123); -x_124 = lean_ctor_get(x_55, 2); -lean_inc(x_124); -x_125 = lean_ctor_get(x_55, 3); -lean_inc(x_125); -if (lean_is_exclusive(x_55)) { - lean_ctor_release(x_55, 0); - lean_ctor_release(x_55, 1); - lean_ctor_release(x_55, 2); - lean_ctor_release(x_55, 3); - x_126 = x_55; -} else { - lean_dec_ref(x_55); - x_126 = lean_box(0); -} -if (lean_is_scalar(x_126)) { - x_127 = lean_alloc_ctor(1, 4, 1); -} else { - x_127 = x_126; -} -lean_ctor_set(x_127, 0, x_118); -lean_ctor_set(x_127, 1, x_119); -lean_ctor_set(x_127, 2, x_120); -lean_ctor_set(x_127, 3, x_121); -lean_ctor_set_uint8(x_127, sizeof(void*)*4, x_87); -x_128 = 1; -x_129 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_129, 0, x_1); -lean_ctor_set(x_129, 1, x_2); -lean_ctor_set(x_129, 2, x_3); -lean_ctor_set(x_129, 3, x_127); -lean_ctor_set_uint8(x_129, sizeof(void*)*4, x_128); -lean_ctor_set(x_4, 3, x_125); -lean_ctor_set(x_4, 2, x_124); -lean_ctor_set(x_4, 1, x_123); -lean_ctor_set(x_4, 0, x_122); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_128); -x_130 = 0; -x_131 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_131, 0, x_129); -lean_ctor_set(x_131, 1, x_89); -lean_ctor_set(x_131, 2, x_90); -lean_ctor_set(x_131, 3, x_4); -lean_ctor_set_uint8(x_131, sizeof(void*)*4, x_130); -return x_131; -} -} -else -{ -lean_object* x_132; lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; uint8_t x_145; lean_object* x_146; lean_object* x_147; uint8_t x_148; lean_object* x_149; -x_132 = lean_ctor_get(x_4, 1); -x_133 = lean_ctor_get(x_4, 2); -lean_inc(x_133); -lean_inc(x_132); -lean_dec(x_4); -x_134 = lean_ctor_get(x_8, 0); -lean_inc(x_134); -x_135 = lean_ctor_get(x_8, 1); -lean_inc(x_135); -x_136 = lean_ctor_get(x_8, 2); -lean_inc(x_136); -x_137 = lean_ctor_get(x_8, 3); -lean_inc(x_137); -if (lean_is_exclusive(x_8)) { - lean_ctor_release(x_8, 0); - lean_ctor_release(x_8, 1); - lean_ctor_release(x_8, 2); - lean_ctor_release(x_8, 3); - x_138 = x_8; -} else { - lean_dec_ref(x_8); - x_138 = lean_box(0); -} -x_139 = lean_ctor_get(x_55, 0); -lean_inc(x_139); -x_140 = lean_ctor_get(x_55, 1); -lean_inc(x_140); -x_141 = lean_ctor_get(x_55, 2); -lean_inc(x_141); -x_142 = lean_ctor_get(x_55, 3); -lean_inc(x_142); -if (lean_is_exclusive(x_55)) { - lean_ctor_release(x_55, 0); - lean_ctor_release(x_55, 1); - lean_ctor_release(x_55, 2); - lean_ctor_release(x_55, 3); - x_143 = x_55; -} else { - lean_dec_ref(x_55); - x_143 = lean_box(0); -} -if (lean_is_scalar(x_143)) { - x_144 = lean_alloc_ctor(1, 4, 1); -} else { - x_144 = x_143; -} -lean_ctor_set(x_144, 0, x_134); -lean_ctor_set(x_144, 1, x_135); -lean_ctor_set(x_144, 2, x_136); -lean_ctor_set(x_144, 3, x_137); -lean_ctor_set_uint8(x_144, sizeof(void*)*4, x_87); -x_145 = 1; -if (lean_is_scalar(x_138)) { - x_146 = lean_alloc_ctor(1, 4, 1); -} else { - x_146 = x_138; -} -lean_ctor_set(x_146, 0, x_1); -lean_ctor_set(x_146, 1, x_2); -lean_ctor_set(x_146, 2, x_3); -lean_ctor_set(x_146, 3, x_144); -lean_ctor_set_uint8(x_146, sizeof(void*)*4, x_145); -x_147 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_147, 0, x_139); -lean_ctor_set(x_147, 1, x_140); -lean_ctor_set(x_147, 2, x_141); -lean_ctor_set(x_147, 3, x_142); -lean_ctor_set_uint8(x_147, sizeof(void*)*4, x_145); -x_148 = 0; -x_149 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_149, 0, x_146); -lean_ctor_set(x_149, 1, x_132); -lean_ctor_set(x_149, 2, x_133); -lean_ctor_set(x_149, 3, x_147); -lean_ctor_set_uint8(x_149, sizeof(void*)*4, x_148); -return x_149; -} -} -else -{ -uint8_t x_150; -x_150 = !lean_is_exclusive(x_4); -if (x_150 == 0) -{ -lean_object* x_151; lean_object* x_152; uint8_t x_153; -x_151 = lean_ctor_get(x_4, 3); -lean_dec(x_151); -x_152 = lean_ctor_get(x_4, 0); -lean_dec(x_152); -x_153 = !lean_is_exclusive(x_8); -if (x_153 == 0) -{ -lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; uint8_t x_158; uint8_t x_159; lean_object* x_160; -x_154 = lean_ctor_get(x_8, 0); -x_155 = lean_ctor_get(x_8, 1); -x_156 = lean_ctor_get(x_8, 2); -x_157 = lean_ctor_get(x_8, 3); -x_158 = 1; -lean_ctor_set(x_8, 3, x_154); -lean_ctor_set(x_8, 2, x_3); -lean_ctor_set(x_8, 1, x_2); -lean_ctor_set(x_8, 0, x_1); -lean_ctor_set_uint8(x_8, sizeof(void*)*4, x_158); -lean_ctor_set(x_4, 0, x_157); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_158); -x_159 = 0; -x_160 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_160, 0, x_8); -lean_ctor_set(x_160, 1, x_155); -lean_ctor_set(x_160, 2, x_156); -lean_ctor_set(x_160, 3, x_4); -lean_ctor_set_uint8(x_160, sizeof(void*)*4, x_159); -return x_160; -} -else -{ -lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; uint8_t x_165; lean_object* x_166; uint8_t x_167; lean_object* x_168; -x_161 = lean_ctor_get(x_8, 0); -x_162 = lean_ctor_get(x_8, 1); -x_163 = lean_ctor_get(x_8, 2); -x_164 = lean_ctor_get(x_8, 3); -lean_inc(x_164); -lean_inc(x_163); -lean_inc(x_162); -lean_inc(x_161); -lean_dec(x_8); -x_165 = 1; -x_166 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_166, 0, x_1); -lean_ctor_set(x_166, 1, x_2); -lean_ctor_set(x_166, 2, x_3); -lean_ctor_set(x_166, 3, x_161); -lean_ctor_set_uint8(x_166, sizeof(void*)*4, x_165); -lean_ctor_set(x_4, 0, x_164); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_165); -x_167 = 0; -x_168 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_168, 0, x_166); -lean_ctor_set(x_168, 1, x_162); -lean_ctor_set(x_168, 2, x_163); -lean_ctor_set(x_168, 3, x_4); -lean_ctor_set_uint8(x_168, sizeof(void*)*4, x_167); -return x_168; -} -} -else -{ -lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; uint8_t x_176; lean_object* x_177; lean_object* x_178; uint8_t x_179; lean_object* x_180; -x_169 = lean_ctor_get(x_4, 1); -x_170 = lean_ctor_get(x_4, 2); -lean_inc(x_170); -lean_inc(x_169); -lean_dec(x_4); -x_171 = lean_ctor_get(x_8, 0); -lean_inc(x_171); -x_172 = lean_ctor_get(x_8, 1); -lean_inc(x_172); -x_173 = lean_ctor_get(x_8, 2); -lean_inc(x_173); -x_174 = lean_ctor_get(x_8, 3); -lean_inc(x_174); -if (lean_is_exclusive(x_8)) { - lean_ctor_release(x_8, 0); - lean_ctor_release(x_8, 1); - lean_ctor_release(x_8, 2); - lean_ctor_release(x_8, 3); - x_175 = x_8; -} else { - lean_dec_ref(x_8); - x_175 = lean_box(0); -} -x_176 = 1; -if (lean_is_scalar(x_175)) { - x_177 = lean_alloc_ctor(1, 4, 1); -} else { - x_177 = x_175; -} -lean_ctor_set(x_177, 0, x_1); -lean_ctor_set(x_177, 1, x_2); -lean_ctor_set(x_177, 2, x_3); -lean_ctor_set(x_177, 3, x_171); -lean_ctor_set_uint8(x_177, sizeof(void*)*4, x_176); -x_178 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_178, 0, x_174); -lean_ctor_set(x_178, 1, x_169); -lean_ctor_set(x_178, 2, x_170); -lean_ctor_set(x_178, 3, x_55); -lean_ctor_set_uint8(x_178, sizeof(void*)*4, x_176); -x_179 = 0; -x_180 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_180, 0, x_177); -lean_ctor_set(x_180, 1, x_172); -lean_ctor_set(x_180, 2, x_173); -lean_ctor_set(x_180, 3, x_178); -lean_ctor_set_uint8(x_180, sizeof(void*)*4, x_179); -return x_180; -} -} -} -} -else -{ -lean_object* x_181; -x_181 = lean_ctor_get(x_4, 3); -lean_inc(x_181); -if (lean_obj_tag(x_181) == 0) -{ -uint8_t x_182; -x_182 = !lean_is_exclusive(x_8); -if (x_182 == 0) -{ -lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; uint8_t x_187; -x_183 = lean_ctor_get(x_8, 3); -lean_dec(x_183); -x_184 = lean_ctor_get(x_8, 2); -lean_dec(x_184); -x_185 = lean_ctor_get(x_8, 1); -lean_dec(x_185); -x_186 = lean_ctor_get(x_8, 0); -lean_dec(x_186); -x_187 = 1; -lean_ctor_set(x_8, 3, x_4); -lean_ctor_set(x_8, 2, x_3); -lean_ctor_set(x_8, 1, x_2); -lean_ctor_set(x_8, 0, x_1); -lean_ctor_set_uint8(x_8, sizeof(void*)*4, x_187); -return x_8; -} -else -{ -uint8_t x_188; lean_object* x_189; -lean_dec(x_8); -x_188 = 1; -x_189 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_189, 0, x_1); -lean_ctor_set(x_189, 1, x_2); -lean_ctor_set(x_189, 2, x_3); -lean_ctor_set(x_189, 3, x_4); -lean_ctor_set_uint8(x_189, sizeof(void*)*4, x_188); -return x_189; -} -} -else -{ -uint8_t x_190; -x_190 = lean_ctor_get_uint8(x_181, sizeof(void*)*4); -if (x_190 == 0) -{ -uint8_t x_191; -x_191 = !lean_is_exclusive(x_4); -if (x_191 == 0) -{ -lean_object* x_192; lean_object* x_193; uint8_t x_194; -x_192 = lean_ctor_get(x_4, 3); -lean_dec(x_192); -x_193 = lean_ctor_get(x_4, 0); -lean_dec(x_193); -x_194 = !lean_is_exclusive(x_181); -if (x_194 == 0) -{ -lean_object* x_195; lean_object* x_196; lean_object* x_197; lean_object* x_198; uint8_t x_199; uint8_t x_200; -x_195 = lean_ctor_get(x_181, 0); -x_196 = lean_ctor_get(x_181, 1); -x_197 = lean_ctor_get(x_181, 2); -x_198 = lean_ctor_get(x_181, 3); -x_199 = 1; -lean_inc(x_8); -lean_ctor_set(x_181, 3, x_8); -lean_ctor_set(x_181, 2, x_3); -lean_ctor_set(x_181, 1, x_2); -lean_ctor_set(x_181, 0, x_1); -x_200 = !lean_is_exclusive(x_8); -if (x_200 == 0) -{ -lean_object* x_201; lean_object* x_202; lean_object* x_203; lean_object* x_204; uint8_t x_205; -x_201 = lean_ctor_get(x_8, 3); -lean_dec(x_201); -x_202 = lean_ctor_get(x_8, 2); -lean_dec(x_202); -x_203 = lean_ctor_get(x_8, 1); -lean_dec(x_203); -x_204 = lean_ctor_get(x_8, 0); -lean_dec(x_204); -lean_ctor_set_uint8(x_181, sizeof(void*)*4, x_199); -lean_ctor_set(x_8, 3, x_198); -lean_ctor_set(x_8, 2, x_197); -lean_ctor_set(x_8, 1, x_196); -lean_ctor_set(x_8, 0, x_195); -lean_ctor_set_uint8(x_8, sizeof(void*)*4, x_199); -x_205 = 0; -lean_ctor_set(x_4, 3, x_8); -lean_ctor_set(x_4, 0, x_181); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_205); -return x_4; -} -else -{ -lean_object* x_206; uint8_t x_207; -lean_dec(x_8); -lean_ctor_set_uint8(x_181, sizeof(void*)*4, x_199); -x_206 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_206, 0, x_195); -lean_ctor_set(x_206, 1, x_196); -lean_ctor_set(x_206, 2, x_197); -lean_ctor_set(x_206, 3, x_198); -lean_ctor_set_uint8(x_206, sizeof(void*)*4, x_199); -x_207 = 0; -lean_ctor_set(x_4, 3, x_206); -lean_ctor_set(x_4, 0, x_181); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_207); -return x_4; -} -} -else -{ -lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; uint8_t x_212; lean_object* x_213; lean_object* x_214; lean_object* x_215; uint8_t x_216; -x_208 = lean_ctor_get(x_181, 0); -x_209 = lean_ctor_get(x_181, 1); -x_210 = lean_ctor_get(x_181, 2); -x_211 = lean_ctor_get(x_181, 3); -lean_inc(x_211); -lean_inc(x_210); -lean_inc(x_209); -lean_inc(x_208); -lean_dec(x_181); -x_212 = 1; -lean_inc(x_8); -x_213 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_213, 0, x_1); -lean_ctor_set(x_213, 1, x_2); -lean_ctor_set(x_213, 2, x_3); -lean_ctor_set(x_213, 3, x_8); -if (lean_is_exclusive(x_8)) { - lean_ctor_release(x_8, 0); - lean_ctor_release(x_8, 1); - lean_ctor_release(x_8, 2); - lean_ctor_release(x_8, 3); - x_214 = x_8; -} else { - lean_dec_ref(x_8); - x_214 = lean_box(0); -} -lean_ctor_set_uint8(x_213, sizeof(void*)*4, x_212); -if (lean_is_scalar(x_214)) { - x_215 = lean_alloc_ctor(1, 4, 1); -} else { - x_215 = x_214; -} -lean_ctor_set(x_215, 0, x_208); -lean_ctor_set(x_215, 1, x_209); -lean_ctor_set(x_215, 2, x_210); -lean_ctor_set(x_215, 3, x_211); -lean_ctor_set_uint8(x_215, sizeof(void*)*4, x_212); -x_216 = 0; -lean_ctor_set(x_4, 3, x_215); -lean_ctor_set(x_4, 0, x_213); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_216); -return x_4; -} -} -else -{ -lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; lean_object* x_222; lean_object* x_223; uint8_t x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; uint8_t x_228; lean_object* x_229; -x_217 = lean_ctor_get(x_4, 1); -x_218 = lean_ctor_get(x_4, 2); -lean_inc(x_218); -lean_inc(x_217); -lean_dec(x_4); -x_219 = lean_ctor_get(x_181, 0); -lean_inc(x_219); -x_220 = lean_ctor_get(x_181, 1); -lean_inc(x_220); -x_221 = lean_ctor_get(x_181, 2); -lean_inc(x_221); -x_222 = lean_ctor_get(x_181, 3); -lean_inc(x_222); -if (lean_is_exclusive(x_181)) { - lean_ctor_release(x_181, 0); - lean_ctor_release(x_181, 1); - lean_ctor_release(x_181, 2); - lean_ctor_release(x_181, 3); - x_223 = x_181; -} else { - lean_dec_ref(x_181); - x_223 = lean_box(0); -} -x_224 = 1; -lean_inc(x_8); -if (lean_is_scalar(x_223)) { - x_225 = lean_alloc_ctor(1, 4, 1); -} else { - x_225 = x_223; -} -lean_ctor_set(x_225, 0, x_1); -lean_ctor_set(x_225, 1, x_2); -lean_ctor_set(x_225, 2, x_3); -lean_ctor_set(x_225, 3, x_8); -if (lean_is_exclusive(x_8)) { - lean_ctor_release(x_8, 0); - lean_ctor_release(x_8, 1); - lean_ctor_release(x_8, 2); - lean_ctor_release(x_8, 3); - x_226 = x_8; -} else { - lean_dec_ref(x_8); - x_226 = lean_box(0); -} -lean_ctor_set_uint8(x_225, sizeof(void*)*4, x_224); -if (lean_is_scalar(x_226)) { - x_227 = lean_alloc_ctor(1, 4, 1); -} else { - x_227 = x_226; -} -lean_ctor_set(x_227, 0, x_219); -lean_ctor_set(x_227, 1, x_220); -lean_ctor_set(x_227, 2, x_221); -lean_ctor_set(x_227, 3, x_222); -lean_ctor_set_uint8(x_227, sizeof(void*)*4, x_224); -x_228 = 0; -x_229 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_229, 0, x_225); -lean_ctor_set(x_229, 1, x_217); -lean_ctor_set(x_229, 2, x_218); -lean_ctor_set(x_229, 3, x_227); -lean_ctor_set_uint8(x_229, sizeof(void*)*4, x_228); -return x_229; -} -} -else -{ -uint8_t x_230; -lean_dec(x_8); -x_230 = !lean_is_exclusive(x_181); -if (x_230 == 0) -{ -lean_object* x_231; lean_object* x_232; lean_object* x_233; lean_object* x_234; uint8_t x_235; -x_231 = lean_ctor_get(x_181, 3); -lean_dec(x_231); -x_232 = lean_ctor_get(x_181, 2); -lean_dec(x_232); -x_233 = lean_ctor_get(x_181, 1); -lean_dec(x_233); -x_234 = lean_ctor_get(x_181, 0); -lean_dec(x_234); -x_235 = 1; -lean_ctor_set(x_181, 3, x_4); -lean_ctor_set(x_181, 2, x_3); -lean_ctor_set(x_181, 1, x_2); -lean_ctor_set(x_181, 0, x_1); -lean_ctor_set_uint8(x_181, sizeof(void*)*4, x_235); -return x_181; -} -else -{ -uint8_t x_236; lean_object* x_237; -lean_dec(x_181); -x_236 = 1; -x_237 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_237, 0, x_1); -lean_ctor_set(x_237, 1, x_2); -lean_ctor_set(x_237, 2, x_3); -lean_ctor_set(x_237, 3, x_4); -lean_ctor_set_uint8(x_237, sizeof(void*)*4, x_236); -return x_237; -} -} -} -} -} -} -else -{ -uint8_t x_238; lean_object* x_239; -x_238 = 1; -x_239 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_239, 0, x_1); -lean_ctor_set(x_239, 1, x_2); -lean_ctor_set(x_239, 2, x_3); -lean_ctor_set(x_239, 3, x_4); -lean_ctor_set_uint8(x_239, sizeof(void*)*4, x_238); -return x_239; -} -} -} -else -{ -uint8_t x_240; -x_240 = lean_ctor_get_uint8(x_1, sizeof(void*)*4); -if (x_240 == 0) -{ -lean_object* x_241; -x_241 = lean_ctor_get(x_1, 0); -lean_inc(x_241); -if (lean_obj_tag(x_241) == 0) -{ -lean_object* x_242; -x_242 = lean_ctor_get(x_1, 3); -lean_inc(x_242); -if (lean_obj_tag(x_242) == 0) -{ -uint8_t x_243; -x_243 = !lean_is_exclusive(x_1); -if (x_243 == 0) -{ -lean_object* x_244; lean_object* x_245; -x_244 = lean_ctor_get(x_1, 3); -lean_dec(x_244); -x_245 = lean_ctor_get(x_1, 0); -lean_dec(x_245); -lean_ctor_set(x_1, 0, x_242); -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_246; lean_object* x_247; -x_246 = 1; -x_247 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_247, 0, x_1); -lean_ctor_set(x_247, 1, x_2); -lean_ctor_set(x_247, 2, x_3); -lean_ctor_set(x_247, 3, x_4); -lean_ctor_set_uint8(x_247, sizeof(void*)*4, x_246); -return x_247; -} -else -{ -uint8_t x_248; -x_248 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_248 == 0) -{ -lean_object* x_249; -x_249 = lean_ctor_get(x_4, 0); -lean_inc(x_249); -if (lean_obj_tag(x_249) == 0) -{ -lean_object* x_250; -x_250 = lean_ctor_get(x_4, 3); -lean_inc(x_250); -if (lean_obj_tag(x_250) == 0) -{ -uint8_t x_251; lean_object* x_252; -x_251 = 1; -x_252 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_252, 0, x_1); -lean_ctor_set(x_252, 1, x_2); -lean_ctor_set(x_252, 2, x_3); -lean_ctor_set(x_252, 3, x_4); -lean_ctor_set_uint8(x_252, sizeof(void*)*4, x_251); -return x_252; -} -else -{ -uint8_t x_253; -x_253 = lean_ctor_get_uint8(x_250, sizeof(void*)*4); -if (x_253 == 0) -{ -uint8_t x_254; -x_254 = !lean_is_exclusive(x_4); -if (x_254 == 0) -{ -lean_object* x_255; lean_object* x_256; lean_object* x_257; lean_object* x_258; uint8_t x_259; -x_255 = lean_ctor_get(x_4, 1); -x_256 = lean_ctor_get(x_4, 2); -x_257 = lean_ctor_get(x_4, 3); -lean_dec(x_257); -x_258 = lean_ctor_get(x_4, 0); -lean_dec(x_258); -x_259 = !lean_is_exclusive(x_250); -if (x_259 == 0) -{ -lean_object* x_260; lean_object* x_261; lean_object* x_262; lean_object* x_263; uint8_t x_264; uint8_t x_265; lean_object* x_266; -x_260 = lean_ctor_get(x_250, 0); -x_261 = lean_ctor_get(x_250, 1); -x_262 = lean_ctor_get(x_250, 2); -x_263 = lean_ctor_get(x_250, 3); -x_264 = 1; -lean_ctor_set(x_250, 3, x_249); -lean_ctor_set(x_250, 2, x_3); -lean_ctor_set(x_250, 1, x_2); -lean_ctor_set(x_250, 0, x_1); -lean_ctor_set_uint8(x_250, sizeof(void*)*4, x_264); -lean_ctor_set(x_4, 3, x_263); -lean_ctor_set(x_4, 2, x_262); -lean_ctor_set(x_4, 1, x_261); -lean_ctor_set(x_4, 0, x_260); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_264); -x_265 = 0; -x_266 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_266, 0, x_250); -lean_ctor_set(x_266, 1, x_255); -lean_ctor_set(x_266, 2, x_256); -lean_ctor_set(x_266, 3, x_4); -lean_ctor_set_uint8(x_266, sizeof(void*)*4, x_265); -return x_266; -} -else -{ -lean_object* x_267; lean_object* x_268; lean_object* x_269; lean_object* x_270; uint8_t x_271; lean_object* x_272; uint8_t x_273; lean_object* x_274; -x_267 = lean_ctor_get(x_250, 0); -x_268 = lean_ctor_get(x_250, 1); -x_269 = lean_ctor_get(x_250, 2); -x_270 = lean_ctor_get(x_250, 3); -lean_inc(x_270); -lean_inc(x_269); -lean_inc(x_268); -lean_inc(x_267); -lean_dec(x_250); -x_271 = 1; -x_272 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_272, 0, x_1); -lean_ctor_set(x_272, 1, x_2); -lean_ctor_set(x_272, 2, x_3); -lean_ctor_set(x_272, 3, x_249); -lean_ctor_set_uint8(x_272, sizeof(void*)*4, x_271); -lean_ctor_set(x_4, 3, x_270); -lean_ctor_set(x_4, 2, x_269); -lean_ctor_set(x_4, 1, x_268); -lean_ctor_set(x_4, 0, x_267); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_271); -x_273 = 0; -x_274 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_274, 0, x_272); -lean_ctor_set(x_274, 1, x_255); -lean_ctor_set(x_274, 2, x_256); -lean_ctor_set(x_274, 3, x_4); -lean_ctor_set_uint8(x_274, sizeof(void*)*4, x_273); -return x_274; -} -} -else -{ -lean_object* x_275; lean_object* x_276; lean_object* x_277; lean_object* x_278; lean_object* x_279; lean_object* x_280; lean_object* x_281; uint8_t x_282; lean_object* x_283; lean_object* x_284; uint8_t x_285; lean_object* x_286; -x_275 = lean_ctor_get(x_4, 1); -x_276 = lean_ctor_get(x_4, 2); -lean_inc(x_276); -lean_inc(x_275); -lean_dec(x_4); -x_277 = lean_ctor_get(x_250, 0); -lean_inc(x_277); -x_278 = lean_ctor_get(x_250, 1); -lean_inc(x_278); -x_279 = lean_ctor_get(x_250, 2); -lean_inc(x_279); -x_280 = lean_ctor_get(x_250, 3); -lean_inc(x_280); -if (lean_is_exclusive(x_250)) { - lean_ctor_release(x_250, 0); - lean_ctor_release(x_250, 1); - lean_ctor_release(x_250, 2); - lean_ctor_release(x_250, 3); - x_281 = x_250; -} else { - lean_dec_ref(x_250); - x_281 = lean_box(0); -} -x_282 = 1; -if (lean_is_scalar(x_281)) { - x_283 = lean_alloc_ctor(1, 4, 1); -} else { - x_283 = x_281; -} -lean_ctor_set(x_283, 0, x_1); -lean_ctor_set(x_283, 1, x_2); -lean_ctor_set(x_283, 2, x_3); -lean_ctor_set(x_283, 3, x_249); -lean_ctor_set_uint8(x_283, sizeof(void*)*4, x_282); -x_284 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_284, 0, x_277); -lean_ctor_set(x_284, 1, x_278); -lean_ctor_set(x_284, 2, x_279); -lean_ctor_set(x_284, 3, x_280); -lean_ctor_set_uint8(x_284, sizeof(void*)*4, x_282); -x_285 = 0; -x_286 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_286, 0, x_283); -lean_ctor_set(x_286, 1, x_275); -lean_ctor_set(x_286, 2, x_276); -lean_ctor_set(x_286, 3, x_284); -lean_ctor_set_uint8(x_286, sizeof(void*)*4, x_285); -return x_286; -} -} -else -{ -uint8_t x_287; -x_287 = !lean_is_exclusive(x_250); -if (x_287 == 0) -{ -lean_object* x_288; lean_object* x_289; lean_object* x_290; lean_object* x_291; uint8_t x_292; -x_288 = lean_ctor_get(x_250, 3); -lean_dec(x_288); -x_289 = lean_ctor_get(x_250, 2); -lean_dec(x_289); -x_290 = lean_ctor_get(x_250, 1); -lean_dec(x_290); -x_291 = lean_ctor_get(x_250, 0); -lean_dec(x_291); -x_292 = 1; -lean_ctor_set(x_250, 3, x_4); -lean_ctor_set(x_250, 2, x_3); -lean_ctor_set(x_250, 1, x_2); -lean_ctor_set(x_250, 0, x_1); -lean_ctor_set_uint8(x_250, sizeof(void*)*4, x_292); -return x_250; -} -else -{ -uint8_t x_293; lean_object* x_294; -lean_dec(x_250); -x_293 = 1; -x_294 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_294, 0, x_1); -lean_ctor_set(x_294, 1, x_2); -lean_ctor_set(x_294, 2, x_3); -lean_ctor_set(x_294, 3, x_4); -lean_ctor_set_uint8(x_294, sizeof(void*)*4, x_293); -return x_294; -} -} -} -} -else -{ -uint8_t x_295; -x_295 = lean_ctor_get_uint8(x_249, sizeof(void*)*4); -if (x_295 == 0) -{ -lean_object* x_296; -x_296 = lean_ctor_get(x_4, 3); -lean_inc(x_296); -if (lean_obj_tag(x_296) == 0) -{ -uint8_t x_297; -x_297 = !lean_is_exclusive(x_4); -if (x_297 == 0) -{ -lean_object* x_298; lean_object* x_299; uint8_t x_300; -x_298 = lean_ctor_get(x_4, 3); -lean_dec(x_298); -x_299 = lean_ctor_get(x_4, 0); -lean_dec(x_299); -x_300 = !lean_is_exclusive(x_249); -if (x_300 == 0) -{ -lean_object* x_301; lean_object* x_302; lean_object* x_303; lean_object* x_304; uint8_t x_305; uint8_t x_306; lean_object* x_307; -x_301 = lean_ctor_get(x_249, 0); -x_302 = lean_ctor_get(x_249, 1); -x_303 = lean_ctor_get(x_249, 2); -x_304 = lean_ctor_get(x_249, 3); -x_305 = 1; -lean_ctor_set(x_249, 3, x_301); -lean_ctor_set(x_249, 2, x_3); -lean_ctor_set(x_249, 1, x_2); -lean_ctor_set(x_249, 0, x_1); -lean_ctor_set_uint8(x_249, sizeof(void*)*4, x_305); -lean_ctor_set(x_4, 0, x_304); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_305); -x_306 = 0; -x_307 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_307, 0, x_249); -lean_ctor_set(x_307, 1, x_302); -lean_ctor_set(x_307, 2, x_303); -lean_ctor_set(x_307, 3, x_4); -lean_ctor_set_uint8(x_307, sizeof(void*)*4, x_306); -return x_307; -} -else -{ -lean_object* x_308; lean_object* x_309; lean_object* x_310; lean_object* x_311; uint8_t x_312; lean_object* x_313; uint8_t x_314; lean_object* x_315; -x_308 = lean_ctor_get(x_249, 0); -x_309 = lean_ctor_get(x_249, 1); -x_310 = lean_ctor_get(x_249, 2); -x_311 = lean_ctor_get(x_249, 3); -lean_inc(x_311); -lean_inc(x_310); -lean_inc(x_309); -lean_inc(x_308); -lean_dec(x_249); -x_312 = 1; -x_313 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_313, 0, x_1); -lean_ctor_set(x_313, 1, x_2); -lean_ctor_set(x_313, 2, x_3); -lean_ctor_set(x_313, 3, x_308); -lean_ctor_set_uint8(x_313, sizeof(void*)*4, x_312); -lean_ctor_set(x_4, 0, x_311); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_312); -x_314 = 0; -x_315 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_315, 0, x_313); -lean_ctor_set(x_315, 1, x_309); -lean_ctor_set(x_315, 2, x_310); -lean_ctor_set(x_315, 3, x_4); -lean_ctor_set_uint8(x_315, sizeof(void*)*4, x_314); -return x_315; -} -} -else -{ -lean_object* x_316; lean_object* x_317; lean_object* x_318; lean_object* x_319; lean_object* x_320; lean_object* x_321; lean_object* x_322; uint8_t x_323; lean_object* x_324; lean_object* x_325; uint8_t x_326; lean_object* x_327; -x_316 = lean_ctor_get(x_4, 1); -x_317 = lean_ctor_get(x_4, 2); -lean_inc(x_317); -lean_inc(x_316); -lean_dec(x_4); -x_318 = lean_ctor_get(x_249, 0); -lean_inc(x_318); -x_319 = lean_ctor_get(x_249, 1); -lean_inc(x_319); -x_320 = lean_ctor_get(x_249, 2); -lean_inc(x_320); -x_321 = lean_ctor_get(x_249, 3); -lean_inc(x_321); -if (lean_is_exclusive(x_249)) { - lean_ctor_release(x_249, 0); - lean_ctor_release(x_249, 1); - lean_ctor_release(x_249, 2); - lean_ctor_release(x_249, 3); - x_322 = x_249; -} else { - lean_dec_ref(x_249); - x_322 = lean_box(0); -} -x_323 = 1; -if (lean_is_scalar(x_322)) { - x_324 = lean_alloc_ctor(1, 4, 1); -} else { - x_324 = x_322; -} -lean_ctor_set(x_324, 0, x_1); -lean_ctor_set(x_324, 1, x_2); -lean_ctor_set(x_324, 2, x_3); -lean_ctor_set(x_324, 3, x_318); -lean_ctor_set_uint8(x_324, sizeof(void*)*4, x_323); -x_325 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_325, 0, x_321); -lean_ctor_set(x_325, 1, x_316); -lean_ctor_set(x_325, 2, x_317); -lean_ctor_set(x_325, 3, x_296); -lean_ctor_set_uint8(x_325, sizeof(void*)*4, x_323); -x_326 = 0; -x_327 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_327, 0, x_324); -lean_ctor_set(x_327, 1, x_319); -lean_ctor_set(x_327, 2, x_320); -lean_ctor_set(x_327, 3, x_325); -lean_ctor_set_uint8(x_327, sizeof(void*)*4, x_326); -return x_327; -} -} -else -{ -uint8_t x_328; -x_328 = lean_ctor_get_uint8(x_296, sizeof(void*)*4); -if (x_328 == 0) -{ -uint8_t x_329; -x_329 = !lean_is_exclusive(x_4); -if (x_329 == 0) -{ -lean_object* x_330; lean_object* x_331; lean_object* x_332; lean_object* x_333; uint8_t x_334; -x_330 = lean_ctor_get(x_4, 1); -x_331 = lean_ctor_get(x_4, 2); -x_332 = lean_ctor_get(x_4, 3); -lean_dec(x_332); -x_333 = lean_ctor_get(x_4, 0); -lean_dec(x_333); -x_334 = !lean_is_exclusive(x_249); -if (x_334 == 0) -{ -uint8_t x_335; -x_335 = !lean_is_exclusive(x_296); -if (x_335 == 0) -{ -lean_object* x_336; lean_object* x_337; lean_object* x_338; lean_object* x_339; lean_object* x_340; lean_object* x_341; lean_object* x_342; lean_object* x_343; uint8_t x_344; uint8_t x_345; lean_object* x_346; -x_336 = lean_ctor_get(x_249, 0); -x_337 = lean_ctor_get(x_249, 1); -x_338 = lean_ctor_get(x_249, 2); -x_339 = lean_ctor_get(x_249, 3); -x_340 = lean_ctor_get(x_296, 0); -x_341 = lean_ctor_get(x_296, 1); -x_342 = lean_ctor_get(x_296, 2); -x_343 = lean_ctor_get(x_296, 3); -lean_ctor_set(x_296, 3, x_339); -lean_ctor_set(x_296, 2, x_338); -lean_ctor_set(x_296, 1, x_337); -lean_ctor_set(x_296, 0, x_336); -x_344 = 1; -lean_ctor_set(x_249, 3, x_296); -lean_ctor_set(x_249, 2, x_3); -lean_ctor_set(x_249, 1, x_2); -lean_ctor_set(x_249, 0, x_1); -lean_ctor_set_uint8(x_249, sizeof(void*)*4, x_344); -lean_ctor_set(x_4, 3, x_343); -lean_ctor_set(x_4, 2, x_342); -lean_ctor_set(x_4, 1, x_341); -lean_ctor_set(x_4, 0, x_340); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_344); -x_345 = 0; -x_346 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_346, 0, x_249); -lean_ctor_set(x_346, 1, x_330); -lean_ctor_set(x_346, 2, x_331); -lean_ctor_set(x_346, 3, x_4); -lean_ctor_set_uint8(x_346, sizeof(void*)*4, x_345); -return x_346; -} -else -{ -lean_object* x_347; lean_object* x_348; lean_object* x_349; lean_object* x_350; lean_object* x_351; lean_object* x_352; lean_object* x_353; lean_object* x_354; lean_object* x_355; uint8_t x_356; uint8_t x_357; lean_object* x_358; -x_347 = lean_ctor_get(x_249, 0); -x_348 = lean_ctor_get(x_249, 1); -x_349 = lean_ctor_get(x_249, 2); -x_350 = lean_ctor_get(x_249, 3); -x_351 = lean_ctor_get(x_296, 0); -x_352 = lean_ctor_get(x_296, 1); -x_353 = lean_ctor_get(x_296, 2); -x_354 = lean_ctor_get(x_296, 3); -lean_inc(x_354); -lean_inc(x_353); -lean_inc(x_352); -lean_inc(x_351); -lean_dec(x_296); -x_355 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_355, 0, x_347); -lean_ctor_set(x_355, 1, x_348); -lean_ctor_set(x_355, 2, x_349); -lean_ctor_set(x_355, 3, x_350); -lean_ctor_set_uint8(x_355, sizeof(void*)*4, x_328); -x_356 = 1; -lean_ctor_set(x_249, 3, x_355); -lean_ctor_set(x_249, 2, x_3); -lean_ctor_set(x_249, 1, x_2); -lean_ctor_set(x_249, 0, x_1); -lean_ctor_set_uint8(x_249, sizeof(void*)*4, x_356); -lean_ctor_set(x_4, 3, x_354); -lean_ctor_set(x_4, 2, x_353); -lean_ctor_set(x_4, 1, x_352); -lean_ctor_set(x_4, 0, x_351); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_356); -x_357 = 0; -x_358 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_358, 0, x_249); -lean_ctor_set(x_358, 1, x_330); -lean_ctor_set(x_358, 2, x_331); -lean_ctor_set(x_358, 3, x_4); -lean_ctor_set_uint8(x_358, sizeof(void*)*4, x_357); -return x_358; -} -} -else -{ -lean_object* x_359; lean_object* x_360; lean_object* x_361; lean_object* x_362; lean_object* x_363; lean_object* x_364; lean_object* x_365; lean_object* x_366; lean_object* x_367; lean_object* x_368; uint8_t x_369; lean_object* x_370; uint8_t x_371; lean_object* x_372; -x_359 = lean_ctor_get(x_249, 0); -x_360 = lean_ctor_get(x_249, 1); -x_361 = lean_ctor_get(x_249, 2); -x_362 = lean_ctor_get(x_249, 3); -lean_inc(x_362); -lean_inc(x_361); -lean_inc(x_360); -lean_inc(x_359); -lean_dec(x_249); -x_363 = lean_ctor_get(x_296, 0); -lean_inc(x_363); -x_364 = lean_ctor_get(x_296, 1); -lean_inc(x_364); -x_365 = lean_ctor_get(x_296, 2); -lean_inc(x_365); -x_366 = lean_ctor_get(x_296, 3); -lean_inc(x_366); -if (lean_is_exclusive(x_296)) { - lean_ctor_release(x_296, 0); - lean_ctor_release(x_296, 1); - lean_ctor_release(x_296, 2); - lean_ctor_release(x_296, 3); - x_367 = x_296; -} else { - lean_dec_ref(x_296); - x_367 = lean_box(0); -} -if (lean_is_scalar(x_367)) { - x_368 = lean_alloc_ctor(1, 4, 1); -} else { - x_368 = x_367; -} -lean_ctor_set(x_368, 0, x_359); -lean_ctor_set(x_368, 1, x_360); -lean_ctor_set(x_368, 2, x_361); -lean_ctor_set(x_368, 3, x_362); -lean_ctor_set_uint8(x_368, sizeof(void*)*4, x_328); -x_369 = 1; -x_370 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_370, 0, x_1); -lean_ctor_set(x_370, 1, x_2); -lean_ctor_set(x_370, 2, x_3); -lean_ctor_set(x_370, 3, x_368); -lean_ctor_set_uint8(x_370, sizeof(void*)*4, x_369); -lean_ctor_set(x_4, 3, x_366); -lean_ctor_set(x_4, 2, x_365); -lean_ctor_set(x_4, 1, x_364); -lean_ctor_set(x_4, 0, x_363); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_369); -x_371 = 0; -x_372 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_372, 0, x_370); -lean_ctor_set(x_372, 1, x_330); -lean_ctor_set(x_372, 2, x_331); -lean_ctor_set(x_372, 3, x_4); -lean_ctor_set_uint8(x_372, sizeof(void*)*4, x_371); -return x_372; -} -} -else -{ -lean_object* x_373; lean_object* x_374; lean_object* x_375; lean_object* x_376; lean_object* x_377; lean_object* x_378; lean_object* x_379; lean_object* x_380; lean_object* x_381; lean_object* x_382; lean_object* x_383; lean_object* x_384; lean_object* x_385; uint8_t x_386; lean_object* x_387; lean_object* x_388; uint8_t x_389; lean_object* x_390; -x_373 = lean_ctor_get(x_4, 1); -x_374 = lean_ctor_get(x_4, 2); -lean_inc(x_374); -lean_inc(x_373); -lean_dec(x_4); -x_375 = lean_ctor_get(x_249, 0); -lean_inc(x_375); -x_376 = lean_ctor_get(x_249, 1); -lean_inc(x_376); -x_377 = lean_ctor_get(x_249, 2); -lean_inc(x_377); -x_378 = lean_ctor_get(x_249, 3); -lean_inc(x_378); -if (lean_is_exclusive(x_249)) { - lean_ctor_release(x_249, 0); - lean_ctor_release(x_249, 1); - lean_ctor_release(x_249, 2); - lean_ctor_release(x_249, 3); - x_379 = x_249; -} else { - lean_dec_ref(x_249); - x_379 = lean_box(0); -} -x_380 = lean_ctor_get(x_296, 0); -lean_inc(x_380); -x_381 = lean_ctor_get(x_296, 1); -lean_inc(x_381); -x_382 = lean_ctor_get(x_296, 2); -lean_inc(x_382); -x_383 = lean_ctor_get(x_296, 3); -lean_inc(x_383); -if (lean_is_exclusive(x_296)) { - lean_ctor_release(x_296, 0); - lean_ctor_release(x_296, 1); - lean_ctor_release(x_296, 2); - lean_ctor_release(x_296, 3); - x_384 = x_296; -} else { - lean_dec_ref(x_296); - x_384 = lean_box(0); -} -if (lean_is_scalar(x_384)) { - x_385 = lean_alloc_ctor(1, 4, 1); -} else { - x_385 = x_384; -} -lean_ctor_set(x_385, 0, x_375); -lean_ctor_set(x_385, 1, x_376); -lean_ctor_set(x_385, 2, x_377); -lean_ctor_set(x_385, 3, x_378); -lean_ctor_set_uint8(x_385, sizeof(void*)*4, x_328); -x_386 = 1; -if (lean_is_scalar(x_379)) { - x_387 = lean_alloc_ctor(1, 4, 1); -} else { - x_387 = x_379; -} -lean_ctor_set(x_387, 0, x_1); -lean_ctor_set(x_387, 1, x_2); -lean_ctor_set(x_387, 2, x_3); -lean_ctor_set(x_387, 3, x_385); -lean_ctor_set_uint8(x_387, sizeof(void*)*4, x_386); -x_388 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_388, 0, x_380); -lean_ctor_set(x_388, 1, x_381); -lean_ctor_set(x_388, 2, x_382); -lean_ctor_set(x_388, 3, x_383); -lean_ctor_set_uint8(x_388, sizeof(void*)*4, x_386); -x_389 = 0; -x_390 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_390, 0, x_387); -lean_ctor_set(x_390, 1, x_373); -lean_ctor_set(x_390, 2, x_374); -lean_ctor_set(x_390, 3, x_388); -lean_ctor_set_uint8(x_390, sizeof(void*)*4, x_389); -return x_390; -} -} -else -{ -uint8_t x_391; -x_391 = !lean_is_exclusive(x_4); -if (x_391 == 0) -{ -lean_object* x_392; lean_object* x_393; uint8_t x_394; -x_392 = lean_ctor_get(x_4, 3); -lean_dec(x_392); -x_393 = lean_ctor_get(x_4, 0); -lean_dec(x_393); -x_394 = !lean_is_exclusive(x_249); -if (x_394 == 0) -{ -lean_object* x_395; lean_object* x_396; lean_object* x_397; lean_object* x_398; uint8_t x_399; uint8_t x_400; lean_object* x_401; -x_395 = lean_ctor_get(x_249, 0); -x_396 = lean_ctor_get(x_249, 1); -x_397 = lean_ctor_get(x_249, 2); -x_398 = lean_ctor_get(x_249, 3); -x_399 = 1; -lean_ctor_set(x_249, 3, x_395); -lean_ctor_set(x_249, 2, x_3); -lean_ctor_set(x_249, 1, x_2); -lean_ctor_set(x_249, 0, x_1); -lean_ctor_set_uint8(x_249, sizeof(void*)*4, x_399); -lean_ctor_set(x_4, 0, x_398); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_399); -x_400 = 0; -x_401 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_401, 0, x_249); -lean_ctor_set(x_401, 1, x_396); -lean_ctor_set(x_401, 2, x_397); -lean_ctor_set(x_401, 3, x_4); -lean_ctor_set_uint8(x_401, sizeof(void*)*4, x_400); -return x_401; -} -else -{ -lean_object* x_402; lean_object* x_403; lean_object* x_404; lean_object* x_405; uint8_t x_406; lean_object* x_407; uint8_t x_408; lean_object* x_409; -x_402 = lean_ctor_get(x_249, 0); -x_403 = lean_ctor_get(x_249, 1); -x_404 = lean_ctor_get(x_249, 2); -x_405 = lean_ctor_get(x_249, 3); -lean_inc(x_405); -lean_inc(x_404); -lean_inc(x_403); -lean_inc(x_402); -lean_dec(x_249); -x_406 = 1; -x_407 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_407, 0, x_1); -lean_ctor_set(x_407, 1, x_2); -lean_ctor_set(x_407, 2, x_3); -lean_ctor_set(x_407, 3, x_402); -lean_ctor_set_uint8(x_407, sizeof(void*)*4, x_406); -lean_ctor_set(x_4, 0, x_405); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_406); -x_408 = 0; -x_409 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_409, 0, x_407); -lean_ctor_set(x_409, 1, x_403); -lean_ctor_set(x_409, 2, x_404); -lean_ctor_set(x_409, 3, x_4); -lean_ctor_set_uint8(x_409, sizeof(void*)*4, x_408); -return x_409; -} -} -else -{ -lean_object* x_410; lean_object* x_411; lean_object* x_412; lean_object* x_413; lean_object* x_414; lean_object* x_415; lean_object* x_416; uint8_t x_417; lean_object* x_418; lean_object* x_419; uint8_t x_420; lean_object* x_421; -x_410 = lean_ctor_get(x_4, 1); -x_411 = lean_ctor_get(x_4, 2); -lean_inc(x_411); -lean_inc(x_410); -lean_dec(x_4); -x_412 = lean_ctor_get(x_249, 0); -lean_inc(x_412); -x_413 = lean_ctor_get(x_249, 1); -lean_inc(x_413); -x_414 = lean_ctor_get(x_249, 2); -lean_inc(x_414); -x_415 = lean_ctor_get(x_249, 3); -lean_inc(x_415); -if (lean_is_exclusive(x_249)) { - lean_ctor_release(x_249, 0); - lean_ctor_release(x_249, 1); - lean_ctor_release(x_249, 2); - lean_ctor_release(x_249, 3); - x_416 = x_249; -} else { - lean_dec_ref(x_249); - x_416 = lean_box(0); -} -x_417 = 1; -if (lean_is_scalar(x_416)) { - x_418 = lean_alloc_ctor(1, 4, 1); -} else { - x_418 = x_416; -} -lean_ctor_set(x_418, 0, x_1); -lean_ctor_set(x_418, 1, x_2); -lean_ctor_set(x_418, 2, x_3); -lean_ctor_set(x_418, 3, x_412); -lean_ctor_set_uint8(x_418, sizeof(void*)*4, x_417); -x_419 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_419, 0, x_415); -lean_ctor_set(x_419, 1, x_410); -lean_ctor_set(x_419, 2, x_411); -lean_ctor_set(x_419, 3, x_296); -lean_ctor_set_uint8(x_419, sizeof(void*)*4, x_417); -x_420 = 0; -x_421 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_421, 0, x_418); -lean_ctor_set(x_421, 1, x_413); -lean_ctor_set(x_421, 2, x_414); -lean_ctor_set(x_421, 3, x_419); -lean_ctor_set_uint8(x_421, sizeof(void*)*4, x_420); -return x_421; -} -} -} -} -else -{ -lean_object* x_422; -x_422 = lean_ctor_get(x_4, 3); -lean_inc(x_422); -if (lean_obj_tag(x_422) == 0) -{ -uint8_t x_423; -x_423 = !lean_is_exclusive(x_249); -if (x_423 == 0) -{ -lean_object* x_424; lean_object* x_425; lean_object* x_426; lean_object* x_427; uint8_t x_428; -x_424 = lean_ctor_get(x_249, 3); -lean_dec(x_424); -x_425 = lean_ctor_get(x_249, 2); -lean_dec(x_425); -x_426 = lean_ctor_get(x_249, 1); -lean_dec(x_426); -x_427 = lean_ctor_get(x_249, 0); -lean_dec(x_427); -x_428 = 1; -lean_ctor_set(x_249, 3, x_4); -lean_ctor_set(x_249, 2, x_3); -lean_ctor_set(x_249, 1, x_2); -lean_ctor_set(x_249, 0, x_1); -lean_ctor_set_uint8(x_249, sizeof(void*)*4, x_428); -return x_249; -} -else -{ -uint8_t x_429; lean_object* x_430; -lean_dec(x_249); -x_429 = 1; -x_430 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_430, 0, x_1); -lean_ctor_set(x_430, 1, x_2); -lean_ctor_set(x_430, 2, x_3); -lean_ctor_set(x_430, 3, x_4); -lean_ctor_set_uint8(x_430, sizeof(void*)*4, x_429); -return x_430; -} -} -else -{ -uint8_t x_431; -x_431 = lean_ctor_get_uint8(x_422, sizeof(void*)*4); -if (x_431 == 0) -{ -uint8_t x_432; -x_432 = !lean_is_exclusive(x_4); -if (x_432 == 0) -{ -lean_object* x_433; lean_object* x_434; uint8_t x_435; -x_433 = lean_ctor_get(x_4, 3); -lean_dec(x_433); -x_434 = lean_ctor_get(x_4, 0); -lean_dec(x_434); -x_435 = !lean_is_exclusive(x_422); -if (x_435 == 0) -{ -lean_object* x_436; lean_object* x_437; lean_object* x_438; lean_object* x_439; uint8_t x_440; uint8_t x_441; -x_436 = lean_ctor_get(x_422, 0); -x_437 = lean_ctor_get(x_422, 1); -x_438 = lean_ctor_get(x_422, 2); -x_439 = lean_ctor_get(x_422, 3); -x_440 = 1; -lean_inc(x_249); -lean_ctor_set(x_422, 3, x_249); -lean_ctor_set(x_422, 2, x_3); -lean_ctor_set(x_422, 1, x_2); -lean_ctor_set(x_422, 0, x_1); -x_441 = !lean_is_exclusive(x_249); -if (x_441 == 0) -{ -lean_object* x_442; lean_object* x_443; lean_object* x_444; lean_object* x_445; uint8_t x_446; -x_442 = lean_ctor_get(x_249, 3); -lean_dec(x_442); -x_443 = lean_ctor_get(x_249, 2); -lean_dec(x_443); -x_444 = lean_ctor_get(x_249, 1); -lean_dec(x_444); -x_445 = lean_ctor_get(x_249, 0); -lean_dec(x_445); -lean_ctor_set_uint8(x_422, sizeof(void*)*4, x_440); -lean_ctor_set(x_249, 3, x_439); -lean_ctor_set(x_249, 2, x_438); -lean_ctor_set(x_249, 1, x_437); -lean_ctor_set(x_249, 0, x_436); -lean_ctor_set_uint8(x_249, sizeof(void*)*4, x_440); -x_446 = 0; -lean_ctor_set(x_4, 3, x_249); -lean_ctor_set(x_4, 0, x_422); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_446); -return x_4; -} -else -{ -lean_object* x_447; uint8_t x_448; -lean_dec(x_249); -lean_ctor_set_uint8(x_422, sizeof(void*)*4, x_440); -x_447 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_447, 0, x_436); -lean_ctor_set(x_447, 1, x_437); -lean_ctor_set(x_447, 2, x_438); -lean_ctor_set(x_447, 3, x_439); -lean_ctor_set_uint8(x_447, sizeof(void*)*4, x_440); -x_448 = 0; -lean_ctor_set(x_4, 3, x_447); -lean_ctor_set(x_4, 0, x_422); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_448); -return x_4; -} -} -else -{ -lean_object* x_449; lean_object* x_450; lean_object* x_451; lean_object* x_452; uint8_t x_453; lean_object* x_454; lean_object* x_455; lean_object* x_456; uint8_t x_457; -x_449 = lean_ctor_get(x_422, 0); -x_450 = lean_ctor_get(x_422, 1); -x_451 = lean_ctor_get(x_422, 2); -x_452 = lean_ctor_get(x_422, 3); -lean_inc(x_452); -lean_inc(x_451); -lean_inc(x_450); -lean_inc(x_449); -lean_dec(x_422); -x_453 = 1; -lean_inc(x_249); -x_454 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_454, 0, x_1); -lean_ctor_set(x_454, 1, x_2); -lean_ctor_set(x_454, 2, x_3); -lean_ctor_set(x_454, 3, x_249); -if (lean_is_exclusive(x_249)) { - lean_ctor_release(x_249, 0); - lean_ctor_release(x_249, 1); - lean_ctor_release(x_249, 2); - lean_ctor_release(x_249, 3); - x_455 = x_249; -} else { - lean_dec_ref(x_249); - x_455 = lean_box(0); -} -lean_ctor_set_uint8(x_454, sizeof(void*)*4, x_453); -if (lean_is_scalar(x_455)) { - x_456 = lean_alloc_ctor(1, 4, 1); -} else { - x_456 = x_455; -} -lean_ctor_set(x_456, 0, x_449); -lean_ctor_set(x_456, 1, x_450); -lean_ctor_set(x_456, 2, x_451); -lean_ctor_set(x_456, 3, x_452); -lean_ctor_set_uint8(x_456, sizeof(void*)*4, x_453); -x_457 = 0; -lean_ctor_set(x_4, 3, x_456); -lean_ctor_set(x_4, 0, x_454); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_457); -return x_4; -} -} -else -{ -lean_object* x_458; lean_object* x_459; lean_object* x_460; lean_object* x_461; lean_object* x_462; lean_object* x_463; lean_object* x_464; uint8_t x_465; lean_object* x_466; lean_object* x_467; lean_object* x_468; uint8_t x_469; lean_object* x_470; -x_458 = lean_ctor_get(x_4, 1); -x_459 = lean_ctor_get(x_4, 2); -lean_inc(x_459); -lean_inc(x_458); -lean_dec(x_4); -x_460 = lean_ctor_get(x_422, 0); -lean_inc(x_460); -x_461 = lean_ctor_get(x_422, 1); -lean_inc(x_461); -x_462 = lean_ctor_get(x_422, 2); -lean_inc(x_462); -x_463 = lean_ctor_get(x_422, 3); -lean_inc(x_463); -if (lean_is_exclusive(x_422)) { - lean_ctor_release(x_422, 0); - lean_ctor_release(x_422, 1); - lean_ctor_release(x_422, 2); - lean_ctor_release(x_422, 3); - x_464 = x_422; -} else { - lean_dec_ref(x_422); - x_464 = lean_box(0); -} -x_465 = 1; -lean_inc(x_249); -if (lean_is_scalar(x_464)) { - x_466 = lean_alloc_ctor(1, 4, 1); -} else { - x_466 = x_464; -} -lean_ctor_set(x_466, 0, x_1); -lean_ctor_set(x_466, 1, x_2); -lean_ctor_set(x_466, 2, x_3); -lean_ctor_set(x_466, 3, x_249); -if (lean_is_exclusive(x_249)) { - lean_ctor_release(x_249, 0); - lean_ctor_release(x_249, 1); - lean_ctor_release(x_249, 2); - lean_ctor_release(x_249, 3); - x_467 = x_249; -} else { - lean_dec_ref(x_249); - x_467 = lean_box(0); -} -lean_ctor_set_uint8(x_466, sizeof(void*)*4, x_465); -if (lean_is_scalar(x_467)) { - x_468 = lean_alloc_ctor(1, 4, 1); -} else { - x_468 = x_467; -} -lean_ctor_set(x_468, 0, x_460); -lean_ctor_set(x_468, 1, x_461); -lean_ctor_set(x_468, 2, x_462); -lean_ctor_set(x_468, 3, x_463); -lean_ctor_set_uint8(x_468, sizeof(void*)*4, x_465); -x_469 = 0; -x_470 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_470, 0, x_466); -lean_ctor_set(x_470, 1, x_458); -lean_ctor_set(x_470, 2, x_459); -lean_ctor_set(x_470, 3, x_468); -lean_ctor_set_uint8(x_470, sizeof(void*)*4, x_469); -return x_470; -} -} -else -{ -uint8_t x_471; -lean_dec(x_249); -x_471 = !lean_is_exclusive(x_422); -if (x_471 == 0) -{ -lean_object* x_472; lean_object* x_473; lean_object* x_474; lean_object* x_475; uint8_t x_476; -x_472 = lean_ctor_get(x_422, 3); -lean_dec(x_472); -x_473 = lean_ctor_get(x_422, 2); -lean_dec(x_473); -x_474 = lean_ctor_get(x_422, 1); -lean_dec(x_474); -x_475 = lean_ctor_get(x_422, 0); -lean_dec(x_475); -x_476 = 1; -lean_ctor_set(x_422, 3, x_4); -lean_ctor_set(x_422, 2, x_3); -lean_ctor_set(x_422, 1, x_2); -lean_ctor_set(x_422, 0, x_1); -lean_ctor_set_uint8(x_422, sizeof(void*)*4, x_476); -return x_422; -} -else -{ -uint8_t x_477; lean_object* x_478; -lean_dec(x_422); -x_477 = 1; -x_478 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_478, 0, x_1); -lean_ctor_set(x_478, 1, x_2); -lean_ctor_set(x_478, 2, x_3); -lean_ctor_set(x_478, 3, x_4); -lean_ctor_set_uint8(x_478, sizeof(void*)*4, x_477); -return x_478; -} -} -} -} -} -} -else -{ -uint8_t x_479; lean_object* x_480; -x_479 = 1; -x_480 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_480, 0, x_1); -lean_ctor_set(x_480, 1, x_2); -lean_ctor_set(x_480, 2, x_3); -lean_ctor_set(x_480, 3, x_4); -lean_ctor_set_uint8(x_480, sizeof(void*)*4, x_479); -return x_480; -} -} -} -else -{ -lean_object* x_481; lean_object* x_482; lean_object* x_483; -x_481 = lean_ctor_get(x_1, 1); -x_482 = lean_ctor_get(x_1, 2); -lean_inc(x_482); -lean_inc(x_481); -lean_dec(x_1); -x_483 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_483, 0, x_242); -lean_ctor_set(x_483, 1, x_481); -lean_ctor_set(x_483, 2, x_482); -lean_ctor_set(x_483, 3, x_242); -lean_ctor_set_uint8(x_483, sizeof(void*)*4, x_240); -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_484; lean_object* x_485; -x_484 = 1; -x_485 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_485, 0, x_483); -lean_ctor_set(x_485, 1, x_2); -lean_ctor_set(x_485, 2, x_3); -lean_ctor_set(x_485, 3, x_4); -lean_ctor_set_uint8(x_485, sizeof(void*)*4, x_484); -return x_485; -} -else -{ -uint8_t x_486; -x_486 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_486 == 0) -{ -lean_object* x_487; -x_487 = lean_ctor_get(x_4, 0); -lean_inc(x_487); -if (lean_obj_tag(x_487) == 0) -{ -lean_object* x_488; -x_488 = lean_ctor_get(x_4, 3); -lean_inc(x_488); -if (lean_obj_tag(x_488) == 0) -{ -uint8_t x_489; lean_object* x_490; -x_489 = 1; -x_490 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_490, 0, x_483); -lean_ctor_set(x_490, 1, x_2); -lean_ctor_set(x_490, 2, x_3); -lean_ctor_set(x_490, 3, x_4); -lean_ctor_set_uint8(x_490, sizeof(void*)*4, x_489); -return x_490; -} -else -{ -uint8_t x_491; -x_491 = lean_ctor_get_uint8(x_488, sizeof(void*)*4); -if (x_491 == 0) -{ -lean_object* x_492; lean_object* x_493; lean_object* x_494; lean_object* x_495; lean_object* x_496; lean_object* x_497; lean_object* x_498; lean_object* x_499; uint8_t x_500; lean_object* x_501; lean_object* x_502; uint8_t x_503; lean_object* x_504; -x_492 = lean_ctor_get(x_4, 1); -lean_inc(x_492); -x_493 = lean_ctor_get(x_4, 2); -lean_inc(x_493); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_494 = x_4; -} else { - lean_dec_ref(x_4); - x_494 = lean_box(0); -} -x_495 = lean_ctor_get(x_488, 0); -lean_inc(x_495); -x_496 = lean_ctor_get(x_488, 1); -lean_inc(x_496); -x_497 = lean_ctor_get(x_488, 2); -lean_inc(x_497); -x_498 = lean_ctor_get(x_488, 3); -lean_inc(x_498); -if (lean_is_exclusive(x_488)) { - lean_ctor_release(x_488, 0); - lean_ctor_release(x_488, 1); - lean_ctor_release(x_488, 2); - lean_ctor_release(x_488, 3); - x_499 = x_488; -} else { - lean_dec_ref(x_488); - x_499 = lean_box(0); -} -x_500 = 1; -if (lean_is_scalar(x_499)) { - x_501 = lean_alloc_ctor(1, 4, 1); -} else { - x_501 = x_499; -} -lean_ctor_set(x_501, 0, x_483); -lean_ctor_set(x_501, 1, x_2); -lean_ctor_set(x_501, 2, x_3); -lean_ctor_set(x_501, 3, x_487); -lean_ctor_set_uint8(x_501, sizeof(void*)*4, x_500); -if (lean_is_scalar(x_494)) { - x_502 = lean_alloc_ctor(1, 4, 1); -} else { - x_502 = x_494; -} -lean_ctor_set(x_502, 0, x_495); -lean_ctor_set(x_502, 1, x_496); -lean_ctor_set(x_502, 2, x_497); -lean_ctor_set(x_502, 3, x_498); -lean_ctor_set_uint8(x_502, sizeof(void*)*4, x_500); -x_503 = 0; -x_504 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_504, 0, x_501); -lean_ctor_set(x_504, 1, x_492); -lean_ctor_set(x_504, 2, x_493); -lean_ctor_set(x_504, 3, x_502); -lean_ctor_set_uint8(x_504, sizeof(void*)*4, x_503); -return x_504; -} -else -{ -lean_object* x_505; uint8_t x_506; lean_object* x_507; -if (lean_is_exclusive(x_488)) { - lean_ctor_release(x_488, 0); - lean_ctor_release(x_488, 1); - lean_ctor_release(x_488, 2); - lean_ctor_release(x_488, 3); - x_505 = x_488; -} else { - lean_dec_ref(x_488); - x_505 = lean_box(0); -} -x_506 = 1; -if (lean_is_scalar(x_505)) { - x_507 = lean_alloc_ctor(1, 4, 1); -} else { - x_507 = x_505; -} -lean_ctor_set(x_507, 0, x_483); -lean_ctor_set(x_507, 1, x_2); -lean_ctor_set(x_507, 2, x_3); -lean_ctor_set(x_507, 3, x_4); -lean_ctor_set_uint8(x_507, sizeof(void*)*4, x_506); -return x_507; -} -} -} -else -{ -uint8_t x_508; -x_508 = lean_ctor_get_uint8(x_487, sizeof(void*)*4); -if (x_508 == 0) -{ -lean_object* x_509; -x_509 = lean_ctor_get(x_4, 3); -lean_inc(x_509); -if (lean_obj_tag(x_509) == 0) -{ -lean_object* x_510; lean_object* x_511; lean_object* x_512; lean_object* x_513; lean_object* x_514; lean_object* x_515; lean_object* x_516; lean_object* x_517; uint8_t x_518; lean_object* x_519; lean_object* x_520; uint8_t x_521; lean_object* x_522; -x_510 = lean_ctor_get(x_4, 1); -lean_inc(x_510); -x_511 = lean_ctor_get(x_4, 2); -lean_inc(x_511); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_512 = x_4; -} else { - lean_dec_ref(x_4); - x_512 = lean_box(0); -} -x_513 = lean_ctor_get(x_487, 0); -lean_inc(x_513); -x_514 = lean_ctor_get(x_487, 1); -lean_inc(x_514); -x_515 = lean_ctor_get(x_487, 2); -lean_inc(x_515); -x_516 = lean_ctor_get(x_487, 3); -lean_inc(x_516); -if (lean_is_exclusive(x_487)) { - lean_ctor_release(x_487, 0); - lean_ctor_release(x_487, 1); - lean_ctor_release(x_487, 2); - lean_ctor_release(x_487, 3); - x_517 = x_487; -} else { - lean_dec_ref(x_487); - x_517 = lean_box(0); -} -x_518 = 1; -if (lean_is_scalar(x_517)) { - x_519 = lean_alloc_ctor(1, 4, 1); -} else { - x_519 = x_517; -} -lean_ctor_set(x_519, 0, x_483); -lean_ctor_set(x_519, 1, x_2); -lean_ctor_set(x_519, 2, x_3); -lean_ctor_set(x_519, 3, x_513); -lean_ctor_set_uint8(x_519, sizeof(void*)*4, x_518); -if (lean_is_scalar(x_512)) { - x_520 = lean_alloc_ctor(1, 4, 1); -} else { - x_520 = x_512; -} -lean_ctor_set(x_520, 0, x_516); -lean_ctor_set(x_520, 1, x_510); -lean_ctor_set(x_520, 2, x_511); -lean_ctor_set(x_520, 3, x_509); -lean_ctor_set_uint8(x_520, sizeof(void*)*4, x_518); -x_521 = 0; -x_522 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_522, 0, x_519); -lean_ctor_set(x_522, 1, x_514); -lean_ctor_set(x_522, 2, x_515); -lean_ctor_set(x_522, 3, x_520); -lean_ctor_set_uint8(x_522, sizeof(void*)*4, x_521); -return x_522; -} -else -{ -uint8_t x_523; -x_523 = lean_ctor_get_uint8(x_509, sizeof(void*)*4); -if (x_523 == 0) -{ -lean_object* x_524; lean_object* x_525; lean_object* x_526; lean_object* x_527; lean_object* x_528; lean_object* x_529; lean_object* x_530; lean_object* x_531; lean_object* x_532; lean_object* x_533; lean_object* x_534; lean_object* x_535; lean_object* x_536; lean_object* x_537; uint8_t x_538; lean_object* x_539; lean_object* x_540; uint8_t x_541; lean_object* x_542; -x_524 = lean_ctor_get(x_4, 1); -lean_inc(x_524); -x_525 = lean_ctor_get(x_4, 2); -lean_inc(x_525); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_526 = x_4; -} else { - lean_dec_ref(x_4); - x_526 = lean_box(0); -} -x_527 = lean_ctor_get(x_487, 0); -lean_inc(x_527); -x_528 = lean_ctor_get(x_487, 1); -lean_inc(x_528); -x_529 = lean_ctor_get(x_487, 2); -lean_inc(x_529); -x_530 = lean_ctor_get(x_487, 3); -lean_inc(x_530); -if (lean_is_exclusive(x_487)) { - lean_ctor_release(x_487, 0); - lean_ctor_release(x_487, 1); - lean_ctor_release(x_487, 2); - lean_ctor_release(x_487, 3); - x_531 = x_487; -} else { - lean_dec_ref(x_487); - x_531 = lean_box(0); -} -x_532 = lean_ctor_get(x_509, 0); -lean_inc(x_532); -x_533 = lean_ctor_get(x_509, 1); -lean_inc(x_533); -x_534 = lean_ctor_get(x_509, 2); -lean_inc(x_534); -x_535 = lean_ctor_get(x_509, 3); -lean_inc(x_535); -if (lean_is_exclusive(x_509)) { - lean_ctor_release(x_509, 0); - lean_ctor_release(x_509, 1); - lean_ctor_release(x_509, 2); - lean_ctor_release(x_509, 3); - x_536 = x_509; -} else { - lean_dec_ref(x_509); - x_536 = lean_box(0); -} -if (lean_is_scalar(x_536)) { - x_537 = lean_alloc_ctor(1, 4, 1); -} else { - x_537 = x_536; -} -lean_ctor_set(x_537, 0, x_527); -lean_ctor_set(x_537, 1, x_528); -lean_ctor_set(x_537, 2, x_529); -lean_ctor_set(x_537, 3, x_530); -lean_ctor_set_uint8(x_537, sizeof(void*)*4, x_523); -x_538 = 1; -if (lean_is_scalar(x_531)) { - x_539 = lean_alloc_ctor(1, 4, 1); -} else { - x_539 = x_531; -} -lean_ctor_set(x_539, 0, x_483); -lean_ctor_set(x_539, 1, x_2); -lean_ctor_set(x_539, 2, x_3); -lean_ctor_set(x_539, 3, x_537); -lean_ctor_set_uint8(x_539, sizeof(void*)*4, x_538); -if (lean_is_scalar(x_526)) { - x_540 = lean_alloc_ctor(1, 4, 1); -} else { - x_540 = x_526; -} -lean_ctor_set(x_540, 0, x_532); -lean_ctor_set(x_540, 1, x_533); -lean_ctor_set(x_540, 2, x_534); -lean_ctor_set(x_540, 3, x_535); -lean_ctor_set_uint8(x_540, sizeof(void*)*4, x_538); -x_541 = 0; -x_542 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_542, 0, x_539); -lean_ctor_set(x_542, 1, x_524); -lean_ctor_set(x_542, 2, x_525); -lean_ctor_set(x_542, 3, x_540); -lean_ctor_set_uint8(x_542, sizeof(void*)*4, x_541); -return x_542; -} -else -{ -lean_object* x_543; lean_object* x_544; lean_object* x_545; lean_object* x_546; lean_object* x_547; lean_object* x_548; lean_object* x_549; lean_object* x_550; uint8_t x_551; lean_object* x_552; lean_object* x_553; uint8_t x_554; lean_object* x_555; -x_543 = lean_ctor_get(x_4, 1); -lean_inc(x_543); -x_544 = lean_ctor_get(x_4, 2); -lean_inc(x_544); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_545 = x_4; -} else { - lean_dec_ref(x_4); - x_545 = lean_box(0); -} -x_546 = lean_ctor_get(x_487, 0); -lean_inc(x_546); -x_547 = lean_ctor_get(x_487, 1); -lean_inc(x_547); -x_548 = lean_ctor_get(x_487, 2); -lean_inc(x_548); -x_549 = lean_ctor_get(x_487, 3); -lean_inc(x_549); -if (lean_is_exclusive(x_487)) { - lean_ctor_release(x_487, 0); - lean_ctor_release(x_487, 1); - lean_ctor_release(x_487, 2); - lean_ctor_release(x_487, 3); - x_550 = x_487; -} else { - lean_dec_ref(x_487); - x_550 = lean_box(0); -} -x_551 = 1; -if (lean_is_scalar(x_550)) { - x_552 = lean_alloc_ctor(1, 4, 1); -} else { - x_552 = x_550; -} -lean_ctor_set(x_552, 0, x_483); -lean_ctor_set(x_552, 1, x_2); -lean_ctor_set(x_552, 2, x_3); -lean_ctor_set(x_552, 3, x_546); -lean_ctor_set_uint8(x_552, sizeof(void*)*4, x_551); -if (lean_is_scalar(x_545)) { - x_553 = lean_alloc_ctor(1, 4, 1); -} else { - x_553 = x_545; -} -lean_ctor_set(x_553, 0, x_549); -lean_ctor_set(x_553, 1, x_543); -lean_ctor_set(x_553, 2, x_544); -lean_ctor_set(x_553, 3, x_509); -lean_ctor_set_uint8(x_553, sizeof(void*)*4, x_551); -x_554 = 0; -x_555 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_555, 0, x_552); -lean_ctor_set(x_555, 1, x_547); -lean_ctor_set(x_555, 2, x_548); -lean_ctor_set(x_555, 3, x_553); -lean_ctor_set_uint8(x_555, sizeof(void*)*4, x_554); -return x_555; -} -} -} -else -{ -lean_object* x_556; -x_556 = lean_ctor_get(x_4, 3); -lean_inc(x_556); -if (lean_obj_tag(x_556) == 0) -{ -lean_object* x_557; uint8_t x_558; lean_object* x_559; -if (lean_is_exclusive(x_487)) { - lean_ctor_release(x_487, 0); - lean_ctor_release(x_487, 1); - lean_ctor_release(x_487, 2); - lean_ctor_release(x_487, 3); - x_557 = x_487; -} else { - lean_dec_ref(x_487); - x_557 = lean_box(0); -} -x_558 = 1; -if (lean_is_scalar(x_557)) { - x_559 = lean_alloc_ctor(1, 4, 1); -} else { - x_559 = x_557; -} -lean_ctor_set(x_559, 0, x_483); -lean_ctor_set(x_559, 1, x_2); -lean_ctor_set(x_559, 2, x_3); -lean_ctor_set(x_559, 3, x_4); -lean_ctor_set_uint8(x_559, sizeof(void*)*4, x_558); -return x_559; -} -else -{ -uint8_t x_560; -x_560 = lean_ctor_get_uint8(x_556, sizeof(void*)*4); -if (x_560 == 0) -{ -lean_object* x_561; lean_object* x_562; lean_object* x_563; lean_object* x_564; lean_object* x_565; lean_object* x_566; lean_object* x_567; lean_object* x_568; uint8_t x_569; lean_object* x_570; lean_object* x_571; lean_object* x_572; uint8_t x_573; lean_object* x_574; -x_561 = lean_ctor_get(x_4, 1); -lean_inc(x_561); -x_562 = lean_ctor_get(x_4, 2); -lean_inc(x_562); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_563 = x_4; -} else { - lean_dec_ref(x_4); - x_563 = lean_box(0); -} -x_564 = lean_ctor_get(x_556, 0); -lean_inc(x_564); -x_565 = lean_ctor_get(x_556, 1); -lean_inc(x_565); -x_566 = lean_ctor_get(x_556, 2); -lean_inc(x_566); -x_567 = lean_ctor_get(x_556, 3); -lean_inc(x_567); -if (lean_is_exclusive(x_556)) { - lean_ctor_release(x_556, 0); - lean_ctor_release(x_556, 1); - lean_ctor_release(x_556, 2); - lean_ctor_release(x_556, 3); - x_568 = x_556; -} else { - lean_dec_ref(x_556); - x_568 = lean_box(0); -} -x_569 = 1; -lean_inc(x_487); -if (lean_is_scalar(x_568)) { - x_570 = lean_alloc_ctor(1, 4, 1); -} else { - x_570 = x_568; -} -lean_ctor_set(x_570, 0, x_483); -lean_ctor_set(x_570, 1, x_2); -lean_ctor_set(x_570, 2, x_3); -lean_ctor_set(x_570, 3, x_487); -if (lean_is_exclusive(x_487)) { - lean_ctor_release(x_487, 0); - lean_ctor_release(x_487, 1); - lean_ctor_release(x_487, 2); - lean_ctor_release(x_487, 3); - x_571 = x_487; -} else { - lean_dec_ref(x_487); - x_571 = lean_box(0); -} -lean_ctor_set_uint8(x_570, sizeof(void*)*4, x_569); -if (lean_is_scalar(x_571)) { - x_572 = lean_alloc_ctor(1, 4, 1); -} else { - x_572 = x_571; -} -lean_ctor_set(x_572, 0, x_564); -lean_ctor_set(x_572, 1, x_565); -lean_ctor_set(x_572, 2, x_566); -lean_ctor_set(x_572, 3, x_567); -lean_ctor_set_uint8(x_572, sizeof(void*)*4, x_569); -x_573 = 0; -if (lean_is_scalar(x_563)) { - x_574 = lean_alloc_ctor(1, 4, 1); -} else { - x_574 = x_563; -} -lean_ctor_set(x_574, 0, x_570); -lean_ctor_set(x_574, 1, x_561); -lean_ctor_set(x_574, 2, x_562); -lean_ctor_set(x_574, 3, x_572); -lean_ctor_set_uint8(x_574, sizeof(void*)*4, x_573); -return x_574; -} -else -{ -lean_object* x_575; uint8_t x_576; lean_object* x_577; -lean_dec(x_487); -if (lean_is_exclusive(x_556)) { - lean_ctor_release(x_556, 0); - lean_ctor_release(x_556, 1); - lean_ctor_release(x_556, 2); - lean_ctor_release(x_556, 3); - x_575 = x_556; -} else { - lean_dec_ref(x_556); - x_575 = lean_box(0); -} -x_576 = 1; -if (lean_is_scalar(x_575)) { - x_577 = lean_alloc_ctor(1, 4, 1); -} else { - x_577 = x_575; -} -lean_ctor_set(x_577, 0, x_483); -lean_ctor_set(x_577, 1, x_2); -lean_ctor_set(x_577, 2, x_3); -lean_ctor_set(x_577, 3, x_4); -lean_ctor_set_uint8(x_577, sizeof(void*)*4, x_576); -return x_577; -} -} -} -} -} -else -{ -uint8_t x_578; lean_object* x_579; -x_578 = 1; -x_579 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_579, 0, x_483); -lean_ctor_set(x_579, 1, x_2); -lean_ctor_set(x_579, 2, x_3); -lean_ctor_set(x_579, 3, x_4); -lean_ctor_set_uint8(x_579, sizeof(void*)*4, x_578); -return x_579; -} -} -} -} -else -{ -uint8_t x_580; -x_580 = lean_ctor_get_uint8(x_242, sizeof(void*)*4); -if (x_580 == 0) -{ -uint8_t x_581; -x_581 = !lean_is_exclusive(x_1); -if (x_581 == 0) -{ -lean_object* x_582; lean_object* x_583; lean_object* x_584; lean_object* x_585; uint8_t x_586; -x_582 = lean_ctor_get(x_1, 1); -x_583 = lean_ctor_get(x_1, 2); -x_584 = lean_ctor_get(x_1, 3); -lean_dec(x_584); -x_585 = lean_ctor_get(x_1, 0); -lean_dec(x_585); -x_586 = !lean_is_exclusive(x_242); -if (x_586 == 0) -{ -lean_object* x_587; lean_object* x_588; lean_object* x_589; lean_object* x_590; uint8_t x_591; uint8_t x_592; lean_object* x_593; -x_587 = lean_ctor_get(x_242, 0); -x_588 = lean_ctor_get(x_242, 1); -x_589 = lean_ctor_get(x_242, 2); -x_590 = lean_ctor_get(x_242, 3); -x_591 = 1; -lean_ctor_set(x_242, 3, x_587); -lean_ctor_set(x_242, 2, x_583); -lean_ctor_set(x_242, 1, x_582); -lean_ctor_set(x_242, 0, x_241); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_591); -lean_ctor_set(x_1, 3, x_4); -lean_ctor_set(x_1, 2, x_3); -lean_ctor_set(x_1, 1, x_2); -lean_ctor_set(x_1, 0, x_590); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_591); -x_592 = 0; -x_593 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_593, 0, x_242); -lean_ctor_set(x_593, 1, x_588); -lean_ctor_set(x_593, 2, x_589); -lean_ctor_set(x_593, 3, x_1); -lean_ctor_set_uint8(x_593, sizeof(void*)*4, x_592); -return x_593; -} -else -{ -lean_object* x_594; lean_object* x_595; lean_object* x_596; lean_object* x_597; uint8_t x_598; lean_object* x_599; uint8_t x_600; lean_object* x_601; -x_594 = lean_ctor_get(x_242, 0); -x_595 = lean_ctor_get(x_242, 1); -x_596 = lean_ctor_get(x_242, 2); -x_597 = lean_ctor_get(x_242, 3); -lean_inc(x_597); -lean_inc(x_596); -lean_inc(x_595); -lean_inc(x_594); -lean_dec(x_242); -x_598 = 1; -x_599 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_599, 0, x_241); -lean_ctor_set(x_599, 1, x_582); -lean_ctor_set(x_599, 2, x_583); -lean_ctor_set(x_599, 3, x_594); -lean_ctor_set_uint8(x_599, sizeof(void*)*4, x_598); -lean_ctor_set(x_1, 3, x_4); -lean_ctor_set(x_1, 2, x_3); -lean_ctor_set(x_1, 1, x_2); -lean_ctor_set(x_1, 0, x_597); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_598); -x_600 = 0; -x_601 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_601, 0, x_599); -lean_ctor_set(x_601, 1, x_595); -lean_ctor_set(x_601, 2, x_596); -lean_ctor_set(x_601, 3, x_1); -lean_ctor_set_uint8(x_601, sizeof(void*)*4, x_600); -return x_601; -} -} -else -{ -lean_object* x_602; lean_object* x_603; lean_object* x_604; lean_object* x_605; lean_object* x_606; lean_object* x_607; lean_object* x_608; uint8_t x_609; lean_object* x_610; lean_object* x_611; uint8_t x_612; lean_object* x_613; -x_602 = lean_ctor_get(x_1, 1); -x_603 = lean_ctor_get(x_1, 2); -lean_inc(x_603); -lean_inc(x_602); -lean_dec(x_1); -x_604 = lean_ctor_get(x_242, 0); -lean_inc(x_604); -x_605 = lean_ctor_get(x_242, 1); -lean_inc(x_605); -x_606 = lean_ctor_get(x_242, 2); -lean_inc(x_606); -x_607 = lean_ctor_get(x_242, 3); -lean_inc(x_607); -if (lean_is_exclusive(x_242)) { - lean_ctor_release(x_242, 0); - lean_ctor_release(x_242, 1); - lean_ctor_release(x_242, 2); - lean_ctor_release(x_242, 3); - x_608 = x_242; -} else { - lean_dec_ref(x_242); - x_608 = lean_box(0); -} -x_609 = 1; -if (lean_is_scalar(x_608)) { - x_610 = lean_alloc_ctor(1, 4, 1); -} else { - x_610 = x_608; -} -lean_ctor_set(x_610, 0, x_241); -lean_ctor_set(x_610, 1, x_602); -lean_ctor_set(x_610, 2, x_603); -lean_ctor_set(x_610, 3, x_604); -lean_ctor_set_uint8(x_610, sizeof(void*)*4, x_609); -x_611 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_611, 0, x_607); -lean_ctor_set(x_611, 1, x_2); -lean_ctor_set(x_611, 2, x_3); -lean_ctor_set(x_611, 3, x_4); -lean_ctor_set_uint8(x_611, sizeof(void*)*4, x_609); -x_612 = 0; -x_613 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_613, 0, x_610); -lean_ctor_set(x_613, 1, x_605); -lean_ctor_set(x_613, 2, x_606); -lean_ctor_set(x_613, 3, x_611); -lean_ctor_set_uint8(x_613, sizeof(void*)*4, x_612); -return x_613; -} -} -else -{ -uint8_t x_614; -x_614 = !lean_is_exclusive(x_242); -if (x_614 == 0) -{ -lean_object* x_615; lean_object* x_616; lean_object* x_617; lean_object* x_618; -x_615 = lean_ctor_get(x_242, 3); -lean_dec(x_615); -x_616 = lean_ctor_get(x_242, 2); -lean_dec(x_616); -x_617 = lean_ctor_get(x_242, 1); -lean_dec(x_617); -x_618 = lean_ctor_get(x_242, 0); -lean_dec(x_618); -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_619; -x_619 = 1; -lean_ctor_set(x_242, 3, x_4); -lean_ctor_set(x_242, 2, x_3); -lean_ctor_set(x_242, 1, x_2); -lean_ctor_set(x_242, 0, x_1); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_619); -return x_242; -} -else -{ -uint8_t x_620; -x_620 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_620 == 0) -{ -lean_object* x_621; -x_621 = lean_ctor_get(x_4, 0); -lean_inc(x_621); -if (lean_obj_tag(x_621) == 0) -{ -lean_object* x_622; -x_622 = lean_ctor_get(x_4, 3); -lean_inc(x_622); -if (lean_obj_tag(x_622) == 0) -{ -uint8_t x_623; -x_623 = 1; -lean_ctor_set(x_242, 3, x_4); -lean_ctor_set(x_242, 2, x_3); -lean_ctor_set(x_242, 1, x_2); -lean_ctor_set(x_242, 0, x_1); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_623); -return x_242; -} -else -{ -uint8_t x_624; -x_624 = lean_ctor_get_uint8(x_622, sizeof(void*)*4); -if (x_624 == 0) -{ -uint8_t x_625; -x_625 = !lean_is_exclusive(x_4); -if (x_625 == 0) -{ -lean_object* x_626; lean_object* x_627; lean_object* x_628; lean_object* x_629; uint8_t x_630; -x_626 = lean_ctor_get(x_4, 1); -x_627 = lean_ctor_get(x_4, 2); -x_628 = lean_ctor_get(x_4, 3); -lean_dec(x_628); -x_629 = lean_ctor_get(x_4, 0); -lean_dec(x_629); -x_630 = !lean_is_exclusive(x_622); -if (x_630 == 0) -{ -lean_object* x_631; lean_object* x_632; lean_object* x_633; lean_object* x_634; uint8_t x_635; uint8_t x_636; -x_631 = lean_ctor_get(x_622, 0); -x_632 = lean_ctor_get(x_622, 1); -x_633 = lean_ctor_get(x_622, 2); -x_634 = lean_ctor_get(x_622, 3); -x_635 = 1; -lean_ctor_set(x_622, 3, x_621); -lean_ctor_set(x_622, 2, x_3); -lean_ctor_set(x_622, 1, x_2); -lean_ctor_set(x_622, 0, x_1); -lean_ctor_set_uint8(x_622, sizeof(void*)*4, x_635); -lean_ctor_set(x_4, 3, x_634); -lean_ctor_set(x_4, 2, x_633); -lean_ctor_set(x_4, 1, x_632); -lean_ctor_set(x_4, 0, x_631); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_635); -x_636 = 0; -lean_ctor_set(x_242, 3, x_4); -lean_ctor_set(x_242, 2, x_627); -lean_ctor_set(x_242, 1, x_626); -lean_ctor_set(x_242, 0, x_622); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_636); -return x_242; -} -else -{ -lean_object* x_637; lean_object* x_638; lean_object* x_639; lean_object* x_640; uint8_t x_641; lean_object* x_642; uint8_t x_643; -x_637 = lean_ctor_get(x_622, 0); -x_638 = lean_ctor_get(x_622, 1); -x_639 = lean_ctor_get(x_622, 2); -x_640 = lean_ctor_get(x_622, 3); -lean_inc(x_640); -lean_inc(x_639); -lean_inc(x_638); -lean_inc(x_637); -lean_dec(x_622); -x_641 = 1; -x_642 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_642, 0, x_1); -lean_ctor_set(x_642, 1, x_2); -lean_ctor_set(x_642, 2, x_3); -lean_ctor_set(x_642, 3, x_621); -lean_ctor_set_uint8(x_642, sizeof(void*)*4, x_641); -lean_ctor_set(x_4, 3, x_640); -lean_ctor_set(x_4, 2, x_639); -lean_ctor_set(x_4, 1, x_638); -lean_ctor_set(x_4, 0, x_637); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_641); -x_643 = 0; -lean_ctor_set(x_242, 3, x_4); -lean_ctor_set(x_242, 2, x_627); -lean_ctor_set(x_242, 1, x_626); -lean_ctor_set(x_242, 0, x_642); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_643); -return x_242; -} -} -else -{ -lean_object* x_644; lean_object* x_645; lean_object* x_646; lean_object* x_647; lean_object* x_648; lean_object* x_649; lean_object* x_650; uint8_t x_651; lean_object* x_652; lean_object* x_653; uint8_t x_654; -x_644 = lean_ctor_get(x_4, 1); -x_645 = lean_ctor_get(x_4, 2); -lean_inc(x_645); -lean_inc(x_644); -lean_dec(x_4); -x_646 = lean_ctor_get(x_622, 0); -lean_inc(x_646); -x_647 = lean_ctor_get(x_622, 1); -lean_inc(x_647); -x_648 = lean_ctor_get(x_622, 2); -lean_inc(x_648); -x_649 = lean_ctor_get(x_622, 3); -lean_inc(x_649); -if (lean_is_exclusive(x_622)) { - lean_ctor_release(x_622, 0); - lean_ctor_release(x_622, 1); - lean_ctor_release(x_622, 2); - lean_ctor_release(x_622, 3); - x_650 = x_622; -} else { - lean_dec_ref(x_622); - x_650 = lean_box(0); -} -x_651 = 1; -if (lean_is_scalar(x_650)) { - x_652 = lean_alloc_ctor(1, 4, 1); -} else { - x_652 = x_650; -} -lean_ctor_set(x_652, 0, x_1); -lean_ctor_set(x_652, 1, x_2); -lean_ctor_set(x_652, 2, x_3); -lean_ctor_set(x_652, 3, x_621); -lean_ctor_set_uint8(x_652, sizeof(void*)*4, x_651); -x_653 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_653, 0, x_646); -lean_ctor_set(x_653, 1, x_647); -lean_ctor_set(x_653, 2, x_648); -lean_ctor_set(x_653, 3, x_649); -lean_ctor_set_uint8(x_653, sizeof(void*)*4, x_651); -x_654 = 0; -lean_ctor_set(x_242, 3, x_653); -lean_ctor_set(x_242, 2, x_645); -lean_ctor_set(x_242, 1, x_644); -lean_ctor_set(x_242, 0, x_652); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_654); -return x_242; -} -} -else -{ -uint8_t x_655; -lean_free_object(x_242); -x_655 = !lean_is_exclusive(x_622); -if (x_655 == 0) -{ -lean_object* x_656; lean_object* x_657; lean_object* x_658; lean_object* x_659; uint8_t x_660; -x_656 = lean_ctor_get(x_622, 3); -lean_dec(x_656); -x_657 = lean_ctor_get(x_622, 2); -lean_dec(x_657); -x_658 = lean_ctor_get(x_622, 1); -lean_dec(x_658); -x_659 = lean_ctor_get(x_622, 0); -lean_dec(x_659); -x_660 = 1; -lean_ctor_set(x_622, 3, x_4); -lean_ctor_set(x_622, 2, x_3); -lean_ctor_set(x_622, 1, x_2); -lean_ctor_set(x_622, 0, x_1); -lean_ctor_set_uint8(x_622, sizeof(void*)*4, x_660); -return x_622; -} -else -{ -uint8_t x_661; lean_object* x_662; -lean_dec(x_622); -x_661 = 1; -x_662 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_662, 0, x_1); -lean_ctor_set(x_662, 1, x_2); -lean_ctor_set(x_662, 2, x_3); -lean_ctor_set(x_662, 3, x_4); -lean_ctor_set_uint8(x_662, sizeof(void*)*4, x_661); -return x_662; -} -} -} -} -else -{ -uint8_t x_663; -x_663 = lean_ctor_get_uint8(x_621, sizeof(void*)*4); -if (x_663 == 0) -{ -lean_object* x_664; -x_664 = lean_ctor_get(x_4, 3); -lean_inc(x_664); -if (lean_obj_tag(x_664) == 0) -{ -uint8_t x_665; -x_665 = !lean_is_exclusive(x_4); -if (x_665 == 0) -{ -lean_object* x_666; lean_object* x_667; uint8_t x_668; -x_666 = lean_ctor_get(x_4, 3); -lean_dec(x_666); -x_667 = lean_ctor_get(x_4, 0); -lean_dec(x_667); -x_668 = !lean_is_exclusive(x_621); -if (x_668 == 0) -{ -lean_object* x_669; lean_object* x_670; lean_object* x_671; lean_object* x_672; uint8_t x_673; uint8_t x_674; -x_669 = lean_ctor_get(x_621, 0); -x_670 = lean_ctor_get(x_621, 1); -x_671 = lean_ctor_get(x_621, 2); -x_672 = lean_ctor_get(x_621, 3); -x_673 = 1; -lean_ctor_set(x_621, 3, x_669); -lean_ctor_set(x_621, 2, x_3); -lean_ctor_set(x_621, 1, x_2); -lean_ctor_set(x_621, 0, x_1); -lean_ctor_set_uint8(x_621, sizeof(void*)*4, x_673); -lean_ctor_set(x_4, 0, x_672); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_673); -x_674 = 0; -lean_ctor_set(x_242, 3, x_4); -lean_ctor_set(x_242, 2, x_671); -lean_ctor_set(x_242, 1, x_670); -lean_ctor_set(x_242, 0, x_621); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_674); -return x_242; -} -else -{ -lean_object* x_675; lean_object* x_676; lean_object* x_677; lean_object* x_678; uint8_t x_679; lean_object* x_680; uint8_t x_681; -x_675 = lean_ctor_get(x_621, 0); -x_676 = lean_ctor_get(x_621, 1); -x_677 = lean_ctor_get(x_621, 2); -x_678 = lean_ctor_get(x_621, 3); -lean_inc(x_678); -lean_inc(x_677); -lean_inc(x_676); -lean_inc(x_675); -lean_dec(x_621); -x_679 = 1; -x_680 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_680, 0, x_1); -lean_ctor_set(x_680, 1, x_2); -lean_ctor_set(x_680, 2, x_3); -lean_ctor_set(x_680, 3, x_675); -lean_ctor_set_uint8(x_680, sizeof(void*)*4, x_679); -lean_ctor_set(x_4, 0, x_678); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_679); -x_681 = 0; -lean_ctor_set(x_242, 3, x_4); -lean_ctor_set(x_242, 2, x_677); -lean_ctor_set(x_242, 1, x_676); -lean_ctor_set(x_242, 0, x_680); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_681); -return x_242; -} -} -else -{ -lean_object* x_682; lean_object* x_683; lean_object* x_684; lean_object* x_685; lean_object* x_686; lean_object* x_687; lean_object* x_688; uint8_t x_689; lean_object* x_690; lean_object* x_691; uint8_t x_692; -x_682 = lean_ctor_get(x_4, 1); -x_683 = lean_ctor_get(x_4, 2); -lean_inc(x_683); -lean_inc(x_682); -lean_dec(x_4); -x_684 = lean_ctor_get(x_621, 0); -lean_inc(x_684); -x_685 = lean_ctor_get(x_621, 1); -lean_inc(x_685); -x_686 = lean_ctor_get(x_621, 2); -lean_inc(x_686); -x_687 = lean_ctor_get(x_621, 3); -lean_inc(x_687); -if (lean_is_exclusive(x_621)) { - lean_ctor_release(x_621, 0); - lean_ctor_release(x_621, 1); - lean_ctor_release(x_621, 2); - lean_ctor_release(x_621, 3); - x_688 = x_621; -} else { - lean_dec_ref(x_621); - x_688 = lean_box(0); -} -x_689 = 1; -if (lean_is_scalar(x_688)) { - x_690 = lean_alloc_ctor(1, 4, 1); -} else { - x_690 = x_688; -} -lean_ctor_set(x_690, 0, x_1); -lean_ctor_set(x_690, 1, x_2); -lean_ctor_set(x_690, 2, x_3); -lean_ctor_set(x_690, 3, x_684); -lean_ctor_set_uint8(x_690, sizeof(void*)*4, x_689); -x_691 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_691, 0, x_687); -lean_ctor_set(x_691, 1, x_682); -lean_ctor_set(x_691, 2, x_683); -lean_ctor_set(x_691, 3, x_664); -lean_ctor_set_uint8(x_691, sizeof(void*)*4, x_689); -x_692 = 0; -lean_ctor_set(x_242, 3, x_691); -lean_ctor_set(x_242, 2, x_686); -lean_ctor_set(x_242, 1, x_685); -lean_ctor_set(x_242, 0, x_690); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_692); -return x_242; -} -} -else -{ -uint8_t x_693; -x_693 = lean_ctor_get_uint8(x_664, sizeof(void*)*4); -if (x_693 == 0) -{ -uint8_t x_694; -x_694 = !lean_is_exclusive(x_4); -if (x_694 == 0) -{ -lean_object* x_695; lean_object* x_696; lean_object* x_697; lean_object* x_698; uint8_t x_699; -x_695 = lean_ctor_get(x_4, 1); -x_696 = lean_ctor_get(x_4, 2); -x_697 = lean_ctor_get(x_4, 3); -lean_dec(x_697); -x_698 = lean_ctor_get(x_4, 0); -lean_dec(x_698); -x_699 = !lean_is_exclusive(x_621); -if (x_699 == 0) -{ -uint8_t x_700; -x_700 = !lean_is_exclusive(x_664); -if (x_700 == 0) -{ -lean_object* x_701; lean_object* x_702; lean_object* x_703; lean_object* x_704; lean_object* x_705; lean_object* x_706; lean_object* x_707; lean_object* x_708; uint8_t x_709; uint8_t x_710; -x_701 = lean_ctor_get(x_621, 0); -x_702 = lean_ctor_get(x_621, 1); -x_703 = lean_ctor_get(x_621, 2); -x_704 = lean_ctor_get(x_621, 3); -x_705 = lean_ctor_get(x_664, 0); -x_706 = lean_ctor_get(x_664, 1); -x_707 = lean_ctor_get(x_664, 2); -x_708 = lean_ctor_get(x_664, 3); -lean_ctor_set(x_664, 3, x_704); -lean_ctor_set(x_664, 2, x_703); -lean_ctor_set(x_664, 1, x_702); -lean_ctor_set(x_664, 0, x_701); -x_709 = 1; -lean_ctor_set(x_621, 3, x_664); -lean_ctor_set(x_621, 2, x_3); -lean_ctor_set(x_621, 1, x_2); -lean_ctor_set(x_621, 0, x_1); -lean_ctor_set_uint8(x_621, sizeof(void*)*4, x_709); -lean_ctor_set(x_4, 3, x_708); -lean_ctor_set(x_4, 2, x_707); -lean_ctor_set(x_4, 1, x_706); -lean_ctor_set(x_4, 0, x_705); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_709); -x_710 = 0; -lean_ctor_set(x_242, 3, x_4); -lean_ctor_set(x_242, 2, x_696); -lean_ctor_set(x_242, 1, x_695); -lean_ctor_set(x_242, 0, x_621); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_710); -return x_242; -} -else -{ -lean_object* x_711; lean_object* x_712; lean_object* x_713; lean_object* x_714; lean_object* x_715; lean_object* x_716; lean_object* x_717; lean_object* x_718; lean_object* x_719; uint8_t x_720; uint8_t x_721; -x_711 = lean_ctor_get(x_621, 0); -x_712 = lean_ctor_get(x_621, 1); -x_713 = lean_ctor_get(x_621, 2); -x_714 = lean_ctor_get(x_621, 3); -x_715 = lean_ctor_get(x_664, 0); -x_716 = lean_ctor_get(x_664, 1); -x_717 = lean_ctor_get(x_664, 2); -x_718 = lean_ctor_get(x_664, 3); -lean_inc(x_718); -lean_inc(x_717); -lean_inc(x_716); -lean_inc(x_715); -lean_dec(x_664); -x_719 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_719, 0, x_711); -lean_ctor_set(x_719, 1, x_712); -lean_ctor_set(x_719, 2, x_713); -lean_ctor_set(x_719, 3, x_714); -lean_ctor_set_uint8(x_719, sizeof(void*)*4, x_693); -x_720 = 1; -lean_ctor_set(x_621, 3, x_719); -lean_ctor_set(x_621, 2, x_3); -lean_ctor_set(x_621, 1, x_2); -lean_ctor_set(x_621, 0, x_1); -lean_ctor_set_uint8(x_621, sizeof(void*)*4, x_720); -lean_ctor_set(x_4, 3, x_718); -lean_ctor_set(x_4, 2, x_717); -lean_ctor_set(x_4, 1, x_716); -lean_ctor_set(x_4, 0, x_715); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_720); -x_721 = 0; -lean_ctor_set(x_242, 3, x_4); -lean_ctor_set(x_242, 2, x_696); -lean_ctor_set(x_242, 1, x_695); -lean_ctor_set(x_242, 0, x_621); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_721); -return x_242; -} -} -else -{ -lean_object* x_722; lean_object* x_723; lean_object* x_724; lean_object* x_725; lean_object* x_726; lean_object* x_727; lean_object* x_728; lean_object* x_729; lean_object* x_730; lean_object* x_731; uint8_t x_732; lean_object* x_733; uint8_t x_734; -x_722 = lean_ctor_get(x_621, 0); -x_723 = lean_ctor_get(x_621, 1); -x_724 = lean_ctor_get(x_621, 2); -x_725 = lean_ctor_get(x_621, 3); -lean_inc(x_725); -lean_inc(x_724); -lean_inc(x_723); -lean_inc(x_722); -lean_dec(x_621); -x_726 = lean_ctor_get(x_664, 0); -lean_inc(x_726); -x_727 = lean_ctor_get(x_664, 1); -lean_inc(x_727); -x_728 = lean_ctor_get(x_664, 2); -lean_inc(x_728); -x_729 = lean_ctor_get(x_664, 3); -lean_inc(x_729); -if (lean_is_exclusive(x_664)) { - lean_ctor_release(x_664, 0); - lean_ctor_release(x_664, 1); - lean_ctor_release(x_664, 2); - lean_ctor_release(x_664, 3); - x_730 = x_664; -} else { - lean_dec_ref(x_664); - x_730 = lean_box(0); -} -if (lean_is_scalar(x_730)) { - x_731 = lean_alloc_ctor(1, 4, 1); -} else { - x_731 = x_730; -} -lean_ctor_set(x_731, 0, x_722); -lean_ctor_set(x_731, 1, x_723); -lean_ctor_set(x_731, 2, x_724); -lean_ctor_set(x_731, 3, x_725); -lean_ctor_set_uint8(x_731, sizeof(void*)*4, x_693); -x_732 = 1; -x_733 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_733, 0, x_1); -lean_ctor_set(x_733, 1, x_2); -lean_ctor_set(x_733, 2, x_3); -lean_ctor_set(x_733, 3, x_731); -lean_ctor_set_uint8(x_733, sizeof(void*)*4, x_732); -lean_ctor_set(x_4, 3, x_729); -lean_ctor_set(x_4, 2, x_728); -lean_ctor_set(x_4, 1, x_727); -lean_ctor_set(x_4, 0, x_726); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_732); -x_734 = 0; -lean_ctor_set(x_242, 3, x_4); -lean_ctor_set(x_242, 2, x_696); -lean_ctor_set(x_242, 1, x_695); -lean_ctor_set(x_242, 0, x_733); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_734); -return x_242; -} -} -else -{ -lean_object* x_735; lean_object* x_736; lean_object* x_737; lean_object* x_738; lean_object* x_739; lean_object* x_740; lean_object* x_741; lean_object* x_742; lean_object* x_743; lean_object* x_744; lean_object* x_745; lean_object* x_746; lean_object* x_747; uint8_t x_748; lean_object* x_749; lean_object* x_750; uint8_t x_751; -x_735 = lean_ctor_get(x_4, 1); -x_736 = lean_ctor_get(x_4, 2); -lean_inc(x_736); -lean_inc(x_735); -lean_dec(x_4); -x_737 = lean_ctor_get(x_621, 0); -lean_inc(x_737); -x_738 = lean_ctor_get(x_621, 1); -lean_inc(x_738); -x_739 = lean_ctor_get(x_621, 2); -lean_inc(x_739); -x_740 = lean_ctor_get(x_621, 3); -lean_inc(x_740); -if (lean_is_exclusive(x_621)) { - lean_ctor_release(x_621, 0); - lean_ctor_release(x_621, 1); - lean_ctor_release(x_621, 2); - lean_ctor_release(x_621, 3); - x_741 = x_621; -} else { - lean_dec_ref(x_621); - x_741 = lean_box(0); -} -x_742 = lean_ctor_get(x_664, 0); -lean_inc(x_742); -x_743 = lean_ctor_get(x_664, 1); -lean_inc(x_743); -x_744 = lean_ctor_get(x_664, 2); -lean_inc(x_744); -x_745 = lean_ctor_get(x_664, 3); -lean_inc(x_745); -if (lean_is_exclusive(x_664)) { - lean_ctor_release(x_664, 0); - lean_ctor_release(x_664, 1); - lean_ctor_release(x_664, 2); - lean_ctor_release(x_664, 3); - x_746 = x_664; -} else { - lean_dec_ref(x_664); - x_746 = lean_box(0); -} -if (lean_is_scalar(x_746)) { - x_747 = lean_alloc_ctor(1, 4, 1); -} else { - x_747 = x_746; -} -lean_ctor_set(x_747, 0, x_737); -lean_ctor_set(x_747, 1, x_738); -lean_ctor_set(x_747, 2, x_739); -lean_ctor_set(x_747, 3, x_740); -lean_ctor_set_uint8(x_747, sizeof(void*)*4, x_693); -x_748 = 1; -if (lean_is_scalar(x_741)) { - x_749 = lean_alloc_ctor(1, 4, 1); -} else { - x_749 = x_741; -} -lean_ctor_set(x_749, 0, x_1); -lean_ctor_set(x_749, 1, x_2); -lean_ctor_set(x_749, 2, x_3); -lean_ctor_set(x_749, 3, x_747); -lean_ctor_set_uint8(x_749, sizeof(void*)*4, x_748); -x_750 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_750, 0, x_742); -lean_ctor_set(x_750, 1, x_743); -lean_ctor_set(x_750, 2, x_744); -lean_ctor_set(x_750, 3, x_745); -lean_ctor_set_uint8(x_750, sizeof(void*)*4, x_748); -x_751 = 0; -lean_ctor_set(x_242, 3, x_750); -lean_ctor_set(x_242, 2, x_736); -lean_ctor_set(x_242, 1, x_735); -lean_ctor_set(x_242, 0, x_749); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_751); -return x_242; -} -} -else -{ -uint8_t x_752; -x_752 = !lean_is_exclusive(x_4); -if (x_752 == 0) -{ -lean_object* x_753; lean_object* x_754; uint8_t x_755; -x_753 = lean_ctor_get(x_4, 3); -lean_dec(x_753); -x_754 = lean_ctor_get(x_4, 0); -lean_dec(x_754); -x_755 = !lean_is_exclusive(x_621); -if (x_755 == 0) -{ -lean_object* x_756; lean_object* x_757; lean_object* x_758; lean_object* x_759; uint8_t x_760; uint8_t x_761; -x_756 = lean_ctor_get(x_621, 0); -x_757 = lean_ctor_get(x_621, 1); -x_758 = lean_ctor_get(x_621, 2); -x_759 = lean_ctor_get(x_621, 3); -x_760 = 1; -lean_ctor_set(x_621, 3, x_756); -lean_ctor_set(x_621, 2, x_3); -lean_ctor_set(x_621, 1, x_2); -lean_ctor_set(x_621, 0, x_1); -lean_ctor_set_uint8(x_621, sizeof(void*)*4, x_760); -lean_ctor_set(x_4, 0, x_759); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_760); -x_761 = 0; -lean_ctor_set(x_242, 3, x_4); -lean_ctor_set(x_242, 2, x_758); -lean_ctor_set(x_242, 1, x_757); -lean_ctor_set(x_242, 0, x_621); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_761); -return x_242; -} -else -{ -lean_object* x_762; lean_object* x_763; lean_object* x_764; lean_object* x_765; uint8_t x_766; lean_object* x_767; uint8_t x_768; -x_762 = lean_ctor_get(x_621, 0); -x_763 = lean_ctor_get(x_621, 1); -x_764 = lean_ctor_get(x_621, 2); -x_765 = lean_ctor_get(x_621, 3); -lean_inc(x_765); -lean_inc(x_764); -lean_inc(x_763); -lean_inc(x_762); -lean_dec(x_621); -x_766 = 1; -x_767 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_767, 0, x_1); -lean_ctor_set(x_767, 1, x_2); -lean_ctor_set(x_767, 2, x_3); -lean_ctor_set(x_767, 3, x_762); -lean_ctor_set_uint8(x_767, sizeof(void*)*4, x_766); -lean_ctor_set(x_4, 0, x_765); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_766); -x_768 = 0; -lean_ctor_set(x_242, 3, x_4); -lean_ctor_set(x_242, 2, x_764); -lean_ctor_set(x_242, 1, x_763); -lean_ctor_set(x_242, 0, x_767); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_768); -return x_242; -} -} -else -{ -lean_object* x_769; lean_object* x_770; lean_object* x_771; lean_object* x_772; lean_object* x_773; lean_object* x_774; lean_object* x_775; uint8_t x_776; lean_object* x_777; lean_object* x_778; uint8_t x_779; -x_769 = lean_ctor_get(x_4, 1); -x_770 = lean_ctor_get(x_4, 2); -lean_inc(x_770); -lean_inc(x_769); -lean_dec(x_4); -x_771 = lean_ctor_get(x_621, 0); -lean_inc(x_771); -x_772 = lean_ctor_get(x_621, 1); -lean_inc(x_772); -x_773 = lean_ctor_get(x_621, 2); -lean_inc(x_773); -x_774 = lean_ctor_get(x_621, 3); -lean_inc(x_774); -if (lean_is_exclusive(x_621)) { - lean_ctor_release(x_621, 0); - lean_ctor_release(x_621, 1); - lean_ctor_release(x_621, 2); - lean_ctor_release(x_621, 3); - x_775 = x_621; -} else { - lean_dec_ref(x_621); - x_775 = lean_box(0); -} -x_776 = 1; -if (lean_is_scalar(x_775)) { - x_777 = lean_alloc_ctor(1, 4, 1); -} else { - x_777 = x_775; -} -lean_ctor_set(x_777, 0, x_1); -lean_ctor_set(x_777, 1, x_2); -lean_ctor_set(x_777, 2, x_3); -lean_ctor_set(x_777, 3, x_771); -lean_ctor_set_uint8(x_777, sizeof(void*)*4, x_776); -x_778 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_778, 0, x_774); -lean_ctor_set(x_778, 1, x_769); -lean_ctor_set(x_778, 2, x_770); -lean_ctor_set(x_778, 3, x_664); -lean_ctor_set_uint8(x_778, sizeof(void*)*4, x_776); -x_779 = 0; -lean_ctor_set(x_242, 3, x_778); -lean_ctor_set(x_242, 2, x_773); -lean_ctor_set(x_242, 1, x_772); -lean_ctor_set(x_242, 0, x_777); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_779); -return x_242; -} -} -} -} -else -{ -lean_object* x_780; -lean_free_object(x_242); -x_780 = lean_ctor_get(x_4, 3); -lean_inc(x_780); -if (lean_obj_tag(x_780) == 0) -{ -uint8_t x_781; -x_781 = !lean_is_exclusive(x_621); -if (x_781 == 0) -{ -lean_object* x_782; lean_object* x_783; lean_object* x_784; lean_object* x_785; uint8_t x_786; -x_782 = lean_ctor_get(x_621, 3); -lean_dec(x_782); -x_783 = lean_ctor_get(x_621, 2); -lean_dec(x_783); -x_784 = lean_ctor_get(x_621, 1); -lean_dec(x_784); -x_785 = lean_ctor_get(x_621, 0); -lean_dec(x_785); -x_786 = 1; -lean_ctor_set(x_621, 3, x_4); -lean_ctor_set(x_621, 2, x_3); -lean_ctor_set(x_621, 1, x_2); -lean_ctor_set(x_621, 0, x_1); -lean_ctor_set_uint8(x_621, sizeof(void*)*4, x_786); -return x_621; -} -else -{ -uint8_t x_787; lean_object* x_788; -lean_dec(x_621); -x_787 = 1; -x_788 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_788, 0, x_1); -lean_ctor_set(x_788, 1, x_2); -lean_ctor_set(x_788, 2, x_3); -lean_ctor_set(x_788, 3, x_4); -lean_ctor_set_uint8(x_788, sizeof(void*)*4, x_787); -return x_788; -} -} -else -{ -uint8_t x_789; -x_789 = lean_ctor_get_uint8(x_780, sizeof(void*)*4); -if (x_789 == 0) -{ -uint8_t x_790; -x_790 = !lean_is_exclusive(x_4); -if (x_790 == 0) -{ -lean_object* x_791; lean_object* x_792; uint8_t x_793; -x_791 = lean_ctor_get(x_4, 3); -lean_dec(x_791); -x_792 = lean_ctor_get(x_4, 0); -lean_dec(x_792); -x_793 = !lean_is_exclusive(x_780); -if (x_793 == 0) -{ -lean_object* x_794; lean_object* x_795; lean_object* x_796; lean_object* x_797; uint8_t x_798; uint8_t x_799; -x_794 = lean_ctor_get(x_780, 0); -x_795 = lean_ctor_get(x_780, 1); -x_796 = lean_ctor_get(x_780, 2); -x_797 = lean_ctor_get(x_780, 3); -x_798 = 1; -lean_inc(x_621); -lean_ctor_set(x_780, 3, x_621); -lean_ctor_set(x_780, 2, x_3); -lean_ctor_set(x_780, 1, x_2); -lean_ctor_set(x_780, 0, x_1); -x_799 = !lean_is_exclusive(x_621); -if (x_799 == 0) -{ -lean_object* x_800; lean_object* x_801; lean_object* x_802; lean_object* x_803; uint8_t x_804; -x_800 = lean_ctor_get(x_621, 3); -lean_dec(x_800); -x_801 = lean_ctor_get(x_621, 2); -lean_dec(x_801); -x_802 = lean_ctor_get(x_621, 1); -lean_dec(x_802); -x_803 = lean_ctor_get(x_621, 0); -lean_dec(x_803); -lean_ctor_set_uint8(x_780, sizeof(void*)*4, x_798); -lean_ctor_set(x_621, 3, x_797); -lean_ctor_set(x_621, 2, x_796); -lean_ctor_set(x_621, 1, x_795); -lean_ctor_set(x_621, 0, x_794); -lean_ctor_set_uint8(x_621, sizeof(void*)*4, x_798); -x_804 = 0; -lean_ctor_set(x_4, 3, x_621); -lean_ctor_set(x_4, 0, x_780); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_804); -return x_4; -} -else -{ -lean_object* x_805; uint8_t x_806; -lean_dec(x_621); -lean_ctor_set_uint8(x_780, sizeof(void*)*4, x_798); -x_805 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_805, 0, x_794); -lean_ctor_set(x_805, 1, x_795); -lean_ctor_set(x_805, 2, x_796); -lean_ctor_set(x_805, 3, x_797); -lean_ctor_set_uint8(x_805, sizeof(void*)*4, x_798); -x_806 = 0; -lean_ctor_set(x_4, 3, x_805); -lean_ctor_set(x_4, 0, x_780); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_806); -return x_4; -} -} -else -{ -lean_object* x_807; lean_object* x_808; lean_object* x_809; lean_object* x_810; uint8_t x_811; lean_object* x_812; lean_object* x_813; lean_object* x_814; uint8_t x_815; -x_807 = lean_ctor_get(x_780, 0); -x_808 = lean_ctor_get(x_780, 1); -x_809 = lean_ctor_get(x_780, 2); -x_810 = lean_ctor_get(x_780, 3); -lean_inc(x_810); -lean_inc(x_809); -lean_inc(x_808); -lean_inc(x_807); -lean_dec(x_780); -x_811 = 1; -lean_inc(x_621); -x_812 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_812, 0, x_1); -lean_ctor_set(x_812, 1, x_2); -lean_ctor_set(x_812, 2, x_3); -lean_ctor_set(x_812, 3, x_621); -if (lean_is_exclusive(x_621)) { - lean_ctor_release(x_621, 0); - lean_ctor_release(x_621, 1); - lean_ctor_release(x_621, 2); - lean_ctor_release(x_621, 3); - x_813 = x_621; -} else { - lean_dec_ref(x_621); - x_813 = lean_box(0); -} -lean_ctor_set_uint8(x_812, sizeof(void*)*4, x_811); -if (lean_is_scalar(x_813)) { - x_814 = lean_alloc_ctor(1, 4, 1); -} else { - x_814 = x_813; -} -lean_ctor_set(x_814, 0, x_807); -lean_ctor_set(x_814, 1, x_808); -lean_ctor_set(x_814, 2, x_809); -lean_ctor_set(x_814, 3, x_810); -lean_ctor_set_uint8(x_814, sizeof(void*)*4, x_811); -x_815 = 0; -lean_ctor_set(x_4, 3, x_814); -lean_ctor_set(x_4, 0, x_812); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_815); -return x_4; -} -} -else -{ -lean_object* x_816; lean_object* x_817; lean_object* x_818; lean_object* x_819; lean_object* x_820; lean_object* x_821; lean_object* x_822; uint8_t x_823; lean_object* x_824; lean_object* x_825; lean_object* x_826; uint8_t x_827; lean_object* x_828; -x_816 = lean_ctor_get(x_4, 1); -x_817 = lean_ctor_get(x_4, 2); -lean_inc(x_817); -lean_inc(x_816); -lean_dec(x_4); -x_818 = lean_ctor_get(x_780, 0); -lean_inc(x_818); -x_819 = lean_ctor_get(x_780, 1); -lean_inc(x_819); -x_820 = lean_ctor_get(x_780, 2); -lean_inc(x_820); -x_821 = lean_ctor_get(x_780, 3); -lean_inc(x_821); -if (lean_is_exclusive(x_780)) { - lean_ctor_release(x_780, 0); - lean_ctor_release(x_780, 1); - lean_ctor_release(x_780, 2); - lean_ctor_release(x_780, 3); - x_822 = x_780; -} else { - lean_dec_ref(x_780); - x_822 = lean_box(0); -} -x_823 = 1; -lean_inc(x_621); -if (lean_is_scalar(x_822)) { - x_824 = lean_alloc_ctor(1, 4, 1); -} else { - x_824 = x_822; -} -lean_ctor_set(x_824, 0, x_1); -lean_ctor_set(x_824, 1, x_2); -lean_ctor_set(x_824, 2, x_3); -lean_ctor_set(x_824, 3, x_621); -if (lean_is_exclusive(x_621)) { - lean_ctor_release(x_621, 0); - lean_ctor_release(x_621, 1); - lean_ctor_release(x_621, 2); - lean_ctor_release(x_621, 3); - x_825 = x_621; -} else { - lean_dec_ref(x_621); - x_825 = lean_box(0); -} -lean_ctor_set_uint8(x_824, sizeof(void*)*4, x_823); -if (lean_is_scalar(x_825)) { - x_826 = lean_alloc_ctor(1, 4, 1); -} else { - x_826 = x_825; -} -lean_ctor_set(x_826, 0, x_818); -lean_ctor_set(x_826, 1, x_819); -lean_ctor_set(x_826, 2, x_820); -lean_ctor_set(x_826, 3, x_821); -lean_ctor_set_uint8(x_826, sizeof(void*)*4, x_823); -x_827 = 0; -x_828 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_828, 0, x_824); -lean_ctor_set(x_828, 1, x_816); -lean_ctor_set(x_828, 2, x_817); -lean_ctor_set(x_828, 3, x_826); -lean_ctor_set_uint8(x_828, sizeof(void*)*4, x_827); -return x_828; -} -} -else -{ -uint8_t x_829; -lean_dec(x_621); -x_829 = !lean_is_exclusive(x_780); -if (x_829 == 0) -{ -lean_object* x_830; lean_object* x_831; lean_object* x_832; lean_object* x_833; uint8_t x_834; -x_830 = lean_ctor_get(x_780, 3); -lean_dec(x_830); -x_831 = lean_ctor_get(x_780, 2); -lean_dec(x_831); -x_832 = lean_ctor_get(x_780, 1); -lean_dec(x_832); -x_833 = lean_ctor_get(x_780, 0); -lean_dec(x_833); -x_834 = 1; -lean_ctor_set(x_780, 3, x_4); -lean_ctor_set(x_780, 2, x_3); -lean_ctor_set(x_780, 1, x_2); -lean_ctor_set(x_780, 0, x_1); -lean_ctor_set_uint8(x_780, sizeof(void*)*4, x_834); -return x_780; -} -else -{ -uint8_t x_835; lean_object* x_836; -lean_dec(x_780); -x_835 = 1; -x_836 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_836, 0, x_1); -lean_ctor_set(x_836, 1, x_2); -lean_ctor_set(x_836, 2, x_3); -lean_ctor_set(x_836, 3, x_4); -lean_ctor_set_uint8(x_836, sizeof(void*)*4, x_835); -return x_836; -} -} -} -} -} -} -else -{ -uint8_t x_837; -x_837 = 1; -lean_ctor_set(x_242, 3, x_4); -lean_ctor_set(x_242, 2, x_3); -lean_ctor_set(x_242, 1, x_2); -lean_ctor_set(x_242, 0, x_1); -lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_837); -return x_242; -} -} -} -else -{ -lean_dec(x_242); -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_838; lean_object* x_839; -x_838 = 1; -x_839 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_839, 0, x_1); -lean_ctor_set(x_839, 1, x_2); -lean_ctor_set(x_839, 2, x_3); -lean_ctor_set(x_839, 3, x_4); -lean_ctor_set_uint8(x_839, sizeof(void*)*4, x_838); -return x_839; -} -else -{ -uint8_t x_840; -x_840 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_840 == 0) -{ -lean_object* x_841; -x_841 = lean_ctor_get(x_4, 0); -lean_inc(x_841); -if (lean_obj_tag(x_841) == 0) -{ -lean_object* x_842; -x_842 = lean_ctor_get(x_4, 3); -lean_inc(x_842); -if (lean_obj_tag(x_842) == 0) -{ -uint8_t x_843; lean_object* x_844; -x_843 = 1; -x_844 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_844, 0, x_1); -lean_ctor_set(x_844, 1, x_2); -lean_ctor_set(x_844, 2, x_3); -lean_ctor_set(x_844, 3, x_4); -lean_ctor_set_uint8(x_844, sizeof(void*)*4, x_843); -return x_844; -} -else -{ -uint8_t x_845; -x_845 = lean_ctor_get_uint8(x_842, sizeof(void*)*4); -if (x_845 == 0) -{ -lean_object* x_846; lean_object* x_847; lean_object* x_848; lean_object* x_849; lean_object* x_850; lean_object* x_851; lean_object* x_852; lean_object* x_853; uint8_t x_854; lean_object* x_855; lean_object* x_856; uint8_t x_857; lean_object* x_858; -x_846 = lean_ctor_get(x_4, 1); -lean_inc(x_846); -x_847 = lean_ctor_get(x_4, 2); -lean_inc(x_847); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_848 = x_4; -} else { - lean_dec_ref(x_4); - x_848 = lean_box(0); -} -x_849 = lean_ctor_get(x_842, 0); -lean_inc(x_849); -x_850 = lean_ctor_get(x_842, 1); -lean_inc(x_850); -x_851 = lean_ctor_get(x_842, 2); -lean_inc(x_851); -x_852 = lean_ctor_get(x_842, 3); -lean_inc(x_852); -if (lean_is_exclusive(x_842)) { - lean_ctor_release(x_842, 0); - lean_ctor_release(x_842, 1); - lean_ctor_release(x_842, 2); - lean_ctor_release(x_842, 3); - x_853 = x_842; -} else { - lean_dec_ref(x_842); - x_853 = lean_box(0); -} -x_854 = 1; -if (lean_is_scalar(x_853)) { - x_855 = lean_alloc_ctor(1, 4, 1); -} else { - x_855 = x_853; -} -lean_ctor_set(x_855, 0, x_1); -lean_ctor_set(x_855, 1, x_2); -lean_ctor_set(x_855, 2, x_3); -lean_ctor_set(x_855, 3, x_841); -lean_ctor_set_uint8(x_855, sizeof(void*)*4, x_854); -if (lean_is_scalar(x_848)) { - x_856 = lean_alloc_ctor(1, 4, 1); -} else { - x_856 = x_848; -} -lean_ctor_set(x_856, 0, x_849); -lean_ctor_set(x_856, 1, x_850); -lean_ctor_set(x_856, 2, x_851); -lean_ctor_set(x_856, 3, x_852); -lean_ctor_set_uint8(x_856, sizeof(void*)*4, x_854); -x_857 = 0; -x_858 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_858, 0, x_855); -lean_ctor_set(x_858, 1, x_846); -lean_ctor_set(x_858, 2, x_847); -lean_ctor_set(x_858, 3, x_856); -lean_ctor_set_uint8(x_858, sizeof(void*)*4, x_857); -return x_858; -} -else -{ -lean_object* x_859; uint8_t x_860; lean_object* x_861; -if (lean_is_exclusive(x_842)) { - lean_ctor_release(x_842, 0); - lean_ctor_release(x_842, 1); - lean_ctor_release(x_842, 2); - lean_ctor_release(x_842, 3); - x_859 = x_842; -} else { - lean_dec_ref(x_842); - x_859 = lean_box(0); -} -x_860 = 1; -if (lean_is_scalar(x_859)) { - x_861 = lean_alloc_ctor(1, 4, 1); -} else { - x_861 = x_859; -} -lean_ctor_set(x_861, 0, x_1); -lean_ctor_set(x_861, 1, x_2); -lean_ctor_set(x_861, 2, x_3); -lean_ctor_set(x_861, 3, x_4); -lean_ctor_set_uint8(x_861, sizeof(void*)*4, x_860); -return x_861; -} -} -} -else -{ -uint8_t x_862; -x_862 = lean_ctor_get_uint8(x_841, sizeof(void*)*4); -if (x_862 == 0) -{ -lean_object* x_863; -x_863 = lean_ctor_get(x_4, 3); -lean_inc(x_863); -if (lean_obj_tag(x_863) == 0) -{ -lean_object* x_864; lean_object* x_865; lean_object* x_866; lean_object* x_867; lean_object* x_868; lean_object* x_869; lean_object* x_870; lean_object* x_871; uint8_t x_872; lean_object* x_873; lean_object* x_874; uint8_t x_875; lean_object* x_876; -x_864 = lean_ctor_get(x_4, 1); -lean_inc(x_864); -x_865 = lean_ctor_get(x_4, 2); -lean_inc(x_865); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_866 = x_4; -} else { - lean_dec_ref(x_4); - x_866 = lean_box(0); -} -x_867 = lean_ctor_get(x_841, 0); -lean_inc(x_867); -x_868 = lean_ctor_get(x_841, 1); -lean_inc(x_868); -x_869 = lean_ctor_get(x_841, 2); -lean_inc(x_869); -x_870 = lean_ctor_get(x_841, 3); -lean_inc(x_870); -if (lean_is_exclusive(x_841)) { - lean_ctor_release(x_841, 0); - lean_ctor_release(x_841, 1); - lean_ctor_release(x_841, 2); - lean_ctor_release(x_841, 3); - x_871 = x_841; -} else { - lean_dec_ref(x_841); - x_871 = lean_box(0); -} -x_872 = 1; -if (lean_is_scalar(x_871)) { - x_873 = lean_alloc_ctor(1, 4, 1); -} else { - x_873 = x_871; -} -lean_ctor_set(x_873, 0, x_1); -lean_ctor_set(x_873, 1, x_2); -lean_ctor_set(x_873, 2, x_3); -lean_ctor_set(x_873, 3, x_867); -lean_ctor_set_uint8(x_873, sizeof(void*)*4, x_872); -if (lean_is_scalar(x_866)) { - x_874 = lean_alloc_ctor(1, 4, 1); -} else { - x_874 = x_866; -} -lean_ctor_set(x_874, 0, x_870); -lean_ctor_set(x_874, 1, x_864); -lean_ctor_set(x_874, 2, x_865); -lean_ctor_set(x_874, 3, x_863); -lean_ctor_set_uint8(x_874, sizeof(void*)*4, x_872); -x_875 = 0; -x_876 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_876, 0, x_873); -lean_ctor_set(x_876, 1, x_868); -lean_ctor_set(x_876, 2, x_869); -lean_ctor_set(x_876, 3, x_874); -lean_ctor_set_uint8(x_876, sizeof(void*)*4, x_875); -return x_876; -} -else -{ -uint8_t x_877; -x_877 = lean_ctor_get_uint8(x_863, sizeof(void*)*4); -if (x_877 == 0) -{ -lean_object* x_878; lean_object* x_879; lean_object* x_880; lean_object* x_881; lean_object* x_882; lean_object* x_883; lean_object* x_884; lean_object* x_885; lean_object* x_886; lean_object* x_887; lean_object* x_888; lean_object* x_889; lean_object* x_890; lean_object* x_891; uint8_t x_892; lean_object* x_893; lean_object* x_894; uint8_t x_895; lean_object* x_896; -x_878 = lean_ctor_get(x_4, 1); -lean_inc(x_878); -x_879 = lean_ctor_get(x_4, 2); -lean_inc(x_879); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_880 = x_4; -} else { - lean_dec_ref(x_4); - x_880 = lean_box(0); -} -x_881 = lean_ctor_get(x_841, 0); -lean_inc(x_881); -x_882 = lean_ctor_get(x_841, 1); -lean_inc(x_882); -x_883 = lean_ctor_get(x_841, 2); -lean_inc(x_883); -x_884 = lean_ctor_get(x_841, 3); -lean_inc(x_884); -if (lean_is_exclusive(x_841)) { - lean_ctor_release(x_841, 0); - lean_ctor_release(x_841, 1); - lean_ctor_release(x_841, 2); - lean_ctor_release(x_841, 3); - x_885 = x_841; -} else { - lean_dec_ref(x_841); - x_885 = lean_box(0); -} -x_886 = lean_ctor_get(x_863, 0); -lean_inc(x_886); -x_887 = lean_ctor_get(x_863, 1); -lean_inc(x_887); -x_888 = lean_ctor_get(x_863, 2); -lean_inc(x_888); -x_889 = lean_ctor_get(x_863, 3); -lean_inc(x_889); -if (lean_is_exclusive(x_863)) { - lean_ctor_release(x_863, 0); - lean_ctor_release(x_863, 1); - lean_ctor_release(x_863, 2); - lean_ctor_release(x_863, 3); - x_890 = x_863; -} else { - lean_dec_ref(x_863); - x_890 = lean_box(0); -} -if (lean_is_scalar(x_890)) { - x_891 = lean_alloc_ctor(1, 4, 1); -} else { - x_891 = x_890; -} -lean_ctor_set(x_891, 0, x_881); -lean_ctor_set(x_891, 1, x_882); -lean_ctor_set(x_891, 2, x_883); -lean_ctor_set(x_891, 3, x_884); -lean_ctor_set_uint8(x_891, sizeof(void*)*4, x_877); -x_892 = 1; -if (lean_is_scalar(x_885)) { - x_893 = lean_alloc_ctor(1, 4, 1); -} else { - x_893 = x_885; -} -lean_ctor_set(x_893, 0, x_1); -lean_ctor_set(x_893, 1, x_2); -lean_ctor_set(x_893, 2, x_3); -lean_ctor_set(x_893, 3, x_891); -lean_ctor_set_uint8(x_893, sizeof(void*)*4, x_892); -if (lean_is_scalar(x_880)) { - x_894 = lean_alloc_ctor(1, 4, 1); -} else { - x_894 = x_880; -} -lean_ctor_set(x_894, 0, x_886); -lean_ctor_set(x_894, 1, x_887); -lean_ctor_set(x_894, 2, x_888); -lean_ctor_set(x_894, 3, x_889); -lean_ctor_set_uint8(x_894, sizeof(void*)*4, x_892); -x_895 = 0; -x_896 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_896, 0, x_893); -lean_ctor_set(x_896, 1, x_878); -lean_ctor_set(x_896, 2, x_879); -lean_ctor_set(x_896, 3, x_894); -lean_ctor_set_uint8(x_896, sizeof(void*)*4, x_895); -return x_896; -} -else -{ -lean_object* x_897; lean_object* x_898; lean_object* x_899; lean_object* x_900; lean_object* x_901; lean_object* x_902; lean_object* x_903; lean_object* x_904; uint8_t x_905; lean_object* x_906; lean_object* x_907; uint8_t x_908; lean_object* x_909; -x_897 = lean_ctor_get(x_4, 1); -lean_inc(x_897); -x_898 = lean_ctor_get(x_4, 2); -lean_inc(x_898); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_899 = x_4; -} else { - lean_dec_ref(x_4); - x_899 = lean_box(0); -} -x_900 = lean_ctor_get(x_841, 0); -lean_inc(x_900); -x_901 = lean_ctor_get(x_841, 1); -lean_inc(x_901); -x_902 = lean_ctor_get(x_841, 2); -lean_inc(x_902); -x_903 = lean_ctor_get(x_841, 3); -lean_inc(x_903); -if (lean_is_exclusive(x_841)) { - lean_ctor_release(x_841, 0); - lean_ctor_release(x_841, 1); - lean_ctor_release(x_841, 2); - lean_ctor_release(x_841, 3); - x_904 = x_841; -} else { - lean_dec_ref(x_841); - x_904 = lean_box(0); -} -x_905 = 1; -if (lean_is_scalar(x_904)) { - x_906 = lean_alloc_ctor(1, 4, 1); -} else { - x_906 = x_904; -} -lean_ctor_set(x_906, 0, x_1); -lean_ctor_set(x_906, 1, x_2); -lean_ctor_set(x_906, 2, x_3); -lean_ctor_set(x_906, 3, x_900); -lean_ctor_set_uint8(x_906, sizeof(void*)*4, x_905); -if (lean_is_scalar(x_899)) { - x_907 = lean_alloc_ctor(1, 4, 1); -} else { - x_907 = x_899; -} -lean_ctor_set(x_907, 0, x_903); -lean_ctor_set(x_907, 1, x_897); -lean_ctor_set(x_907, 2, x_898); -lean_ctor_set(x_907, 3, x_863); -lean_ctor_set_uint8(x_907, sizeof(void*)*4, x_905); -x_908 = 0; -x_909 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_909, 0, x_906); -lean_ctor_set(x_909, 1, x_901); -lean_ctor_set(x_909, 2, x_902); -lean_ctor_set(x_909, 3, x_907); -lean_ctor_set_uint8(x_909, sizeof(void*)*4, x_908); -return x_909; -} -} -} -else -{ -lean_object* x_910; -x_910 = lean_ctor_get(x_4, 3); -lean_inc(x_910); -if (lean_obj_tag(x_910) == 0) -{ -lean_object* x_911; uint8_t x_912; lean_object* x_913; -if (lean_is_exclusive(x_841)) { - lean_ctor_release(x_841, 0); - lean_ctor_release(x_841, 1); - lean_ctor_release(x_841, 2); - lean_ctor_release(x_841, 3); - x_911 = x_841; -} else { - lean_dec_ref(x_841); - x_911 = lean_box(0); -} -x_912 = 1; -if (lean_is_scalar(x_911)) { - x_913 = lean_alloc_ctor(1, 4, 1); -} else { - x_913 = x_911; -} -lean_ctor_set(x_913, 0, x_1); -lean_ctor_set(x_913, 1, x_2); -lean_ctor_set(x_913, 2, x_3); -lean_ctor_set(x_913, 3, x_4); -lean_ctor_set_uint8(x_913, sizeof(void*)*4, x_912); -return x_913; -} -else -{ -uint8_t x_914; -x_914 = lean_ctor_get_uint8(x_910, sizeof(void*)*4); -if (x_914 == 0) -{ -lean_object* x_915; lean_object* x_916; lean_object* x_917; lean_object* x_918; lean_object* x_919; lean_object* x_920; lean_object* x_921; lean_object* x_922; uint8_t x_923; lean_object* x_924; lean_object* x_925; lean_object* x_926; uint8_t x_927; lean_object* x_928; -x_915 = lean_ctor_get(x_4, 1); -lean_inc(x_915); -x_916 = lean_ctor_get(x_4, 2); -lean_inc(x_916); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_917 = x_4; -} else { - lean_dec_ref(x_4); - x_917 = lean_box(0); -} -x_918 = lean_ctor_get(x_910, 0); -lean_inc(x_918); -x_919 = lean_ctor_get(x_910, 1); -lean_inc(x_919); -x_920 = lean_ctor_get(x_910, 2); -lean_inc(x_920); -x_921 = lean_ctor_get(x_910, 3); -lean_inc(x_921); -if (lean_is_exclusive(x_910)) { - lean_ctor_release(x_910, 0); - lean_ctor_release(x_910, 1); - lean_ctor_release(x_910, 2); - lean_ctor_release(x_910, 3); - x_922 = x_910; -} else { - lean_dec_ref(x_910); - x_922 = lean_box(0); -} -x_923 = 1; -lean_inc(x_841); -if (lean_is_scalar(x_922)) { - x_924 = lean_alloc_ctor(1, 4, 1); -} else { - x_924 = x_922; -} -lean_ctor_set(x_924, 0, x_1); -lean_ctor_set(x_924, 1, x_2); -lean_ctor_set(x_924, 2, x_3); -lean_ctor_set(x_924, 3, x_841); -if (lean_is_exclusive(x_841)) { - lean_ctor_release(x_841, 0); - lean_ctor_release(x_841, 1); - lean_ctor_release(x_841, 2); - lean_ctor_release(x_841, 3); - x_925 = x_841; -} else { - lean_dec_ref(x_841); - x_925 = lean_box(0); -} -lean_ctor_set_uint8(x_924, sizeof(void*)*4, x_923); -if (lean_is_scalar(x_925)) { - x_926 = lean_alloc_ctor(1, 4, 1); -} else { - x_926 = x_925; -} -lean_ctor_set(x_926, 0, x_918); -lean_ctor_set(x_926, 1, x_919); -lean_ctor_set(x_926, 2, x_920); -lean_ctor_set(x_926, 3, x_921); -lean_ctor_set_uint8(x_926, sizeof(void*)*4, x_923); -x_927 = 0; -if (lean_is_scalar(x_917)) { - x_928 = lean_alloc_ctor(1, 4, 1); -} else { - x_928 = x_917; -} -lean_ctor_set(x_928, 0, x_924); -lean_ctor_set(x_928, 1, x_915); -lean_ctor_set(x_928, 2, x_916); -lean_ctor_set(x_928, 3, x_926); -lean_ctor_set_uint8(x_928, sizeof(void*)*4, x_927); -return x_928; -} -else -{ -lean_object* x_929; uint8_t x_930; lean_object* x_931; -lean_dec(x_841); -if (lean_is_exclusive(x_910)) { - lean_ctor_release(x_910, 0); - lean_ctor_release(x_910, 1); - lean_ctor_release(x_910, 2); - lean_ctor_release(x_910, 3); - x_929 = x_910; -} else { - lean_dec_ref(x_910); - x_929 = lean_box(0); -} -x_930 = 1; -if (lean_is_scalar(x_929)) { - x_931 = lean_alloc_ctor(1, 4, 1); -} else { - x_931 = x_929; -} -lean_ctor_set(x_931, 0, x_1); -lean_ctor_set(x_931, 1, x_2); -lean_ctor_set(x_931, 2, x_3); -lean_ctor_set(x_931, 3, x_4); -lean_ctor_set_uint8(x_931, sizeof(void*)*4, x_930); -return x_931; -} -} -} -} -} -else -{ -uint8_t x_932; lean_object* x_933; -x_932 = 1; -x_933 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_933, 0, x_1); -lean_ctor_set(x_933, 1, x_2); -lean_ctor_set(x_933, 2, x_3); -lean_ctor_set(x_933, 3, x_4); -lean_ctor_set_uint8(x_933, sizeof(void*)*4, x_932); -return x_933; -} -} -} -} -} -} -else -{ -uint8_t x_934; -x_934 = lean_ctor_get_uint8(x_241, sizeof(void*)*4); -if (x_934 == 0) -{ -uint8_t x_935; -x_935 = !lean_is_exclusive(x_1); -if (x_935 == 0) -{ -lean_object* x_936; lean_object* x_937; lean_object* x_938; lean_object* x_939; uint8_t x_940; -x_936 = lean_ctor_get(x_1, 1); -x_937 = lean_ctor_get(x_1, 2); -x_938 = lean_ctor_get(x_1, 3); -x_939 = lean_ctor_get(x_1, 0); -lean_dec(x_939); -x_940 = !lean_is_exclusive(x_241); -if (x_940 == 0) -{ -uint8_t x_941; uint8_t x_942; lean_object* x_943; -x_941 = 1; -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_941); -lean_ctor_set(x_1, 3, x_4); -lean_ctor_set(x_1, 2, x_3); -lean_ctor_set(x_1, 1, x_2); -lean_ctor_set(x_1, 0, x_938); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_941); -x_942 = 0; -x_943 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_943, 0, x_241); -lean_ctor_set(x_943, 1, x_936); -lean_ctor_set(x_943, 2, x_937); -lean_ctor_set(x_943, 3, x_1); -lean_ctor_set_uint8(x_943, sizeof(void*)*4, x_942); -return x_943; -} -else -{ -lean_object* x_944; lean_object* x_945; lean_object* x_946; lean_object* x_947; uint8_t x_948; lean_object* x_949; uint8_t x_950; lean_object* x_951; -x_944 = lean_ctor_get(x_241, 0); -x_945 = lean_ctor_get(x_241, 1); -x_946 = lean_ctor_get(x_241, 2); -x_947 = lean_ctor_get(x_241, 3); -lean_inc(x_947); -lean_inc(x_946); -lean_inc(x_945); -lean_inc(x_944); -lean_dec(x_241); -x_948 = 1; -x_949 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_949, 0, x_944); -lean_ctor_set(x_949, 1, x_945); -lean_ctor_set(x_949, 2, x_946); -lean_ctor_set(x_949, 3, x_947); -lean_ctor_set_uint8(x_949, sizeof(void*)*4, x_948); -lean_ctor_set(x_1, 3, x_4); -lean_ctor_set(x_1, 2, x_3); -lean_ctor_set(x_1, 1, x_2); -lean_ctor_set(x_1, 0, x_938); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_948); -x_950 = 0; -x_951 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_951, 0, x_949); -lean_ctor_set(x_951, 1, x_936); -lean_ctor_set(x_951, 2, x_937); -lean_ctor_set(x_951, 3, x_1); -lean_ctor_set_uint8(x_951, sizeof(void*)*4, x_950); -return x_951; -} -} -else -{ -lean_object* x_952; lean_object* x_953; lean_object* x_954; lean_object* x_955; lean_object* x_956; lean_object* x_957; lean_object* x_958; lean_object* x_959; uint8_t x_960; lean_object* x_961; lean_object* x_962; uint8_t x_963; lean_object* x_964; -x_952 = lean_ctor_get(x_1, 1); -x_953 = lean_ctor_get(x_1, 2); -x_954 = lean_ctor_get(x_1, 3); -lean_inc(x_954); -lean_inc(x_953); -lean_inc(x_952); -lean_dec(x_1); -x_955 = lean_ctor_get(x_241, 0); -lean_inc(x_955); -x_956 = lean_ctor_get(x_241, 1); -lean_inc(x_956); -x_957 = lean_ctor_get(x_241, 2); -lean_inc(x_957); -x_958 = lean_ctor_get(x_241, 3); -lean_inc(x_958); -if (lean_is_exclusive(x_241)) { - lean_ctor_release(x_241, 0); - lean_ctor_release(x_241, 1); - lean_ctor_release(x_241, 2); - lean_ctor_release(x_241, 3); - x_959 = x_241; -} else { - lean_dec_ref(x_241); - x_959 = lean_box(0); -} -x_960 = 1; -if (lean_is_scalar(x_959)) { - x_961 = lean_alloc_ctor(1, 4, 1); -} else { - x_961 = x_959; -} -lean_ctor_set(x_961, 0, x_955); -lean_ctor_set(x_961, 1, x_956); -lean_ctor_set(x_961, 2, x_957); -lean_ctor_set(x_961, 3, x_958); -lean_ctor_set_uint8(x_961, sizeof(void*)*4, x_960); -x_962 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_962, 0, x_954); -lean_ctor_set(x_962, 1, x_2); -lean_ctor_set(x_962, 2, x_3); -lean_ctor_set(x_962, 3, x_4); -lean_ctor_set_uint8(x_962, sizeof(void*)*4, x_960); -x_963 = 0; -x_964 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_964, 0, x_961); -lean_ctor_set(x_964, 1, x_952); -lean_ctor_set(x_964, 2, x_953); -lean_ctor_set(x_964, 3, x_962); -lean_ctor_set_uint8(x_964, sizeof(void*)*4, x_963); -return x_964; -} -} -else -{ -lean_object* x_965; -x_965 = lean_ctor_get(x_1, 3); -lean_inc(x_965); -if (lean_obj_tag(x_965) == 0) -{ -uint8_t x_966; -x_966 = !lean_is_exclusive(x_241); -if (x_966 == 0) -{ -lean_object* x_967; lean_object* x_968; lean_object* x_969; lean_object* x_970; -x_967 = lean_ctor_get(x_241, 3); -lean_dec(x_967); -x_968 = lean_ctor_get(x_241, 2); -lean_dec(x_968); -x_969 = lean_ctor_get(x_241, 1); -lean_dec(x_969); -x_970 = lean_ctor_get(x_241, 0); -lean_dec(x_970); -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_971; -x_971 = 1; -lean_ctor_set(x_241, 3, x_4); -lean_ctor_set(x_241, 2, x_3); -lean_ctor_set(x_241, 1, x_2); -lean_ctor_set(x_241, 0, x_1); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_971); -return x_241; -} -else -{ -uint8_t x_972; -x_972 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_972 == 0) -{ -lean_object* x_973; -x_973 = lean_ctor_get(x_4, 0); -lean_inc(x_973); -if (lean_obj_tag(x_973) == 0) -{ -lean_object* x_974; -x_974 = lean_ctor_get(x_4, 3); -lean_inc(x_974); -if (lean_obj_tag(x_974) == 0) -{ -uint8_t x_975; -x_975 = 1; -lean_ctor_set(x_241, 3, x_4); -lean_ctor_set(x_241, 2, x_3); -lean_ctor_set(x_241, 1, x_2); -lean_ctor_set(x_241, 0, x_1); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_975); -return x_241; -} -else -{ -uint8_t x_976; -x_976 = lean_ctor_get_uint8(x_974, sizeof(void*)*4); -if (x_976 == 0) -{ -uint8_t x_977; -x_977 = !lean_is_exclusive(x_4); -if (x_977 == 0) -{ -lean_object* x_978; lean_object* x_979; lean_object* x_980; lean_object* x_981; uint8_t x_982; -x_978 = lean_ctor_get(x_4, 1); -x_979 = lean_ctor_get(x_4, 2); -x_980 = lean_ctor_get(x_4, 3); -lean_dec(x_980); -x_981 = lean_ctor_get(x_4, 0); -lean_dec(x_981); -x_982 = !lean_is_exclusive(x_974); -if (x_982 == 0) -{ -lean_object* x_983; lean_object* x_984; lean_object* x_985; lean_object* x_986; uint8_t x_987; uint8_t x_988; -x_983 = lean_ctor_get(x_974, 0); -x_984 = lean_ctor_get(x_974, 1); -x_985 = lean_ctor_get(x_974, 2); -x_986 = lean_ctor_get(x_974, 3); -x_987 = 1; -lean_ctor_set(x_974, 3, x_973); -lean_ctor_set(x_974, 2, x_3); -lean_ctor_set(x_974, 1, x_2); -lean_ctor_set(x_974, 0, x_1); -lean_ctor_set_uint8(x_974, sizeof(void*)*4, x_987); -lean_ctor_set(x_4, 3, x_986); -lean_ctor_set(x_4, 2, x_985); -lean_ctor_set(x_4, 1, x_984); -lean_ctor_set(x_4, 0, x_983); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_987); -x_988 = 0; -lean_ctor_set(x_241, 3, x_4); -lean_ctor_set(x_241, 2, x_979); -lean_ctor_set(x_241, 1, x_978); -lean_ctor_set(x_241, 0, x_974); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_988); -return x_241; -} -else -{ -lean_object* x_989; lean_object* x_990; lean_object* x_991; lean_object* x_992; uint8_t x_993; lean_object* x_994; uint8_t x_995; -x_989 = lean_ctor_get(x_974, 0); -x_990 = lean_ctor_get(x_974, 1); -x_991 = lean_ctor_get(x_974, 2); -x_992 = lean_ctor_get(x_974, 3); -lean_inc(x_992); -lean_inc(x_991); -lean_inc(x_990); -lean_inc(x_989); -lean_dec(x_974); -x_993 = 1; -x_994 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_994, 0, x_1); -lean_ctor_set(x_994, 1, x_2); -lean_ctor_set(x_994, 2, x_3); -lean_ctor_set(x_994, 3, x_973); -lean_ctor_set_uint8(x_994, sizeof(void*)*4, x_993); -lean_ctor_set(x_4, 3, x_992); -lean_ctor_set(x_4, 2, x_991); -lean_ctor_set(x_4, 1, x_990); -lean_ctor_set(x_4, 0, x_989); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_993); -x_995 = 0; -lean_ctor_set(x_241, 3, x_4); -lean_ctor_set(x_241, 2, x_979); -lean_ctor_set(x_241, 1, x_978); -lean_ctor_set(x_241, 0, x_994); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_995); -return x_241; -} -} -else -{ -lean_object* x_996; lean_object* x_997; lean_object* x_998; lean_object* x_999; lean_object* x_1000; lean_object* x_1001; lean_object* x_1002; uint8_t x_1003; lean_object* x_1004; lean_object* x_1005; uint8_t x_1006; -x_996 = lean_ctor_get(x_4, 1); -x_997 = lean_ctor_get(x_4, 2); -lean_inc(x_997); -lean_inc(x_996); -lean_dec(x_4); -x_998 = lean_ctor_get(x_974, 0); -lean_inc(x_998); -x_999 = lean_ctor_get(x_974, 1); -lean_inc(x_999); -x_1000 = lean_ctor_get(x_974, 2); -lean_inc(x_1000); -x_1001 = lean_ctor_get(x_974, 3); -lean_inc(x_1001); -if (lean_is_exclusive(x_974)) { - lean_ctor_release(x_974, 0); - lean_ctor_release(x_974, 1); - lean_ctor_release(x_974, 2); - lean_ctor_release(x_974, 3); - x_1002 = x_974; -} else { - lean_dec_ref(x_974); - x_1002 = lean_box(0); -} -x_1003 = 1; -if (lean_is_scalar(x_1002)) { - x_1004 = lean_alloc_ctor(1, 4, 1); -} else { - x_1004 = x_1002; -} -lean_ctor_set(x_1004, 0, x_1); -lean_ctor_set(x_1004, 1, x_2); -lean_ctor_set(x_1004, 2, x_3); -lean_ctor_set(x_1004, 3, x_973); -lean_ctor_set_uint8(x_1004, sizeof(void*)*4, x_1003); -x_1005 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1005, 0, x_998); -lean_ctor_set(x_1005, 1, x_999); -lean_ctor_set(x_1005, 2, x_1000); -lean_ctor_set(x_1005, 3, x_1001); -lean_ctor_set_uint8(x_1005, sizeof(void*)*4, x_1003); -x_1006 = 0; -lean_ctor_set(x_241, 3, x_1005); -lean_ctor_set(x_241, 2, x_997); -lean_ctor_set(x_241, 1, x_996); -lean_ctor_set(x_241, 0, x_1004); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1006); -return x_241; -} -} -else -{ -uint8_t x_1007; -lean_free_object(x_241); -x_1007 = !lean_is_exclusive(x_974); -if (x_1007 == 0) -{ -lean_object* x_1008; lean_object* x_1009; lean_object* x_1010; lean_object* x_1011; uint8_t x_1012; -x_1008 = lean_ctor_get(x_974, 3); -lean_dec(x_1008); -x_1009 = lean_ctor_get(x_974, 2); -lean_dec(x_1009); -x_1010 = lean_ctor_get(x_974, 1); -lean_dec(x_1010); -x_1011 = lean_ctor_get(x_974, 0); -lean_dec(x_1011); -x_1012 = 1; -lean_ctor_set(x_974, 3, x_4); -lean_ctor_set(x_974, 2, x_3); -lean_ctor_set(x_974, 1, x_2); -lean_ctor_set(x_974, 0, x_1); -lean_ctor_set_uint8(x_974, sizeof(void*)*4, x_1012); -return x_974; -} -else -{ -uint8_t x_1013; lean_object* x_1014; -lean_dec(x_974); -x_1013 = 1; -x_1014 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1014, 0, x_1); -lean_ctor_set(x_1014, 1, x_2); -lean_ctor_set(x_1014, 2, x_3); -lean_ctor_set(x_1014, 3, x_4); -lean_ctor_set_uint8(x_1014, sizeof(void*)*4, x_1013); -return x_1014; -} -} -} -} -else -{ -uint8_t x_1015; -x_1015 = lean_ctor_get_uint8(x_973, sizeof(void*)*4); -if (x_1015 == 0) -{ -lean_object* x_1016; -x_1016 = lean_ctor_get(x_4, 3); -lean_inc(x_1016); -if (lean_obj_tag(x_1016) == 0) -{ -uint8_t x_1017; -x_1017 = !lean_is_exclusive(x_4); -if (x_1017 == 0) -{ -lean_object* x_1018; lean_object* x_1019; uint8_t x_1020; -x_1018 = lean_ctor_get(x_4, 3); -lean_dec(x_1018); -x_1019 = lean_ctor_get(x_4, 0); -lean_dec(x_1019); -x_1020 = !lean_is_exclusive(x_973); -if (x_1020 == 0) -{ -lean_object* x_1021; lean_object* x_1022; lean_object* x_1023; lean_object* x_1024; uint8_t x_1025; uint8_t x_1026; -x_1021 = lean_ctor_get(x_973, 0); -x_1022 = lean_ctor_get(x_973, 1); -x_1023 = lean_ctor_get(x_973, 2); -x_1024 = lean_ctor_get(x_973, 3); -x_1025 = 1; -lean_ctor_set(x_973, 3, x_1021); -lean_ctor_set(x_973, 2, x_3); -lean_ctor_set(x_973, 1, x_2); -lean_ctor_set(x_973, 0, x_1); -lean_ctor_set_uint8(x_973, sizeof(void*)*4, x_1025); -lean_ctor_set(x_4, 0, x_1024); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1025); -x_1026 = 0; -lean_ctor_set(x_241, 3, x_4); -lean_ctor_set(x_241, 2, x_1023); -lean_ctor_set(x_241, 1, x_1022); -lean_ctor_set(x_241, 0, x_973); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1026); -return x_241; -} -else -{ -lean_object* x_1027; lean_object* x_1028; lean_object* x_1029; lean_object* x_1030; uint8_t x_1031; lean_object* x_1032; uint8_t x_1033; -x_1027 = lean_ctor_get(x_973, 0); -x_1028 = lean_ctor_get(x_973, 1); -x_1029 = lean_ctor_get(x_973, 2); -x_1030 = lean_ctor_get(x_973, 3); -lean_inc(x_1030); -lean_inc(x_1029); -lean_inc(x_1028); -lean_inc(x_1027); -lean_dec(x_973); -x_1031 = 1; -x_1032 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1032, 0, x_1); -lean_ctor_set(x_1032, 1, x_2); -lean_ctor_set(x_1032, 2, x_3); -lean_ctor_set(x_1032, 3, x_1027); -lean_ctor_set_uint8(x_1032, sizeof(void*)*4, x_1031); -lean_ctor_set(x_4, 0, x_1030); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1031); -x_1033 = 0; -lean_ctor_set(x_241, 3, x_4); -lean_ctor_set(x_241, 2, x_1029); -lean_ctor_set(x_241, 1, x_1028); -lean_ctor_set(x_241, 0, x_1032); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1033); -return x_241; -} -} -else -{ -lean_object* x_1034; lean_object* x_1035; lean_object* x_1036; lean_object* x_1037; lean_object* x_1038; lean_object* x_1039; lean_object* x_1040; uint8_t x_1041; lean_object* x_1042; lean_object* x_1043; uint8_t x_1044; -x_1034 = lean_ctor_get(x_4, 1); -x_1035 = lean_ctor_get(x_4, 2); -lean_inc(x_1035); -lean_inc(x_1034); -lean_dec(x_4); -x_1036 = lean_ctor_get(x_973, 0); -lean_inc(x_1036); -x_1037 = lean_ctor_get(x_973, 1); -lean_inc(x_1037); -x_1038 = lean_ctor_get(x_973, 2); -lean_inc(x_1038); -x_1039 = lean_ctor_get(x_973, 3); -lean_inc(x_1039); -if (lean_is_exclusive(x_973)) { - lean_ctor_release(x_973, 0); - lean_ctor_release(x_973, 1); - lean_ctor_release(x_973, 2); - lean_ctor_release(x_973, 3); - x_1040 = x_973; -} else { - lean_dec_ref(x_973); - x_1040 = lean_box(0); -} -x_1041 = 1; -if (lean_is_scalar(x_1040)) { - x_1042 = lean_alloc_ctor(1, 4, 1); -} else { - x_1042 = x_1040; -} -lean_ctor_set(x_1042, 0, x_1); -lean_ctor_set(x_1042, 1, x_2); -lean_ctor_set(x_1042, 2, x_3); -lean_ctor_set(x_1042, 3, x_1036); -lean_ctor_set_uint8(x_1042, sizeof(void*)*4, x_1041); -x_1043 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1043, 0, x_1039); -lean_ctor_set(x_1043, 1, x_1034); -lean_ctor_set(x_1043, 2, x_1035); -lean_ctor_set(x_1043, 3, x_1016); -lean_ctor_set_uint8(x_1043, sizeof(void*)*4, x_1041); -x_1044 = 0; -lean_ctor_set(x_241, 3, x_1043); -lean_ctor_set(x_241, 2, x_1038); -lean_ctor_set(x_241, 1, x_1037); -lean_ctor_set(x_241, 0, x_1042); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1044); -return x_241; -} -} -else -{ -uint8_t x_1045; -x_1045 = lean_ctor_get_uint8(x_1016, sizeof(void*)*4); -if (x_1045 == 0) -{ -uint8_t x_1046; -x_1046 = !lean_is_exclusive(x_4); -if (x_1046 == 0) -{ -lean_object* x_1047; lean_object* x_1048; lean_object* x_1049; lean_object* x_1050; uint8_t x_1051; -x_1047 = lean_ctor_get(x_4, 1); -x_1048 = lean_ctor_get(x_4, 2); -x_1049 = lean_ctor_get(x_4, 3); -lean_dec(x_1049); -x_1050 = lean_ctor_get(x_4, 0); -lean_dec(x_1050); -x_1051 = !lean_is_exclusive(x_973); -if (x_1051 == 0) -{ -uint8_t x_1052; -x_1052 = !lean_is_exclusive(x_1016); -if (x_1052 == 0) -{ -lean_object* x_1053; lean_object* x_1054; lean_object* x_1055; lean_object* x_1056; lean_object* x_1057; lean_object* x_1058; lean_object* x_1059; lean_object* x_1060; uint8_t x_1061; uint8_t x_1062; -x_1053 = lean_ctor_get(x_973, 0); -x_1054 = lean_ctor_get(x_973, 1); -x_1055 = lean_ctor_get(x_973, 2); -x_1056 = lean_ctor_get(x_973, 3); -x_1057 = lean_ctor_get(x_1016, 0); -x_1058 = lean_ctor_get(x_1016, 1); -x_1059 = lean_ctor_get(x_1016, 2); -x_1060 = lean_ctor_get(x_1016, 3); -lean_ctor_set(x_1016, 3, x_1056); -lean_ctor_set(x_1016, 2, x_1055); -lean_ctor_set(x_1016, 1, x_1054); -lean_ctor_set(x_1016, 0, x_1053); -x_1061 = 1; -lean_ctor_set(x_973, 3, x_1016); -lean_ctor_set(x_973, 2, x_3); -lean_ctor_set(x_973, 1, x_2); -lean_ctor_set(x_973, 0, x_1); -lean_ctor_set_uint8(x_973, sizeof(void*)*4, x_1061); -lean_ctor_set(x_4, 3, x_1060); -lean_ctor_set(x_4, 2, x_1059); -lean_ctor_set(x_4, 1, x_1058); -lean_ctor_set(x_4, 0, x_1057); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1061); -x_1062 = 0; -lean_ctor_set(x_241, 3, x_4); -lean_ctor_set(x_241, 2, x_1048); -lean_ctor_set(x_241, 1, x_1047); -lean_ctor_set(x_241, 0, x_973); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1062); -return x_241; -} -else -{ -lean_object* x_1063; lean_object* x_1064; lean_object* x_1065; lean_object* x_1066; lean_object* x_1067; lean_object* x_1068; lean_object* x_1069; lean_object* x_1070; lean_object* x_1071; uint8_t x_1072; uint8_t x_1073; -x_1063 = lean_ctor_get(x_973, 0); -x_1064 = lean_ctor_get(x_973, 1); -x_1065 = lean_ctor_get(x_973, 2); -x_1066 = lean_ctor_get(x_973, 3); -x_1067 = lean_ctor_get(x_1016, 0); -x_1068 = lean_ctor_get(x_1016, 1); -x_1069 = lean_ctor_get(x_1016, 2); -x_1070 = lean_ctor_get(x_1016, 3); -lean_inc(x_1070); -lean_inc(x_1069); -lean_inc(x_1068); -lean_inc(x_1067); -lean_dec(x_1016); -x_1071 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1071, 0, x_1063); -lean_ctor_set(x_1071, 1, x_1064); -lean_ctor_set(x_1071, 2, x_1065); -lean_ctor_set(x_1071, 3, x_1066); -lean_ctor_set_uint8(x_1071, sizeof(void*)*4, x_1045); -x_1072 = 1; -lean_ctor_set(x_973, 3, x_1071); -lean_ctor_set(x_973, 2, x_3); -lean_ctor_set(x_973, 1, x_2); -lean_ctor_set(x_973, 0, x_1); -lean_ctor_set_uint8(x_973, sizeof(void*)*4, x_1072); -lean_ctor_set(x_4, 3, x_1070); -lean_ctor_set(x_4, 2, x_1069); -lean_ctor_set(x_4, 1, x_1068); -lean_ctor_set(x_4, 0, x_1067); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1072); -x_1073 = 0; -lean_ctor_set(x_241, 3, x_4); -lean_ctor_set(x_241, 2, x_1048); -lean_ctor_set(x_241, 1, x_1047); -lean_ctor_set(x_241, 0, x_973); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1073); -return x_241; -} -} -else -{ -lean_object* x_1074; lean_object* x_1075; lean_object* x_1076; lean_object* x_1077; lean_object* x_1078; lean_object* x_1079; lean_object* x_1080; lean_object* x_1081; lean_object* x_1082; lean_object* x_1083; uint8_t x_1084; lean_object* x_1085; uint8_t x_1086; -x_1074 = lean_ctor_get(x_973, 0); -x_1075 = lean_ctor_get(x_973, 1); -x_1076 = lean_ctor_get(x_973, 2); -x_1077 = lean_ctor_get(x_973, 3); -lean_inc(x_1077); -lean_inc(x_1076); -lean_inc(x_1075); -lean_inc(x_1074); -lean_dec(x_973); -x_1078 = lean_ctor_get(x_1016, 0); -lean_inc(x_1078); -x_1079 = lean_ctor_get(x_1016, 1); -lean_inc(x_1079); -x_1080 = lean_ctor_get(x_1016, 2); -lean_inc(x_1080); -x_1081 = lean_ctor_get(x_1016, 3); -lean_inc(x_1081); -if (lean_is_exclusive(x_1016)) { - lean_ctor_release(x_1016, 0); - lean_ctor_release(x_1016, 1); - lean_ctor_release(x_1016, 2); - lean_ctor_release(x_1016, 3); - x_1082 = x_1016; -} else { - lean_dec_ref(x_1016); - x_1082 = lean_box(0); -} -if (lean_is_scalar(x_1082)) { - x_1083 = lean_alloc_ctor(1, 4, 1); -} else { - x_1083 = x_1082; -} -lean_ctor_set(x_1083, 0, x_1074); -lean_ctor_set(x_1083, 1, x_1075); -lean_ctor_set(x_1083, 2, x_1076); -lean_ctor_set(x_1083, 3, x_1077); -lean_ctor_set_uint8(x_1083, sizeof(void*)*4, x_1045); -x_1084 = 1; -x_1085 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1085, 0, x_1); -lean_ctor_set(x_1085, 1, x_2); -lean_ctor_set(x_1085, 2, x_3); -lean_ctor_set(x_1085, 3, x_1083); -lean_ctor_set_uint8(x_1085, sizeof(void*)*4, x_1084); -lean_ctor_set(x_4, 3, x_1081); -lean_ctor_set(x_4, 2, x_1080); -lean_ctor_set(x_4, 1, x_1079); -lean_ctor_set(x_4, 0, x_1078); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1084); -x_1086 = 0; -lean_ctor_set(x_241, 3, x_4); -lean_ctor_set(x_241, 2, x_1048); -lean_ctor_set(x_241, 1, x_1047); -lean_ctor_set(x_241, 0, x_1085); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1086); -return x_241; -} -} -else -{ -lean_object* x_1087; lean_object* x_1088; lean_object* x_1089; lean_object* x_1090; lean_object* x_1091; lean_object* x_1092; lean_object* x_1093; lean_object* x_1094; lean_object* x_1095; lean_object* x_1096; lean_object* x_1097; lean_object* x_1098; lean_object* x_1099; uint8_t x_1100; lean_object* x_1101; lean_object* x_1102; uint8_t x_1103; -x_1087 = lean_ctor_get(x_4, 1); -x_1088 = lean_ctor_get(x_4, 2); -lean_inc(x_1088); -lean_inc(x_1087); -lean_dec(x_4); -x_1089 = lean_ctor_get(x_973, 0); -lean_inc(x_1089); -x_1090 = lean_ctor_get(x_973, 1); -lean_inc(x_1090); -x_1091 = lean_ctor_get(x_973, 2); -lean_inc(x_1091); -x_1092 = lean_ctor_get(x_973, 3); -lean_inc(x_1092); -if (lean_is_exclusive(x_973)) { - lean_ctor_release(x_973, 0); - lean_ctor_release(x_973, 1); - lean_ctor_release(x_973, 2); - lean_ctor_release(x_973, 3); - x_1093 = x_973; -} else { - lean_dec_ref(x_973); - x_1093 = lean_box(0); -} -x_1094 = lean_ctor_get(x_1016, 0); -lean_inc(x_1094); -x_1095 = lean_ctor_get(x_1016, 1); -lean_inc(x_1095); -x_1096 = lean_ctor_get(x_1016, 2); -lean_inc(x_1096); -x_1097 = lean_ctor_get(x_1016, 3); -lean_inc(x_1097); -if (lean_is_exclusive(x_1016)) { - lean_ctor_release(x_1016, 0); - lean_ctor_release(x_1016, 1); - lean_ctor_release(x_1016, 2); - lean_ctor_release(x_1016, 3); - x_1098 = x_1016; -} else { - lean_dec_ref(x_1016); - x_1098 = lean_box(0); -} -if (lean_is_scalar(x_1098)) { - x_1099 = lean_alloc_ctor(1, 4, 1); -} else { - x_1099 = x_1098; -} -lean_ctor_set(x_1099, 0, x_1089); -lean_ctor_set(x_1099, 1, x_1090); -lean_ctor_set(x_1099, 2, x_1091); -lean_ctor_set(x_1099, 3, x_1092); -lean_ctor_set_uint8(x_1099, sizeof(void*)*4, x_1045); -x_1100 = 1; -if (lean_is_scalar(x_1093)) { - x_1101 = lean_alloc_ctor(1, 4, 1); -} else { - x_1101 = x_1093; -} -lean_ctor_set(x_1101, 0, x_1); -lean_ctor_set(x_1101, 1, x_2); -lean_ctor_set(x_1101, 2, x_3); -lean_ctor_set(x_1101, 3, x_1099); -lean_ctor_set_uint8(x_1101, sizeof(void*)*4, x_1100); -x_1102 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1102, 0, x_1094); -lean_ctor_set(x_1102, 1, x_1095); -lean_ctor_set(x_1102, 2, x_1096); -lean_ctor_set(x_1102, 3, x_1097); -lean_ctor_set_uint8(x_1102, sizeof(void*)*4, x_1100); -x_1103 = 0; -lean_ctor_set(x_241, 3, x_1102); -lean_ctor_set(x_241, 2, x_1088); -lean_ctor_set(x_241, 1, x_1087); -lean_ctor_set(x_241, 0, x_1101); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1103); -return x_241; -} -} -else -{ -uint8_t x_1104; -x_1104 = !lean_is_exclusive(x_4); -if (x_1104 == 0) -{ -lean_object* x_1105; lean_object* x_1106; uint8_t x_1107; -x_1105 = lean_ctor_get(x_4, 3); -lean_dec(x_1105); -x_1106 = lean_ctor_get(x_4, 0); -lean_dec(x_1106); -x_1107 = !lean_is_exclusive(x_973); -if (x_1107 == 0) -{ -lean_object* x_1108; lean_object* x_1109; lean_object* x_1110; lean_object* x_1111; uint8_t x_1112; uint8_t x_1113; -x_1108 = lean_ctor_get(x_973, 0); -x_1109 = lean_ctor_get(x_973, 1); -x_1110 = lean_ctor_get(x_973, 2); -x_1111 = lean_ctor_get(x_973, 3); -x_1112 = 1; -lean_ctor_set(x_973, 3, x_1108); -lean_ctor_set(x_973, 2, x_3); -lean_ctor_set(x_973, 1, x_2); -lean_ctor_set(x_973, 0, x_1); -lean_ctor_set_uint8(x_973, sizeof(void*)*4, x_1112); -lean_ctor_set(x_4, 0, x_1111); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1112); -x_1113 = 0; -lean_ctor_set(x_241, 3, x_4); -lean_ctor_set(x_241, 2, x_1110); -lean_ctor_set(x_241, 1, x_1109); -lean_ctor_set(x_241, 0, x_973); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1113); -return x_241; -} -else -{ -lean_object* x_1114; lean_object* x_1115; lean_object* x_1116; lean_object* x_1117; uint8_t x_1118; lean_object* x_1119; uint8_t x_1120; -x_1114 = lean_ctor_get(x_973, 0); -x_1115 = lean_ctor_get(x_973, 1); -x_1116 = lean_ctor_get(x_973, 2); -x_1117 = lean_ctor_get(x_973, 3); -lean_inc(x_1117); -lean_inc(x_1116); -lean_inc(x_1115); -lean_inc(x_1114); -lean_dec(x_973); -x_1118 = 1; -x_1119 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1119, 0, x_1); -lean_ctor_set(x_1119, 1, x_2); -lean_ctor_set(x_1119, 2, x_3); -lean_ctor_set(x_1119, 3, x_1114); -lean_ctor_set_uint8(x_1119, sizeof(void*)*4, x_1118); -lean_ctor_set(x_4, 0, x_1117); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1118); -x_1120 = 0; -lean_ctor_set(x_241, 3, x_4); -lean_ctor_set(x_241, 2, x_1116); -lean_ctor_set(x_241, 1, x_1115); -lean_ctor_set(x_241, 0, x_1119); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1120); -return x_241; -} -} -else -{ -lean_object* x_1121; lean_object* x_1122; lean_object* x_1123; lean_object* x_1124; lean_object* x_1125; lean_object* x_1126; lean_object* x_1127; uint8_t x_1128; lean_object* x_1129; lean_object* x_1130; uint8_t x_1131; -x_1121 = lean_ctor_get(x_4, 1); -x_1122 = lean_ctor_get(x_4, 2); -lean_inc(x_1122); -lean_inc(x_1121); -lean_dec(x_4); -x_1123 = lean_ctor_get(x_973, 0); -lean_inc(x_1123); -x_1124 = lean_ctor_get(x_973, 1); -lean_inc(x_1124); -x_1125 = lean_ctor_get(x_973, 2); -lean_inc(x_1125); -x_1126 = lean_ctor_get(x_973, 3); -lean_inc(x_1126); -if (lean_is_exclusive(x_973)) { - lean_ctor_release(x_973, 0); - lean_ctor_release(x_973, 1); - lean_ctor_release(x_973, 2); - lean_ctor_release(x_973, 3); - x_1127 = x_973; -} else { - lean_dec_ref(x_973); - x_1127 = lean_box(0); -} -x_1128 = 1; -if (lean_is_scalar(x_1127)) { - x_1129 = lean_alloc_ctor(1, 4, 1); -} else { - x_1129 = x_1127; -} -lean_ctor_set(x_1129, 0, x_1); -lean_ctor_set(x_1129, 1, x_2); -lean_ctor_set(x_1129, 2, x_3); -lean_ctor_set(x_1129, 3, x_1123); -lean_ctor_set_uint8(x_1129, sizeof(void*)*4, x_1128); -x_1130 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1130, 0, x_1126); -lean_ctor_set(x_1130, 1, x_1121); -lean_ctor_set(x_1130, 2, x_1122); -lean_ctor_set(x_1130, 3, x_1016); -lean_ctor_set_uint8(x_1130, sizeof(void*)*4, x_1128); -x_1131 = 0; -lean_ctor_set(x_241, 3, x_1130); -lean_ctor_set(x_241, 2, x_1125); -lean_ctor_set(x_241, 1, x_1124); -lean_ctor_set(x_241, 0, x_1129); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1131); -return x_241; -} -} -} -} -else -{ -lean_object* x_1132; -lean_free_object(x_241); -x_1132 = lean_ctor_get(x_4, 3); -lean_inc(x_1132); -if (lean_obj_tag(x_1132) == 0) -{ -uint8_t x_1133; -x_1133 = !lean_is_exclusive(x_973); -if (x_1133 == 0) -{ -lean_object* x_1134; lean_object* x_1135; lean_object* x_1136; lean_object* x_1137; uint8_t x_1138; -x_1134 = lean_ctor_get(x_973, 3); -lean_dec(x_1134); -x_1135 = lean_ctor_get(x_973, 2); -lean_dec(x_1135); -x_1136 = lean_ctor_get(x_973, 1); -lean_dec(x_1136); -x_1137 = lean_ctor_get(x_973, 0); -lean_dec(x_1137); -x_1138 = 1; -lean_ctor_set(x_973, 3, x_4); -lean_ctor_set(x_973, 2, x_3); -lean_ctor_set(x_973, 1, x_2); -lean_ctor_set(x_973, 0, x_1); -lean_ctor_set_uint8(x_973, sizeof(void*)*4, x_1138); -return x_973; -} -else -{ -uint8_t x_1139; lean_object* x_1140; -lean_dec(x_973); -x_1139 = 1; -x_1140 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1140, 0, x_1); -lean_ctor_set(x_1140, 1, x_2); -lean_ctor_set(x_1140, 2, x_3); -lean_ctor_set(x_1140, 3, x_4); -lean_ctor_set_uint8(x_1140, sizeof(void*)*4, x_1139); -return x_1140; -} -} -else -{ -uint8_t x_1141; -x_1141 = lean_ctor_get_uint8(x_1132, sizeof(void*)*4); -if (x_1141 == 0) -{ -uint8_t x_1142; -x_1142 = !lean_is_exclusive(x_4); -if (x_1142 == 0) -{ -lean_object* x_1143; lean_object* x_1144; uint8_t x_1145; -x_1143 = lean_ctor_get(x_4, 3); -lean_dec(x_1143); -x_1144 = lean_ctor_get(x_4, 0); -lean_dec(x_1144); -x_1145 = !lean_is_exclusive(x_1132); -if (x_1145 == 0) -{ -lean_object* x_1146; lean_object* x_1147; lean_object* x_1148; lean_object* x_1149; uint8_t x_1150; uint8_t x_1151; -x_1146 = lean_ctor_get(x_1132, 0); -x_1147 = lean_ctor_get(x_1132, 1); -x_1148 = lean_ctor_get(x_1132, 2); -x_1149 = lean_ctor_get(x_1132, 3); -x_1150 = 1; -lean_inc(x_973); -lean_ctor_set(x_1132, 3, x_973); -lean_ctor_set(x_1132, 2, x_3); -lean_ctor_set(x_1132, 1, x_2); -lean_ctor_set(x_1132, 0, x_1); -x_1151 = !lean_is_exclusive(x_973); -if (x_1151 == 0) -{ -lean_object* x_1152; lean_object* x_1153; lean_object* x_1154; lean_object* x_1155; uint8_t x_1156; -x_1152 = lean_ctor_get(x_973, 3); -lean_dec(x_1152); -x_1153 = lean_ctor_get(x_973, 2); -lean_dec(x_1153); -x_1154 = lean_ctor_get(x_973, 1); -lean_dec(x_1154); -x_1155 = lean_ctor_get(x_973, 0); -lean_dec(x_1155); -lean_ctor_set_uint8(x_1132, sizeof(void*)*4, x_1150); -lean_ctor_set(x_973, 3, x_1149); -lean_ctor_set(x_973, 2, x_1148); -lean_ctor_set(x_973, 1, x_1147); -lean_ctor_set(x_973, 0, x_1146); -lean_ctor_set_uint8(x_973, sizeof(void*)*4, x_1150); -x_1156 = 0; -lean_ctor_set(x_4, 3, x_973); -lean_ctor_set(x_4, 0, x_1132); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1156); -return x_4; -} -else -{ -lean_object* x_1157; uint8_t x_1158; -lean_dec(x_973); -lean_ctor_set_uint8(x_1132, sizeof(void*)*4, x_1150); -x_1157 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1157, 0, x_1146); -lean_ctor_set(x_1157, 1, x_1147); -lean_ctor_set(x_1157, 2, x_1148); -lean_ctor_set(x_1157, 3, x_1149); -lean_ctor_set_uint8(x_1157, sizeof(void*)*4, x_1150); -x_1158 = 0; -lean_ctor_set(x_4, 3, x_1157); -lean_ctor_set(x_4, 0, x_1132); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1158); -return x_4; -} -} -else -{ -lean_object* x_1159; lean_object* x_1160; lean_object* x_1161; lean_object* x_1162; uint8_t x_1163; lean_object* x_1164; lean_object* x_1165; lean_object* x_1166; uint8_t x_1167; -x_1159 = lean_ctor_get(x_1132, 0); -x_1160 = lean_ctor_get(x_1132, 1); -x_1161 = lean_ctor_get(x_1132, 2); -x_1162 = lean_ctor_get(x_1132, 3); -lean_inc(x_1162); -lean_inc(x_1161); -lean_inc(x_1160); -lean_inc(x_1159); -lean_dec(x_1132); -x_1163 = 1; -lean_inc(x_973); -x_1164 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1164, 0, x_1); -lean_ctor_set(x_1164, 1, x_2); -lean_ctor_set(x_1164, 2, x_3); -lean_ctor_set(x_1164, 3, x_973); -if (lean_is_exclusive(x_973)) { - lean_ctor_release(x_973, 0); - lean_ctor_release(x_973, 1); - lean_ctor_release(x_973, 2); - lean_ctor_release(x_973, 3); - x_1165 = x_973; -} else { - lean_dec_ref(x_973); - x_1165 = lean_box(0); -} -lean_ctor_set_uint8(x_1164, sizeof(void*)*4, x_1163); -if (lean_is_scalar(x_1165)) { - x_1166 = lean_alloc_ctor(1, 4, 1); -} else { - x_1166 = x_1165; -} -lean_ctor_set(x_1166, 0, x_1159); -lean_ctor_set(x_1166, 1, x_1160); -lean_ctor_set(x_1166, 2, x_1161); -lean_ctor_set(x_1166, 3, x_1162); -lean_ctor_set_uint8(x_1166, sizeof(void*)*4, x_1163); -x_1167 = 0; -lean_ctor_set(x_4, 3, x_1166); -lean_ctor_set(x_4, 0, x_1164); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1167); -return x_4; -} -} -else -{ -lean_object* x_1168; lean_object* x_1169; lean_object* x_1170; lean_object* x_1171; lean_object* x_1172; lean_object* x_1173; lean_object* x_1174; uint8_t x_1175; lean_object* x_1176; lean_object* x_1177; lean_object* x_1178; uint8_t x_1179; lean_object* x_1180; -x_1168 = lean_ctor_get(x_4, 1); -x_1169 = lean_ctor_get(x_4, 2); -lean_inc(x_1169); -lean_inc(x_1168); -lean_dec(x_4); -x_1170 = lean_ctor_get(x_1132, 0); -lean_inc(x_1170); -x_1171 = lean_ctor_get(x_1132, 1); -lean_inc(x_1171); -x_1172 = lean_ctor_get(x_1132, 2); -lean_inc(x_1172); -x_1173 = lean_ctor_get(x_1132, 3); -lean_inc(x_1173); -if (lean_is_exclusive(x_1132)) { - lean_ctor_release(x_1132, 0); - lean_ctor_release(x_1132, 1); - lean_ctor_release(x_1132, 2); - lean_ctor_release(x_1132, 3); - x_1174 = x_1132; -} else { - lean_dec_ref(x_1132); - x_1174 = lean_box(0); -} -x_1175 = 1; -lean_inc(x_973); -if (lean_is_scalar(x_1174)) { - x_1176 = lean_alloc_ctor(1, 4, 1); -} else { - x_1176 = x_1174; -} -lean_ctor_set(x_1176, 0, x_1); -lean_ctor_set(x_1176, 1, x_2); -lean_ctor_set(x_1176, 2, x_3); -lean_ctor_set(x_1176, 3, x_973); -if (lean_is_exclusive(x_973)) { - lean_ctor_release(x_973, 0); - lean_ctor_release(x_973, 1); - lean_ctor_release(x_973, 2); - lean_ctor_release(x_973, 3); - x_1177 = x_973; -} else { - lean_dec_ref(x_973); - x_1177 = lean_box(0); -} -lean_ctor_set_uint8(x_1176, sizeof(void*)*4, x_1175); -if (lean_is_scalar(x_1177)) { - x_1178 = lean_alloc_ctor(1, 4, 1); -} else { - x_1178 = x_1177; -} -lean_ctor_set(x_1178, 0, x_1170); -lean_ctor_set(x_1178, 1, x_1171); -lean_ctor_set(x_1178, 2, x_1172); -lean_ctor_set(x_1178, 3, x_1173); -lean_ctor_set_uint8(x_1178, sizeof(void*)*4, x_1175); -x_1179 = 0; -x_1180 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1180, 0, x_1176); -lean_ctor_set(x_1180, 1, x_1168); -lean_ctor_set(x_1180, 2, x_1169); -lean_ctor_set(x_1180, 3, x_1178); -lean_ctor_set_uint8(x_1180, sizeof(void*)*4, x_1179); -return x_1180; -} -} -else -{ -uint8_t x_1181; -lean_dec(x_973); -x_1181 = !lean_is_exclusive(x_1132); -if (x_1181 == 0) -{ -lean_object* x_1182; lean_object* x_1183; lean_object* x_1184; lean_object* x_1185; uint8_t x_1186; -x_1182 = lean_ctor_get(x_1132, 3); -lean_dec(x_1182); -x_1183 = lean_ctor_get(x_1132, 2); -lean_dec(x_1183); -x_1184 = lean_ctor_get(x_1132, 1); -lean_dec(x_1184); -x_1185 = lean_ctor_get(x_1132, 0); -lean_dec(x_1185); -x_1186 = 1; -lean_ctor_set(x_1132, 3, x_4); -lean_ctor_set(x_1132, 2, x_3); -lean_ctor_set(x_1132, 1, x_2); -lean_ctor_set(x_1132, 0, x_1); -lean_ctor_set_uint8(x_1132, sizeof(void*)*4, x_1186); -return x_1132; -} -else -{ -uint8_t x_1187; lean_object* x_1188; -lean_dec(x_1132); -x_1187 = 1; -x_1188 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1188, 0, x_1); -lean_ctor_set(x_1188, 1, x_2); -lean_ctor_set(x_1188, 2, x_3); -lean_ctor_set(x_1188, 3, x_4); -lean_ctor_set_uint8(x_1188, sizeof(void*)*4, x_1187); -return x_1188; -} -} -} -} -} -} -else -{ -uint8_t x_1189; -x_1189 = 1; -lean_ctor_set(x_241, 3, x_4); -lean_ctor_set(x_241, 2, x_3); -lean_ctor_set(x_241, 1, x_2); -lean_ctor_set(x_241, 0, x_1); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1189); -return x_241; -} -} -} -else -{ -lean_dec(x_241); -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_1190; lean_object* x_1191; -x_1190 = 1; -x_1191 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1191, 0, x_1); -lean_ctor_set(x_1191, 1, x_2); -lean_ctor_set(x_1191, 2, x_3); -lean_ctor_set(x_1191, 3, x_4); -lean_ctor_set_uint8(x_1191, sizeof(void*)*4, x_1190); -return x_1191; -} -else -{ -uint8_t x_1192; -x_1192 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_1192 == 0) -{ -lean_object* x_1193; -x_1193 = lean_ctor_get(x_4, 0); -lean_inc(x_1193); -if (lean_obj_tag(x_1193) == 0) -{ -lean_object* x_1194; -x_1194 = lean_ctor_get(x_4, 3); -lean_inc(x_1194); -if (lean_obj_tag(x_1194) == 0) -{ -uint8_t x_1195; lean_object* x_1196; -x_1195 = 1; -x_1196 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1196, 0, x_1); -lean_ctor_set(x_1196, 1, x_2); -lean_ctor_set(x_1196, 2, x_3); -lean_ctor_set(x_1196, 3, x_4); -lean_ctor_set_uint8(x_1196, sizeof(void*)*4, x_1195); -return x_1196; -} -else -{ -uint8_t x_1197; -x_1197 = lean_ctor_get_uint8(x_1194, sizeof(void*)*4); -if (x_1197 == 0) -{ -lean_object* x_1198; lean_object* x_1199; lean_object* x_1200; lean_object* x_1201; lean_object* x_1202; lean_object* x_1203; lean_object* x_1204; lean_object* x_1205; uint8_t x_1206; lean_object* x_1207; lean_object* x_1208; uint8_t x_1209; lean_object* x_1210; -x_1198 = lean_ctor_get(x_4, 1); -lean_inc(x_1198); -x_1199 = lean_ctor_get(x_4, 2); -lean_inc(x_1199); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1200 = x_4; -} else { - lean_dec_ref(x_4); - x_1200 = lean_box(0); -} -x_1201 = lean_ctor_get(x_1194, 0); -lean_inc(x_1201); -x_1202 = lean_ctor_get(x_1194, 1); -lean_inc(x_1202); -x_1203 = lean_ctor_get(x_1194, 2); -lean_inc(x_1203); -x_1204 = lean_ctor_get(x_1194, 3); -lean_inc(x_1204); -if (lean_is_exclusive(x_1194)) { - lean_ctor_release(x_1194, 0); - lean_ctor_release(x_1194, 1); - lean_ctor_release(x_1194, 2); - lean_ctor_release(x_1194, 3); - x_1205 = x_1194; -} else { - lean_dec_ref(x_1194); - x_1205 = lean_box(0); -} -x_1206 = 1; -if (lean_is_scalar(x_1205)) { - x_1207 = lean_alloc_ctor(1, 4, 1); -} else { - x_1207 = x_1205; -} -lean_ctor_set(x_1207, 0, x_1); -lean_ctor_set(x_1207, 1, x_2); -lean_ctor_set(x_1207, 2, x_3); -lean_ctor_set(x_1207, 3, x_1193); -lean_ctor_set_uint8(x_1207, sizeof(void*)*4, x_1206); -if (lean_is_scalar(x_1200)) { - x_1208 = lean_alloc_ctor(1, 4, 1); -} else { - x_1208 = x_1200; -} -lean_ctor_set(x_1208, 0, x_1201); -lean_ctor_set(x_1208, 1, x_1202); -lean_ctor_set(x_1208, 2, x_1203); -lean_ctor_set(x_1208, 3, x_1204); -lean_ctor_set_uint8(x_1208, sizeof(void*)*4, x_1206); -x_1209 = 0; -x_1210 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1210, 0, x_1207); -lean_ctor_set(x_1210, 1, x_1198); -lean_ctor_set(x_1210, 2, x_1199); -lean_ctor_set(x_1210, 3, x_1208); -lean_ctor_set_uint8(x_1210, sizeof(void*)*4, x_1209); -return x_1210; -} -else -{ -lean_object* x_1211; uint8_t x_1212; lean_object* x_1213; -if (lean_is_exclusive(x_1194)) { - lean_ctor_release(x_1194, 0); - lean_ctor_release(x_1194, 1); - lean_ctor_release(x_1194, 2); - lean_ctor_release(x_1194, 3); - x_1211 = x_1194; -} else { - lean_dec_ref(x_1194); - x_1211 = lean_box(0); -} -x_1212 = 1; -if (lean_is_scalar(x_1211)) { - x_1213 = lean_alloc_ctor(1, 4, 1); -} else { - x_1213 = x_1211; -} -lean_ctor_set(x_1213, 0, x_1); -lean_ctor_set(x_1213, 1, x_2); -lean_ctor_set(x_1213, 2, x_3); -lean_ctor_set(x_1213, 3, x_4); -lean_ctor_set_uint8(x_1213, sizeof(void*)*4, x_1212); -return x_1213; -} -} -} -else -{ -uint8_t x_1214; -x_1214 = lean_ctor_get_uint8(x_1193, sizeof(void*)*4); -if (x_1214 == 0) -{ -lean_object* x_1215; -x_1215 = lean_ctor_get(x_4, 3); -lean_inc(x_1215); -if (lean_obj_tag(x_1215) == 0) -{ -lean_object* x_1216; lean_object* x_1217; lean_object* x_1218; lean_object* x_1219; lean_object* x_1220; lean_object* x_1221; lean_object* x_1222; lean_object* x_1223; uint8_t x_1224; lean_object* x_1225; lean_object* x_1226; uint8_t x_1227; lean_object* x_1228; -x_1216 = lean_ctor_get(x_4, 1); -lean_inc(x_1216); -x_1217 = lean_ctor_get(x_4, 2); -lean_inc(x_1217); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1218 = x_4; -} else { - lean_dec_ref(x_4); - x_1218 = lean_box(0); -} -x_1219 = lean_ctor_get(x_1193, 0); -lean_inc(x_1219); -x_1220 = lean_ctor_get(x_1193, 1); -lean_inc(x_1220); -x_1221 = lean_ctor_get(x_1193, 2); -lean_inc(x_1221); -x_1222 = lean_ctor_get(x_1193, 3); -lean_inc(x_1222); -if (lean_is_exclusive(x_1193)) { - lean_ctor_release(x_1193, 0); - lean_ctor_release(x_1193, 1); - lean_ctor_release(x_1193, 2); - lean_ctor_release(x_1193, 3); - x_1223 = x_1193; -} else { - lean_dec_ref(x_1193); - x_1223 = lean_box(0); -} -x_1224 = 1; -if (lean_is_scalar(x_1223)) { - x_1225 = lean_alloc_ctor(1, 4, 1); -} else { - x_1225 = x_1223; -} -lean_ctor_set(x_1225, 0, x_1); -lean_ctor_set(x_1225, 1, x_2); -lean_ctor_set(x_1225, 2, x_3); -lean_ctor_set(x_1225, 3, x_1219); -lean_ctor_set_uint8(x_1225, sizeof(void*)*4, x_1224); -if (lean_is_scalar(x_1218)) { - x_1226 = lean_alloc_ctor(1, 4, 1); -} else { - x_1226 = x_1218; -} -lean_ctor_set(x_1226, 0, x_1222); -lean_ctor_set(x_1226, 1, x_1216); -lean_ctor_set(x_1226, 2, x_1217); -lean_ctor_set(x_1226, 3, x_1215); -lean_ctor_set_uint8(x_1226, sizeof(void*)*4, x_1224); -x_1227 = 0; -x_1228 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1228, 0, x_1225); -lean_ctor_set(x_1228, 1, x_1220); -lean_ctor_set(x_1228, 2, x_1221); -lean_ctor_set(x_1228, 3, x_1226); -lean_ctor_set_uint8(x_1228, sizeof(void*)*4, x_1227); -return x_1228; -} -else -{ -uint8_t x_1229; -x_1229 = lean_ctor_get_uint8(x_1215, sizeof(void*)*4); -if (x_1229 == 0) -{ -lean_object* x_1230; lean_object* x_1231; lean_object* x_1232; lean_object* x_1233; lean_object* x_1234; lean_object* x_1235; lean_object* x_1236; lean_object* x_1237; lean_object* x_1238; lean_object* x_1239; lean_object* x_1240; lean_object* x_1241; lean_object* x_1242; lean_object* x_1243; uint8_t x_1244; lean_object* x_1245; lean_object* x_1246; uint8_t x_1247; lean_object* x_1248; -x_1230 = lean_ctor_get(x_4, 1); -lean_inc(x_1230); -x_1231 = lean_ctor_get(x_4, 2); -lean_inc(x_1231); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1232 = x_4; -} else { - lean_dec_ref(x_4); - x_1232 = lean_box(0); -} -x_1233 = lean_ctor_get(x_1193, 0); -lean_inc(x_1233); -x_1234 = lean_ctor_get(x_1193, 1); -lean_inc(x_1234); -x_1235 = lean_ctor_get(x_1193, 2); -lean_inc(x_1235); -x_1236 = lean_ctor_get(x_1193, 3); -lean_inc(x_1236); -if (lean_is_exclusive(x_1193)) { - lean_ctor_release(x_1193, 0); - lean_ctor_release(x_1193, 1); - lean_ctor_release(x_1193, 2); - lean_ctor_release(x_1193, 3); - x_1237 = x_1193; -} else { - lean_dec_ref(x_1193); - x_1237 = lean_box(0); -} -x_1238 = lean_ctor_get(x_1215, 0); -lean_inc(x_1238); -x_1239 = lean_ctor_get(x_1215, 1); -lean_inc(x_1239); -x_1240 = lean_ctor_get(x_1215, 2); -lean_inc(x_1240); -x_1241 = lean_ctor_get(x_1215, 3); -lean_inc(x_1241); -if (lean_is_exclusive(x_1215)) { - lean_ctor_release(x_1215, 0); - lean_ctor_release(x_1215, 1); - lean_ctor_release(x_1215, 2); - lean_ctor_release(x_1215, 3); - x_1242 = x_1215; -} else { - lean_dec_ref(x_1215); - x_1242 = lean_box(0); -} -if (lean_is_scalar(x_1242)) { - x_1243 = lean_alloc_ctor(1, 4, 1); -} else { - x_1243 = x_1242; -} -lean_ctor_set(x_1243, 0, x_1233); -lean_ctor_set(x_1243, 1, x_1234); -lean_ctor_set(x_1243, 2, x_1235); -lean_ctor_set(x_1243, 3, x_1236); -lean_ctor_set_uint8(x_1243, sizeof(void*)*4, x_1229); -x_1244 = 1; -if (lean_is_scalar(x_1237)) { - x_1245 = lean_alloc_ctor(1, 4, 1); -} else { - x_1245 = x_1237; -} -lean_ctor_set(x_1245, 0, x_1); -lean_ctor_set(x_1245, 1, x_2); -lean_ctor_set(x_1245, 2, x_3); -lean_ctor_set(x_1245, 3, x_1243); -lean_ctor_set_uint8(x_1245, sizeof(void*)*4, x_1244); -if (lean_is_scalar(x_1232)) { - x_1246 = lean_alloc_ctor(1, 4, 1); -} else { - x_1246 = x_1232; -} -lean_ctor_set(x_1246, 0, x_1238); -lean_ctor_set(x_1246, 1, x_1239); -lean_ctor_set(x_1246, 2, x_1240); -lean_ctor_set(x_1246, 3, x_1241); -lean_ctor_set_uint8(x_1246, sizeof(void*)*4, x_1244); -x_1247 = 0; -x_1248 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1248, 0, x_1245); -lean_ctor_set(x_1248, 1, x_1230); -lean_ctor_set(x_1248, 2, x_1231); -lean_ctor_set(x_1248, 3, x_1246); -lean_ctor_set_uint8(x_1248, sizeof(void*)*4, x_1247); -return x_1248; -} -else -{ -lean_object* x_1249; lean_object* x_1250; lean_object* x_1251; lean_object* x_1252; lean_object* x_1253; lean_object* x_1254; lean_object* x_1255; lean_object* x_1256; uint8_t x_1257; lean_object* x_1258; lean_object* x_1259; uint8_t x_1260; lean_object* x_1261; -x_1249 = lean_ctor_get(x_4, 1); -lean_inc(x_1249); -x_1250 = lean_ctor_get(x_4, 2); -lean_inc(x_1250); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1251 = x_4; -} else { - lean_dec_ref(x_4); - x_1251 = lean_box(0); -} -x_1252 = lean_ctor_get(x_1193, 0); -lean_inc(x_1252); -x_1253 = lean_ctor_get(x_1193, 1); -lean_inc(x_1253); -x_1254 = lean_ctor_get(x_1193, 2); -lean_inc(x_1254); -x_1255 = lean_ctor_get(x_1193, 3); -lean_inc(x_1255); -if (lean_is_exclusive(x_1193)) { - lean_ctor_release(x_1193, 0); - lean_ctor_release(x_1193, 1); - lean_ctor_release(x_1193, 2); - lean_ctor_release(x_1193, 3); - x_1256 = x_1193; -} else { - lean_dec_ref(x_1193); - x_1256 = lean_box(0); -} -x_1257 = 1; -if (lean_is_scalar(x_1256)) { - x_1258 = lean_alloc_ctor(1, 4, 1); -} else { - x_1258 = x_1256; -} -lean_ctor_set(x_1258, 0, x_1); -lean_ctor_set(x_1258, 1, x_2); -lean_ctor_set(x_1258, 2, x_3); -lean_ctor_set(x_1258, 3, x_1252); -lean_ctor_set_uint8(x_1258, sizeof(void*)*4, x_1257); -if (lean_is_scalar(x_1251)) { - x_1259 = lean_alloc_ctor(1, 4, 1); -} else { - x_1259 = x_1251; -} -lean_ctor_set(x_1259, 0, x_1255); -lean_ctor_set(x_1259, 1, x_1249); -lean_ctor_set(x_1259, 2, x_1250); -lean_ctor_set(x_1259, 3, x_1215); -lean_ctor_set_uint8(x_1259, sizeof(void*)*4, x_1257); -x_1260 = 0; -x_1261 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1261, 0, x_1258); -lean_ctor_set(x_1261, 1, x_1253); -lean_ctor_set(x_1261, 2, x_1254); -lean_ctor_set(x_1261, 3, x_1259); -lean_ctor_set_uint8(x_1261, sizeof(void*)*4, x_1260); -return x_1261; -} -} -} -else -{ -lean_object* x_1262; -x_1262 = lean_ctor_get(x_4, 3); -lean_inc(x_1262); -if (lean_obj_tag(x_1262) == 0) -{ -lean_object* x_1263; uint8_t x_1264; lean_object* x_1265; -if (lean_is_exclusive(x_1193)) { - lean_ctor_release(x_1193, 0); - lean_ctor_release(x_1193, 1); - lean_ctor_release(x_1193, 2); - lean_ctor_release(x_1193, 3); - x_1263 = x_1193; -} else { - lean_dec_ref(x_1193); - x_1263 = lean_box(0); -} -x_1264 = 1; -if (lean_is_scalar(x_1263)) { - x_1265 = lean_alloc_ctor(1, 4, 1); -} else { - x_1265 = x_1263; -} -lean_ctor_set(x_1265, 0, x_1); -lean_ctor_set(x_1265, 1, x_2); -lean_ctor_set(x_1265, 2, x_3); -lean_ctor_set(x_1265, 3, x_4); -lean_ctor_set_uint8(x_1265, sizeof(void*)*4, x_1264); -return x_1265; -} -else -{ -uint8_t x_1266; -x_1266 = lean_ctor_get_uint8(x_1262, sizeof(void*)*4); -if (x_1266 == 0) -{ -lean_object* x_1267; lean_object* x_1268; lean_object* x_1269; lean_object* x_1270; lean_object* x_1271; lean_object* x_1272; lean_object* x_1273; lean_object* x_1274; uint8_t x_1275; lean_object* x_1276; lean_object* x_1277; lean_object* x_1278; uint8_t x_1279; lean_object* x_1280; -x_1267 = lean_ctor_get(x_4, 1); -lean_inc(x_1267); -x_1268 = lean_ctor_get(x_4, 2); -lean_inc(x_1268); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1269 = x_4; -} else { - lean_dec_ref(x_4); - x_1269 = lean_box(0); -} -x_1270 = lean_ctor_get(x_1262, 0); -lean_inc(x_1270); -x_1271 = lean_ctor_get(x_1262, 1); -lean_inc(x_1271); -x_1272 = lean_ctor_get(x_1262, 2); -lean_inc(x_1272); -x_1273 = lean_ctor_get(x_1262, 3); -lean_inc(x_1273); -if (lean_is_exclusive(x_1262)) { - lean_ctor_release(x_1262, 0); - lean_ctor_release(x_1262, 1); - lean_ctor_release(x_1262, 2); - lean_ctor_release(x_1262, 3); - x_1274 = x_1262; -} else { - lean_dec_ref(x_1262); - x_1274 = lean_box(0); -} -x_1275 = 1; -lean_inc(x_1193); -if (lean_is_scalar(x_1274)) { - x_1276 = lean_alloc_ctor(1, 4, 1); -} else { - x_1276 = x_1274; -} -lean_ctor_set(x_1276, 0, x_1); -lean_ctor_set(x_1276, 1, x_2); -lean_ctor_set(x_1276, 2, x_3); -lean_ctor_set(x_1276, 3, x_1193); -if (lean_is_exclusive(x_1193)) { - lean_ctor_release(x_1193, 0); - lean_ctor_release(x_1193, 1); - lean_ctor_release(x_1193, 2); - lean_ctor_release(x_1193, 3); - x_1277 = x_1193; -} else { - lean_dec_ref(x_1193); - x_1277 = lean_box(0); -} -lean_ctor_set_uint8(x_1276, sizeof(void*)*4, x_1275); -if (lean_is_scalar(x_1277)) { - x_1278 = lean_alloc_ctor(1, 4, 1); -} else { - x_1278 = x_1277; -} -lean_ctor_set(x_1278, 0, x_1270); -lean_ctor_set(x_1278, 1, x_1271); -lean_ctor_set(x_1278, 2, x_1272); -lean_ctor_set(x_1278, 3, x_1273); -lean_ctor_set_uint8(x_1278, sizeof(void*)*4, x_1275); -x_1279 = 0; -if (lean_is_scalar(x_1269)) { - x_1280 = lean_alloc_ctor(1, 4, 1); -} else { - x_1280 = x_1269; -} -lean_ctor_set(x_1280, 0, x_1276); -lean_ctor_set(x_1280, 1, x_1267); -lean_ctor_set(x_1280, 2, x_1268); -lean_ctor_set(x_1280, 3, x_1278); -lean_ctor_set_uint8(x_1280, sizeof(void*)*4, x_1279); -return x_1280; -} -else -{ -lean_object* x_1281; uint8_t x_1282; lean_object* x_1283; -lean_dec(x_1193); -if (lean_is_exclusive(x_1262)) { - lean_ctor_release(x_1262, 0); - lean_ctor_release(x_1262, 1); - lean_ctor_release(x_1262, 2); - lean_ctor_release(x_1262, 3); - x_1281 = x_1262; -} else { - lean_dec_ref(x_1262); - x_1281 = lean_box(0); -} -x_1282 = 1; -if (lean_is_scalar(x_1281)) { - x_1283 = lean_alloc_ctor(1, 4, 1); -} else { - x_1283 = x_1281; -} -lean_ctor_set(x_1283, 0, x_1); -lean_ctor_set(x_1283, 1, x_2); -lean_ctor_set(x_1283, 2, x_3); -lean_ctor_set(x_1283, 3, x_4); -lean_ctor_set_uint8(x_1283, sizeof(void*)*4, x_1282); -return x_1283; -} -} -} -} -} -else -{ -uint8_t x_1284; lean_object* x_1285; -x_1284 = 1; -x_1285 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1285, 0, x_1); -lean_ctor_set(x_1285, 1, x_2); -lean_ctor_set(x_1285, 2, x_3); -lean_ctor_set(x_1285, 3, x_4); -lean_ctor_set_uint8(x_1285, sizeof(void*)*4, x_1284); -return x_1285; -} -} -} -} -else -{ -uint8_t x_1286; -x_1286 = lean_ctor_get_uint8(x_965, sizeof(void*)*4); -if (x_1286 == 0) -{ -uint8_t x_1287; -x_1287 = !lean_is_exclusive(x_1); -if (x_1287 == 0) -{ -lean_object* x_1288; lean_object* x_1289; lean_object* x_1290; lean_object* x_1291; uint8_t x_1292; -x_1288 = lean_ctor_get(x_1, 1); -x_1289 = lean_ctor_get(x_1, 2); -x_1290 = lean_ctor_get(x_1, 3); -lean_dec(x_1290); -x_1291 = lean_ctor_get(x_1, 0); -lean_dec(x_1291); -x_1292 = !lean_is_exclusive(x_965); -if (x_1292 == 0) -{ -lean_object* x_1293; lean_object* x_1294; lean_object* x_1295; lean_object* x_1296; uint8_t x_1297; uint8_t x_1298; -x_1293 = lean_ctor_get(x_965, 0); -x_1294 = lean_ctor_get(x_965, 1); -x_1295 = lean_ctor_get(x_965, 2); -x_1296 = lean_ctor_get(x_965, 3); -x_1297 = 1; -lean_inc(x_241); -lean_ctor_set(x_965, 3, x_1293); -lean_ctor_set(x_965, 2, x_1289); -lean_ctor_set(x_965, 1, x_1288); -lean_ctor_set(x_965, 0, x_241); -x_1298 = !lean_is_exclusive(x_241); -if (x_1298 == 0) -{ -lean_object* x_1299; lean_object* x_1300; lean_object* x_1301; lean_object* x_1302; uint8_t x_1303; -x_1299 = lean_ctor_get(x_241, 3); -lean_dec(x_1299); -x_1300 = lean_ctor_get(x_241, 2); -lean_dec(x_1300); -x_1301 = lean_ctor_get(x_241, 1); -lean_dec(x_1301); -x_1302 = lean_ctor_get(x_241, 0); -lean_dec(x_1302); -lean_ctor_set_uint8(x_965, sizeof(void*)*4, x_1297); -lean_ctor_set(x_241, 3, x_4); -lean_ctor_set(x_241, 2, x_3); -lean_ctor_set(x_241, 1, x_2); -lean_ctor_set(x_241, 0, x_1296); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1297); -x_1303 = 0; -lean_ctor_set(x_1, 3, x_241); -lean_ctor_set(x_1, 2, x_1295); -lean_ctor_set(x_1, 1, x_1294); -lean_ctor_set(x_1, 0, x_965); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_1303); -return x_1; -} -else -{ -lean_object* x_1304; uint8_t x_1305; -lean_dec(x_241); -lean_ctor_set_uint8(x_965, sizeof(void*)*4, x_1297); -x_1304 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1304, 0, x_1296); -lean_ctor_set(x_1304, 1, x_2); -lean_ctor_set(x_1304, 2, x_3); -lean_ctor_set(x_1304, 3, x_4); -lean_ctor_set_uint8(x_1304, sizeof(void*)*4, x_1297); -x_1305 = 0; -lean_ctor_set(x_1, 3, x_1304); -lean_ctor_set(x_1, 2, x_1295); -lean_ctor_set(x_1, 1, x_1294); -lean_ctor_set(x_1, 0, x_965); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_1305); -return x_1; -} -} -else -{ -lean_object* x_1306; lean_object* x_1307; lean_object* x_1308; lean_object* x_1309; uint8_t x_1310; lean_object* x_1311; lean_object* x_1312; lean_object* x_1313; uint8_t x_1314; -x_1306 = lean_ctor_get(x_965, 0); -x_1307 = lean_ctor_get(x_965, 1); -x_1308 = lean_ctor_get(x_965, 2); -x_1309 = lean_ctor_get(x_965, 3); -lean_inc(x_1309); -lean_inc(x_1308); -lean_inc(x_1307); -lean_inc(x_1306); -lean_dec(x_965); -x_1310 = 1; -lean_inc(x_241); -x_1311 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1311, 0, x_241); -lean_ctor_set(x_1311, 1, x_1288); -lean_ctor_set(x_1311, 2, x_1289); -lean_ctor_set(x_1311, 3, x_1306); -if (lean_is_exclusive(x_241)) { - lean_ctor_release(x_241, 0); - lean_ctor_release(x_241, 1); - lean_ctor_release(x_241, 2); - lean_ctor_release(x_241, 3); - x_1312 = x_241; -} else { - lean_dec_ref(x_241); - x_1312 = lean_box(0); -} -lean_ctor_set_uint8(x_1311, sizeof(void*)*4, x_1310); -if (lean_is_scalar(x_1312)) { - x_1313 = lean_alloc_ctor(1, 4, 1); -} else { - x_1313 = x_1312; -} -lean_ctor_set(x_1313, 0, x_1309); -lean_ctor_set(x_1313, 1, x_2); -lean_ctor_set(x_1313, 2, x_3); -lean_ctor_set(x_1313, 3, x_4); -lean_ctor_set_uint8(x_1313, sizeof(void*)*4, x_1310); -x_1314 = 0; -lean_ctor_set(x_1, 3, x_1313); -lean_ctor_set(x_1, 2, x_1308); -lean_ctor_set(x_1, 1, x_1307); -lean_ctor_set(x_1, 0, x_1311); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_1314); -return x_1; -} -} -else -{ -lean_object* x_1315; lean_object* x_1316; lean_object* x_1317; lean_object* x_1318; lean_object* x_1319; lean_object* x_1320; lean_object* x_1321; uint8_t x_1322; lean_object* x_1323; lean_object* x_1324; lean_object* x_1325; uint8_t x_1326; lean_object* x_1327; -x_1315 = lean_ctor_get(x_1, 1); -x_1316 = lean_ctor_get(x_1, 2); -lean_inc(x_1316); -lean_inc(x_1315); -lean_dec(x_1); -x_1317 = lean_ctor_get(x_965, 0); -lean_inc(x_1317); -x_1318 = lean_ctor_get(x_965, 1); -lean_inc(x_1318); -x_1319 = lean_ctor_get(x_965, 2); -lean_inc(x_1319); -x_1320 = lean_ctor_get(x_965, 3); -lean_inc(x_1320); -if (lean_is_exclusive(x_965)) { - lean_ctor_release(x_965, 0); - lean_ctor_release(x_965, 1); - lean_ctor_release(x_965, 2); - lean_ctor_release(x_965, 3); - x_1321 = x_965; -} else { - lean_dec_ref(x_965); - x_1321 = lean_box(0); -} -x_1322 = 1; -lean_inc(x_241); -if (lean_is_scalar(x_1321)) { - x_1323 = lean_alloc_ctor(1, 4, 1); -} else { - x_1323 = x_1321; -} -lean_ctor_set(x_1323, 0, x_241); -lean_ctor_set(x_1323, 1, x_1315); -lean_ctor_set(x_1323, 2, x_1316); -lean_ctor_set(x_1323, 3, x_1317); -if (lean_is_exclusive(x_241)) { - lean_ctor_release(x_241, 0); - lean_ctor_release(x_241, 1); - lean_ctor_release(x_241, 2); - lean_ctor_release(x_241, 3); - x_1324 = x_241; -} else { - lean_dec_ref(x_241); - x_1324 = lean_box(0); -} -lean_ctor_set_uint8(x_1323, sizeof(void*)*4, x_1322); -if (lean_is_scalar(x_1324)) { - x_1325 = lean_alloc_ctor(1, 4, 1); -} else { - x_1325 = x_1324; -} -lean_ctor_set(x_1325, 0, x_1320); -lean_ctor_set(x_1325, 1, x_2); -lean_ctor_set(x_1325, 2, x_3); -lean_ctor_set(x_1325, 3, x_4); -lean_ctor_set_uint8(x_1325, sizeof(void*)*4, x_1322); -x_1326 = 0; -x_1327 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1327, 0, x_1323); -lean_ctor_set(x_1327, 1, x_1318); -lean_ctor_set(x_1327, 2, x_1319); -lean_ctor_set(x_1327, 3, x_1325); -lean_ctor_set_uint8(x_1327, sizeof(void*)*4, x_1326); -return x_1327; -} -} -else -{ -uint8_t x_1328; -x_1328 = !lean_is_exclusive(x_1); -if (x_1328 == 0) -{ -lean_object* x_1329; lean_object* x_1330; uint8_t x_1331; -x_1329 = lean_ctor_get(x_1, 3); -lean_dec(x_1329); -x_1330 = lean_ctor_get(x_1, 0); -lean_dec(x_1330); -x_1331 = !lean_is_exclusive(x_241); -if (x_1331 == 0) -{ -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_1286); -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_1332; lean_object* x_1333; -x_1332 = 1; -x_1333 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1333, 0, x_1); -lean_ctor_set(x_1333, 1, x_2); -lean_ctor_set(x_1333, 2, x_3); -lean_ctor_set(x_1333, 3, x_4); -lean_ctor_set_uint8(x_1333, sizeof(void*)*4, x_1332); -return x_1333; -} -else -{ -uint8_t x_1334; -x_1334 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_1334 == 0) -{ -lean_object* x_1335; -x_1335 = lean_ctor_get(x_4, 0); -lean_inc(x_1335); -if (lean_obj_tag(x_1335) == 0) -{ -lean_object* x_1336; -x_1336 = lean_ctor_get(x_4, 3); -lean_inc(x_1336); -if (lean_obj_tag(x_1336) == 0) -{ -uint8_t x_1337; lean_object* x_1338; -x_1337 = 1; -x_1338 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1338, 0, x_1); -lean_ctor_set(x_1338, 1, x_2); -lean_ctor_set(x_1338, 2, x_3); -lean_ctor_set(x_1338, 3, x_4); -lean_ctor_set_uint8(x_1338, sizeof(void*)*4, x_1337); -return x_1338; -} -else -{ -uint8_t x_1339; -x_1339 = lean_ctor_get_uint8(x_1336, sizeof(void*)*4); -if (x_1339 == 0) -{ -uint8_t x_1340; -x_1340 = !lean_is_exclusive(x_4); -if (x_1340 == 0) -{ -lean_object* x_1341; lean_object* x_1342; lean_object* x_1343; lean_object* x_1344; uint8_t x_1345; -x_1341 = lean_ctor_get(x_4, 1); -x_1342 = lean_ctor_get(x_4, 2); -x_1343 = lean_ctor_get(x_4, 3); -lean_dec(x_1343); -x_1344 = lean_ctor_get(x_4, 0); -lean_dec(x_1344); -x_1345 = !lean_is_exclusive(x_1336); -if (x_1345 == 0) -{ -lean_object* x_1346; lean_object* x_1347; lean_object* x_1348; lean_object* x_1349; uint8_t x_1350; uint8_t x_1351; lean_object* x_1352; -x_1346 = lean_ctor_get(x_1336, 0); -x_1347 = lean_ctor_get(x_1336, 1); -x_1348 = lean_ctor_get(x_1336, 2); -x_1349 = lean_ctor_get(x_1336, 3); -x_1350 = 1; -lean_ctor_set(x_1336, 3, x_1335); -lean_ctor_set(x_1336, 2, x_3); -lean_ctor_set(x_1336, 1, x_2); -lean_ctor_set(x_1336, 0, x_1); -lean_ctor_set_uint8(x_1336, sizeof(void*)*4, x_1350); -lean_ctor_set(x_4, 3, x_1349); -lean_ctor_set(x_4, 2, x_1348); -lean_ctor_set(x_4, 1, x_1347); -lean_ctor_set(x_4, 0, x_1346); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1350); -x_1351 = 0; -x_1352 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1352, 0, x_1336); -lean_ctor_set(x_1352, 1, x_1341); -lean_ctor_set(x_1352, 2, x_1342); -lean_ctor_set(x_1352, 3, x_4); -lean_ctor_set_uint8(x_1352, sizeof(void*)*4, x_1351); -return x_1352; -} -else -{ -lean_object* x_1353; lean_object* x_1354; lean_object* x_1355; lean_object* x_1356; uint8_t x_1357; lean_object* x_1358; uint8_t x_1359; lean_object* x_1360; -x_1353 = lean_ctor_get(x_1336, 0); -x_1354 = lean_ctor_get(x_1336, 1); -x_1355 = lean_ctor_get(x_1336, 2); -x_1356 = lean_ctor_get(x_1336, 3); -lean_inc(x_1356); -lean_inc(x_1355); -lean_inc(x_1354); -lean_inc(x_1353); -lean_dec(x_1336); -x_1357 = 1; -x_1358 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1358, 0, x_1); -lean_ctor_set(x_1358, 1, x_2); -lean_ctor_set(x_1358, 2, x_3); -lean_ctor_set(x_1358, 3, x_1335); -lean_ctor_set_uint8(x_1358, sizeof(void*)*4, x_1357); -lean_ctor_set(x_4, 3, x_1356); -lean_ctor_set(x_4, 2, x_1355); -lean_ctor_set(x_4, 1, x_1354); -lean_ctor_set(x_4, 0, x_1353); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1357); -x_1359 = 0; -x_1360 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1360, 0, x_1358); -lean_ctor_set(x_1360, 1, x_1341); -lean_ctor_set(x_1360, 2, x_1342); -lean_ctor_set(x_1360, 3, x_4); -lean_ctor_set_uint8(x_1360, sizeof(void*)*4, x_1359); -return x_1360; -} -} -else -{ -lean_object* x_1361; lean_object* x_1362; lean_object* x_1363; lean_object* x_1364; lean_object* x_1365; lean_object* x_1366; lean_object* x_1367; uint8_t x_1368; lean_object* x_1369; lean_object* x_1370; uint8_t x_1371; lean_object* x_1372; -x_1361 = lean_ctor_get(x_4, 1); -x_1362 = lean_ctor_get(x_4, 2); -lean_inc(x_1362); -lean_inc(x_1361); -lean_dec(x_4); -x_1363 = lean_ctor_get(x_1336, 0); -lean_inc(x_1363); -x_1364 = lean_ctor_get(x_1336, 1); -lean_inc(x_1364); -x_1365 = lean_ctor_get(x_1336, 2); -lean_inc(x_1365); -x_1366 = lean_ctor_get(x_1336, 3); -lean_inc(x_1366); -if (lean_is_exclusive(x_1336)) { - lean_ctor_release(x_1336, 0); - lean_ctor_release(x_1336, 1); - lean_ctor_release(x_1336, 2); - lean_ctor_release(x_1336, 3); - x_1367 = x_1336; -} else { - lean_dec_ref(x_1336); - x_1367 = lean_box(0); -} -x_1368 = 1; -if (lean_is_scalar(x_1367)) { - x_1369 = lean_alloc_ctor(1, 4, 1); -} else { - x_1369 = x_1367; -} -lean_ctor_set(x_1369, 0, x_1); -lean_ctor_set(x_1369, 1, x_2); -lean_ctor_set(x_1369, 2, x_3); -lean_ctor_set(x_1369, 3, x_1335); -lean_ctor_set_uint8(x_1369, sizeof(void*)*4, x_1368); -x_1370 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1370, 0, x_1363); -lean_ctor_set(x_1370, 1, x_1364); -lean_ctor_set(x_1370, 2, x_1365); -lean_ctor_set(x_1370, 3, x_1366); -lean_ctor_set_uint8(x_1370, sizeof(void*)*4, x_1368); -x_1371 = 0; -x_1372 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1372, 0, x_1369); -lean_ctor_set(x_1372, 1, x_1361); -lean_ctor_set(x_1372, 2, x_1362); -lean_ctor_set(x_1372, 3, x_1370); -lean_ctor_set_uint8(x_1372, sizeof(void*)*4, x_1371); -return x_1372; -} -} -else -{ -uint8_t x_1373; -x_1373 = !lean_is_exclusive(x_1336); -if (x_1373 == 0) -{ -lean_object* x_1374; lean_object* x_1375; lean_object* x_1376; lean_object* x_1377; uint8_t x_1378; -x_1374 = lean_ctor_get(x_1336, 3); -lean_dec(x_1374); -x_1375 = lean_ctor_get(x_1336, 2); -lean_dec(x_1375); -x_1376 = lean_ctor_get(x_1336, 1); -lean_dec(x_1376); -x_1377 = lean_ctor_get(x_1336, 0); -lean_dec(x_1377); -x_1378 = 1; -lean_ctor_set(x_1336, 3, x_4); -lean_ctor_set(x_1336, 2, x_3); -lean_ctor_set(x_1336, 1, x_2); -lean_ctor_set(x_1336, 0, x_1); -lean_ctor_set_uint8(x_1336, sizeof(void*)*4, x_1378); -return x_1336; -} -else -{ -uint8_t x_1379; lean_object* x_1380; -lean_dec(x_1336); -x_1379 = 1; -x_1380 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1380, 0, x_1); -lean_ctor_set(x_1380, 1, x_2); -lean_ctor_set(x_1380, 2, x_3); -lean_ctor_set(x_1380, 3, x_4); -lean_ctor_set_uint8(x_1380, sizeof(void*)*4, x_1379); -return x_1380; -} -} -} -} -else -{ -uint8_t x_1381; -x_1381 = lean_ctor_get_uint8(x_1335, sizeof(void*)*4); -if (x_1381 == 0) -{ -lean_object* x_1382; -x_1382 = lean_ctor_get(x_4, 3); -lean_inc(x_1382); -if (lean_obj_tag(x_1382) == 0) -{ -uint8_t x_1383; -x_1383 = !lean_is_exclusive(x_4); -if (x_1383 == 0) -{ -lean_object* x_1384; lean_object* x_1385; uint8_t x_1386; -x_1384 = lean_ctor_get(x_4, 3); -lean_dec(x_1384); -x_1385 = lean_ctor_get(x_4, 0); -lean_dec(x_1385); -x_1386 = !lean_is_exclusive(x_1335); -if (x_1386 == 0) -{ -lean_object* x_1387; lean_object* x_1388; lean_object* x_1389; lean_object* x_1390; uint8_t x_1391; uint8_t x_1392; lean_object* x_1393; -x_1387 = lean_ctor_get(x_1335, 0); -x_1388 = lean_ctor_get(x_1335, 1); -x_1389 = lean_ctor_get(x_1335, 2); -x_1390 = lean_ctor_get(x_1335, 3); -x_1391 = 1; -lean_ctor_set(x_1335, 3, x_1387); -lean_ctor_set(x_1335, 2, x_3); -lean_ctor_set(x_1335, 1, x_2); -lean_ctor_set(x_1335, 0, x_1); -lean_ctor_set_uint8(x_1335, sizeof(void*)*4, x_1391); -lean_ctor_set(x_4, 0, x_1390); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1391); -x_1392 = 0; -x_1393 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1393, 0, x_1335); -lean_ctor_set(x_1393, 1, x_1388); -lean_ctor_set(x_1393, 2, x_1389); -lean_ctor_set(x_1393, 3, x_4); -lean_ctor_set_uint8(x_1393, sizeof(void*)*4, x_1392); -return x_1393; -} -else -{ -lean_object* x_1394; lean_object* x_1395; lean_object* x_1396; lean_object* x_1397; uint8_t x_1398; lean_object* x_1399; uint8_t x_1400; lean_object* x_1401; -x_1394 = lean_ctor_get(x_1335, 0); -x_1395 = lean_ctor_get(x_1335, 1); -x_1396 = lean_ctor_get(x_1335, 2); -x_1397 = lean_ctor_get(x_1335, 3); -lean_inc(x_1397); -lean_inc(x_1396); -lean_inc(x_1395); -lean_inc(x_1394); -lean_dec(x_1335); -x_1398 = 1; -x_1399 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1399, 0, x_1); -lean_ctor_set(x_1399, 1, x_2); -lean_ctor_set(x_1399, 2, x_3); -lean_ctor_set(x_1399, 3, x_1394); -lean_ctor_set_uint8(x_1399, sizeof(void*)*4, x_1398); -lean_ctor_set(x_4, 0, x_1397); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1398); -x_1400 = 0; -x_1401 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1401, 0, x_1399); -lean_ctor_set(x_1401, 1, x_1395); -lean_ctor_set(x_1401, 2, x_1396); -lean_ctor_set(x_1401, 3, x_4); -lean_ctor_set_uint8(x_1401, sizeof(void*)*4, x_1400); -return x_1401; -} -} -else -{ -lean_object* x_1402; lean_object* x_1403; lean_object* x_1404; lean_object* x_1405; lean_object* x_1406; lean_object* x_1407; lean_object* x_1408; uint8_t x_1409; lean_object* x_1410; lean_object* x_1411; uint8_t x_1412; lean_object* x_1413; -x_1402 = lean_ctor_get(x_4, 1); -x_1403 = lean_ctor_get(x_4, 2); -lean_inc(x_1403); -lean_inc(x_1402); -lean_dec(x_4); -x_1404 = lean_ctor_get(x_1335, 0); -lean_inc(x_1404); -x_1405 = lean_ctor_get(x_1335, 1); -lean_inc(x_1405); -x_1406 = lean_ctor_get(x_1335, 2); -lean_inc(x_1406); -x_1407 = lean_ctor_get(x_1335, 3); -lean_inc(x_1407); -if (lean_is_exclusive(x_1335)) { - lean_ctor_release(x_1335, 0); - lean_ctor_release(x_1335, 1); - lean_ctor_release(x_1335, 2); - lean_ctor_release(x_1335, 3); - x_1408 = x_1335; -} else { - lean_dec_ref(x_1335); - x_1408 = lean_box(0); -} -x_1409 = 1; -if (lean_is_scalar(x_1408)) { - x_1410 = lean_alloc_ctor(1, 4, 1); -} else { - x_1410 = x_1408; -} -lean_ctor_set(x_1410, 0, x_1); -lean_ctor_set(x_1410, 1, x_2); -lean_ctor_set(x_1410, 2, x_3); -lean_ctor_set(x_1410, 3, x_1404); -lean_ctor_set_uint8(x_1410, sizeof(void*)*4, x_1409); -x_1411 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1411, 0, x_1407); -lean_ctor_set(x_1411, 1, x_1402); -lean_ctor_set(x_1411, 2, x_1403); -lean_ctor_set(x_1411, 3, x_1382); -lean_ctor_set_uint8(x_1411, sizeof(void*)*4, x_1409); -x_1412 = 0; -x_1413 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1413, 0, x_1410); -lean_ctor_set(x_1413, 1, x_1405); -lean_ctor_set(x_1413, 2, x_1406); -lean_ctor_set(x_1413, 3, x_1411); -lean_ctor_set_uint8(x_1413, sizeof(void*)*4, x_1412); -return x_1413; -} -} -else -{ -uint8_t x_1414; -x_1414 = lean_ctor_get_uint8(x_1382, sizeof(void*)*4); -if (x_1414 == 0) -{ -uint8_t x_1415; -x_1415 = !lean_is_exclusive(x_4); -if (x_1415 == 0) -{ -lean_object* x_1416; lean_object* x_1417; lean_object* x_1418; lean_object* x_1419; uint8_t x_1420; -x_1416 = lean_ctor_get(x_4, 1); -x_1417 = lean_ctor_get(x_4, 2); -x_1418 = lean_ctor_get(x_4, 3); -lean_dec(x_1418); -x_1419 = lean_ctor_get(x_4, 0); -lean_dec(x_1419); -x_1420 = !lean_is_exclusive(x_1335); -if (x_1420 == 0) -{ -uint8_t x_1421; -x_1421 = !lean_is_exclusive(x_1382); -if (x_1421 == 0) -{ -lean_object* x_1422; lean_object* x_1423; lean_object* x_1424; lean_object* x_1425; lean_object* x_1426; lean_object* x_1427; lean_object* x_1428; lean_object* x_1429; uint8_t x_1430; uint8_t x_1431; lean_object* x_1432; -x_1422 = lean_ctor_get(x_1335, 0); -x_1423 = lean_ctor_get(x_1335, 1); -x_1424 = lean_ctor_get(x_1335, 2); -x_1425 = lean_ctor_get(x_1335, 3); -x_1426 = lean_ctor_get(x_1382, 0); -x_1427 = lean_ctor_get(x_1382, 1); -x_1428 = lean_ctor_get(x_1382, 2); -x_1429 = lean_ctor_get(x_1382, 3); -lean_ctor_set(x_1382, 3, x_1425); -lean_ctor_set(x_1382, 2, x_1424); -lean_ctor_set(x_1382, 1, x_1423); -lean_ctor_set(x_1382, 0, x_1422); -x_1430 = 1; -lean_ctor_set(x_1335, 3, x_1382); -lean_ctor_set(x_1335, 2, x_3); -lean_ctor_set(x_1335, 1, x_2); -lean_ctor_set(x_1335, 0, x_1); -lean_ctor_set_uint8(x_1335, sizeof(void*)*4, x_1430); -lean_ctor_set(x_4, 3, x_1429); -lean_ctor_set(x_4, 2, x_1428); -lean_ctor_set(x_4, 1, x_1427); -lean_ctor_set(x_4, 0, x_1426); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1430); -x_1431 = 0; -x_1432 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1432, 0, x_1335); -lean_ctor_set(x_1432, 1, x_1416); -lean_ctor_set(x_1432, 2, x_1417); -lean_ctor_set(x_1432, 3, x_4); -lean_ctor_set_uint8(x_1432, sizeof(void*)*4, x_1431); -return x_1432; -} -else -{ -lean_object* x_1433; lean_object* x_1434; lean_object* x_1435; lean_object* x_1436; lean_object* x_1437; lean_object* x_1438; lean_object* x_1439; lean_object* x_1440; lean_object* x_1441; uint8_t x_1442; uint8_t x_1443; lean_object* x_1444; -x_1433 = lean_ctor_get(x_1335, 0); -x_1434 = lean_ctor_get(x_1335, 1); -x_1435 = lean_ctor_get(x_1335, 2); -x_1436 = lean_ctor_get(x_1335, 3); -x_1437 = lean_ctor_get(x_1382, 0); -x_1438 = lean_ctor_get(x_1382, 1); -x_1439 = lean_ctor_get(x_1382, 2); -x_1440 = lean_ctor_get(x_1382, 3); -lean_inc(x_1440); -lean_inc(x_1439); -lean_inc(x_1438); -lean_inc(x_1437); -lean_dec(x_1382); -x_1441 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1441, 0, x_1433); -lean_ctor_set(x_1441, 1, x_1434); -lean_ctor_set(x_1441, 2, x_1435); -lean_ctor_set(x_1441, 3, x_1436); -lean_ctor_set_uint8(x_1441, sizeof(void*)*4, x_1414); -x_1442 = 1; -lean_ctor_set(x_1335, 3, x_1441); -lean_ctor_set(x_1335, 2, x_3); -lean_ctor_set(x_1335, 1, x_2); -lean_ctor_set(x_1335, 0, x_1); -lean_ctor_set_uint8(x_1335, sizeof(void*)*4, x_1442); -lean_ctor_set(x_4, 3, x_1440); -lean_ctor_set(x_4, 2, x_1439); -lean_ctor_set(x_4, 1, x_1438); -lean_ctor_set(x_4, 0, x_1437); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1442); -x_1443 = 0; -x_1444 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1444, 0, x_1335); -lean_ctor_set(x_1444, 1, x_1416); -lean_ctor_set(x_1444, 2, x_1417); -lean_ctor_set(x_1444, 3, x_4); -lean_ctor_set_uint8(x_1444, sizeof(void*)*4, x_1443); -return x_1444; -} -} -else -{ -lean_object* x_1445; lean_object* x_1446; lean_object* x_1447; lean_object* x_1448; lean_object* x_1449; lean_object* x_1450; lean_object* x_1451; lean_object* x_1452; lean_object* x_1453; lean_object* x_1454; uint8_t x_1455; lean_object* x_1456; uint8_t x_1457; lean_object* x_1458; -x_1445 = lean_ctor_get(x_1335, 0); -x_1446 = lean_ctor_get(x_1335, 1); -x_1447 = lean_ctor_get(x_1335, 2); -x_1448 = lean_ctor_get(x_1335, 3); -lean_inc(x_1448); -lean_inc(x_1447); -lean_inc(x_1446); -lean_inc(x_1445); -lean_dec(x_1335); -x_1449 = lean_ctor_get(x_1382, 0); -lean_inc(x_1449); -x_1450 = lean_ctor_get(x_1382, 1); -lean_inc(x_1450); -x_1451 = lean_ctor_get(x_1382, 2); -lean_inc(x_1451); -x_1452 = lean_ctor_get(x_1382, 3); -lean_inc(x_1452); -if (lean_is_exclusive(x_1382)) { - lean_ctor_release(x_1382, 0); - lean_ctor_release(x_1382, 1); - lean_ctor_release(x_1382, 2); - lean_ctor_release(x_1382, 3); - x_1453 = x_1382; -} else { - lean_dec_ref(x_1382); - x_1453 = lean_box(0); -} -if (lean_is_scalar(x_1453)) { - x_1454 = lean_alloc_ctor(1, 4, 1); -} else { - x_1454 = x_1453; -} -lean_ctor_set(x_1454, 0, x_1445); -lean_ctor_set(x_1454, 1, x_1446); -lean_ctor_set(x_1454, 2, x_1447); -lean_ctor_set(x_1454, 3, x_1448); -lean_ctor_set_uint8(x_1454, sizeof(void*)*4, x_1414); -x_1455 = 1; -x_1456 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1456, 0, x_1); -lean_ctor_set(x_1456, 1, x_2); -lean_ctor_set(x_1456, 2, x_3); -lean_ctor_set(x_1456, 3, x_1454); -lean_ctor_set_uint8(x_1456, sizeof(void*)*4, x_1455); -lean_ctor_set(x_4, 3, x_1452); -lean_ctor_set(x_4, 2, x_1451); -lean_ctor_set(x_4, 1, x_1450); -lean_ctor_set(x_4, 0, x_1449); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1455); -x_1457 = 0; -x_1458 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1458, 0, x_1456); -lean_ctor_set(x_1458, 1, x_1416); -lean_ctor_set(x_1458, 2, x_1417); -lean_ctor_set(x_1458, 3, x_4); -lean_ctor_set_uint8(x_1458, sizeof(void*)*4, x_1457); -return x_1458; -} -} -else -{ -lean_object* x_1459; lean_object* x_1460; lean_object* x_1461; lean_object* x_1462; lean_object* x_1463; lean_object* x_1464; lean_object* x_1465; lean_object* x_1466; lean_object* x_1467; lean_object* x_1468; lean_object* x_1469; lean_object* x_1470; lean_object* x_1471; uint8_t x_1472; lean_object* x_1473; lean_object* x_1474; uint8_t x_1475; lean_object* x_1476; -x_1459 = lean_ctor_get(x_4, 1); -x_1460 = lean_ctor_get(x_4, 2); -lean_inc(x_1460); -lean_inc(x_1459); -lean_dec(x_4); -x_1461 = lean_ctor_get(x_1335, 0); -lean_inc(x_1461); -x_1462 = lean_ctor_get(x_1335, 1); -lean_inc(x_1462); -x_1463 = lean_ctor_get(x_1335, 2); -lean_inc(x_1463); -x_1464 = lean_ctor_get(x_1335, 3); -lean_inc(x_1464); -if (lean_is_exclusive(x_1335)) { - lean_ctor_release(x_1335, 0); - lean_ctor_release(x_1335, 1); - lean_ctor_release(x_1335, 2); - lean_ctor_release(x_1335, 3); - x_1465 = x_1335; -} else { - lean_dec_ref(x_1335); - x_1465 = lean_box(0); -} -x_1466 = lean_ctor_get(x_1382, 0); -lean_inc(x_1466); -x_1467 = lean_ctor_get(x_1382, 1); -lean_inc(x_1467); -x_1468 = lean_ctor_get(x_1382, 2); -lean_inc(x_1468); -x_1469 = lean_ctor_get(x_1382, 3); -lean_inc(x_1469); -if (lean_is_exclusive(x_1382)) { - lean_ctor_release(x_1382, 0); - lean_ctor_release(x_1382, 1); - lean_ctor_release(x_1382, 2); - lean_ctor_release(x_1382, 3); - x_1470 = x_1382; -} else { - lean_dec_ref(x_1382); - x_1470 = lean_box(0); -} -if (lean_is_scalar(x_1470)) { - x_1471 = lean_alloc_ctor(1, 4, 1); -} else { - x_1471 = x_1470; -} -lean_ctor_set(x_1471, 0, x_1461); -lean_ctor_set(x_1471, 1, x_1462); -lean_ctor_set(x_1471, 2, x_1463); -lean_ctor_set(x_1471, 3, x_1464); -lean_ctor_set_uint8(x_1471, sizeof(void*)*4, x_1414); -x_1472 = 1; -if (lean_is_scalar(x_1465)) { - x_1473 = lean_alloc_ctor(1, 4, 1); -} else { - x_1473 = x_1465; -} -lean_ctor_set(x_1473, 0, x_1); -lean_ctor_set(x_1473, 1, x_2); -lean_ctor_set(x_1473, 2, x_3); -lean_ctor_set(x_1473, 3, x_1471); -lean_ctor_set_uint8(x_1473, sizeof(void*)*4, x_1472); -x_1474 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1474, 0, x_1466); -lean_ctor_set(x_1474, 1, x_1467); -lean_ctor_set(x_1474, 2, x_1468); -lean_ctor_set(x_1474, 3, x_1469); -lean_ctor_set_uint8(x_1474, sizeof(void*)*4, x_1472); -x_1475 = 0; -x_1476 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1476, 0, x_1473); -lean_ctor_set(x_1476, 1, x_1459); -lean_ctor_set(x_1476, 2, x_1460); -lean_ctor_set(x_1476, 3, x_1474); -lean_ctor_set_uint8(x_1476, sizeof(void*)*4, x_1475); -return x_1476; -} -} -else -{ -uint8_t x_1477; -x_1477 = !lean_is_exclusive(x_4); -if (x_1477 == 0) -{ -lean_object* x_1478; lean_object* x_1479; uint8_t x_1480; -x_1478 = lean_ctor_get(x_4, 3); -lean_dec(x_1478); -x_1479 = lean_ctor_get(x_4, 0); -lean_dec(x_1479); -x_1480 = !lean_is_exclusive(x_1335); -if (x_1480 == 0) -{ -lean_object* x_1481; lean_object* x_1482; lean_object* x_1483; lean_object* x_1484; uint8_t x_1485; uint8_t x_1486; lean_object* x_1487; -x_1481 = lean_ctor_get(x_1335, 0); -x_1482 = lean_ctor_get(x_1335, 1); -x_1483 = lean_ctor_get(x_1335, 2); -x_1484 = lean_ctor_get(x_1335, 3); -x_1485 = 1; -lean_ctor_set(x_1335, 3, x_1481); -lean_ctor_set(x_1335, 2, x_3); -lean_ctor_set(x_1335, 1, x_2); -lean_ctor_set(x_1335, 0, x_1); -lean_ctor_set_uint8(x_1335, sizeof(void*)*4, x_1485); -lean_ctor_set(x_4, 0, x_1484); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1485); -x_1486 = 0; -x_1487 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1487, 0, x_1335); -lean_ctor_set(x_1487, 1, x_1482); -lean_ctor_set(x_1487, 2, x_1483); -lean_ctor_set(x_1487, 3, x_4); -lean_ctor_set_uint8(x_1487, sizeof(void*)*4, x_1486); -return x_1487; -} -else -{ -lean_object* x_1488; lean_object* x_1489; lean_object* x_1490; lean_object* x_1491; uint8_t x_1492; lean_object* x_1493; uint8_t x_1494; lean_object* x_1495; -x_1488 = lean_ctor_get(x_1335, 0); -x_1489 = lean_ctor_get(x_1335, 1); -x_1490 = lean_ctor_get(x_1335, 2); -x_1491 = lean_ctor_get(x_1335, 3); -lean_inc(x_1491); -lean_inc(x_1490); -lean_inc(x_1489); -lean_inc(x_1488); -lean_dec(x_1335); -x_1492 = 1; -x_1493 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1493, 0, x_1); -lean_ctor_set(x_1493, 1, x_2); -lean_ctor_set(x_1493, 2, x_3); -lean_ctor_set(x_1493, 3, x_1488); -lean_ctor_set_uint8(x_1493, sizeof(void*)*4, x_1492); -lean_ctor_set(x_4, 0, x_1491); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1492); -x_1494 = 0; -x_1495 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1495, 0, x_1493); -lean_ctor_set(x_1495, 1, x_1489); -lean_ctor_set(x_1495, 2, x_1490); -lean_ctor_set(x_1495, 3, x_4); -lean_ctor_set_uint8(x_1495, sizeof(void*)*4, x_1494); -return x_1495; -} -} -else -{ -lean_object* x_1496; lean_object* x_1497; lean_object* x_1498; lean_object* x_1499; lean_object* x_1500; lean_object* x_1501; lean_object* x_1502; uint8_t x_1503; lean_object* x_1504; lean_object* x_1505; uint8_t x_1506; lean_object* x_1507; -x_1496 = lean_ctor_get(x_4, 1); -x_1497 = lean_ctor_get(x_4, 2); -lean_inc(x_1497); -lean_inc(x_1496); -lean_dec(x_4); -x_1498 = lean_ctor_get(x_1335, 0); -lean_inc(x_1498); -x_1499 = lean_ctor_get(x_1335, 1); -lean_inc(x_1499); -x_1500 = lean_ctor_get(x_1335, 2); -lean_inc(x_1500); -x_1501 = lean_ctor_get(x_1335, 3); -lean_inc(x_1501); -if (lean_is_exclusive(x_1335)) { - lean_ctor_release(x_1335, 0); - lean_ctor_release(x_1335, 1); - lean_ctor_release(x_1335, 2); - lean_ctor_release(x_1335, 3); - x_1502 = x_1335; -} else { - lean_dec_ref(x_1335); - x_1502 = lean_box(0); -} -x_1503 = 1; -if (lean_is_scalar(x_1502)) { - x_1504 = lean_alloc_ctor(1, 4, 1); -} else { - x_1504 = x_1502; -} -lean_ctor_set(x_1504, 0, x_1); -lean_ctor_set(x_1504, 1, x_2); -lean_ctor_set(x_1504, 2, x_3); -lean_ctor_set(x_1504, 3, x_1498); -lean_ctor_set_uint8(x_1504, sizeof(void*)*4, x_1503); -x_1505 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1505, 0, x_1501); -lean_ctor_set(x_1505, 1, x_1496); -lean_ctor_set(x_1505, 2, x_1497); -lean_ctor_set(x_1505, 3, x_1382); -lean_ctor_set_uint8(x_1505, sizeof(void*)*4, x_1503); -x_1506 = 0; -x_1507 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1507, 0, x_1504); -lean_ctor_set(x_1507, 1, x_1499); -lean_ctor_set(x_1507, 2, x_1500); -lean_ctor_set(x_1507, 3, x_1505); -lean_ctor_set_uint8(x_1507, sizeof(void*)*4, x_1506); -return x_1507; -} -} -} -} -else -{ -lean_object* x_1508; -x_1508 = lean_ctor_get(x_4, 3); -lean_inc(x_1508); -if (lean_obj_tag(x_1508) == 0) -{ -uint8_t x_1509; -x_1509 = !lean_is_exclusive(x_1335); -if (x_1509 == 0) -{ -lean_object* x_1510; lean_object* x_1511; lean_object* x_1512; lean_object* x_1513; uint8_t x_1514; -x_1510 = lean_ctor_get(x_1335, 3); -lean_dec(x_1510); -x_1511 = lean_ctor_get(x_1335, 2); -lean_dec(x_1511); -x_1512 = lean_ctor_get(x_1335, 1); -lean_dec(x_1512); -x_1513 = lean_ctor_get(x_1335, 0); -lean_dec(x_1513); -x_1514 = 1; -lean_ctor_set(x_1335, 3, x_4); -lean_ctor_set(x_1335, 2, x_3); -lean_ctor_set(x_1335, 1, x_2); -lean_ctor_set(x_1335, 0, x_1); -lean_ctor_set_uint8(x_1335, sizeof(void*)*4, x_1514); -return x_1335; -} -else -{ -uint8_t x_1515; lean_object* x_1516; -lean_dec(x_1335); -x_1515 = 1; -x_1516 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1516, 0, x_1); -lean_ctor_set(x_1516, 1, x_2); -lean_ctor_set(x_1516, 2, x_3); -lean_ctor_set(x_1516, 3, x_4); -lean_ctor_set_uint8(x_1516, sizeof(void*)*4, x_1515); -return x_1516; -} -} -else -{ -uint8_t x_1517; -x_1517 = lean_ctor_get_uint8(x_1508, sizeof(void*)*4); -if (x_1517 == 0) -{ -uint8_t x_1518; -x_1518 = !lean_is_exclusive(x_4); -if (x_1518 == 0) -{ -lean_object* x_1519; lean_object* x_1520; uint8_t x_1521; -x_1519 = lean_ctor_get(x_4, 3); -lean_dec(x_1519); -x_1520 = lean_ctor_get(x_4, 0); -lean_dec(x_1520); -x_1521 = !lean_is_exclusive(x_1508); -if (x_1521 == 0) -{ -lean_object* x_1522; lean_object* x_1523; lean_object* x_1524; lean_object* x_1525; uint8_t x_1526; uint8_t x_1527; -x_1522 = lean_ctor_get(x_1508, 0); -x_1523 = lean_ctor_get(x_1508, 1); -x_1524 = lean_ctor_get(x_1508, 2); -x_1525 = lean_ctor_get(x_1508, 3); -x_1526 = 1; -lean_inc(x_1335); -lean_ctor_set(x_1508, 3, x_1335); -lean_ctor_set(x_1508, 2, x_3); -lean_ctor_set(x_1508, 1, x_2); -lean_ctor_set(x_1508, 0, x_1); -x_1527 = !lean_is_exclusive(x_1335); -if (x_1527 == 0) -{ -lean_object* x_1528; lean_object* x_1529; lean_object* x_1530; lean_object* x_1531; uint8_t x_1532; -x_1528 = lean_ctor_get(x_1335, 3); -lean_dec(x_1528); -x_1529 = lean_ctor_get(x_1335, 2); -lean_dec(x_1529); -x_1530 = lean_ctor_get(x_1335, 1); -lean_dec(x_1530); -x_1531 = lean_ctor_get(x_1335, 0); -lean_dec(x_1531); -lean_ctor_set_uint8(x_1508, sizeof(void*)*4, x_1526); -lean_ctor_set(x_1335, 3, x_1525); -lean_ctor_set(x_1335, 2, x_1524); -lean_ctor_set(x_1335, 1, x_1523); -lean_ctor_set(x_1335, 0, x_1522); -lean_ctor_set_uint8(x_1335, sizeof(void*)*4, x_1526); -x_1532 = 0; -lean_ctor_set(x_4, 3, x_1335); -lean_ctor_set(x_4, 0, x_1508); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1532); -return x_4; -} -else -{ -lean_object* x_1533; uint8_t x_1534; -lean_dec(x_1335); -lean_ctor_set_uint8(x_1508, sizeof(void*)*4, x_1526); -x_1533 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1533, 0, x_1522); -lean_ctor_set(x_1533, 1, x_1523); -lean_ctor_set(x_1533, 2, x_1524); -lean_ctor_set(x_1533, 3, x_1525); -lean_ctor_set_uint8(x_1533, sizeof(void*)*4, x_1526); -x_1534 = 0; -lean_ctor_set(x_4, 3, x_1533); -lean_ctor_set(x_4, 0, x_1508); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1534); -return x_4; -} -} -else -{ -lean_object* x_1535; lean_object* x_1536; lean_object* x_1537; lean_object* x_1538; uint8_t x_1539; lean_object* x_1540; lean_object* x_1541; lean_object* x_1542; uint8_t x_1543; -x_1535 = lean_ctor_get(x_1508, 0); -x_1536 = lean_ctor_get(x_1508, 1); -x_1537 = lean_ctor_get(x_1508, 2); -x_1538 = lean_ctor_get(x_1508, 3); -lean_inc(x_1538); -lean_inc(x_1537); -lean_inc(x_1536); -lean_inc(x_1535); -lean_dec(x_1508); -x_1539 = 1; -lean_inc(x_1335); -x_1540 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1540, 0, x_1); -lean_ctor_set(x_1540, 1, x_2); -lean_ctor_set(x_1540, 2, x_3); -lean_ctor_set(x_1540, 3, x_1335); -if (lean_is_exclusive(x_1335)) { - lean_ctor_release(x_1335, 0); - lean_ctor_release(x_1335, 1); - lean_ctor_release(x_1335, 2); - lean_ctor_release(x_1335, 3); - x_1541 = x_1335; -} else { - lean_dec_ref(x_1335); - x_1541 = lean_box(0); -} -lean_ctor_set_uint8(x_1540, sizeof(void*)*4, x_1539); -if (lean_is_scalar(x_1541)) { - x_1542 = lean_alloc_ctor(1, 4, 1); -} else { - x_1542 = x_1541; -} -lean_ctor_set(x_1542, 0, x_1535); -lean_ctor_set(x_1542, 1, x_1536); -lean_ctor_set(x_1542, 2, x_1537); -lean_ctor_set(x_1542, 3, x_1538); -lean_ctor_set_uint8(x_1542, sizeof(void*)*4, x_1539); -x_1543 = 0; -lean_ctor_set(x_4, 3, x_1542); -lean_ctor_set(x_4, 0, x_1540); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1543); -return x_4; -} -} -else -{ -lean_object* x_1544; lean_object* x_1545; lean_object* x_1546; lean_object* x_1547; lean_object* x_1548; lean_object* x_1549; lean_object* x_1550; uint8_t x_1551; lean_object* x_1552; lean_object* x_1553; lean_object* x_1554; uint8_t x_1555; lean_object* x_1556; -x_1544 = lean_ctor_get(x_4, 1); -x_1545 = lean_ctor_get(x_4, 2); -lean_inc(x_1545); -lean_inc(x_1544); -lean_dec(x_4); -x_1546 = lean_ctor_get(x_1508, 0); -lean_inc(x_1546); -x_1547 = lean_ctor_get(x_1508, 1); -lean_inc(x_1547); -x_1548 = lean_ctor_get(x_1508, 2); -lean_inc(x_1548); -x_1549 = lean_ctor_get(x_1508, 3); -lean_inc(x_1549); -if (lean_is_exclusive(x_1508)) { - lean_ctor_release(x_1508, 0); - lean_ctor_release(x_1508, 1); - lean_ctor_release(x_1508, 2); - lean_ctor_release(x_1508, 3); - x_1550 = x_1508; -} else { - lean_dec_ref(x_1508); - x_1550 = lean_box(0); -} -x_1551 = 1; -lean_inc(x_1335); -if (lean_is_scalar(x_1550)) { - x_1552 = lean_alloc_ctor(1, 4, 1); -} else { - x_1552 = x_1550; -} -lean_ctor_set(x_1552, 0, x_1); -lean_ctor_set(x_1552, 1, x_2); -lean_ctor_set(x_1552, 2, x_3); -lean_ctor_set(x_1552, 3, x_1335); -if (lean_is_exclusive(x_1335)) { - lean_ctor_release(x_1335, 0); - lean_ctor_release(x_1335, 1); - lean_ctor_release(x_1335, 2); - lean_ctor_release(x_1335, 3); - x_1553 = x_1335; -} else { - lean_dec_ref(x_1335); - x_1553 = lean_box(0); -} -lean_ctor_set_uint8(x_1552, sizeof(void*)*4, x_1551); -if (lean_is_scalar(x_1553)) { - x_1554 = lean_alloc_ctor(1, 4, 1); -} else { - x_1554 = x_1553; -} -lean_ctor_set(x_1554, 0, x_1546); -lean_ctor_set(x_1554, 1, x_1547); -lean_ctor_set(x_1554, 2, x_1548); -lean_ctor_set(x_1554, 3, x_1549); -lean_ctor_set_uint8(x_1554, sizeof(void*)*4, x_1551); -x_1555 = 0; -x_1556 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1556, 0, x_1552); -lean_ctor_set(x_1556, 1, x_1544); -lean_ctor_set(x_1556, 2, x_1545); -lean_ctor_set(x_1556, 3, x_1554); -lean_ctor_set_uint8(x_1556, sizeof(void*)*4, x_1555); -return x_1556; -} -} -else -{ -uint8_t x_1557; -lean_dec(x_1335); -x_1557 = !lean_is_exclusive(x_1508); -if (x_1557 == 0) -{ -lean_object* x_1558; lean_object* x_1559; lean_object* x_1560; lean_object* x_1561; uint8_t x_1562; -x_1558 = lean_ctor_get(x_1508, 3); -lean_dec(x_1558); -x_1559 = lean_ctor_get(x_1508, 2); -lean_dec(x_1559); -x_1560 = lean_ctor_get(x_1508, 1); -lean_dec(x_1560); -x_1561 = lean_ctor_get(x_1508, 0); -lean_dec(x_1561); -x_1562 = 1; -lean_ctor_set(x_1508, 3, x_4); -lean_ctor_set(x_1508, 2, x_3); -lean_ctor_set(x_1508, 1, x_2); -lean_ctor_set(x_1508, 0, x_1); -lean_ctor_set_uint8(x_1508, sizeof(void*)*4, x_1562); -return x_1508; -} -else -{ -uint8_t x_1563; lean_object* x_1564; -lean_dec(x_1508); -x_1563 = 1; -x_1564 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1564, 0, x_1); -lean_ctor_set(x_1564, 1, x_2); -lean_ctor_set(x_1564, 2, x_3); -lean_ctor_set(x_1564, 3, x_4); -lean_ctor_set_uint8(x_1564, sizeof(void*)*4, x_1563); -return x_1564; -} -} -} -} -} -} -else -{ -uint8_t x_1565; lean_object* x_1566; -x_1565 = 1; -x_1566 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1566, 0, x_1); -lean_ctor_set(x_1566, 1, x_2); -lean_ctor_set(x_1566, 2, x_3); -lean_ctor_set(x_1566, 3, x_4); -lean_ctor_set_uint8(x_1566, sizeof(void*)*4, x_1565); -return x_1566; -} -} -} -else -{ -lean_object* x_1567; lean_object* x_1568; lean_object* x_1569; lean_object* x_1570; lean_object* x_1571; -x_1567 = lean_ctor_get(x_241, 0); -x_1568 = lean_ctor_get(x_241, 1); -x_1569 = lean_ctor_get(x_241, 2); -x_1570 = lean_ctor_get(x_241, 3); -lean_inc(x_1570); -lean_inc(x_1569); -lean_inc(x_1568); -lean_inc(x_1567); -lean_dec(x_241); -x_1571 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1571, 0, x_1567); -lean_ctor_set(x_1571, 1, x_1568); -lean_ctor_set(x_1571, 2, x_1569); -lean_ctor_set(x_1571, 3, x_1570); -lean_ctor_set_uint8(x_1571, sizeof(void*)*4, x_1286); -lean_ctor_set(x_1, 0, x_1571); -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_1572; lean_object* x_1573; -x_1572 = 1; -x_1573 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1573, 0, x_1); -lean_ctor_set(x_1573, 1, x_2); -lean_ctor_set(x_1573, 2, x_3); -lean_ctor_set(x_1573, 3, x_4); -lean_ctor_set_uint8(x_1573, sizeof(void*)*4, x_1572); -return x_1573; -} -else -{ -uint8_t x_1574; -x_1574 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_1574 == 0) -{ -lean_object* x_1575; -x_1575 = lean_ctor_get(x_4, 0); -lean_inc(x_1575); -if (lean_obj_tag(x_1575) == 0) -{ -lean_object* x_1576; -x_1576 = lean_ctor_get(x_4, 3); -lean_inc(x_1576); -if (lean_obj_tag(x_1576) == 0) -{ -uint8_t x_1577; lean_object* x_1578; -x_1577 = 1; -x_1578 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1578, 0, x_1); -lean_ctor_set(x_1578, 1, x_2); -lean_ctor_set(x_1578, 2, x_3); -lean_ctor_set(x_1578, 3, x_4); -lean_ctor_set_uint8(x_1578, sizeof(void*)*4, x_1577); -return x_1578; -} -else -{ -uint8_t x_1579; -x_1579 = lean_ctor_get_uint8(x_1576, sizeof(void*)*4); -if (x_1579 == 0) -{ -lean_object* x_1580; lean_object* x_1581; lean_object* x_1582; lean_object* x_1583; lean_object* x_1584; lean_object* x_1585; lean_object* x_1586; lean_object* x_1587; uint8_t x_1588; lean_object* x_1589; lean_object* x_1590; uint8_t x_1591; lean_object* x_1592; -x_1580 = lean_ctor_get(x_4, 1); -lean_inc(x_1580); -x_1581 = lean_ctor_get(x_4, 2); -lean_inc(x_1581); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1582 = x_4; -} else { - lean_dec_ref(x_4); - x_1582 = lean_box(0); -} -x_1583 = lean_ctor_get(x_1576, 0); -lean_inc(x_1583); -x_1584 = lean_ctor_get(x_1576, 1); -lean_inc(x_1584); -x_1585 = lean_ctor_get(x_1576, 2); -lean_inc(x_1585); -x_1586 = lean_ctor_get(x_1576, 3); -lean_inc(x_1586); -if (lean_is_exclusive(x_1576)) { - lean_ctor_release(x_1576, 0); - lean_ctor_release(x_1576, 1); - lean_ctor_release(x_1576, 2); - lean_ctor_release(x_1576, 3); - x_1587 = x_1576; -} else { - lean_dec_ref(x_1576); - x_1587 = lean_box(0); -} -x_1588 = 1; -if (lean_is_scalar(x_1587)) { - x_1589 = lean_alloc_ctor(1, 4, 1); -} else { - x_1589 = x_1587; -} -lean_ctor_set(x_1589, 0, x_1); -lean_ctor_set(x_1589, 1, x_2); -lean_ctor_set(x_1589, 2, x_3); -lean_ctor_set(x_1589, 3, x_1575); -lean_ctor_set_uint8(x_1589, sizeof(void*)*4, x_1588); -if (lean_is_scalar(x_1582)) { - x_1590 = lean_alloc_ctor(1, 4, 1); -} else { - x_1590 = x_1582; -} -lean_ctor_set(x_1590, 0, x_1583); -lean_ctor_set(x_1590, 1, x_1584); -lean_ctor_set(x_1590, 2, x_1585); -lean_ctor_set(x_1590, 3, x_1586); -lean_ctor_set_uint8(x_1590, sizeof(void*)*4, x_1588); -x_1591 = 0; -x_1592 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1592, 0, x_1589); -lean_ctor_set(x_1592, 1, x_1580); -lean_ctor_set(x_1592, 2, x_1581); -lean_ctor_set(x_1592, 3, x_1590); -lean_ctor_set_uint8(x_1592, sizeof(void*)*4, x_1591); -return x_1592; -} -else -{ -lean_object* x_1593; uint8_t x_1594; lean_object* x_1595; -if (lean_is_exclusive(x_1576)) { - lean_ctor_release(x_1576, 0); - lean_ctor_release(x_1576, 1); - lean_ctor_release(x_1576, 2); - lean_ctor_release(x_1576, 3); - x_1593 = x_1576; -} else { - lean_dec_ref(x_1576); - x_1593 = lean_box(0); -} -x_1594 = 1; -if (lean_is_scalar(x_1593)) { - x_1595 = lean_alloc_ctor(1, 4, 1); -} else { - x_1595 = x_1593; -} -lean_ctor_set(x_1595, 0, x_1); -lean_ctor_set(x_1595, 1, x_2); -lean_ctor_set(x_1595, 2, x_3); -lean_ctor_set(x_1595, 3, x_4); -lean_ctor_set_uint8(x_1595, sizeof(void*)*4, x_1594); -return x_1595; -} -} -} -else -{ -uint8_t x_1596; -x_1596 = lean_ctor_get_uint8(x_1575, sizeof(void*)*4); -if (x_1596 == 0) -{ -lean_object* x_1597; -x_1597 = lean_ctor_get(x_4, 3); -lean_inc(x_1597); -if (lean_obj_tag(x_1597) == 0) -{ -lean_object* x_1598; lean_object* x_1599; lean_object* x_1600; lean_object* x_1601; lean_object* x_1602; lean_object* x_1603; lean_object* x_1604; lean_object* x_1605; uint8_t x_1606; lean_object* x_1607; lean_object* x_1608; uint8_t x_1609; lean_object* x_1610; -x_1598 = lean_ctor_get(x_4, 1); -lean_inc(x_1598); -x_1599 = lean_ctor_get(x_4, 2); -lean_inc(x_1599); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1600 = x_4; -} else { - lean_dec_ref(x_4); - x_1600 = lean_box(0); -} -x_1601 = lean_ctor_get(x_1575, 0); -lean_inc(x_1601); -x_1602 = lean_ctor_get(x_1575, 1); -lean_inc(x_1602); -x_1603 = lean_ctor_get(x_1575, 2); -lean_inc(x_1603); -x_1604 = lean_ctor_get(x_1575, 3); -lean_inc(x_1604); -if (lean_is_exclusive(x_1575)) { - lean_ctor_release(x_1575, 0); - lean_ctor_release(x_1575, 1); - lean_ctor_release(x_1575, 2); - lean_ctor_release(x_1575, 3); - x_1605 = x_1575; -} else { - lean_dec_ref(x_1575); - x_1605 = lean_box(0); -} -x_1606 = 1; -if (lean_is_scalar(x_1605)) { - x_1607 = lean_alloc_ctor(1, 4, 1); -} else { - x_1607 = x_1605; -} -lean_ctor_set(x_1607, 0, x_1); -lean_ctor_set(x_1607, 1, x_2); -lean_ctor_set(x_1607, 2, x_3); -lean_ctor_set(x_1607, 3, x_1601); -lean_ctor_set_uint8(x_1607, sizeof(void*)*4, x_1606); -if (lean_is_scalar(x_1600)) { - x_1608 = lean_alloc_ctor(1, 4, 1); -} else { - x_1608 = x_1600; -} -lean_ctor_set(x_1608, 0, x_1604); -lean_ctor_set(x_1608, 1, x_1598); -lean_ctor_set(x_1608, 2, x_1599); -lean_ctor_set(x_1608, 3, x_1597); -lean_ctor_set_uint8(x_1608, sizeof(void*)*4, x_1606); -x_1609 = 0; -x_1610 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1610, 0, x_1607); -lean_ctor_set(x_1610, 1, x_1602); -lean_ctor_set(x_1610, 2, x_1603); -lean_ctor_set(x_1610, 3, x_1608); -lean_ctor_set_uint8(x_1610, sizeof(void*)*4, x_1609); -return x_1610; -} -else -{ -uint8_t x_1611; -x_1611 = lean_ctor_get_uint8(x_1597, sizeof(void*)*4); -if (x_1611 == 0) -{ -lean_object* x_1612; lean_object* x_1613; lean_object* x_1614; lean_object* x_1615; lean_object* x_1616; lean_object* x_1617; lean_object* x_1618; lean_object* x_1619; lean_object* x_1620; lean_object* x_1621; lean_object* x_1622; lean_object* x_1623; lean_object* x_1624; lean_object* x_1625; uint8_t x_1626; lean_object* x_1627; lean_object* x_1628; uint8_t x_1629; lean_object* x_1630; -x_1612 = lean_ctor_get(x_4, 1); -lean_inc(x_1612); -x_1613 = lean_ctor_get(x_4, 2); -lean_inc(x_1613); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1614 = x_4; -} else { - lean_dec_ref(x_4); - x_1614 = lean_box(0); -} -x_1615 = lean_ctor_get(x_1575, 0); -lean_inc(x_1615); -x_1616 = lean_ctor_get(x_1575, 1); -lean_inc(x_1616); -x_1617 = lean_ctor_get(x_1575, 2); -lean_inc(x_1617); -x_1618 = lean_ctor_get(x_1575, 3); -lean_inc(x_1618); -if (lean_is_exclusive(x_1575)) { - lean_ctor_release(x_1575, 0); - lean_ctor_release(x_1575, 1); - lean_ctor_release(x_1575, 2); - lean_ctor_release(x_1575, 3); - x_1619 = x_1575; -} else { - lean_dec_ref(x_1575); - x_1619 = lean_box(0); -} -x_1620 = lean_ctor_get(x_1597, 0); -lean_inc(x_1620); -x_1621 = lean_ctor_get(x_1597, 1); -lean_inc(x_1621); -x_1622 = lean_ctor_get(x_1597, 2); -lean_inc(x_1622); -x_1623 = lean_ctor_get(x_1597, 3); -lean_inc(x_1623); -if (lean_is_exclusive(x_1597)) { - lean_ctor_release(x_1597, 0); - lean_ctor_release(x_1597, 1); - lean_ctor_release(x_1597, 2); - lean_ctor_release(x_1597, 3); - x_1624 = x_1597; -} else { - lean_dec_ref(x_1597); - x_1624 = lean_box(0); -} -if (lean_is_scalar(x_1624)) { - x_1625 = lean_alloc_ctor(1, 4, 1); -} else { - x_1625 = x_1624; -} -lean_ctor_set(x_1625, 0, x_1615); -lean_ctor_set(x_1625, 1, x_1616); -lean_ctor_set(x_1625, 2, x_1617); -lean_ctor_set(x_1625, 3, x_1618); -lean_ctor_set_uint8(x_1625, sizeof(void*)*4, x_1611); -x_1626 = 1; -if (lean_is_scalar(x_1619)) { - x_1627 = lean_alloc_ctor(1, 4, 1); -} else { - x_1627 = x_1619; -} -lean_ctor_set(x_1627, 0, x_1); -lean_ctor_set(x_1627, 1, x_2); -lean_ctor_set(x_1627, 2, x_3); -lean_ctor_set(x_1627, 3, x_1625); -lean_ctor_set_uint8(x_1627, sizeof(void*)*4, x_1626); -if (lean_is_scalar(x_1614)) { - x_1628 = lean_alloc_ctor(1, 4, 1); -} else { - x_1628 = x_1614; -} -lean_ctor_set(x_1628, 0, x_1620); -lean_ctor_set(x_1628, 1, x_1621); -lean_ctor_set(x_1628, 2, x_1622); -lean_ctor_set(x_1628, 3, x_1623); -lean_ctor_set_uint8(x_1628, sizeof(void*)*4, x_1626); -x_1629 = 0; -x_1630 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1630, 0, x_1627); -lean_ctor_set(x_1630, 1, x_1612); -lean_ctor_set(x_1630, 2, x_1613); -lean_ctor_set(x_1630, 3, x_1628); -lean_ctor_set_uint8(x_1630, sizeof(void*)*4, x_1629); -return x_1630; -} -else -{ -lean_object* x_1631; lean_object* x_1632; lean_object* x_1633; lean_object* x_1634; lean_object* x_1635; lean_object* x_1636; lean_object* x_1637; lean_object* x_1638; uint8_t x_1639; lean_object* x_1640; lean_object* x_1641; uint8_t x_1642; lean_object* x_1643; -x_1631 = lean_ctor_get(x_4, 1); -lean_inc(x_1631); -x_1632 = lean_ctor_get(x_4, 2); -lean_inc(x_1632); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1633 = x_4; -} else { - lean_dec_ref(x_4); - x_1633 = lean_box(0); -} -x_1634 = lean_ctor_get(x_1575, 0); -lean_inc(x_1634); -x_1635 = lean_ctor_get(x_1575, 1); -lean_inc(x_1635); -x_1636 = lean_ctor_get(x_1575, 2); -lean_inc(x_1636); -x_1637 = lean_ctor_get(x_1575, 3); -lean_inc(x_1637); -if (lean_is_exclusive(x_1575)) { - lean_ctor_release(x_1575, 0); - lean_ctor_release(x_1575, 1); - lean_ctor_release(x_1575, 2); - lean_ctor_release(x_1575, 3); - x_1638 = x_1575; -} else { - lean_dec_ref(x_1575); - x_1638 = lean_box(0); -} -x_1639 = 1; -if (lean_is_scalar(x_1638)) { - x_1640 = lean_alloc_ctor(1, 4, 1); -} else { - x_1640 = x_1638; -} -lean_ctor_set(x_1640, 0, x_1); -lean_ctor_set(x_1640, 1, x_2); -lean_ctor_set(x_1640, 2, x_3); -lean_ctor_set(x_1640, 3, x_1634); -lean_ctor_set_uint8(x_1640, sizeof(void*)*4, x_1639); -if (lean_is_scalar(x_1633)) { - x_1641 = lean_alloc_ctor(1, 4, 1); -} else { - x_1641 = x_1633; -} -lean_ctor_set(x_1641, 0, x_1637); -lean_ctor_set(x_1641, 1, x_1631); -lean_ctor_set(x_1641, 2, x_1632); -lean_ctor_set(x_1641, 3, x_1597); -lean_ctor_set_uint8(x_1641, sizeof(void*)*4, x_1639); -x_1642 = 0; -x_1643 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1643, 0, x_1640); -lean_ctor_set(x_1643, 1, x_1635); -lean_ctor_set(x_1643, 2, x_1636); -lean_ctor_set(x_1643, 3, x_1641); -lean_ctor_set_uint8(x_1643, sizeof(void*)*4, x_1642); -return x_1643; -} -} -} -else -{ -lean_object* x_1644; -x_1644 = lean_ctor_get(x_4, 3); -lean_inc(x_1644); -if (lean_obj_tag(x_1644) == 0) -{ -lean_object* x_1645; uint8_t x_1646; lean_object* x_1647; -if (lean_is_exclusive(x_1575)) { - lean_ctor_release(x_1575, 0); - lean_ctor_release(x_1575, 1); - lean_ctor_release(x_1575, 2); - lean_ctor_release(x_1575, 3); - x_1645 = x_1575; -} else { - lean_dec_ref(x_1575); - x_1645 = lean_box(0); -} -x_1646 = 1; -if (lean_is_scalar(x_1645)) { - x_1647 = lean_alloc_ctor(1, 4, 1); -} else { - x_1647 = x_1645; -} -lean_ctor_set(x_1647, 0, x_1); -lean_ctor_set(x_1647, 1, x_2); -lean_ctor_set(x_1647, 2, x_3); -lean_ctor_set(x_1647, 3, x_4); -lean_ctor_set_uint8(x_1647, sizeof(void*)*4, x_1646); -return x_1647; -} -else -{ -uint8_t x_1648; -x_1648 = lean_ctor_get_uint8(x_1644, sizeof(void*)*4); -if (x_1648 == 0) -{ -lean_object* x_1649; lean_object* x_1650; lean_object* x_1651; lean_object* x_1652; lean_object* x_1653; lean_object* x_1654; lean_object* x_1655; lean_object* x_1656; uint8_t x_1657; lean_object* x_1658; lean_object* x_1659; lean_object* x_1660; uint8_t x_1661; lean_object* x_1662; -x_1649 = lean_ctor_get(x_4, 1); -lean_inc(x_1649); -x_1650 = lean_ctor_get(x_4, 2); -lean_inc(x_1650); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1651 = x_4; -} else { - lean_dec_ref(x_4); - x_1651 = lean_box(0); -} -x_1652 = lean_ctor_get(x_1644, 0); -lean_inc(x_1652); -x_1653 = lean_ctor_get(x_1644, 1); -lean_inc(x_1653); -x_1654 = lean_ctor_get(x_1644, 2); -lean_inc(x_1654); -x_1655 = lean_ctor_get(x_1644, 3); -lean_inc(x_1655); -if (lean_is_exclusive(x_1644)) { - lean_ctor_release(x_1644, 0); - lean_ctor_release(x_1644, 1); - lean_ctor_release(x_1644, 2); - lean_ctor_release(x_1644, 3); - x_1656 = x_1644; -} else { - lean_dec_ref(x_1644); - x_1656 = lean_box(0); -} -x_1657 = 1; -lean_inc(x_1575); -if (lean_is_scalar(x_1656)) { - x_1658 = lean_alloc_ctor(1, 4, 1); -} else { - x_1658 = x_1656; -} -lean_ctor_set(x_1658, 0, x_1); -lean_ctor_set(x_1658, 1, x_2); -lean_ctor_set(x_1658, 2, x_3); -lean_ctor_set(x_1658, 3, x_1575); -if (lean_is_exclusive(x_1575)) { - lean_ctor_release(x_1575, 0); - lean_ctor_release(x_1575, 1); - lean_ctor_release(x_1575, 2); - lean_ctor_release(x_1575, 3); - x_1659 = x_1575; -} else { - lean_dec_ref(x_1575); - x_1659 = lean_box(0); -} -lean_ctor_set_uint8(x_1658, sizeof(void*)*4, x_1657); -if (lean_is_scalar(x_1659)) { - x_1660 = lean_alloc_ctor(1, 4, 1); -} else { - x_1660 = x_1659; -} -lean_ctor_set(x_1660, 0, x_1652); -lean_ctor_set(x_1660, 1, x_1653); -lean_ctor_set(x_1660, 2, x_1654); -lean_ctor_set(x_1660, 3, x_1655); -lean_ctor_set_uint8(x_1660, sizeof(void*)*4, x_1657); -x_1661 = 0; -if (lean_is_scalar(x_1651)) { - x_1662 = lean_alloc_ctor(1, 4, 1); -} else { - x_1662 = x_1651; -} -lean_ctor_set(x_1662, 0, x_1658); -lean_ctor_set(x_1662, 1, x_1649); -lean_ctor_set(x_1662, 2, x_1650); -lean_ctor_set(x_1662, 3, x_1660); -lean_ctor_set_uint8(x_1662, sizeof(void*)*4, x_1661); -return x_1662; -} -else -{ -lean_object* x_1663; uint8_t x_1664; lean_object* x_1665; -lean_dec(x_1575); -if (lean_is_exclusive(x_1644)) { - lean_ctor_release(x_1644, 0); - lean_ctor_release(x_1644, 1); - lean_ctor_release(x_1644, 2); - lean_ctor_release(x_1644, 3); - x_1663 = x_1644; -} else { - lean_dec_ref(x_1644); - x_1663 = lean_box(0); -} -x_1664 = 1; -if (lean_is_scalar(x_1663)) { - x_1665 = lean_alloc_ctor(1, 4, 1); -} else { - x_1665 = x_1663; -} -lean_ctor_set(x_1665, 0, x_1); -lean_ctor_set(x_1665, 1, x_2); -lean_ctor_set(x_1665, 2, x_3); -lean_ctor_set(x_1665, 3, x_4); -lean_ctor_set_uint8(x_1665, sizeof(void*)*4, x_1664); -return x_1665; -} -} -} -} -} -else -{ -uint8_t x_1666; lean_object* x_1667; -x_1666 = 1; -x_1667 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1667, 0, x_1); -lean_ctor_set(x_1667, 1, x_2); -lean_ctor_set(x_1667, 2, x_3); -lean_ctor_set(x_1667, 3, x_4); -lean_ctor_set_uint8(x_1667, sizeof(void*)*4, x_1666); -return x_1667; -} -} -} -} -else -{ -lean_object* x_1668; lean_object* x_1669; lean_object* x_1670; lean_object* x_1671; lean_object* x_1672; lean_object* x_1673; lean_object* x_1674; lean_object* x_1675; lean_object* x_1676; -x_1668 = lean_ctor_get(x_1, 1); -x_1669 = lean_ctor_get(x_1, 2); -lean_inc(x_1669); -lean_inc(x_1668); -lean_dec(x_1); -x_1670 = lean_ctor_get(x_241, 0); -lean_inc(x_1670); -x_1671 = lean_ctor_get(x_241, 1); -lean_inc(x_1671); -x_1672 = lean_ctor_get(x_241, 2); -lean_inc(x_1672); -x_1673 = lean_ctor_get(x_241, 3); -lean_inc(x_1673); -if (lean_is_exclusive(x_241)) { - lean_ctor_release(x_241, 0); - lean_ctor_release(x_241, 1); - lean_ctor_release(x_241, 2); - lean_ctor_release(x_241, 3); - x_1674 = x_241; -} else { - lean_dec_ref(x_241); - x_1674 = lean_box(0); -} -if (lean_is_scalar(x_1674)) { - x_1675 = lean_alloc_ctor(1, 4, 1); -} else { - x_1675 = x_1674; -} -lean_ctor_set(x_1675, 0, x_1670); -lean_ctor_set(x_1675, 1, x_1671); -lean_ctor_set(x_1675, 2, x_1672); -lean_ctor_set(x_1675, 3, x_1673); -lean_ctor_set_uint8(x_1675, sizeof(void*)*4, x_1286); -x_1676 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1676, 0, x_1675); -lean_ctor_set(x_1676, 1, x_1668); -lean_ctor_set(x_1676, 2, x_1669); -lean_ctor_set(x_1676, 3, x_965); -lean_ctor_set_uint8(x_1676, sizeof(void*)*4, x_240); -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_1677; lean_object* x_1678; -x_1677 = 1; -x_1678 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1678, 0, x_1676); -lean_ctor_set(x_1678, 1, x_2); -lean_ctor_set(x_1678, 2, x_3); -lean_ctor_set(x_1678, 3, x_4); -lean_ctor_set_uint8(x_1678, sizeof(void*)*4, x_1677); -return x_1678; -} -else -{ -uint8_t x_1679; -x_1679 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_1679 == 0) -{ -lean_object* x_1680; -x_1680 = lean_ctor_get(x_4, 0); -lean_inc(x_1680); -if (lean_obj_tag(x_1680) == 0) -{ -lean_object* x_1681; -x_1681 = lean_ctor_get(x_4, 3); -lean_inc(x_1681); -if (lean_obj_tag(x_1681) == 0) -{ -uint8_t x_1682; lean_object* x_1683; -x_1682 = 1; -x_1683 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1683, 0, x_1676); -lean_ctor_set(x_1683, 1, x_2); -lean_ctor_set(x_1683, 2, x_3); -lean_ctor_set(x_1683, 3, x_4); -lean_ctor_set_uint8(x_1683, sizeof(void*)*4, x_1682); -return x_1683; -} -else -{ -uint8_t x_1684; -x_1684 = lean_ctor_get_uint8(x_1681, sizeof(void*)*4); -if (x_1684 == 0) -{ -lean_object* x_1685; lean_object* x_1686; lean_object* x_1687; lean_object* x_1688; lean_object* x_1689; lean_object* x_1690; lean_object* x_1691; lean_object* x_1692; uint8_t x_1693; lean_object* x_1694; lean_object* x_1695; uint8_t x_1696; lean_object* x_1697; -x_1685 = lean_ctor_get(x_4, 1); -lean_inc(x_1685); -x_1686 = lean_ctor_get(x_4, 2); -lean_inc(x_1686); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1687 = x_4; -} else { - lean_dec_ref(x_4); - x_1687 = lean_box(0); -} -x_1688 = lean_ctor_get(x_1681, 0); -lean_inc(x_1688); -x_1689 = lean_ctor_get(x_1681, 1); -lean_inc(x_1689); -x_1690 = lean_ctor_get(x_1681, 2); -lean_inc(x_1690); -x_1691 = lean_ctor_get(x_1681, 3); -lean_inc(x_1691); -if (lean_is_exclusive(x_1681)) { - lean_ctor_release(x_1681, 0); - lean_ctor_release(x_1681, 1); - lean_ctor_release(x_1681, 2); - lean_ctor_release(x_1681, 3); - x_1692 = x_1681; -} else { - lean_dec_ref(x_1681); - x_1692 = lean_box(0); -} -x_1693 = 1; -if (lean_is_scalar(x_1692)) { - x_1694 = lean_alloc_ctor(1, 4, 1); -} else { - x_1694 = x_1692; -} -lean_ctor_set(x_1694, 0, x_1676); -lean_ctor_set(x_1694, 1, x_2); -lean_ctor_set(x_1694, 2, x_3); -lean_ctor_set(x_1694, 3, x_1680); -lean_ctor_set_uint8(x_1694, sizeof(void*)*4, x_1693); -if (lean_is_scalar(x_1687)) { - x_1695 = lean_alloc_ctor(1, 4, 1); -} else { - x_1695 = x_1687; -} -lean_ctor_set(x_1695, 0, x_1688); -lean_ctor_set(x_1695, 1, x_1689); -lean_ctor_set(x_1695, 2, x_1690); -lean_ctor_set(x_1695, 3, x_1691); -lean_ctor_set_uint8(x_1695, sizeof(void*)*4, x_1693); -x_1696 = 0; -x_1697 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1697, 0, x_1694); -lean_ctor_set(x_1697, 1, x_1685); -lean_ctor_set(x_1697, 2, x_1686); -lean_ctor_set(x_1697, 3, x_1695); -lean_ctor_set_uint8(x_1697, sizeof(void*)*4, x_1696); -return x_1697; -} -else -{ -lean_object* x_1698; uint8_t x_1699; lean_object* x_1700; -if (lean_is_exclusive(x_1681)) { - lean_ctor_release(x_1681, 0); - lean_ctor_release(x_1681, 1); - lean_ctor_release(x_1681, 2); - lean_ctor_release(x_1681, 3); - x_1698 = x_1681; -} else { - lean_dec_ref(x_1681); - x_1698 = lean_box(0); -} -x_1699 = 1; -if (lean_is_scalar(x_1698)) { - x_1700 = lean_alloc_ctor(1, 4, 1); -} else { - x_1700 = x_1698; -} -lean_ctor_set(x_1700, 0, x_1676); -lean_ctor_set(x_1700, 1, x_2); -lean_ctor_set(x_1700, 2, x_3); -lean_ctor_set(x_1700, 3, x_4); -lean_ctor_set_uint8(x_1700, sizeof(void*)*4, x_1699); -return x_1700; -} -} -} -else -{ -uint8_t x_1701; -x_1701 = lean_ctor_get_uint8(x_1680, sizeof(void*)*4); -if (x_1701 == 0) -{ -lean_object* x_1702; -x_1702 = lean_ctor_get(x_4, 3); -lean_inc(x_1702); -if (lean_obj_tag(x_1702) == 0) -{ -lean_object* x_1703; lean_object* x_1704; lean_object* x_1705; lean_object* x_1706; lean_object* x_1707; lean_object* x_1708; lean_object* x_1709; lean_object* x_1710; uint8_t x_1711; lean_object* x_1712; lean_object* x_1713; uint8_t x_1714; lean_object* x_1715; -x_1703 = lean_ctor_get(x_4, 1); -lean_inc(x_1703); -x_1704 = lean_ctor_get(x_4, 2); -lean_inc(x_1704); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1705 = x_4; -} else { - lean_dec_ref(x_4); - x_1705 = lean_box(0); -} -x_1706 = lean_ctor_get(x_1680, 0); -lean_inc(x_1706); -x_1707 = lean_ctor_get(x_1680, 1); -lean_inc(x_1707); -x_1708 = lean_ctor_get(x_1680, 2); -lean_inc(x_1708); -x_1709 = lean_ctor_get(x_1680, 3); -lean_inc(x_1709); -if (lean_is_exclusive(x_1680)) { - lean_ctor_release(x_1680, 0); - lean_ctor_release(x_1680, 1); - lean_ctor_release(x_1680, 2); - lean_ctor_release(x_1680, 3); - x_1710 = x_1680; -} else { - lean_dec_ref(x_1680); - x_1710 = lean_box(0); -} -x_1711 = 1; -if (lean_is_scalar(x_1710)) { - x_1712 = lean_alloc_ctor(1, 4, 1); -} else { - x_1712 = x_1710; -} -lean_ctor_set(x_1712, 0, x_1676); -lean_ctor_set(x_1712, 1, x_2); -lean_ctor_set(x_1712, 2, x_3); -lean_ctor_set(x_1712, 3, x_1706); -lean_ctor_set_uint8(x_1712, sizeof(void*)*4, x_1711); -if (lean_is_scalar(x_1705)) { - x_1713 = lean_alloc_ctor(1, 4, 1); -} else { - x_1713 = x_1705; -} -lean_ctor_set(x_1713, 0, x_1709); -lean_ctor_set(x_1713, 1, x_1703); -lean_ctor_set(x_1713, 2, x_1704); -lean_ctor_set(x_1713, 3, x_1702); -lean_ctor_set_uint8(x_1713, sizeof(void*)*4, x_1711); -x_1714 = 0; -x_1715 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1715, 0, x_1712); -lean_ctor_set(x_1715, 1, x_1707); -lean_ctor_set(x_1715, 2, x_1708); -lean_ctor_set(x_1715, 3, x_1713); -lean_ctor_set_uint8(x_1715, sizeof(void*)*4, x_1714); -return x_1715; -} -else -{ -uint8_t x_1716; -x_1716 = lean_ctor_get_uint8(x_1702, sizeof(void*)*4); -if (x_1716 == 0) -{ -lean_object* x_1717; lean_object* x_1718; lean_object* x_1719; lean_object* x_1720; lean_object* x_1721; lean_object* x_1722; lean_object* x_1723; lean_object* x_1724; lean_object* x_1725; lean_object* x_1726; lean_object* x_1727; lean_object* x_1728; lean_object* x_1729; lean_object* x_1730; uint8_t x_1731; lean_object* x_1732; lean_object* x_1733; uint8_t x_1734; lean_object* x_1735; -x_1717 = lean_ctor_get(x_4, 1); -lean_inc(x_1717); -x_1718 = lean_ctor_get(x_4, 2); -lean_inc(x_1718); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1719 = x_4; -} else { - lean_dec_ref(x_4); - x_1719 = lean_box(0); -} -x_1720 = lean_ctor_get(x_1680, 0); -lean_inc(x_1720); -x_1721 = lean_ctor_get(x_1680, 1); -lean_inc(x_1721); -x_1722 = lean_ctor_get(x_1680, 2); -lean_inc(x_1722); -x_1723 = lean_ctor_get(x_1680, 3); -lean_inc(x_1723); -if (lean_is_exclusive(x_1680)) { - lean_ctor_release(x_1680, 0); - lean_ctor_release(x_1680, 1); - lean_ctor_release(x_1680, 2); - lean_ctor_release(x_1680, 3); - x_1724 = x_1680; -} else { - lean_dec_ref(x_1680); - x_1724 = lean_box(0); -} -x_1725 = lean_ctor_get(x_1702, 0); -lean_inc(x_1725); -x_1726 = lean_ctor_get(x_1702, 1); -lean_inc(x_1726); -x_1727 = lean_ctor_get(x_1702, 2); -lean_inc(x_1727); -x_1728 = lean_ctor_get(x_1702, 3); -lean_inc(x_1728); -if (lean_is_exclusive(x_1702)) { - lean_ctor_release(x_1702, 0); - lean_ctor_release(x_1702, 1); - lean_ctor_release(x_1702, 2); - lean_ctor_release(x_1702, 3); - x_1729 = x_1702; -} else { - lean_dec_ref(x_1702); - x_1729 = lean_box(0); -} -if (lean_is_scalar(x_1729)) { - x_1730 = lean_alloc_ctor(1, 4, 1); -} else { - x_1730 = x_1729; -} -lean_ctor_set(x_1730, 0, x_1720); -lean_ctor_set(x_1730, 1, x_1721); -lean_ctor_set(x_1730, 2, x_1722); -lean_ctor_set(x_1730, 3, x_1723); -lean_ctor_set_uint8(x_1730, sizeof(void*)*4, x_1716); -x_1731 = 1; -if (lean_is_scalar(x_1724)) { - x_1732 = lean_alloc_ctor(1, 4, 1); -} else { - x_1732 = x_1724; -} -lean_ctor_set(x_1732, 0, x_1676); -lean_ctor_set(x_1732, 1, x_2); -lean_ctor_set(x_1732, 2, x_3); -lean_ctor_set(x_1732, 3, x_1730); -lean_ctor_set_uint8(x_1732, sizeof(void*)*4, x_1731); -if (lean_is_scalar(x_1719)) { - x_1733 = lean_alloc_ctor(1, 4, 1); -} else { - x_1733 = x_1719; -} -lean_ctor_set(x_1733, 0, x_1725); -lean_ctor_set(x_1733, 1, x_1726); -lean_ctor_set(x_1733, 2, x_1727); -lean_ctor_set(x_1733, 3, x_1728); -lean_ctor_set_uint8(x_1733, sizeof(void*)*4, x_1731); -x_1734 = 0; -x_1735 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1735, 0, x_1732); -lean_ctor_set(x_1735, 1, x_1717); -lean_ctor_set(x_1735, 2, x_1718); -lean_ctor_set(x_1735, 3, x_1733); -lean_ctor_set_uint8(x_1735, sizeof(void*)*4, x_1734); -return x_1735; -} -else -{ -lean_object* x_1736; lean_object* x_1737; lean_object* x_1738; lean_object* x_1739; lean_object* x_1740; lean_object* x_1741; lean_object* x_1742; lean_object* x_1743; uint8_t x_1744; lean_object* x_1745; lean_object* x_1746; uint8_t x_1747; lean_object* x_1748; -x_1736 = lean_ctor_get(x_4, 1); -lean_inc(x_1736); -x_1737 = lean_ctor_get(x_4, 2); -lean_inc(x_1737); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1738 = x_4; -} else { - lean_dec_ref(x_4); - x_1738 = lean_box(0); -} -x_1739 = lean_ctor_get(x_1680, 0); -lean_inc(x_1739); -x_1740 = lean_ctor_get(x_1680, 1); -lean_inc(x_1740); -x_1741 = lean_ctor_get(x_1680, 2); -lean_inc(x_1741); -x_1742 = lean_ctor_get(x_1680, 3); -lean_inc(x_1742); -if (lean_is_exclusive(x_1680)) { - lean_ctor_release(x_1680, 0); - lean_ctor_release(x_1680, 1); - lean_ctor_release(x_1680, 2); - lean_ctor_release(x_1680, 3); - x_1743 = x_1680; -} else { - lean_dec_ref(x_1680); - x_1743 = lean_box(0); -} -x_1744 = 1; -if (lean_is_scalar(x_1743)) { - x_1745 = lean_alloc_ctor(1, 4, 1); -} else { - x_1745 = x_1743; -} -lean_ctor_set(x_1745, 0, x_1676); -lean_ctor_set(x_1745, 1, x_2); -lean_ctor_set(x_1745, 2, x_3); -lean_ctor_set(x_1745, 3, x_1739); -lean_ctor_set_uint8(x_1745, sizeof(void*)*4, x_1744); -if (lean_is_scalar(x_1738)) { - x_1746 = lean_alloc_ctor(1, 4, 1); -} else { - x_1746 = x_1738; -} -lean_ctor_set(x_1746, 0, x_1742); -lean_ctor_set(x_1746, 1, x_1736); -lean_ctor_set(x_1746, 2, x_1737); -lean_ctor_set(x_1746, 3, x_1702); -lean_ctor_set_uint8(x_1746, sizeof(void*)*4, x_1744); -x_1747 = 0; -x_1748 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1748, 0, x_1745); -lean_ctor_set(x_1748, 1, x_1740); -lean_ctor_set(x_1748, 2, x_1741); -lean_ctor_set(x_1748, 3, x_1746); -lean_ctor_set_uint8(x_1748, sizeof(void*)*4, x_1747); -return x_1748; -} -} -} -else -{ -lean_object* x_1749; -x_1749 = lean_ctor_get(x_4, 3); -lean_inc(x_1749); -if (lean_obj_tag(x_1749) == 0) -{ -lean_object* x_1750; uint8_t x_1751; lean_object* x_1752; -if (lean_is_exclusive(x_1680)) { - lean_ctor_release(x_1680, 0); - lean_ctor_release(x_1680, 1); - lean_ctor_release(x_1680, 2); - lean_ctor_release(x_1680, 3); - x_1750 = x_1680; -} else { - lean_dec_ref(x_1680); - x_1750 = lean_box(0); -} -x_1751 = 1; -if (lean_is_scalar(x_1750)) { - x_1752 = lean_alloc_ctor(1, 4, 1); -} else { - x_1752 = x_1750; -} -lean_ctor_set(x_1752, 0, x_1676); -lean_ctor_set(x_1752, 1, x_2); -lean_ctor_set(x_1752, 2, x_3); -lean_ctor_set(x_1752, 3, x_4); -lean_ctor_set_uint8(x_1752, sizeof(void*)*4, x_1751); -return x_1752; -} -else -{ -uint8_t x_1753; -x_1753 = lean_ctor_get_uint8(x_1749, sizeof(void*)*4); -if (x_1753 == 0) -{ -lean_object* x_1754; lean_object* x_1755; lean_object* x_1756; lean_object* x_1757; lean_object* x_1758; lean_object* x_1759; lean_object* x_1760; lean_object* x_1761; uint8_t x_1762; lean_object* x_1763; lean_object* x_1764; lean_object* x_1765; uint8_t x_1766; lean_object* x_1767; -x_1754 = lean_ctor_get(x_4, 1); -lean_inc(x_1754); -x_1755 = lean_ctor_get(x_4, 2); -lean_inc(x_1755); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_1756 = x_4; -} else { - lean_dec_ref(x_4); - x_1756 = lean_box(0); -} -x_1757 = lean_ctor_get(x_1749, 0); -lean_inc(x_1757); -x_1758 = lean_ctor_get(x_1749, 1); -lean_inc(x_1758); -x_1759 = lean_ctor_get(x_1749, 2); -lean_inc(x_1759); -x_1760 = lean_ctor_get(x_1749, 3); -lean_inc(x_1760); -if (lean_is_exclusive(x_1749)) { - lean_ctor_release(x_1749, 0); - lean_ctor_release(x_1749, 1); - lean_ctor_release(x_1749, 2); - lean_ctor_release(x_1749, 3); - x_1761 = x_1749; -} else { - lean_dec_ref(x_1749); - x_1761 = lean_box(0); -} -x_1762 = 1; -lean_inc(x_1680); -if (lean_is_scalar(x_1761)) { - x_1763 = lean_alloc_ctor(1, 4, 1); -} else { - x_1763 = x_1761; -} -lean_ctor_set(x_1763, 0, x_1676); -lean_ctor_set(x_1763, 1, x_2); -lean_ctor_set(x_1763, 2, x_3); -lean_ctor_set(x_1763, 3, x_1680); -if (lean_is_exclusive(x_1680)) { - lean_ctor_release(x_1680, 0); - lean_ctor_release(x_1680, 1); - lean_ctor_release(x_1680, 2); - lean_ctor_release(x_1680, 3); - x_1764 = x_1680; -} else { - lean_dec_ref(x_1680); - x_1764 = lean_box(0); -} -lean_ctor_set_uint8(x_1763, sizeof(void*)*4, x_1762); -if (lean_is_scalar(x_1764)) { - x_1765 = lean_alloc_ctor(1, 4, 1); -} else { - x_1765 = x_1764; -} -lean_ctor_set(x_1765, 0, x_1757); -lean_ctor_set(x_1765, 1, x_1758); -lean_ctor_set(x_1765, 2, x_1759); -lean_ctor_set(x_1765, 3, x_1760); -lean_ctor_set_uint8(x_1765, sizeof(void*)*4, x_1762); -x_1766 = 0; -if (lean_is_scalar(x_1756)) { - x_1767 = lean_alloc_ctor(1, 4, 1); -} else { - x_1767 = x_1756; -} -lean_ctor_set(x_1767, 0, x_1763); -lean_ctor_set(x_1767, 1, x_1754); -lean_ctor_set(x_1767, 2, x_1755); -lean_ctor_set(x_1767, 3, x_1765); -lean_ctor_set_uint8(x_1767, sizeof(void*)*4, x_1766); -return x_1767; -} -else -{ -lean_object* x_1768; uint8_t x_1769; lean_object* x_1770; -lean_dec(x_1680); -if (lean_is_exclusive(x_1749)) { - lean_ctor_release(x_1749, 0); - lean_ctor_release(x_1749, 1); - lean_ctor_release(x_1749, 2); - lean_ctor_release(x_1749, 3); - x_1768 = x_1749; -} else { - lean_dec_ref(x_1749); - x_1768 = lean_box(0); -} -x_1769 = 1; -if (lean_is_scalar(x_1768)) { - x_1770 = lean_alloc_ctor(1, 4, 1); -} else { - x_1770 = x_1768; -} -lean_ctor_set(x_1770, 0, x_1676); -lean_ctor_set(x_1770, 1, x_2); -lean_ctor_set(x_1770, 2, x_3); -lean_ctor_set(x_1770, 3, x_4); -lean_ctor_set_uint8(x_1770, sizeof(void*)*4, x_1769); -return x_1770; -} -} -} -} -} -else -{ -uint8_t x_1771; lean_object* x_1772; -x_1771 = 1; -x_1772 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1772, 0, x_1676); -lean_ctor_set(x_1772, 1, x_2); -lean_ctor_set(x_1772, 2, x_3); -lean_ctor_set(x_1772, 3, x_4); -lean_ctor_set_uint8(x_1772, sizeof(void*)*4, x_1771); -return x_1772; -} -} -} -} -} -} -} -} -else -{ -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_1773; lean_object* x_1774; -x_1773 = 1; -x_1774 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1774, 0, x_1); -lean_ctor_set(x_1774, 1, x_2); -lean_ctor_set(x_1774, 2, x_3); -lean_ctor_set(x_1774, 3, x_4); -lean_ctor_set_uint8(x_1774, sizeof(void*)*4, x_1773); -return x_1774; -} -else -{ -uint8_t x_1775; -x_1775 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_1775 == 0) -{ -lean_object* x_1776; -x_1776 = lean_ctor_get(x_4, 0); -lean_inc(x_1776); -if (lean_obj_tag(x_1776) == 0) -{ -lean_object* x_1777; -x_1777 = lean_ctor_get(x_4, 3); -lean_inc(x_1777); -if (lean_obj_tag(x_1777) == 0) -{ -uint8_t x_1778; lean_object* x_1779; -x_1778 = 1; -x_1779 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1779, 0, x_1); -lean_ctor_set(x_1779, 1, x_2); -lean_ctor_set(x_1779, 2, x_3); -lean_ctor_set(x_1779, 3, x_4); -lean_ctor_set_uint8(x_1779, sizeof(void*)*4, x_1778); -return x_1779; -} -else -{ -uint8_t x_1780; -x_1780 = lean_ctor_get_uint8(x_1777, sizeof(void*)*4); -if (x_1780 == 0) -{ -uint8_t x_1781; -x_1781 = !lean_is_exclusive(x_4); -if (x_1781 == 0) -{ -lean_object* x_1782; lean_object* x_1783; lean_object* x_1784; lean_object* x_1785; uint8_t x_1786; -x_1782 = lean_ctor_get(x_4, 1); -x_1783 = lean_ctor_get(x_4, 2); -x_1784 = lean_ctor_get(x_4, 3); -lean_dec(x_1784); -x_1785 = lean_ctor_get(x_4, 0); -lean_dec(x_1785); -x_1786 = !lean_is_exclusive(x_1777); -if (x_1786 == 0) -{ -lean_object* x_1787; lean_object* x_1788; lean_object* x_1789; lean_object* x_1790; uint8_t x_1791; uint8_t x_1792; -x_1787 = lean_ctor_get(x_1777, 0); -x_1788 = lean_ctor_get(x_1777, 1); -x_1789 = lean_ctor_get(x_1777, 2); -x_1790 = lean_ctor_get(x_1777, 3); -x_1791 = 1; -lean_inc(x_1); -lean_ctor_set(x_1777, 3, x_1776); -lean_ctor_set(x_1777, 2, x_3); -lean_ctor_set(x_1777, 1, x_2); -lean_ctor_set(x_1777, 0, x_1); -x_1792 = !lean_is_exclusive(x_1); -if (x_1792 == 0) -{ -lean_object* x_1793; lean_object* x_1794; lean_object* x_1795; lean_object* x_1796; uint8_t x_1797; -x_1793 = lean_ctor_get(x_1, 3); -lean_dec(x_1793); -x_1794 = lean_ctor_get(x_1, 2); -lean_dec(x_1794); -x_1795 = lean_ctor_get(x_1, 1); -lean_dec(x_1795); -x_1796 = lean_ctor_get(x_1, 0); -lean_dec(x_1796); -lean_ctor_set_uint8(x_1777, sizeof(void*)*4, x_1791); -lean_ctor_set(x_4, 3, x_1790); -lean_ctor_set(x_4, 2, x_1789); -lean_ctor_set(x_4, 1, x_1788); -lean_ctor_set(x_4, 0, x_1787); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1791); -x_1797 = 0; -lean_ctor_set(x_1, 3, x_4); -lean_ctor_set(x_1, 2, x_1783); -lean_ctor_set(x_1, 1, x_1782); -lean_ctor_set(x_1, 0, x_1777); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_1797); -return x_1; -} -else -{ -uint8_t x_1798; lean_object* x_1799; -lean_dec(x_1); -lean_ctor_set_uint8(x_1777, sizeof(void*)*4, x_1791); -lean_ctor_set(x_4, 3, x_1790); -lean_ctor_set(x_4, 2, x_1789); -lean_ctor_set(x_4, 1, x_1788); -lean_ctor_set(x_4, 0, x_1787); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1791); -x_1798 = 0; -x_1799 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1799, 0, x_1777); -lean_ctor_set(x_1799, 1, x_1782); -lean_ctor_set(x_1799, 2, x_1783); -lean_ctor_set(x_1799, 3, x_4); -lean_ctor_set_uint8(x_1799, sizeof(void*)*4, x_1798); -return x_1799; -} -} -else -{ -lean_object* x_1800; lean_object* x_1801; lean_object* x_1802; lean_object* x_1803; uint8_t x_1804; lean_object* x_1805; lean_object* x_1806; uint8_t x_1807; lean_object* x_1808; -x_1800 = lean_ctor_get(x_1777, 0); -x_1801 = lean_ctor_get(x_1777, 1); -x_1802 = lean_ctor_get(x_1777, 2); -x_1803 = lean_ctor_get(x_1777, 3); -lean_inc(x_1803); -lean_inc(x_1802); -lean_inc(x_1801); -lean_inc(x_1800); -lean_dec(x_1777); -x_1804 = 1; -lean_inc(x_1); -x_1805 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1805, 0, x_1); -lean_ctor_set(x_1805, 1, x_2); -lean_ctor_set(x_1805, 2, x_3); -lean_ctor_set(x_1805, 3, x_1776); -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - lean_ctor_release(x_1, 1); - lean_ctor_release(x_1, 2); - lean_ctor_release(x_1, 3); - x_1806 = x_1; -} else { - lean_dec_ref(x_1); - x_1806 = lean_box(0); -} -lean_ctor_set_uint8(x_1805, sizeof(void*)*4, x_1804); -lean_ctor_set(x_4, 3, x_1803); -lean_ctor_set(x_4, 2, x_1802); -lean_ctor_set(x_4, 1, x_1801); -lean_ctor_set(x_4, 0, x_1800); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1804); -x_1807 = 0; -if (lean_is_scalar(x_1806)) { - x_1808 = lean_alloc_ctor(1, 4, 1); -} else { - x_1808 = x_1806; -} -lean_ctor_set(x_1808, 0, x_1805); -lean_ctor_set(x_1808, 1, x_1782); -lean_ctor_set(x_1808, 2, x_1783); -lean_ctor_set(x_1808, 3, x_4); -lean_ctor_set_uint8(x_1808, sizeof(void*)*4, x_1807); -return x_1808; -} -} -else -{ -lean_object* x_1809; lean_object* x_1810; lean_object* x_1811; lean_object* x_1812; lean_object* x_1813; lean_object* x_1814; lean_object* x_1815; uint8_t x_1816; lean_object* x_1817; lean_object* x_1818; lean_object* x_1819; uint8_t x_1820; lean_object* x_1821; -x_1809 = lean_ctor_get(x_4, 1); -x_1810 = lean_ctor_get(x_4, 2); -lean_inc(x_1810); -lean_inc(x_1809); -lean_dec(x_4); -x_1811 = lean_ctor_get(x_1777, 0); -lean_inc(x_1811); -x_1812 = lean_ctor_get(x_1777, 1); -lean_inc(x_1812); -x_1813 = lean_ctor_get(x_1777, 2); -lean_inc(x_1813); -x_1814 = lean_ctor_get(x_1777, 3); -lean_inc(x_1814); -if (lean_is_exclusive(x_1777)) { - lean_ctor_release(x_1777, 0); - lean_ctor_release(x_1777, 1); - lean_ctor_release(x_1777, 2); - lean_ctor_release(x_1777, 3); - x_1815 = x_1777; -} else { - lean_dec_ref(x_1777); - x_1815 = lean_box(0); -} -x_1816 = 1; -lean_inc(x_1); -if (lean_is_scalar(x_1815)) { - x_1817 = lean_alloc_ctor(1, 4, 1); -} else { - x_1817 = x_1815; -} -lean_ctor_set(x_1817, 0, x_1); -lean_ctor_set(x_1817, 1, x_2); -lean_ctor_set(x_1817, 2, x_3); -lean_ctor_set(x_1817, 3, x_1776); -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - lean_ctor_release(x_1, 1); - lean_ctor_release(x_1, 2); - lean_ctor_release(x_1, 3); - x_1818 = x_1; -} else { - lean_dec_ref(x_1); - x_1818 = lean_box(0); -} -lean_ctor_set_uint8(x_1817, sizeof(void*)*4, x_1816); -x_1819 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1819, 0, x_1811); -lean_ctor_set(x_1819, 1, x_1812); -lean_ctor_set(x_1819, 2, x_1813); -lean_ctor_set(x_1819, 3, x_1814); -lean_ctor_set_uint8(x_1819, sizeof(void*)*4, x_1816); -x_1820 = 0; -if (lean_is_scalar(x_1818)) { - x_1821 = lean_alloc_ctor(1, 4, 1); -} else { - x_1821 = x_1818; -} -lean_ctor_set(x_1821, 0, x_1817); -lean_ctor_set(x_1821, 1, x_1809); -lean_ctor_set(x_1821, 2, x_1810); -lean_ctor_set(x_1821, 3, x_1819); -lean_ctor_set_uint8(x_1821, sizeof(void*)*4, x_1820); -return x_1821; -} -} -else -{ -uint8_t x_1822; -x_1822 = !lean_is_exclusive(x_1777); -if (x_1822 == 0) -{ -lean_object* x_1823; lean_object* x_1824; lean_object* x_1825; lean_object* x_1826; uint8_t x_1827; -x_1823 = lean_ctor_get(x_1777, 3); -lean_dec(x_1823); -x_1824 = lean_ctor_get(x_1777, 2); -lean_dec(x_1824); -x_1825 = lean_ctor_get(x_1777, 1); -lean_dec(x_1825); -x_1826 = lean_ctor_get(x_1777, 0); -lean_dec(x_1826); -x_1827 = 1; -lean_ctor_set(x_1777, 3, x_4); -lean_ctor_set(x_1777, 2, x_3); -lean_ctor_set(x_1777, 1, x_2); -lean_ctor_set(x_1777, 0, x_1); -lean_ctor_set_uint8(x_1777, sizeof(void*)*4, x_1827); -return x_1777; -} -else -{ -uint8_t x_1828; lean_object* x_1829; -lean_dec(x_1777); -x_1828 = 1; -x_1829 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1829, 0, x_1); -lean_ctor_set(x_1829, 1, x_2); -lean_ctor_set(x_1829, 2, x_3); -lean_ctor_set(x_1829, 3, x_4); -lean_ctor_set_uint8(x_1829, sizeof(void*)*4, x_1828); -return x_1829; -} -} -} -} -else -{ -uint8_t x_1830; -x_1830 = lean_ctor_get_uint8(x_1776, sizeof(void*)*4); -if (x_1830 == 0) -{ -lean_object* x_1831; -x_1831 = lean_ctor_get(x_4, 3); -lean_inc(x_1831); -if (lean_obj_tag(x_1831) == 0) -{ -uint8_t x_1832; -x_1832 = !lean_is_exclusive(x_4); -if (x_1832 == 0) -{ -lean_object* x_1833; lean_object* x_1834; uint8_t x_1835; -x_1833 = lean_ctor_get(x_4, 3); -lean_dec(x_1833); -x_1834 = lean_ctor_get(x_4, 0); -lean_dec(x_1834); -x_1835 = !lean_is_exclusive(x_1776); -if (x_1835 == 0) -{ -lean_object* x_1836; lean_object* x_1837; lean_object* x_1838; lean_object* x_1839; uint8_t x_1840; uint8_t x_1841; -x_1836 = lean_ctor_get(x_1776, 0); -x_1837 = lean_ctor_get(x_1776, 1); -x_1838 = lean_ctor_get(x_1776, 2); -x_1839 = lean_ctor_get(x_1776, 3); -x_1840 = 1; -lean_inc(x_1); -lean_ctor_set(x_1776, 3, x_1836); -lean_ctor_set(x_1776, 2, x_3); -lean_ctor_set(x_1776, 1, x_2); -lean_ctor_set(x_1776, 0, x_1); -x_1841 = !lean_is_exclusive(x_1); -if (x_1841 == 0) -{ -lean_object* x_1842; lean_object* x_1843; lean_object* x_1844; lean_object* x_1845; uint8_t x_1846; -x_1842 = lean_ctor_get(x_1, 3); -lean_dec(x_1842); -x_1843 = lean_ctor_get(x_1, 2); -lean_dec(x_1843); -x_1844 = lean_ctor_get(x_1, 1); -lean_dec(x_1844); -x_1845 = lean_ctor_get(x_1, 0); -lean_dec(x_1845); -lean_ctor_set_uint8(x_1776, sizeof(void*)*4, x_1840); -lean_ctor_set(x_4, 0, x_1839); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1840); -x_1846 = 0; -lean_ctor_set(x_1, 3, x_4); -lean_ctor_set(x_1, 2, x_1838); -lean_ctor_set(x_1, 1, x_1837); -lean_ctor_set(x_1, 0, x_1776); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_1846); -return x_1; -} -else -{ -uint8_t x_1847; lean_object* x_1848; -lean_dec(x_1); -lean_ctor_set_uint8(x_1776, sizeof(void*)*4, x_1840); -lean_ctor_set(x_4, 0, x_1839); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1840); -x_1847 = 0; -x_1848 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1848, 0, x_1776); -lean_ctor_set(x_1848, 1, x_1837); -lean_ctor_set(x_1848, 2, x_1838); -lean_ctor_set(x_1848, 3, x_4); -lean_ctor_set_uint8(x_1848, sizeof(void*)*4, x_1847); -return x_1848; -} -} -else -{ -lean_object* x_1849; lean_object* x_1850; lean_object* x_1851; lean_object* x_1852; uint8_t x_1853; lean_object* x_1854; lean_object* x_1855; uint8_t x_1856; lean_object* x_1857; -x_1849 = lean_ctor_get(x_1776, 0); -x_1850 = lean_ctor_get(x_1776, 1); -x_1851 = lean_ctor_get(x_1776, 2); -x_1852 = lean_ctor_get(x_1776, 3); -lean_inc(x_1852); -lean_inc(x_1851); -lean_inc(x_1850); -lean_inc(x_1849); -lean_dec(x_1776); -x_1853 = 1; -lean_inc(x_1); -x_1854 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1854, 0, x_1); -lean_ctor_set(x_1854, 1, x_2); -lean_ctor_set(x_1854, 2, x_3); -lean_ctor_set(x_1854, 3, x_1849); -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - lean_ctor_release(x_1, 1); - lean_ctor_release(x_1, 2); - lean_ctor_release(x_1, 3); - x_1855 = x_1; -} else { - lean_dec_ref(x_1); - x_1855 = lean_box(0); -} -lean_ctor_set_uint8(x_1854, sizeof(void*)*4, x_1853); -lean_ctor_set(x_4, 0, x_1852); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1853); -x_1856 = 0; -if (lean_is_scalar(x_1855)) { - x_1857 = lean_alloc_ctor(1, 4, 1); -} else { - x_1857 = x_1855; -} -lean_ctor_set(x_1857, 0, x_1854); -lean_ctor_set(x_1857, 1, x_1850); -lean_ctor_set(x_1857, 2, x_1851); -lean_ctor_set(x_1857, 3, x_4); -lean_ctor_set_uint8(x_1857, sizeof(void*)*4, x_1856); -return x_1857; -} -} -else -{ -lean_object* x_1858; lean_object* x_1859; lean_object* x_1860; lean_object* x_1861; lean_object* x_1862; lean_object* x_1863; lean_object* x_1864; uint8_t x_1865; lean_object* x_1866; lean_object* x_1867; lean_object* x_1868; uint8_t x_1869; lean_object* x_1870; -x_1858 = lean_ctor_get(x_4, 1); -x_1859 = lean_ctor_get(x_4, 2); -lean_inc(x_1859); -lean_inc(x_1858); -lean_dec(x_4); -x_1860 = lean_ctor_get(x_1776, 0); -lean_inc(x_1860); -x_1861 = lean_ctor_get(x_1776, 1); -lean_inc(x_1861); -x_1862 = lean_ctor_get(x_1776, 2); -lean_inc(x_1862); -x_1863 = lean_ctor_get(x_1776, 3); -lean_inc(x_1863); -if (lean_is_exclusive(x_1776)) { - lean_ctor_release(x_1776, 0); - lean_ctor_release(x_1776, 1); - lean_ctor_release(x_1776, 2); - lean_ctor_release(x_1776, 3); - x_1864 = x_1776; -} else { - lean_dec_ref(x_1776); - x_1864 = lean_box(0); -} -x_1865 = 1; -lean_inc(x_1); -if (lean_is_scalar(x_1864)) { - x_1866 = lean_alloc_ctor(1, 4, 1); -} else { - x_1866 = x_1864; -} -lean_ctor_set(x_1866, 0, x_1); -lean_ctor_set(x_1866, 1, x_2); -lean_ctor_set(x_1866, 2, x_3); -lean_ctor_set(x_1866, 3, x_1860); -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - lean_ctor_release(x_1, 1); - lean_ctor_release(x_1, 2); - lean_ctor_release(x_1, 3); - x_1867 = x_1; -} else { - lean_dec_ref(x_1); - x_1867 = lean_box(0); -} -lean_ctor_set_uint8(x_1866, sizeof(void*)*4, x_1865); -x_1868 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1868, 0, x_1863); -lean_ctor_set(x_1868, 1, x_1858); -lean_ctor_set(x_1868, 2, x_1859); -lean_ctor_set(x_1868, 3, x_1831); -lean_ctor_set_uint8(x_1868, sizeof(void*)*4, x_1865); -x_1869 = 0; -if (lean_is_scalar(x_1867)) { - x_1870 = lean_alloc_ctor(1, 4, 1); -} else { - x_1870 = x_1867; -} -lean_ctor_set(x_1870, 0, x_1866); -lean_ctor_set(x_1870, 1, x_1861); -lean_ctor_set(x_1870, 2, x_1862); -lean_ctor_set(x_1870, 3, x_1868); -lean_ctor_set_uint8(x_1870, sizeof(void*)*4, x_1869); -return x_1870; -} -} -else -{ -uint8_t x_1871; -x_1871 = lean_ctor_get_uint8(x_1831, sizeof(void*)*4); -if (x_1871 == 0) -{ -uint8_t x_1872; -x_1872 = !lean_is_exclusive(x_4); -if (x_1872 == 0) -{ -lean_object* x_1873; lean_object* x_1874; lean_object* x_1875; lean_object* x_1876; uint8_t x_1877; -x_1873 = lean_ctor_get(x_4, 1); -x_1874 = lean_ctor_get(x_4, 2); -x_1875 = lean_ctor_get(x_4, 3); -lean_dec(x_1875); -x_1876 = lean_ctor_get(x_4, 0); -lean_dec(x_1876); -x_1877 = !lean_is_exclusive(x_1776); -if (x_1877 == 0) -{ -uint8_t x_1878; -x_1878 = !lean_is_exclusive(x_1831); -if (x_1878 == 0) -{ -lean_object* x_1879; lean_object* x_1880; lean_object* x_1881; lean_object* x_1882; lean_object* x_1883; lean_object* x_1884; lean_object* x_1885; lean_object* x_1886; uint8_t x_1887; uint8_t x_1888; -x_1879 = lean_ctor_get(x_1776, 0); -x_1880 = lean_ctor_get(x_1776, 1); -x_1881 = lean_ctor_get(x_1776, 2); -x_1882 = lean_ctor_get(x_1776, 3); -x_1883 = lean_ctor_get(x_1831, 0); -x_1884 = lean_ctor_get(x_1831, 1); -x_1885 = lean_ctor_get(x_1831, 2); -x_1886 = lean_ctor_get(x_1831, 3); -lean_ctor_set(x_1831, 3, x_1882); -lean_ctor_set(x_1831, 2, x_1881); -lean_ctor_set(x_1831, 1, x_1880); -lean_ctor_set(x_1831, 0, x_1879); -x_1887 = 1; -lean_inc(x_1); -lean_ctor_set(x_1776, 3, x_1831); -lean_ctor_set(x_1776, 2, x_3); -lean_ctor_set(x_1776, 1, x_2); -lean_ctor_set(x_1776, 0, x_1); -x_1888 = !lean_is_exclusive(x_1); -if (x_1888 == 0) -{ -lean_object* x_1889; lean_object* x_1890; lean_object* x_1891; lean_object* x_1892; uint8_t x_1893; -x_1889 = lean_ctor_get(x_1, 3); -lean_dec(x_1889); -x_1890 = lean_ctor_get(x_1, 2); -lean_dec(x_1890); -x_1891 = lean_ctor_get(x_1, 1); -lean_dec(x_1891); -x_1892 = lean_ctor_get(x_1, 0); -lean_dec(x_1892); -lean_ctor_set_uint8(x_1776, sizeof(void*)*4, x_1887); -lean_ctor_set(x_4, 3, x_1886); -lean_ctor_set(x_4, 2, x_1885); -lean_ctor_set(x_4, 1, x_1884); -lean_ctor_set(x_4, 0, x_1883); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1887); -x_1893 = 0; -lean_ctor_set(x_1, 3, x_4); -lean_ctor_set(x_1, 2, x_1874); -lean_ctor_set(x_1, 1, x_1873); -lean_ctor_set(x_1, 0, x_1776); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_1893); -return x_1; -} -else -{ -uint8_t x_1894; lean_object* x_1895; -lean_dec(x_1); -lean_ctor_set_uint8(x_1776, sizeof(void*)*4, x_1887); -lean_ctor_set(x_4, 3, x_1886); -lean_ctor_set(x_4, 2, x_1885); -lean_ctor_set(x_4, 1, x_1884); -lean_ctor_set(x_4, 0, x_1883); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1887); -x_1894 = 0; -x_1895 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1895, 0, x_1776); -lean_ctor_set(x_1895, 1, x_1873); -lean_ctor_set(x_1895, 2, x_1874); -lean_ctor_set(x_1895, 3, x_4); -lean_ctor_set_uint8(x_1895, sizeof(void*)*4, x_1894); -return x_1895; -} -} -else -{ -lean_object* x_1896; lean_object* x_1897; lean_object* x_1898; lean_object* x_1899; lean_object* x_1900; lean_object* x_1901; lean_object* x_1902; lean_object* x_1903; lean_object* x_1904; uint8_t x_1905; lean_object* x_1906; uint8_t x_1907; lean_object* x_1908; -x_1896 = lean_ctor_get(x_1776, 0); -x_1897 = lean_ctor_get(x_1776, 1); -x_1898 = lean_ctor_get(x_1776, 2); -x_1899 = lean_ctor_get(x_1776, 3); -x_1900 = lean_ctor_get(x_1831, 0); -x_1901 = lean_ctor_get(x_1831, 1); -x_1902 = lean_ctor_get(x_1831, 2); -x_1903 = lean_ctor_get(x_1831, 3); -lean_inc(x_1903); -lean_inc(x_1902); -lean_inc(x_1901); -lean_inc(x_1900); -lean_dec(x_1831); -x_1904 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1904, 0, x_1896); -lean_ctor_set(x_1904, 1, x_1897); -lean_ctor_set(x_1904, 2, x_1898); -lean_ctor_set(x_1904, 3, x_1899); -lean_ctor_set_uint8(x_1904, sizeof(void*)*4, x_1871); -x_1905 = 1; -lean_inc(x_1); -lean_ctor_set(x_1776, 3, x_1904); -lean_ctor_set(x_1776, 2, x_3); -lean_ctor_set(x_1776, 1, x_2); -lean_ctor_set(x_1776, 0, x_1); -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - lean_ctor_release(x_1, 1); - lean_ctor_release(x_1, 2); - lean_ctor_release(x_1, 3); - x_1906 = x_1; -} else { - lean_dec_ref(x_1); - x_1906 = lean_box(0); -} -lean_ctor_set_uint8(x_1776, sizeof(void*)*4, x_1905); -lean_ctor_set(x_4, 3, x_1903); -lean_ctor_set(x_4, 2, x_1902); -lean_ctor_set(x_4, 1, x_1901); -lean_ctor_set(x_4, 0, x_1900); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1905); -x_1907 = 0; -if (lean_is_scalar(x_1906)) { - x_1908 = lean_alloc_ctor(1, 4, 1); -} else { - x_1908 = x_1906; -} -lean_ctor_set(x_1908, 0, x_1776); -lean_ctor_set(x_1908, 1, x_1873); -lean_ctor_set(x_1908, 2, x_1874); -lean_ctor_set(x_1908, 3, x_4); -lean_ctor_set_uint8(x_1908, sizeof(void*)*4, x_1907); -return x_1908; -} -} -else -{ -lean_object* x_1909; lean_object* x_1910; lean_object* x_1911; lean_object* x_1912; lean_object* x_1913; lean_object* x_1914; lean_object* x_1915; lean_object* x_1916; lean_object* x_1917; lean_object* x_1918; uint8_t x_1919; lean_object* x_1920; lean_object* x_1921; uint8_t x_1922; lean_object* x_1923; -x_1909 = lean_ctor_get(x_1776, 0); -x_1910 = lean_ctor_get(x_1776, 1); -x_1911 = lean_ctor_get(x_1776, 2); -x_1912 = lean_ctor_get(x_1776, 3); -lean_inc(x_1912); -lean_inc(x_1911); -lean_inc(x_1910); -lean_inc(x_1909); -lean_dec(x_1776); -x_1913 = lean_ctor_get(x_1831, 0); -lean_inc(x_1913); -x_1914 = lean_ctor_get(x_1831, 1); -lean_inc(x_1914); -x_1915 = lean_ctor_get(x_1831, 2); -lean_inc(x_1915); -x_1916 = lean_ctor_get(x_1831, 3); -lean_inc(x_1916); -if (lean_is_exclusive(x_1831)) { - lean_ctor_release(x_1831, 0); - lean_ctor_release(x_1831, 1); - lean_ctor_release(x_1831, 2); - lean_ctor_release(x_1831, 3); - x_1917 = x_1831; -} else { - lean_dec_ref(x_1831); - x_1917 = lean_box(0); -} -if (lean_is_scalar(x_1917)) { - x_1918 = lean_alloc_ctor(1, 4, 1); -} else { - x_1918 = x_1917; -} -lean_ctor_set(x_1918, 0, x_1909); -lean_ctor_set(x_1918, 1, x_1910); -lean_ctor_set(x_1918, 2, x_1911); -lean_ctor_set(x_1918, 3, x_1912); -lean_ctor_set_uint8(x_1918, sizeof(void*)*4, x_1871); -x_1919 = 1; -lean_inc(x_1); -x_1920 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1920, 0, x_1); -lean_ctor_set(x_1920, 1, x_2); -lean_ctor_set(x_1920, 2, x_3); -lean_ctor_set(x_1920, 3, x_1918); -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - lean_ctor_release(x_1, 1); - lean_ctor_release(x_1, 2); - lean_ctor_release(x_1, 3); - x_1921 = x_1; -} else { - lean_dec_ref(x_1); - x_1921 = lean_box(0); -} -lean_ctor_set_uint8(x_1920, sizeof(void*)*4, x_1919); -lean_ctor_set(x_4, 3, x_1916); -lean_ctor_set(x_4, 2, x_1915); -lean_ctor_set(x_4, 1, x_1914); -lean_ctor_set(x_4, 0, x_1913); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1919); -x_1922 = 0; -if (lean_is_scalar(x_1921)) { - x_1923 = lean_alloc_ctor(1, 4, 1); -} else { - x_1923 = x_1921; -} -lean_ctor_set(x_1923, 0, x_1920); -lean_ctor_set(x_1923, 1, x_1873); -lean_ctor_set(x_1923, 2, x_1874); -lean_ctor_set(x_1923, 3, x_4); -lean_ctor_set_uint8(x_1923, sizeof(void*)*4, x_1922); -return x_1923; -} -} -else -{ -lean_object* x_1924; lean_object* x_1925; lean_object* x_1926; lean_object* x_1927; lean_object* x_1928; lean_object* x_1929; lean_object* x_1930; lean_object* x_1931; lean_object* x_1932; lean_object* x_1933; lean_object* x_1934; lean_object* x_1935; lean_object* x_1936; uint8_t x_1937; lean_object* x_1938; lean_object* x_1939; lean_object* x_1940; uint8_t x_1941; lean_object* x_1942; -x_1924 = lean_ctor_get(x_4, 1); -x_1925 = lean_ctor_get(x_4, 2); -lean_inc(x_1925); -lean_inc(x_1924); -lean_dec(x_4); -x_1926 = lean_ctor_get(x_1776, 0); -lean_inc(x_1926); -x_1927 = lean_ctor_get(x_1776, 1); -lean_inc(x_1927); -x_1928 = lean_ctor_get(x_1776, 2); -lean_inc(x_1928); -x_1929 = lean_ctor_get(x_1776, 3); -lean_inc(x_1929); -if (lean_is_exclusive(x_1776)) { - lean_ctor_release(x_1776, 0); - lean_ctor_release(x_1776, 1); - lean_ctor_release(x_1776, 2); - lean_ctor_release(x_1776, 3); - x_1930 = x_1776; -} else { - lean_dec_ref(x_1776); - x_1930 = lean_box(0); -} -x_1931 = lean_ctor_get(x_1831, 0); -lean_inc(x_1931); -x_1932 = lean_ctor_get(x_1831, 1); -lean_inc(x_1932); -x_1933 = lean_ctor_get(x_1831, 2); -lean_inc(x_1933); -x_1934 = lean_ctor_get(x_1831, 3); -lean_inc(x_1934); -if (lean_is_exclusive(x_1831)) { - lean_ctor_release(x_1831, 0); - lean_ctor_release(x_1831, 1); - lean_ctor_release(x_1831, 2); - lean_ctor_release(x_1831, 3); - x_1935 = x_1831; -} else { - lean_dec_ref(x_1831); - x_1935 = lean_box(0); -} -if (lean_is_scalar(x_1935)) { - x_1936 = lean_alloc_ctor(1, 4, 1); -} else { - x_1936 = x_1935; -} -lean_ctor_set(x_1936, 0, x_1926); -lean_ctor_set(x_1936, 1, x_1927); -lean_ctor_set(x_1936, 2, x_1928); -lean_ctor_set(x_1936, 3, x_1929); -lean_ctor_set_uint8(x_1936, sizeof(void*)*4, x_1871); -x_1937 = 1; -lean_inc(x_1); -if (lean_is_scalar(x_1930)) { - x_1938 = lean_alloc_ctor(1, 4, 1); -} else { - x_1938 = x_1930; -} -lean_ctor_set(x_1938, 0, x_1); -lean_ctor_set(x_1938, 1, x_2); -lean_ctor_set(x_1938, 2, x_3); -lean_ctor_set(x_1938, 3, x_1936); -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - lean_ctor_release(x_1, 1); - lean_ctor_release(x_1, 2); - lean_ctor_release(x_1, 3); - x_1939 = x_1; -} else { - lean_dec_ref(x_1); - x_1939 = lean_box(0); -} -lean_ctor_set_uint8(x_1938, sizeof(void*)*4, x_1937); -x_1940 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1940, 0, x_1931); -lean_ctor_set(x_1940, 1, x_1932); -lean_ctor_set(x_1940, 2, x_1933); -lean_ctor_set(x_1940, 3, x_1934); -lean_ctor_set_uint8(x_1940, sizeof(void*)*4, x_1937); -x_1941 = 0; -if (lean_is_scalar(x_1939)) { - x_1942 = lean_alloc_ctor(1, 4, 1); -} else { - x_1942 = x_1939; -} -lean_ctor_set(x_1942, 0, x_1938); -lean_ctor_set(x_1942, 1, x_1924); -lean_ctor_set(x_1942, 2, x_1925); -lean_ctor_set(x_1942, 3, x_1940); -lean_ctor_set_uint8(x_1942, sizeof(void*)*4, x_1941); -return x_1942; -} -} -else -{ -uint8_t x_1943; -x_1943 = !lean_is_exclusive(x_4); -if (x_1943 == 0) -{ -lean_object* x_1944; lean_object* x_1945; uint8_t x_1946; -x_1944 = lean_ctor_get(x_4, 3); -lean_dec(x_1944); -x_1945 = lean_ctor_get(x_4, 0); -lean_dec(x_1945); -x_1946 = !lean_is_exclusive(x_1776); -if (x_1946 == 0) -{ -lean_object* x_1947; lean_object* x_1948; lean_object* x_1949; lean_object* x_1950; uint8_t x_1951; uint8_t x_1952; -x_1947 = lean_ctor_get(x_1776, 0); -x_1948 = lean_ctor_get(x_1776, 1); -x_1949 = lean_ctor_get(x_1776, 2); -x_1950 = lean_ctor_get(x_1776, 3); -x_1951 = 1; -lean_inc(x_1); -lean_ctor_set(x_1776, 3, x_1947); -lean_ctor_set(x_1776, 2, x_3); -lean_ctor_set(x_1776, 1, x_2); -lean_ctor_set(x_1776, 0, x_1); -x_1952 = !lean_is_exclusive(x_1); -if (x_1952 == 0) -{ -lean_object* x_1953; lean_object* x_1954; lean_object* x_1955; lean_object* x_1956; uint8_t x_1957; -x_1953 = lean_ctor_get(x_1, 3); -lean_dec(x_1953); -x_1954 = lean_ctor_get(x_1, 2); -lean_dec(x_1954); -x_1955 = lean_ctor_get(x_1, 1); -lean_dec(x_1955); -x_1956 = lean_ctor_get(x_1, 0); -lean_dec(x_1956); -lean_ctor_set_uint8(x_1776, sizeof(void*)*4, x_1951); -lean_ctor_set(x_4, 0, x_1950); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1951); -x_1957 = 0; -lean_ctor_set(x_1, 3, x_4); -lean_ctor_set(x_1, 2, x_1949); -lean_ctor_set(x_1, 1, x_1948); -lean_ctor_set(x_1, 0, x_1776); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_1957); -return x_1; -} -else -{ -uint8_t x_1958; lean_object* x_1959; -lean_dec(x_1); -lean_ctor_set_uint8(x_1776, sizeof(void*)*4, x_1951); -lean_ctor_set(x_4, 0, x_1950); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1951); -x_1958 = 0; -x_1959 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1959, 0, x_1776); -lean_ctor_set(x_1959, 1, x_1948); -lean_ctor_set(x_1959, 2, x_1949); -lean_ctor_set(x_1959, 3, x_4); -lean_ctor_set_uint8(x_1959, sizeof(void*)*4, x_1958); -return x_1959; -} -} -else -{ -lean_object* x_1960; lean_object* x_1961; lean_object* x_1962; lean_object* x_1963; uint8_t x_1964; lean_object* x_1965; lean_object* x_1966; uint8_t x_1967; lean_object* x_1968; -x_1960 = lean_ctor_get(x_1776, 0); -x_1961 = lean_ctor_get(x_1776, 1); -x_1962 = lean_ctor_get(x_1776, 2); -x_1963 = lean_ctor_get(x_1776, 3); -lean_inc(x_1963); -lean_inc(x_1962); -lean_inc(x_1961); -lean_inc(x_1960); -lean_dec(x_1776); -x_1964 = 1; -lean_inc(x_1); -x_1965 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1965, 0, x_1); -lean_ctor_set(x_1965, 1, x_2); -lean_ctor_set(x_1965, 2, x_3); -lean_ctor_set(x_1965, 3, x_1960); -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - lean_ctor_release(x_1, 1); - lean_ctor_release(x_1, 2); - lean_ctor_release(x_1, 3); - x_1966 = x_1; -} else { - lean_dec_ref(x_1); - x_1966 = lean_box(0); -} -lean_ctor_set_uint8(x_1965, sizeof(void*)*4, x_1964); -lean_ctor_set(x_4, 0, x_1963); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1964); -x_1967 = 0; -if (lean_is_scalar(x_1966)) { - x_1968 = lean_alloc_ctor(1, 4, 1); -} else { - x_1968 = x_1966; -} -lean_ctor_set(x_1968, 0, x_1965); -lean_ctor_set(x_1968, 1, x_1961); -lean_ctor_set(x_1968, 2, x_1962); -lean_ctor_set(x_1968, 3, x_4); -lean_ctor_set_uint8(x_1968, sizeof(void*)*4, x_1967); -return x_1968; -} -} -else -{ -lean_object* x_1969; lean_object* x_1970; lean_object* x_1971; lean_object* x_1972; lean_object* x_1973; lean_object* x_1974; lean_object* x_1975; uint8_t x_1976; lean_object* x_1977; lean_object* x_1978; lean_object* x_1979; uint8_t x_1980; lean_object* x_1981; -x_1969 = lean_ctor_get(x_4, 1); -x_1970 = lean_ctor_get(x_4, 2); -lean_inc(x_1970); -lean_inc(x_1969); -lean_dec(x_4); -x_1971 = lean_ctor_get(x_1776, 0); -lean_inc(x_1971); -x_1972 = lean_ctor_get(x_1776, 1); -lean_inc(x_1972); -x_1973 = lean_ctor_get(x_1776, 2); -lean_inc(x_1973); -x_1974 = lean_ctor_get(x_1776, 3); -lean_inc(x_1974); -if (lean_is_exclusive(x_1776)) { - lean_ctor_release(x_1776, 0); - lean_ctor_release(x_1776, 1); - lean_ctor_release(x_1776, 2); - lean_ctor_release(x_1776, 3); - x_1975 = x_1776; -} else { - lean_dec_ref(x_1776); - x_1975 = lean_box(0); -} -x_1976 = 1; -lean_inc(x_1); -if (lean_is_scalar(x_1975)) { - x_1977 = lean_alloc_ctor(1, 4, 1); -} else { - x_1977 = x_1975; -} -lean_ctor_set(x_1977, 0, x_1); -lean_ctor_set(x_1977, 1, x_2); -lean_ctor_set(x_1977, 2, x_3); -lean_ctor_set(x_1977, 3, x_1971); -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - lean_ctor_release(x_1, 1); - lean_ctor_release(x_1, 2); - lean_ctor_release(x_1, 3); - x_1978 = x_1; -} else { - lean_dec_ref(x_1); - x_1978 = lean_box(0); -} -lean_ctor_set_uint8(x_1977, sizeof(void*)*4, x_1976); -x_1979 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1979, 0, x_1974); -lean_ctor_set(x_1979, 1, x_1969); -lean_ctor_set(x_1979, 2, x_1970); -lean_ctor_set(x_1979, 3, x_1831); -lean_ctor_set_uint8(x_1979, sizeof(void*)*4, x_1976); -x_1980 = 0; -if (lean_is_scalar(x_1978)) { - x_1981 = lean_alloc_ctor(1, 4, 1); -} else { - x_1981 = x_1978; -} -lean_ctor_set(x_1981, 0, x_1977); -lean_ctor_set(x_1981, 1, x_1972); -lean_ctor_set(x_1981, 2, x_1973); -lean_ctor_set(x_1981, 3, x_1979); -lean_ctor_set_uint8(x_1981, sizeof(void*)*4, x_1980); -return x_1981; -} -} -} -} -else -{ -lean_object* x_1982; -x_1982 = lean_ctor_get(x_4, 3); -lean_inc(x_1982); -if (lean_obj_tag(x_1982) == 0) -{ -uint8_t x_1983; -x_1983 = !lean_is_exclusive(x_1776); -if (x_1983 == 0) -{ -lean_object* x_1984; lean_object* x_1985; lean_object* x_1986; lean_object* x_1987; uint8_t x_1988; -x_1984 = lean_ctor_get(x_1776, 3); -lean_dec(x_1984); -x_1985 = lean_ctor_get(x_1776, 2); -lean_dec(x_1985); -x_1986 = lean_ctor_get(x_1776, 1); -lean_dec(x_1986); -x_1987 = lean_ctor_get(x_1776, 0); -lean_dec(x_1987); -x_1988 = 1; -lean_ctor_set(x_1776, 3, x_4); -lean_ctor_set(x_1776, 2, x_3); -lean_ctor_set(x_1776, 1, x_2); -lean_ctor_set(x_1776, 0, x_1); -lean_ctor_set_uint8(x_1776, sizeof(void*)*4, x_1988); -return x_1776; -} -else -{ -uint8_t x_1989; lean_object* x_1990; -lean_dec(x_1776); -x_1989 = 1; -x_1990 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_1990, 0, x_1); -lean_ctor_set(x_1990, 1, x_2); -lean_ctor_set(x_1990, 2, x_3); -lean_ctor_set(x_1990, 3, x_4); -lean_ctor_set_uint8(x_1990, sizeof(void*)*4, x_1989); -return x_1990; -} -} -else -{ -uint8_t x_1991; -x_1991 = lean_ctor_get_uint8(x_1982, sizeof(void*)*4); -if (x_1991 == 0) -{ -uint8_t x_1992; -x_1992 = !lean_is_exclusive(x_4); -if (x_1992 == 0) -{ -lean_object* x_1993; lean_object* x_1994; uint8_t x_1995; -x_1993 = lean_ctor_get(x_4, 3); -lean_dec(x_1993); -x_1994 = lean_ctor_get(x_4, 0); -lean_dec(x_1994); -x_1995 = !lean_is_exclusive(x_1982); -if (x_1995 == 0) -{ -lean_object* x_1996; lean_object* x_1997; lean_object* x_1998; lean_object* x_1999; uint8_t x_2000; uint8_t x_2001; -x_1996 = lean_ctor_get(x_1982, 0); -x_1997 = lean_ctor_get(x_1982, 1); -x_1998 = lean_ctor_get(x_1982, 2); -x_1999 = lean_ctor_get(x_1982, 3); -x_2000 = 1; -lean_inc(x_1776); -lean_ctor_set(x_1982, 3, x_1776); -lean_ctor_set(x_1982, 2, x_3); -lean_ctor_set(x_1982, 1, x_2); -lean_ctor_set(x_1982, 0, x_1); -x_2001 = !lean_is_exclusive(x_1776); -if (x_2001 == 0) -{ -lean_object* x_2002; lean_object* x_2003; lean_object* x_2004; lean_object* x_2005; uint8_t x_2006; -x_2002 = lean_ctor_get(x_1776, 3); -lean_dec(x_2002); -x_2003 = lean_ctor_get(x_1776, 2); -lean_dec(x_2003); -x_2004 = lean_ctor_get(x_1776, 1); -lean_dec(x_2004); -x_2005 = lean_ctor_get(x_1776, 0); -lean_dec(x_2005); -lean_ctor_set_uint8(x_1982, sizeof(void*)*4, x_2000); -lean_ctor_set(x_1776, 3, x_1999); -lean_ctor_set(x_1776, 2, x_1998); -lean_ctor_set(x_1776, 1, x_1997); -lean_ctor_set(x_1776, 0, x_1996); -lean_ctor_set_uint8(x_1776, sizeof(void*)*4, x_2000); -x_2006 = 0; -lean_ctor_set(x_4, 3, x_1776); -lean_ctor_set(x_4, 0, x_1982); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_2006); -return x_4; -} -else -{ -lean_object* x_2007; uint8_t x_2008; -lean_dec(x_1776); -lean_ctor_set_uint8(x_1982, sizeof(void*)*4, x_2000); -x_2007 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_2007, 0, x_1996); -lean_ctor_set(x_2007, 1, x_1997); -lean_ctor_set(x_2007, 2, x_1998); -lean_ctor_set(x_2007, 3, x_1999); -lean_ctor_set_uint8(x_2007, sizeof(void*)*4, x_2000); -x_2008 = 0; -lean_ctor_set(x_4, 3, x_2007); -lean_ctor_set(x_4, 0, x_1982); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_2008); -return x_4; -} -} -else -{ -lean_object* x_2009; lean_object* x_2010; lean_object* x_2011; lean_object* x_2012; uint8_t x_2013; lean_object* x_2014; lean_object* x_2015; lean_object* x_2016; uint8_t x_2017; -x_2009 = lean_ctor_get(x_1982, 0); -x_2010 = lean_ctor_get(x_1982, 1); -x_2011 = lean_ctor_get(x_1982, 2); -x_2012 = lean_ctor_get(x_1982, 3); -lean_inc(x_2012); -lean_inc(x_2011); -lean_inc(x_2010); -lean_inc(x_2009); -lean_dec(x_1982); -x_2013 = 1; -lean_inc(x_1776); -x_2014 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_2014, 0, x_1); -lean_ctor_set(x_2014, 1, x_2); -lean_ctor_set(x_2014, 2, x_3); -lean_ctor_set(x_2014, 3, x_1776); -if (lean_is_exclusive(x_1776)) { - lean_ctor_release(x_1776, 0); - lean_ctor_release(x_1776, 1); - lean_ctor_release(x_1776, 2); - lean_ctor_release(x_1776, 3); - x_2015 = x_1776; -} else { - lean_dec_ref(x_1776); - x_2015 = lean_box(0); -} -lean_ctor_set_uint8(x_2014, sizeof(void*)*4, x_2013); -if (lean_is_scalar(x_2015)) { - x_2016 = lean_alloc_ctor(1, 4, 1); -} else { - x_2016 = x_2015; -} -lean_ctor_set(x_2016, 0, x_2009); -lean_ctor_set(x_2016, 1, x_2010); -lean_ctor_set(x_2016, 2, x_2011); -lean_ctor_set(x_2016, 3, x_2012); -lean_ctor_set_uint8(x_2016, sizeof(void*)*4, x_2013); -x_2017 = 0; -lean_ctor_set(x_4, 3, x_2016); -lean_ctor_set(x_4, 0, x_2014); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_2017); -return x_4; -} -} -else -{ -lean_object* x_2018; lean_object* x_2019; lean_object* x_2020; lean_object* x_2021; lean_object* x_2022; lean_object* x_2023; lean_object* x_2024; uint8_t x_2025; lean_object* x_2026; lean_object* x_2027; lean_object* x_2028; uint8_t x_2029; lean_object* x_2030; -x_2018 = lean_ctor_get(x_4, 1); -x_2019 = lean_ctor_get(x_4, 2); -lean_inc(x_2019); -lean_inc(x_2018); -lean_dec(x_4); -x_2020 = lean_ctor_get(x_1982, 0); -lean_inc(x_2020); -x_2021 = lean_ctor_get(x_1982, 1); -lean_inc(x_2021); -x_2022 = lean_ctor_get(x_1982, 2); -lean_inc(x_2022); -x_2023 = lean_ctor_get(x_1982, 3); -lean_inc(x_2023); -if (lean_is_exclusive(x_1982)) { - lean_ctor_release(x_1982, 0); - lean_ctor_release(x_1982, 1); - lean_ctor_release(x_1982, 2); - lean_ctor_release(x_1982, 3); - x_2024 = x_1982; -} else { - lean_dec_ref(x_1982); - x_2024 = lean_box(0); -} -x_2025 = 1; -lean_inc(x_1776); -if (lean_is_scalar(x_2024)) { - x_2026 = lean_alloc_ctor(1, 4, 1); -} else { - x_2026 = x_2024; -} -lean_ctor_set(x_2026, 0, x_1); -lean_ctor_set(x_2026, 1, x_2); -lean_ctor_set(x_2026, 2, x_3); -lean_ctor_set(x_2026, 3, x_1776); -if (lean_is_exclusive(x_1776)) { - lean_ctor_release(x_1776, 0); - lean_ctor_release(x_1776, 1); - lean_ctor_release(x_1776, 2); - lean_ctor_release(x_1776, 3); - x_2027 = x_1776; -} else { - lean_dec_ref(x_1776); - x_2027 = lean_box(0); -} -lean_ctor_set_uint8(x_2026, sizeof(void*)*4, x_2025); -if (lean_is_scalar(x_2027)) { - x_2028 = lean_alloc_ctor(1, 4, 1); -} else { - x_2028 = x_2027; -} -lean_ctor_set(x_2028, 0, x_2020); -lean_ctor_set(x_2028, 1, x_2021); -lean_ctor_set(x_2028, 2, x_2022); -lean_ctor_set(x_2028, 3, x_2023); -lean_ctor_set_uint8(x_2028, sizeof(void*)*4, x_2025); -x_2029 = 0; -x_2030 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_2030, 0, x_2026); -lean_ctor_set(x_2030, 1, x_2018); -lean_ctor_set(x_2030, 2, x_2019); -lean_ctor_set(x_2030, 3, x_2028); -lean_ctor_set_uint8(x_2030, sizeof(void*)*4, x_2029); -return x_2030; -} -} -else -{ -uint8_t x_2031; -lean_dec(x_1776); -x_2031 = !lean_is_exclusive(x_1982); -if (x_2031 == 0) -{ -lean_object* x_2032; lean_object* x_2033; lean_object* x_2034; lean_object* x_2035; uint8_t x_2036; -x_2032 = lean_ctor_get(x_1982, 3); -lean_dec(x_2032); -x_2033 = lean_ctor_get(x_1982, 2); -lean_dec(x_2033); -x_2034 = lean_ctor_get(x_1982, 1); -lean_dec(x_2034); -x_2035 = lean_ctor_get(x_1982, 0); -lean_dec(x_2035); -x_2036 = 1; -lean_ctor_set(x_1982, 3, x_4); -lean_ctor_set(x_1982, 2, x_3); -lean_ctor_set(x_1982, 1, x_2); -lean_ctor_set(x_1982, 0, x_1); -lean_ctor_set_uint8(x_1982, sizeof(void*)*4, x_2036); -return x_1982; -} -else -{ -uint8_t x_2037; lean_object* x_2038; -lean_dec(x_1982); -x_2037 = 1; -x_2038 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_2038, 0, x_1); -lean_ctor_set(x_2038, 1, x_2); -lean_ctor_set(x_2038, 2, x_3); -lean_ctor_set(x_2038, 3, x_4); -lean_ctor_set_uint8(x_2038, sizeof(void*)*4, x_2037); -return x_2038; -} -} -} -} -} -} -else -{ -uint8_t x_2039; lean_object* x_2040; -x_2039 = 1; -x_2040 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_2040, 0, x_1); -lean_ctor_set(x_2040, 1, x_2); -lean_ctor_set(x_2040, 2, x_3); -lean_ctor_set(x_2040, 3, x_4); -lean_ctor_set_uint8(x_2040, sizeof(void*)*4, x_2039); -return x_2040; -} -} -} -} -} -} -LEAN_EXPORT lean_object* l_Lean_RBNode_balance_u2083(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l_Lean_RBNode_balance_u2083___rarg), 4, 0); -return x_3; -} -} LEAN_EXPORT lean_object* l_Lean_RBNode_setRed___rarg(lean_object* x_1) { _start: { @@ -14764,7 +5315,7 @@ lean_dec(x_26); x_27 = !lean_is_exclusive(x_8); if (x_27 == 0) { -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; lean_object* x_33; x_28 = lean_ctor_get(x_8, 0); x_29 = lean_ctor_get(x_8, 1); x_30 = lean_ctor_get(x_8, 2); @@ -14776,934 +5327,6923 @@ lean_ctor_set(x_8, 1, x_2); lean_ctor_set(x_8, 0, x_1); lean_ctor_set_uint8(x_8, sizeof(void*)*4, x_32); x_33 = l_Lean_RBNode_setRed___rarg(x_25); -x_34 = l_Lean_RBNode_balance_u2083___rarg(x_31, x_23, x_24, x_33); -x_35 = 0; -lean_ctor_set(x_4, 3, x_34); -lean_ctor_set(x_4, 2, x_30); -lean_ctor_set(x_4, 1, x_29); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_35); -return x_4; +if (lean_obj_tag(x_33) == 0) +{ +uint8_t x_34; lean_object* x_35; +lean_ctor_set(x_4, 3, x_33); +lean_ctor_set(x_4, 0, x_31); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_32); +x_34 = 0; +x_35 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_35, 0, x_8); +lean_ctor_set(x_35, 1, x_29); +lean_ctor_set(x_35, 2, x_30); +lean_ctor_set(x_35, 3, x_4); +lean_ctor_set_uint8(x_35, sizeof(void*)*4, x_34); +return x_35; } else { -lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; uint8_t x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; uint8_t x_44; -x_36 = lean_ctor_get(x_8, 0); -x_37 = lean_ctor_get(x_8, 1); -x_38 = lean_ctor_get(x_8, 2); -x_39 = lean_ctor_get(x_8, 3); -lean_inc(x_39); -lean_inc(x_38); +uint8_t x_36; +x_36 = lean_ctor_get_uint8(x_33, sizeof(void*)*4); +if (x_36 == 0) +{ +lean_object* x_37; +x_37 = lean_ctor_get(x_33, 0); lean_inc(x_37); -lean_inc(x_36); -lean_dec(x_8); -x_40 = 1; -x_41 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_41, 0, x_1); -lean_ctor_set(x_41, 1, x_2); -lean_ctor_set(x_41, 2, x_3); -lean_ctor_set(x_41, 3, x_36); -lean_ctor_set_uint8(x_41, sizeof(void*)*4, x_40); -x_42 = l_Lean_RBNode_setRed___rarg(x_25); -x_43 = l_Lean_RBNode_balance_u2083___rarg(x_39, x_23, x_24, x_42); -x_44 = 0; -lean_ctor_set(x_4, 3, x_43); -lean_ctor_set(x_4, 2, x_38); -lean_ctor_set(x_4, 1, x_37); -lean_ctor_set(x_4, 0, x_41); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_44); -return x_4; -} +if (lean_obj_tag(x_37) == 0) +{ +lean_object* x_38; +x_38 = lean_ctor_get(x_33, 3); +lean_inc(x_38); +if (lean_obj_tag(x_38) == 0) +{ +uint8_t x_39; +x_39 = !lean_is_exclusive(x_33); +if (x_39 == 0) +{ +lean_object* x_40; lean_object* x_41; uint8_t x_42; lean_object* x_43; +x_40 = lean_ctor_get(x_33, 3); +lean_dec(x_40); +x_41 = lean_ctor_get(x_33, 0); +lean_dec(x_41); +lean_ctor_set(x_33, 0, x_38); +lean_ctor_set(x_4, 3, x_33); +lean_ctor_set(x_4, 0, x_31); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_32); +x_42 = 0; +x_43 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_43, 0, x_8); +lean_ctor_set(x_43, 1, x_29); +lean_ctor_set(x_43, 2, x_30); +lean_ctor_set(x_43, 3, x_4); +lean_ctor_set_uint8(x_43, sizeof(void*)*4, x_42); +return x_43; } else { -lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; uint8_t x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; uint8_t x_57; lean_object* x_58; -x_45 = lean_ctor_get(x_4, 1); -x_46 = lean_ctor_get(x_4, 2); -x_47 = lean_ctor_get(x_4, 3); -lean_inc(x_47); -lean_inc(x_46); +lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; lean_object* x_48; +x_44 = lean_ctor_get(x_33, 1); +x_45 = lean_ctor_get(x_33, 2); lean_inc(x_45); -lean_dec(x_4); -x_48 = lean_ctor_get(x_8, 0); -lean_inc(x_48); -x_49 = lean_ctor_get(x_8, 1); -lean_inc(x_49); -x_50 = lean_ctor_get(x_8, 2); -lean_inc(x_50); -x_51 = lean_ctor_get(x_8, 3); -lean_inc(x_51); -if (lean_is_exclusive(x_8)) { - lean_ctor_release(x_8, 0); - lean_ctor_release(x_8, 1); - lean_ctor_release(x_8, 2); - lean_ctor_release(x_8, 3); - x_52 = x_8; -} else { - lean_dec_ref(x_8); - x_52 = lean_box(0); -} -x_53 = 1; -if (lean_is_scalar(x_52)) { - x_54 = lean_alloc_ctor(1, 4, 1); -} else { - x_54 = x_52; -} -lean_ctor_set(x_54, 0, x_1); -lean_ctor_set(x_54, 1, x_2); -lean_ctor_set(x_54, 2, x_3); -lean_ctor_set(x_54, 3, x_48); -lean_ctor_set_uint8(x_54, sizeof(void*)*4, x_53); -x_55 = l_Lean_RBNode_setRed___rarg(x_47); -x_56 = l_Lean_RBNode_balance_u2083___rarg(x_51, x_45, x_46, x_55); -x_57 = 0; -x_58 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_58, 0, x_54); -lean_ctor_set(x_58, 1, x_49); -lean_ctor_set(x_58, 2, x_50); -lean_ctor_set(x_58, 3, x_56); -lean_ctor_set_uint8(x_58, sizeof(void*)*4, x_57); -return x_58; -} -} +lean_inc(x_44); +lean_dec(x_33); +x_46 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_46, 0, x_38); +lean_ctor_set(x_46, 1, x_44); +lean_ctor_set(x_46, 2, x_45); +lean_ctor_set(x_46, 3, x_38); +lean_ctor_set_uint8(x_46, sizeof(void*)*4, x_36); +lean_ctor_set(x_4, 3, x_46); +lean_ctor_set(x_4, 0, x_31); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_32); +x_47 = 0; +x_48 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_48, 0, x_8); +lean_ctor_set(x_48, 1, x_29); +lean_ctor_set(x_48, 2, x_30); +lean_ctor_set(x_48, 3, x_4); +lean_ctor_set_uint8(x_48, sizeof(void*)*4, x_47); +return x_48; } } else { -uint8_t x_59; -x_59 = !lean_is_exclusive(x_4); -if (x_59 == 0) +uint8_t x_49; +x_49 = lean_ctor_get_uint8(x_38, sizeof(void*)*4); +if (x_49 == 0) { -uint8_t x_60; lean_object* x_61; +uint8_t x_50; +x_50 = !lean_is_exclusive(x_33); +if (x_50 == 0) +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; +x_51 = lean_ctor_get(x_33, 1); +x_52 = lean_ctor_get(x_33, 2); +x_53 = lean_ctor_get(x_33, 3); +lean_dec(x_53); +x_54 = lean_ctor_get(x_33, 0); +lean_dec(x_54); +x_55 = !lean_is_exclusive(x_38); +if (x_55 == 0) +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; uint8_t x_60; lean_object* x_61; +x_56 = lean_ctor_get(x_38, 0); +x_57 = lean_ctor_get(x_38, 1); +x_58 = lean_ctor_get(x_38, 2); +x_59 = lean_ctor_get(x_38, 3); +lean_ctor_set(x_38, 3, x_37); +lean_ctor_set(x_38, 2, x_24); +lean_ctor_set(x_38, 1, x_23); +lean_ctor_set(x_38, 0, x_31); +lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_32); +lean_ctor_set(x_33, 3, x_59); +lean_ctor_set(x_33, 2, x_58); +lean_ctor_set(x_33, 1, x_57); +lean_ctor_set(x_33, 0, x_56); +lean_ctor_set_uint8(x_33, sizeof(void*)*4, x_32); x_60 = 0; +lean_ctor_set(x_4, 3, x_33); +lean_ctor_set(x_4, 2, x_52); +lean_ctor_set(x_4, 1, x_51); +lean_ctor_set(x_4, 0, x_38); lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_60); -x_61 = l_Lean_RBNode_balance_u2083___rarg(x_1, x_2, x_3, x_4); +x_61 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_61, 0, x_8); +lean_ctor_set(x_61, 1, x_29); +lean_ctor_set(x_61, 2, x_30); +lean_ctor_set(x_61, 3, x_4); +lean_ctor_set_uint8(x_61, sizeof(void*)*4, x_60); return x_61; } else { -lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; uint8_t x_66; lean_object* x_67; lean_object* x_68; -x_62 = lean_ctor_get(x_4, 0); -x_63 = lean_ctor_get(x_4, 1); -x_64 = lean_ctor_get(x_4, 2); -x_65 = lean_ctor_get(x_4, 3); +lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; uint8_t x_67; lean_object* x_68; +x_62 = lean_ctor_get(x_38, 0); +x_63 = lean_ctor_get(x_38, 1); +x_64 = lean_ctor_get(x_38, 2); +x_65 = lean_ctor_get(x_38, 3); lean_inc(x_65); lean_inc(x_64); lean_inc(x_63); lean_inc(x_62); -lean_dec(x_4); -x_66 = 0; -x_67 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_67, 0, x_62); -lean_ctor_set(x_67, 1, x_63); -lean_ctor_set(x_67, 2, x_64); -lean_ctor_set(x_67, 3, x_65); -lean_ctor_set_uint8(x_67, sizeof(void*)*4, x_66); -x_68 = l_Lean_RBNode_balance_u2083___rarg(x_1, x_2, x_3, x_67); +lean_dec(x_38); +x_66 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_66, 0, x_31); +lean_ctor_set(x_66, 1, x_23); +lean_ctor_set(x_66, 2, x_24); +lean_ctor_set(x_66, 3, x_37); +lean_ctor_set_uint8(x_66, sizeof(void*)*4, x_32); +lean_ctor_set(x_33, 3, x_65); +lean_ctor_set(x_33, 2, x_64); +lean_ctor_set(x_33, 1, x_63); +lean_ctor_set(x_33, 0, x_62); +lean_ctor_set_uint8(x_33, sizeof(void*)*4, x_32); +x_67 = 0; +lean_ctor_set(x_4, 3, x_33); +lean_ctor_set(x_4, 2, x_52); +lean_ctor_set(x_4, 1, x_51); +lean_ctor_set(x_4, 0, x_66); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_67); +x_68 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_68, 0, x_8); +lean_ctor_set(x_68, 1, x_29); +lean_ctor_set(x_68, 2, x_30); +lean_ctor_set(x_68, 3, x_4); +lean_ctor_set_uint8(x_68, sizeof(void*)*4, x_67); return x_68; } } -} -} else { -uint8_t x_69; -x_69 = lean_ctor_get_uint8(x_1, sizeof(void*)*4); -if (x_69 == 0) -{ -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_70; -x_70 = !lean_is_exclusive(x_1); -if (x_70 == 0) -{ -uint8_t x_71; uint8_t x_72; lean_object* x_73; -x_71 = 1; -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_71); -x_72 = 0; -x_73 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_73, 0, x_1); -lean_ctor_set(x_73, 1, x_2); -lean_ctor_set(x_73, 2, x_3); -lean_ctor_set(x_73, 3, x_4); -lean_ctor_set_uint8(x_73, sizeof(void*)*4, x_72); -return x_73; -} -else -{ -lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; uint8_t x_78; lean_object* x_79; uint8_t x_80; lean_object* x_81; -x_74 = lean_ctor_get(x_1, 0); -x_75 = lean_ctor_get(x_1, 1); -x_76 = lean_ctor_get(x_1, 2); -x_77 = lean_ctor_get(x_1, 3); -lean_inc(x_77); -lean_inc(x_76); -lean_inc(x_75); +lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; uint8_t x_78; lean_object* x_79; +x_69 = lean_ctor_get(x_33, 1); +x_70 = lean_ctor_get(x_33, 2); +lean_inc(x_70); +lean_inc(x_69); +lean_dec(x_33); +x_71 = lean_ctor_get(x_38, 0); +lean_inc(x_71); +x_72 = lean_ctor_get(x_38, 1); +lean_inc(x_72); +x_73 = lean_ctor_get(x_38, 2); +lean_inc(x_73); +x_74 = lean_ctor_get(x_38, 3); lean_inc(x_74); -lean_dec(x_1); -x_78 = 1; +if (lean_is_exclusive(x_38)) { + lean_ctor_release(x_38, 0); + lean_ctor_release(x_38, 1); + lean_ctor_release(x_38, 2); + lean_ctor_release(x_38, 3); + x_75 = x_38; +} else { + lean_dec_ref(x_38); + x_75 = lean_box(0); +} +if (lean_is_scalar(x_75)) { + x_76 = lean_alloc_ctor(1, 4, 1); +} else { + x_76 = x_75; +} +lean_ctor_set(x_76, 0, x_31); +lean_ctor_set(x_76, 1, x_23); +lean_ctor_set(x_76, 2, x_24); +lean_ctor_set(x_76, 3, x_37); +lean_ctor_set_uint8(x_76, sizeof(void*)*4, x_32); +x_77 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_77, 0, x_71); +lean_ctor_set(x_77, 1, x_72); +lean_ctor_set(x_77, 2, x_73); +lean_ctor_set(x_77, 3, x_74); +lean_ctor_set_uint8(x_77, sizeof(void*)*4, x_32); +x_78 = 0; +lean_ctor_set(x_4, 3, x_77); +lean_ctor_set(x_4, 2, x_70); +lean_ctor_set(x_4, 1, x_69); +lean_ctor_set(x_4, 0, x_76); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_78); x_79 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_79, 0, x_74); -lean_ctor_set(x_79, 1, x_75); -lean_ctor_set(x_79, 2, x_76); -lean_ctor_set(x_79, 3, x_77); +lean_ctor_set(x_79, 0, x_8); +lean_ctor_set(x_79, 1, x_29); +lean_ctor_set(x_79, 2, x_30); +lean_ctor_set(x_79, 3, x_4); lean_ctor_set_uint8(x_79, sizeof(void*)*4, x_78); -x_80 = 0; -x_81 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_81, 0, x_79); -lean_ctor_set(x_81, 1, x_2); -lean_ctor_set(x_81, 2, x_3); -lean_ctor_set(x_81, 3, x_4); -lean_ctor_set_uint8(x_81, sizeof(void*)*4, x_80); -return x_81; +return x_79; } } else { -uint8_t x_82; -x_82 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_82 == 0) +uint8_t x_80; +lean_free_object(x_4); +x_80 = !lean_is_exclusive(x_38); +if (x_80 == 0) { -lean_object* x_83; -x_83 = lean_ctor_get(x_4, 0); -lean_inc(x_83); -if (lean_obj_tag(x_83) == 0) +lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; uint8_t x_85; +x_81 = lean_ctor_get(x_38, 3); +lean_dec(x_81); +x_82 = lean_ctor_get(x_38, 2); +lean_dec(x_82); +x_83 = lean_ctor_get(x_38, 1); +lean_dec(x_83); +x_84 = lean_ctor_get(x_38, 0); +lean_dec(x_84); +lean_inc(x_33); +lean_ctor_set(x_38, 3, x_33); +lean_ctor_set(x_38, 2, x_24); +lean_ctor_set(x_38, 1, x_23); +lean_ctor_set(x_38, 0, x_31); +x_85 = !lean_is_exclusive(x_33); +if (x_85 == 0) { -uint8_t x_84; -x_84 = !lean_is_exclusive(x_1); -if (x_84 == 0) -{ -uint8_t x_85; uint8_t x_86; lean_object* x_87; -x_85 = 1; -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_85); -x_86 = 0; -x_87 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_87, 0, x_1); -lean_ctor_set(x_87, 1, x_2); -lean_ctor_set(x_87, 2, x_3); -lean_ctor_set(x_87, 3, x_4); -lean_ctor_set_uint8(x_87, sizeof(void*)*4, x_86); -return x_87; +lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; uint8_t x_90; +x_86 = lean_ctor_get(x_33, 3); +lean_dec(x_86); +x_87 = lean_ctor_get(x_33, 2); +lean_dec(x_87); +x_88 = lean_ctor_get(x_33, 1); +lean_dec(x_88); +x_89 = lean_ctor_get(x_33, 0); +lean_dec(x_89); +lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_32); +x_90 = 0; +lean_ctor_set(x_33, 2, x_30); +lean_ctor_set(x_33, 1, x_29); +lean_ctor_set(x_33, 0, x_8); +lean_ctor_set_uint8(x_33, sizeof(void*)*4, x_90); +return x_33; } else { -lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; uint8_t x_92; lean_object* x_93; uint8_t x_94; lean_object* x_95; -x_88 = lean_ctor_get(x_1, 0); -x_89 = lean_ctor_get(x_1, 1); -x_90 = lean_ctor_get(x_1, 2); -x_91 = lean_ctor_get(x_1, 3); -lean_inc(x_91); -lean_inc(x_90); -lean_inc(x_89); -lean_inc(x_88); -lean_dec(x_1); -x_92 = 1; +uint8_t x_91; lean_object* x_92; +lean_dec(x_33); +lean_ctor_set_uint8(x_38, sizeof(void*)*4, x_32); +x_91 = 0; +x_92 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_92, 0, x_8); +lean_ctor_set(x_92, 1, x_29); +lean_ctor_set(x_92, 2, x_30); +lean_ctor_set(x_92, 3, x_38); +lean_ctor_set_uint8(x_92, sizeof(void*)*4, x_91); +return x_92; +} +} +else +{ +lean_object* x_93; lean_object* x_94; uint8_t x_95; lean_object* x_96; +lean_dec(x_38); +lean_inc(x_33); x_93 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_93, 0, x_88); -lean_ctor_set(x_93, 1, x_89); -lean_ctor_set(x_93, 2, x_90); -lean_ctor_set(x_93, 3, x_91); -lean_ctor_set_uint8(x_93, sizeof(void*)*4, x_92); -x_94 = 0; -x_95 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_95, 0, x_93); -lean_ctor_set(x_95, 1, x_2); -lean_ctor_set(x_95, 2, x_3); -lean_ctor_set(x_95, 3, x_4); -lean_ctor_set_uint8(x_95, sizeof(void*)*4, x_94); -return x_95; +lean_ctor_set(x_93, 0, x_31); +lean_ctor_set(x_93, 1, x_23); +lean_ctor_set(x_93, 2, x_24); +lean_ctor_set(x_93, 3, x_33); +if (lean_is_exclusive(x_33)) { + lean_ctor_release(x_33, 0); + lean_ctor_release(x_33, 1); + lean_ctor_release(x_33, 2); + lean_ctor_release(x_33, 3); + x_94 = x_33; +} else { + lean_dec_ref(x_33); + x_94 = lean_box(0); +} +lean_ctor_set_uint8(x_93, sizeof(void*)*4, x_32); +x_95 = 0; +if (lean_is_scalar(x_94)) { + x_96 = lean_alloc_ctor(1, 4, 1); +} else { + x_96 = x_94; +} +lean_ctor_set(x_96, 0, x_8); +lean_ctor_set(x_96, 1, x_29); +lean_ctor_set(x_96, 2, x_30); +lean_ctor_set(x_96, 3, x_93); +lean_ctor_set_uint8(x_96, sizeof(void*)*4, x_95); +return x_96; +} +} } } else { -uint8_t x_96; -x_96 = lean_ctor_get_uint8(x_83, sizeof(void*)*4); -if (x_96 == 0) -{ uint8_t x_97; -x_97 = !lean_is_exclusive(x_1); +x_97 = lean_ctor_get_uint8(x_37, sizeof(void*)*4); if (x_97 == 0) { uint8_t x_98; -x_98 = !lean_is_exclusive(x_4); +x_98 = !lean_is_exclusive(x_33); if (x_98 == 0) { -lean_object* x_99; uint8_t x_100; uint8_t x_101; lean_object* x_102; -x_99 = lean_ctor_get(x_4, 0); +lean_object* x_99; uint8_t x_100; +x_99 = lean_ctor_get(x_33, 0); lean_dec(x_99); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_96); -x_100 = 1; -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_100); -x_101 = 0; -x_102 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_102, 0, x_1); -lean_ctor_set(x_102, 1, x_2); -lean_ctor_set(x_102, 2, x_3); -lean_ctor_set(x_102, 3, x_4); -lean_ctor_set_uint8(x_102, sizeof(void*)*4, x_101); -return x_102; -} -else +x_100 = !lean_is_exclusive(x_37); +if (x_100 == 0) { -lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; uint8_t x_107; uint8_t x_108; lean_object* x_109; -x_103 = lean_ctor_get(x_4, 1); -x_104 = lean_ctor_get(x_4, 2); -x_105 = lean_ctor_get(x_4, 3); -lean_inc(x_105); -lean_inc(x_104); -lean_inc(x_103); -lean_dec(x_4); +lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; uint8_t x_105; lean_object* x_106; +x_101 = lean_ctor_get(x_37, 0); +x_102 = lean_ctor_get(x_37, 1); +x_103 = lean_ctor_get(x_37, 2); +x_104 = lean_ctor_get(x_37, 3); +lean_ctor_set(x_37, 3, x_101); +lean_ctor_set(x_37, 2, x_24); +lean_ctor_set(x_37, 1, x_23); +lean_ctor_set(x_37, 0, x_31); +lean_ctor_set_uint8(x_37, sizeof(void*)*4, x_32); +lean_ctor_set(x_33, 0, x_104); +lean_ctor_set_uint8(x_33, sizeof(void*)*4, x_32); +x_105 = 0; +lean_ctor_set(x_4, 3, x_33); +lean_ctor_set(x_4, 2, x_103); +lean_ctor_set(x_4, 1, x_102); +lean_ctor_set(x_4, 0, x_37); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_105); x_106 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_106, 0, x_83); -lean_ctor_set(x_106, 1, x_103); -lean_ctor_set(x_106, 2, x_104); -lean_ctor_set(x_106, 3, x_105); -lean_ctor_set_uint8(x_106, sizeof(void*)*4, x_96); -x_107 = 1; -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_107); -x_108 = 0; -x_109 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_109, 0, x_1); -lean_ctor_set(x_109, 1, x_2); -lean_ctor_set(x_109, 2, x_3); -lean_ctor_set(x_109, 3, x_106); -lean_ctor_set_uint8(x_109, sizeof(void*)*4, x_108); -return x_109; -} +lean_ctor_set(x_106, 0, x_8); +lean_ctor_set(x_106, 1, x_29); +lean_ctor_set(x_106, 2, x_30); +lean_ctor_set(x_106, 3, x_4); +lean_ctor_set_uint8(x_106, sizeof(void*)*4, x_105); +return x_106; } else { -lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; uint8_t x_119; lean_object* x_120; uint8_t x_121; lean_object* x_122; -x_110 = lean_ctor_get(x_1, 0); -x_111 = lean_ctor_get(x_1, 1); -x_112 = lean_ctor_get(x_1, 2); -x_113 = lean_ctor_get(x_1, 3); -lean_inc(x_113); -lean_inc(x_112); -lean_inc(x_111); +lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; uint8_t x_112; lean_object* x_113; +x_107 = lean_ctor_get(x_37, 0); +x_108 = lean_ctor_get(x_37, 1); +x_109 = lean_ctor_get(x_37, 2); +x_110 = lean_ctor_get(x_37, 3); lean_inc(x_110); -lean_dec(x_1); -x_114 = lean_ctor_get(x_4, 1); -lean_inc(x_114); -x_115 = lean_ctor_get(x_4, 2); -lean_inc(x_115); -x_116 = lean_ctor_get(x_4, 3); +lean_inc(x_109); +lean_inc(x_108); +lean_inc(x_107); +lean_dec(x_37); +x_111 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_111, 0, x_31); +lean_ctor_set(x_111, 1, x_23); +lean_ctor_set(x_111, 2, x_24); +lean_ctor_set(x_111, 3, x_107); +lean_ctor_set_uint8(x_111, sizeof(void*)*4, x_32); +lean_ctor_set(x_33, 0, x_110); +lean_ctor_set_uint8(x_33, sizeof(void*)*4, x_32); +x_112 = 0; +lean_ctor_set(x_4, 3, x_33); +lean_ctor_set(x_4, 2, x_109); +lean_ctor_set(x_4, 1, x_108); +lean_ctor_set(x_4, 0, x_111); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_112); +x_113 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_113, 0, x_8); +lean_ctor_set(x_113, 1, x_29); +lean_ctor_set(x_113, 2, x_30); +lean_ctor_set(x_113, 3, x_4); +lean_ctor_set_uint8(x_113, sizeof(void*)*4, x_112); +return x_113; +} +} +else +{ +lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; uint8_t x_124; lean_object* x_125; +x_114 = lean_ctor_get(x_33, 1); +x_115 = lean_ctor_get(x_33, 2); +x_116 = lean_ctor_get(x_33, 3); lean_inc(x_116); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_117 = x_4; +lean_inc(x_115); +lean_inc(x_114); +lean_dec(x_33); +x_117 = lean_ctor_get(x_37, 0); +lean_inc(x_117); +x_118 = lean_ctor_get(x_37, 1); +lean_inc(x_118); +x_119 = lean_ctor_get(x_37, 2); +lean_inc(x_119); +x_120 = lean_ctor_get(x_37, 3); +lean_inc(x_120); +if (lean_is_exclusive(x_37)) { + lean_ctor_release(x_37, 0); + lean_ctor_release(x_37, 1); + lean_ctor_release(x_37, 2); + lean_ctor_release(x_37, 3); + x_121 = x_37; } else { - lean_dec_ref(x_4); - x_117 = lean_box(0); + lean_dec_ref(x_37); + x_121 = lean_box(0); } -if (lean_is_scalar(x_117)) { - x_118 = lean_alloc_ctor(1, 4, 1); +if (lean_is_scalar(x_121)) { + x_122 = lean_alloc_ctor(1, 4, 1); } else { - x_118 = x_117; + x_122 = x_121; } -lean_ctor_set(x_118, 0, x_83); -lean_ctor_set(x_118, 1, x_114); -lean_ctor_set(x_118, 2, x_115); -lean_ctor_set(x_118, 3, x_116); -lean_ctor_set_uint8(x_118, sizeof(void*)*4, x_96); -x_119 = 1; -x_120 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_120, 0, x_110); -lean_ctor_set(x_120, 1, x_111); -lean_ctor_set(x_120, 2, x_112); -lean_ctor_set(x_120, 3, x_113); -lean_ctor_set_uint8(x_120, sizeof(void*)*4, x_119); -x_121 = 0; -x_122 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_122, 0, x_120); -lean_ctor_set(x_122, 1, x_2); -lean_ctor_set(x_122, 2, x_3); -lean_ctor_set(x_122, 3, x_118); -lean_ctor_set_uint8(x_122, sizeof(void*)*4, x_121); -return x_122; +lean_ctor_set(x_122, 0, x_31); +lean_ctor_set(x_122, 1, x_23); +lean_ctor_set(x_122, 2, x_24); +lean_ctor_set(x_122, 3, x_117); +lean_ctor_set_uint8(x_122, sizeof(void*)*4, x_32); +x_123 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_123, 0, x_120); +lean_ctor_set(x_123, 1, x_114); +lean_ctor_set(x_123, 2, x_115); +lean_ctor_set(x_123, 3, x_116); +lean_ctor_set_uint8(x_123, sizeof(void*)*4, x_32); +x_124 = 0; +lean_ctor_set(x_4, 3, x_123); +lean_ctor_set(x_4, 2, x_119); +lean_ctor_set(x_4, 1, x_118); +lean_ctor_set(x_4, 0, x_122); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_124); +x_125 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_125, 0, x_8); +lean_ctor_set(x_125, 1, x_29); +lean_ctor_set(x_125, 2, x_30); +lean_ctor_set(x_125, 3, x_4); +lean_ctor_set_uint8(x_125, sizeof(void*)*4, x_124); +return x_125; } } else { -uint8_t x_123; -x_123 = !lean_is_exclusive(x_83); -if (x_123 == 0) +lean_object* x_126; +x_126 = lean_ctor_get(x_33, 3); +lean_inc(x_126); +if (lean_obj_tag(x_126) == 0) { -lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; uint8_t x_128; -x_124 = lean_ctor_get(x_83, 3); -lean_dec(x_124); -x_125 = lean_ctor_get(x_83, 2); -lean_dec(x_125); -x_126 = lean_ctor_get(x_83, 1); +uint8_t x_127; +lean_free_object(x_4); +x_127 = !lean_is_exclusive(x_37); +if (x_127 == 0) +{ +lean_object* x_128; lean_object* x_129; lean_object* x_130; lean_object* x_131; uint8_t x_132; +x_128 = lean_ctor_get(x_37, 3); +lean_dec(x_128); +x_129 = lean_ctor_get(x_37, 2); +lean_dec(x_129); +x_130 = lean_ctor_get(x_37, 1); +lean_dec(x_130); +x_131 = lean_ctor_get(x_37, 0); +lean_dec(x_131); +lean_inc(x_33); +lean_ctor_set(x_37, 3, x_33); +lean_ctor_set(x_37, 2, x_24); +lean_ctor_set(x_37, 1, x_23); +lean_ctor_set(x_37, 0, x_31); +x_132 = !lean_is_exclusive(x_33); +if (x_132 == 0) +{ +lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; uint8_t x_137; +x_133 = lean_ctor_get(x_33, 3); +lean_dec(x_133); +x_134 = lean_ctor_get(x_33, 2); +lean_dec(x_134); +x_135 = lean_ctor_get(x_33, 1); +lean_dec(x_135); +x_136 = lean_ctor_get(x_33, 0); +lean_dec(x_136); +lean_ctor_set_uint8(x_37, sizeof(void*)*4, x_32); +x_137 = 0; +lean_ctor_set(x_33, 3, x_37); +lean_ctor_set(x_33, 2, x_30); +lean_ctor_set(x_33, 1, x_29); +lean_ctor_set(x_33, 0, x_8); +lean_ctor_set_uint8(x_33, sizeof(void*)*4, x_137); +return x_33; +} +else +{ +uint8_t x_138; lean_object* x_139; +lean_dec(x_33); +lean_ctor_set_uint8(x_37, sizeof(void*)*4, x_32); +x_138 = 0; +x_139 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_139, 0, x_8); +lean_ctor_set(x_139, 1, x_29); +lean_ctor_set(x_139, 2, x_30); +lean_ctor_set(x_139, 3, x_37); +lean_ctor_set_uint8(x_139, sizeof(void*)*4, x_138); +return x_139; +} +} +else +{ +lean_object* x_140; lean_object* x_141; uint8_t x_142; lean_object* x_143; +lean_dec(x_37); +lean_inc(x_33); +x_140 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_140, 0, x_31); +lean_ctor_set(x_140, 1, x_23); +lean_ctor_set(x_140, 2, x_24); +lean_ctor_set(x_140, 3, x_33); +if (lean_is_exclusive(x_33)) { + lean_ctor_release(x_33, 0); + lean_ctor_release(x_33, 1); + lean_ctor_release(x_33, 2); + lean_ctor_release(x_33, 3); + x_141 = x_33; +} else { + lean_dec_ref(x_33); + x_141 = lean_box(0); +} +lean_ctor_set_uint8(x_140, sizeof(void*)*4, x_32); +x_142 = 0; +if (lean_is_scalar(x_141)) { + x_143 = lean_alloc_ctor(1, 4, 1); +} else { + x_143 = x_141; +} +lean_ctor_set(x_143, 0, x_8); +lean_ctor_set(x_143, 1, x_29); +lean_ctor_set(x_143, 2, x_30); +lean_ctor_set(x_143, 3, x_140); +lean_ctor_set_uint8(x_143, sizeof(void*)*4, x_142); +return x_143; +} +} +else +{ +uint8_t x_144; +x_144 = lean_ctor_get_uint8(x_126, sizeof(void*)*4); +if (x_144 == 0) +{ +uint8_t x_145; +x_145 = !lean_is_exclusive(x_33); +if (x_145 == 0) +{ +lean_object* x_146; lean_object* x_147; uint8_t x_148; +x_146 = lean_ctor_get(x_33, 3); +lean_dec(x_146); +x_147 = lean_ctor_get(x_33, 0); +lean_dec(x_147); +x_148 = !lean_is_exclusive(x_126); +if (x_148 == 0) +{ +lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; uint8_t x_153; +x_149 = lean_ctor_get(x_126, 0); +x_150 = lean_ctor_get(x_126, 1); +x_151 = lean_ctor_get(x_126, 2); +x_152 = lean_ctor_get(x_126, 3); +lean_inc(x_37); +lean_ctor_set(x_126, 3, x_37); +lean_ctor_set(x_126, 2, x_24); +lean_ctor_set(x_126, 1, x_23); +lean_ctor_set(x_126, 0, x_31); +x_153 = !lean_is_exclusive(x_37); +if (x_153 == 0) +{ +lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; uint8_t x_158; +x_154 = lean_ctor_get(x_37, 3); +lean_dec(x_154); +x_155 = lean_ctor_get(x_37, 2); +lean_dec(x_155); +x_156 = lean_ctor_get(x_37, 1); +lean_dec(x_156); +x_157 = lean_ctor_get(x_37, 0); +lean_dec(x_157); +lean_ctor_set_uint8(x_126, sizeof(void*)*4, x_32); +lean_ctor_set(x_37, 3, x_152); +lean_ctor_set(x_37, 2, x_151); +lean_ctor_set(x_37, 1, x_150); +lean_ctor_set(x_37, 0, x_149); +lean_ctor_set_uint8(x_37, sizeof(void*)*4, x_32); +x_158 = 0; +lean_ctor_set(x_33, 3, x_37); +lean_ctor_set(x_33, 0, x_126); +lean_ctor_set_uint8(x_33, sizeof(void*)*4, x_158); +lean_ctor_set(x_4, 3, x_33); +lean_ctor_set(x_4, 2, x_30); +lean_ctor_set(x_4, 1, x_29); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_158); +return x_4; +} +else +{ +lean_object* x_159; uint8_t x_160; +lean_dec(x_37); +lean_ctor_set_uint8(x_126, sizeof(void*)*4, x_32); +x_159 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_159, 0, x_149); +lean_ctor_set(x_159, 1, x_150); +lean_ctor_set(x_159, 2, x_151); +lean_ctor_set(x_159, 3, x_152); +lean_ctor_set_uint8(x_159, sizeof(void*)*4, x_32); +x_160 = 0; +lean_ctor_set(x_33, 3, x_159); +lean_ctor_set(x_33, 0, x_126); +lean_ctor_set_uint8(x_33, sizeof(void*)*4, x_160); +lean_ctor_set(x_4, 3, x_33); +lean_ctor_set(x_4, 2, x_30); +lean_ctor_set(x_4, 1, x_29); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_160); +return x_4; +} +} +else +{ +lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; uint8_t x_168; +x_161 = lean_ctor_get(x_126, 0); +x_162 = lean_ctor_get(x_126, 1); +x_163 = lean_ctor_get(x_126, 2); +x_164 = lean_ctor_get(x_126, 3); +lean_inc(x_164); +lean_inc(x_163); +lean_inc(x_162); +lean_inc(x_161); lean_dec(x_126); -x_127 = lean_ctor_get(x_83, 0); -lean_dec(x_127); -x_128 = !lean_is_exclusive(x_1); -if (x_128 == 0) -{ -lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132; uint8_t x_133; uint8_t x_134; -x_129 = lean_ctor_get(x_1, 0); -x_130 = lean_ctor_get(x_1, 1); -x_131 = lean_ctor_get(x_1, 2); -x_132 = lean_ctor_get(x_1, 3); -x_133 = 1; -lean_ctor_set(x_83, 3, x_132); -lean_ctor_set(x_83, 2, x_131); -lean_ctor_set(x_83, 1, x_130); -lean_ctor_set(x_83, 0, x_129); -lean_ctor_set_uint8(x_83, sizeof(void*)*4, x_133); -x_134 = 0; -lean_ctor_set(x_1, 3, x_4); -lean_ctor_set(x_1, 2, x_3); -lean_ctor_set(x_1, 1, x_2); -lean_ctor_set(x_1, 0, x_83); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_134); -return x_1; -} -else -{ -lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; uint8_t x_139; uint8_t x_140; lean_object* x_141; -x_135 = lean_ctor_get(x_1, 0); -x_136 = lean_ctor_get(x_1, 1); -x_137 = lean_ctor_get(x_1, 2); -x_138 = lean_ctor_get(x_1, 3); -lean_inc(x_138); -lean_inc(x_137); -lean_inc(x_136); -lean_inc(x_135); -lean_dec(x_1); -x_139 = 1; -lean_ctor_set(x_83, 3, x_138); -lean_ctor_set(x_83, 2, x_137); -lean_ctor_set(x_83, 1, x_136); -lean_ctor_set(x_83, 0, x_135); -lean_ctor_set_uint8(x_83, sizeof(void*)*4, x_139); -x_140 = 0; -x_141 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_141, 0, x_83); -lean_ctor_set(x_141, 1, x_2); -lean_ctor_set(x_141, 2, x_3); -lean_ctor_set(x_141, 3, x_4); -lean_ctor_set_uint8(x_141, sizeof(void*)*4, x_140); -return x_141; -} -} -else -{ -lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; uint8_t x_147; lean_object* x_148; uint8_t x_149; lean_object* x_150; -lean_dec(x_83); -x_142 = lean_ctor_get(x_1, 0); -lean_inc(x_142); -x_143 = lean_ctor_get(x_1, 1); -lean_inc(x_143); -x_144 = lean_ctor_get(x_1, 2); -lean_inc(x_144); -x_145 = lean_ctor_get(x_1, 3); -lean_inc(x_145); -if (lean_is_exclusive(x_1)) { - lean_ctor_release(x_1, 0); - lean_ctor_release(x_1, 1); - lean_ctor_release(x_1, 2); - lean_ctor_release(x_1, 3); - x_146 = x_1; +lean_inc(x_37); +x_165 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_165, 0, x_31); +lean_ctor_set(x_165, 1, x_23); +lean_ctor_set(x_165, 2, x_24); +lean_ctor_set(x_165, 3, x_37); +if (lean_is_exclusive(x_37)) { + lean_ctor_release(x_37, 0); + lean_ctor_release(x_37, 1); + lean_ctor_release(x_37, 2); + lean_ctor_release(x_37, 3); + x_166 = x_37; } else { - lean_dec_ref(x_1); - x_146 = lean_box(0); + lean_dec_ref(x_37); + x_166 = lean_box(0); } -x_147 = 1; -x_148 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_148, 0, x_142); -lean_ctor_set(x_148, 1, x_143); -lean_ctor_set(x_148, 2, x_144); -lean_ctor_set(x_148, 3, x_145); -lean_ctor_set_uint8(x_148, sizeof(void*)*4, x_147); -x_149 = 0; -if (lean_is_scalar(x_146)) { - x_150 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set_uint8(x_165, sizeof(void*)*4, x_32); +if (lean_is_scalar(x_166)) { + x_167 = lean_alloc_ctor(1, 4, 1); } else { - x_150 = x_146; -} -lean_ctor_set(x_150, 0, x_148); -lean_ctor_set(x_150, 1, x_2); -lean_ctor_set(x_150, 2, x_3); -lean_ctor_set(x_150, 3, x_4); -lean_ctor_set_uint8(x_150, sizeof(void*)*4, x_149); -return x_150; -} + x_167 = x_166; } +lean_ctor_set(x_167, 0, x_161); +lean_ctor_set(x_167, 1, x_162); +lean_ctor_set(x_167, 2, x_163); +lean_ctor_set(x_167, 3, x_164); +lean_ctor_set_uint8(x_167, sizeof(void*)*4, x_32); +x_168 = 0; +lean_ctor_set(x_33, 3, x_167); +lean_ctor_set(x_33, 0, x_165); +lean_ctor_set_uint8(x_33, sizeof(void*)*4, x_168); +lean_ctor_set(x_4, 3, x_33); +lean_ctor_set(x_4, 2, x_30); +lean_ctor_set(x_4, 1, x_29); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_168); +return x_4; } } else { -uint8_t x_151; -x_151 = !lean_is_exclusive(x_1); -if (x_151 == 0) -{ -uint8_t x_152; uint8_t x_153; lean_object* x_154; -x_152 = 1; -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_152); -x_153 = 0; -x_154 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_154, 0, x_1); -lean_ctor_set(x_154, 1, x_2); -lean_ctor_set(x_154, 2, x_3); -lean_ctor_set(x_154, 3, x_4); -lean_ctor_set_uint8(x_154, sizeof(void*)*4, x_153); -return x_154; -} -else -{ -lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; uint8_t x_159; lean_object* x_160; uint8_t x_161; lean_object* x_162; -x_155 = lean_ctor_get(x_1, 0); -x_156 = lean_ctor_get(x_1, 1); -x_157 = lean_ctor_get(x_1, 2); -x_158 = lean_ctor_get(x_1, 3); -lean_inc(x_158); -lean_inc(x_157); -lean_inc(x_156); -lean_inc(x_155); -lean_dec(x_1); -x_159 = 1; -x_160 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_160, 0, x_155); -lean_ctor_set(x_160, 1, x_156); -lean_ctor_set(x_160, 2, x_157); -lean_ctor_set(x_160, 3, x_158); -lean_ctor_set_uint8(x_160, sizeof(void*)*4, x_159); -x_161 = 0; -x_162 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_162, 0, x_160); -lean_ctor_set(x_162, 1, x_2); -lean_ctor_set(x_162, 2, x_3); -lean_ctor_set(x_162, 3, x_4); -lean_ctor_set_uint8(x_162, sizeof(void*)*4, x_161); -return x_162; -} -} -} -} -else -{ -if (lean_obj_tag(x_4) == 0) -{ -uint8_t x_163; lean_object* x_164; -x_163 = 0; -x_164 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_164, 0, x_1); -lean_ctor_set(x_164, 1, x_2); -lean_ctor_set(x_164, 2, x_3); -lean_ctor_set(x_164, 3, x_4); -lean_ctor_set_uint8(x_164, sizeof(void*)*4, x_163); -return x_164; -} -else -{ -uint8_t x_165; -x_165 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_165 == 0) -{ -lean_object* x_166; -x_166 = lean_ctor_get(x_4, 0); -lean_inc(x_166); -if (lean_obj_tag(x_166) == 0) -{ -uint8_t x_167; lean_object* x_168; -x_167 = 0; -x_168 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_168, 0, x_1); -lean_ctor_set(x_168, 1, x_2); -lean_ctor_set(x_168, 2, x_3); -lean_ctor_set(x_168, 3, x_4); -lean_ctor_set_uint8(x_168, sizeof(void*)*4, x_167); -return x_168; -} -else -{ -uint8_t x_169; -x_169 = lean_ctor_get_uint8(x_166, sizeof(void*)*4); -if (x_169 == 0) -{ -uint8_t x_170; -x_170 = !lean_is_exclusive(x_4); -if (x_170 == 0) -{ -lean_object* x_171; uint8_t x_172; lean_object* x_173; -x_171 = lean_ctor_get(x_4, 0); -lean_dec(x_171); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_169); -x_172 = 0; -x_173 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_173, 0, x_1); -lean_ctor_set(x_173, 1, x_2); -lean_ctor_set(x_173, 2, x_3); -lean_ctor_set(x_173, 3, x_4); -lean_ctor_set_uint8(x_173, sizeof(void*)*4, x_172); -return x_173; -} -else -{ -lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; uint8_t x_178; lean_object* x_179; -x_174 = lean_ctor_get(x_4, 1); -x_175 = lean_ctor_get(x_4, 2); -x_176 = lean_ctor_get(x_4, 3); -lean_inc(x_176); -lean_inc(x_175); +lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; lean_object* x_178; uint8_t x_179; lean_object* x_180; +x_169 = lean_ctor_get(x_33, 1); +x_170 = lean_ctor_get(x_33, 2); +lean_inc(x_170); +lean_inc(x_169); +lean_dec(x_33); +x_171 = lean_ctor_get(x_126, 0); +lean_inc(x_171); +x_172 = lean_ctor_get(x_126, 1); +lean_inc(x_172); +x_173 = lean_ctor_get(x_126, 2); +lean_inc(x_173); +x_174 = lean_ctor_get(x_126, 3); lean_inc(x_174); -lean_dec(x_4); -x_177 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_177, 0, x_166); -lean_ctor_set(x_177, 1, x_174); -lean_ctor_set(x_177, 2, x_175); -lean_ctor_set(x_177, 3, x_176); -lean_ctor_set_uint8(x_177, sizeof(void*)*4, x_169); -x_178 = 0; -x_179 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_179, 0, x_1); -lean_ctor_set(x_179, 1, x_2); -lean_ctor_set(x_179, 2, x_3); -lean_ctor_set(x_179, 3, x_177); -lean_ctor_set_uint8(x_179, sizeof(void*)*4, x_178); -return x_179; +if (lean_is_exclusive(x_126)) { + lean_ctor_release(x_126, 0); + lean_ctor_release(x_126, 1); + lean_ctor_release(x_126, 2); + lean_ctor_release(x_126, 3); + x_175 = x_126; +} else { + lean_dec_ref(x_126); + x_175 = lean_box(0); +} +lean_inc(x_37); +if (lean_is_scalar(x_175)) { + x_176 = lean_alloc_ctor(1, 4, 1); +} else { + x_176 = x_175; +} +lean_ctor_set(x_176, 0, x_31); +lean_ctor_set(x_176, 1, x_23); +lean_ctor_set(x_176, 2, x_24); +lean_ctor_set(x_176, 3, x_37); +if (lean_is_exclusive(x_37)) { + lean_ctor_release(x_37, 0); + lean_ctor_release(x_37, 1); + lean_ctor_release(x_37, 2); + lean_ctor_release(x_37, 3); + x_177 = x_37; +} else { + lean_dec_ref(x_37); + x_177 = lean_box(0); +} +lean_ctor_set_uint8(x_176, sizeof(void*)*4, x_32); +if (lean_is_scalar(x_177)) { + x_178 = lean_alloc_ctor(1, 4, 1); +} else { + x_178 = x_177; +} +lean_ctor_set(x_178, 0, x_171); +lean_ctor_set(x_178, 1, x_172); +lean_ctor_set(x_178, 2, x_173); +lean_ctor_set(x_178, 3, x_174); +lean_ctor_set_uint8(x_178, sizeof(void*)*4, x_32); +x_179 = 0; +x_180 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_180, 0, x_176); +lean_ctor_set(x_180, 1, x_169); +lean_ctor_set(x_180, 2, x_170); +lean_ctor_set(x_180, 3, x_178); +lean_ctor_set_uint8(x_180, sizeof(void*)*4, x_179); +lean_ctor_set(x_4, 3, x_180); +lean_ctor_set(x_4, 2, x_30); +lean_ctor_set(x_4, 1, x_29); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_179); +return x_4; } } else { -uint8_t x_180; -x_180 = !lean_is_exclusive(x_1); -if (x_180 == 0) -{ uint8_t x_181; -x_181 = !lean_is_exclusive(x_4); +x_181 = !lean_is_exclusive(x_33); if (x_181 == 0) { -lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; uint8_t x_190; -x_182 = lean_ctor_get(x_1, 0); -x_183 = lean_ctor_get(x_1, 1); -x_184 = lean_ctor_get(x_1, 2); -x_185 = lean_ctor_get(x_1, 3); -x_186 = lean_ctor_get(x_4, 1); -x_187 = lean_ctor_get(x_4, 2); -x_188 = lean_ctor_get(x_4, 3); -x_189 = lean_ctor_get(x_4, 0); -lean_dec(x_189); -x_190 = !lean_is_exclusive(x_166); -if (x_190 == 0) +lean_object* x_182; lean_object* x_183; uint8_t x_184; +x_182 = lean_ctor_get(x_33, 3); +lean_dec(x_182); +x_183 = lean_ctor_get(x_33, 0); +lean_dec(x_183); +x_184 = !lean_is_exclusive(x_37); +if (x_184 == 0) { -lean_object* x_191; lean_object* x_192; lean_object* x_193; lean_object* x_194; uint8_t x_195; lean_object* x_196; lean_object* x_197; uint8_t x_198; -x_191 = lean_ctor_get(x_166, 0); -x_192 = lean_ctor_get(x_166, 1); -x_193 = lean_ctor_get(x_166, 2); -x_194 = lean_ctor_get(x_166, 3); -lean_ctor_set(x_166, 3, x_185); -lean_ctor_set(x_166, 2, x_184); -lean_ctor_set(x_166, 1, x_183); -lean_ctor_set(x_166, 0, x_182); -x_195 = 1; -lean_ctor_set(x_4, 3, x_191); -lean_ctor_set(x_4, 2, x_3); -lean_ctor_set(x_4, 1, x_2); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_195); -x_196 = l_Lean_RBNode_setRed___rarg(x_188); -x_197 = l_Lean_RBNode_balance_u2083___rarg(x_194, x_186, x_187, x_196); -x_198 = 0; -lean_ctor_set(x_1, 3, x_197); -lean_ctor_set(x_1, 2, x_193); -lean_ctor_set(x_1, 1, x_192); -lean_ctor_set(x_1, 0, x_4); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_198); -return x_1; +uint8_t x_185; lean_object* x_186; +lean_ctor_set_uint8(x_37, sizeof(void*)*4, x_144); +lean_ctor_set(x_4, 3, x_33); +lean_ctor_set(x_4, 0, x_31); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_32); +x_185 = 0; +x_186 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_186, 0, x_8); +lean_ctor_set(x_186, 1, x_29); +lean_ctor_set(x_186, 2, x_30); +lean_ctor_set(x_186, 3, x_4); +lean_ctor_set_uint8(x_186, sizeof(void*)*4, x_185); +return x_186; } else { -lean_object* x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; uint8_t x_204; lean_object* x_205; lean_object* x_206; uint8_t x_207; -x_199 = lean_ctor_get(x_166, 0); -x_200 = lean_ctor_get(x_166, 1); -x_201 = lean_ctor_get(x_166, 2); -x_202 = lean_ctor_get(x_166, 3); -lean_inc(x_202); -lean_inc(x_201); -lean_inc(x_200); +lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; lean_object* x_191; uint8_t x_192; lean_object* x_193; +x_187 = lean_ctor_get(x_37, 0); +x_188 = lean_ctor_get(x_37, 1); +x_189 = lean_ctor_get(x_37, 2); +x_190 = lean_ctor_get(x_37, 3); +lean_inc(x_190); +lean_inc(x_189); +lean_inc(x_188); +lean_inc(x_187); +lean_dec(x_37); +x_191 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_191, 0, x_187); +lean_ctor_set(x_191, 1, x_188); +lean_ctor_set(x_191, 2, x_189); +lean_ctor_set(x_191, 3, x_190); +lean_ctor_set_uint8(x_191, sizeof(void*)*4, x_144); +lean_ctor_set(x_33, 0, x_191); +lean_ctor_set(x_4, 3, x_33); +lean_ctor_set(x_4, 0, x_31); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_32); +x_192 = 0; +x_193 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_193, 0, x_8); +lean_ctor_set(x_193, 1, x_29); +lean_ctor_set(x_193, 2, x_30); +lean_ctor_set(x_193, 3, x_4); +lean_ctor_set_uint8(x_193, sizeof(void*)*4, x_192); +return x_193; +} +} +else +{ +lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; lean_object* x_198; lean_object* x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; uint8_t x_203; lean_object* x_204; +x_194 = lean_ctor_get(x_33, 1); +x_195 = lean_ctor_get(x_33, 2); +lean_inc(x_195); +lean_inc(x_194); +lean_dec(x_33); +x_196 = lean_ctor_get(x_37, 0); +lean_inc(x_196); +x_197 = lean_ctor_get(x_37, 1); +lean_inc(x_197); +x_198 = lean_ctor_get(x_37, 2); +lean_inc(x_198); +x_199 = lean_ctor_get(x_37, 3); lean_inc(x_199); -lean_dec(x_166); -x_203 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_203, 0, x_182); -lean_ctor_set(x_203, 1, x_183); -lean_ctor_set(x_203, 2, x_184); -lean_ctor_set(x_203, 3, x_185); -lean_ctor_set_uint8(x_203, sizeof(void*)*4, x_169); -x_204 = 1; -lean_ctor_set(x_4, 3, x_199); -lean_ctor_set(x_4, 2, x_3); -lean_ctor_set(x_4, 1, x_2); -lean_ctor_set(x_4, 0, x_203); -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_204); -x_205 = l_Lean_RBNode_setRed___rarg(x_188); -x_206 = l_Lean_RBNode_balance_u2083___rarg(x_202, x_186, x_187, x_205); -x_207 = 0; -lean_ctor_set(x_1, 3, x_206); -lean_ctor_set(x_1, 2, x_201); -lean_ctor_set(x_1, 1, x_200); -lean_ctor_set(x_1, 0, x_4); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_207); -return x_1; +if (lean_is_exclusive(x_37)) { + lean_ctor_release(x_37, 0); + lean_ctor_release(x_37, 1); + lean_ctor_release(x_37, 2); + lean_ctor_release(x_37, 3); + x_200 = x_37; +} else { + lean_dec_ref(x_37); + x_200 = lean_box(0); +} +if (lean_is_scalar(x_200)) { + x_201 = lean_alloc_ctor(1, 4, 1); +} else { + x_201 = x_200; +} +lean_ctor_set(x_201, 0, x_196); +lean_ctor_set(x_201, 1, x_197); +lean_ctor_set(x_201, 2, x_198); +lean_ctor_set(x_201, 3, x_199); +lean_ctor_set_uint8(x_201, sizeof(void*)*4, x_144); +x_202 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_202, 0, x_201); +lean_ctor_set(x_202, 1, x_194); +lean_ctor_set(x_202, 2, x_195); +lean_ctor_set(x_202, 3, x_126); +lean_ctor_set_uint8(x_202, sizeof(void*)*4, x_36); +lean_ctor_set(x_4, 3, x_202); +lean_ctor_set(x_4, 0, x_31); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_32); +x_203 = 0; +x_204 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_204, 0, x_8); +lean_ctor_set(x_204, 1, x_29); +lean_ctor_set(x_204, 2, x_30); +lean_ctor_set(x_204, 3, x_4); +lean_ctor_set_uint8(x_204, sizeof(void*)*4, x_203); +return x_204; +} +} +} +} } } else { -lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; lean_object* x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; uint8_t x_221; lean_object* x_222; lean_object* x_223; lean_object* x_224; uint8_t x_225; -x_208 = lean_ctor_get(x_1, 0); -x_209 = lean_ctor_get(x_1, 1); -x_210 = lean_ctor_get(x_1, 2); -x_211 = lean_ctor_get(x_1, 3); -x_212 = lean_ctor_get(x_4, 1); -x_213 = lean_ctor_get(x_4, 2); -x_214 = lean_ctor_get(x_4, 3); -lean_inc(x_214); -lean_inc(x_213); -lean_inc(x_212); -lean_dec(x_4); -x_215 = lean_ctor_get(x_166, 0); -lean_inc(x_215); -x_216 = lean_ctor_get(x_166, 1); -lean_inc(x_216); -x_217 = lean_ctor_get(x_166, 2); +uint8_t x_205; lean_object* x_206; +lean_ctor_set(x_4, 3, x_33); +lean_ctor_set(x_4, 0, x_31); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_32); +x_205 = 0; +x_206 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_206, 0, x_8); +lean_ctor_set(x_206, 1, x_29); +lean_ctor_set(x_206, 2, x_30); +lean_ctor_set(x_206, 3, x_4); +lean_ctor_set_uint8(x_206, sizeof(void*)*4, x_205); +return x_206; +} +} +} +else +{ +lean_object* x_207; lean_object* x_208; lean_object* x_209; lean_object* x_210; uint8_t x_211; lean_object* x_212; lean_object* x_213; +x_207 = lean_ctor_get(x_8, 0); +x_208 = lean_ctor_get(x_8, 1); +x_209 = lean_ctor_get(x_8, 2); +x_210 = lean_ctor_get(x_8, 3); +lean_inc(x_210); +lean_inc(x_209); +lean_inc(x_208); +lean_inc(x_207); +lean_dec(x_8); +x_211 = 1; +x_212 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_212, 0, x_1); +lean_ctor_set(x_212, 1, x_2); +lean_ctor_set(x_212, 2, x_3); +lean_ctor_set(x_212, 3, x_207); +lean_ctor_set_uint8(x_212, sizeof(void*)*4, x_211); +x_213 = l_Lean_RBNode_setRed___rarg(x_25); +if (lean_obj_tag(x_213) == 0) +{ +uint8_t x_214; lean_object* x_215; +lean_ctor_set(x_4, 3, x_213); +lean_ctor_set(x_4, 0, x_210); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_211); +x_214 = 0; +x_215 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_215, 0, x_212); +lean_ctor_set(x_215, 1, x_208); +lean_ctor_set(x_215, 2, x_209); +lean_ctor_set(x_215, 3, x_4); +lean_ctor_set_uint8(x_215, sizeof(void*)*4, x_214); +return x_215; +} +else +{ +uint8_t x_216; +x_216 = lean_ctor_get_uint8(x_213, sizeof(void*)*4); +if (x_216 == 0) +{ +lean_object* x_217; +x_217 = lean_ctor_get(x_213, 0); lean_inc(x_217); -x_218 = lean_ctor_get(x_166, 3); +if (lean_obj_tag(x_217) == 0) +{ +lean_object* x_218; +x_218 = lean_ctor_get(x_213, 3); lean_inc(x_218); -if (lean_is_exclusive(x_166)) { - lean_ctor_release(x_166, 0); - lean_ctor_release(x_166, 1); - lean_ctor_release(x_166, 2); - lean_ctor_release(x_166, 3); - x_219 = x_166; +if (lean_obj_tag(x_218) == 0) +{ +lean_object* x_219; lean_object* x_220; lean_object* x_221; lean_object* x_222; uint8_t x_223; lean_object* x_224; +x_219 = lean_ctor_get(x_213, 1); +lean_inc(x_219); +x_220 = lean_ctor_get(x_213, 2); +lean_inc(x_220); +if (lean_is_exclusive(x_213)) { + lean_ctor_release(x_213, 0); + lean_ctor_release(x_213, 1); + lean_ctor_release(x_213, 2); + lean_ctor_release(x_213, 3); + x_221 = x_213; } else { - lean_dec_ref(x_166); - x_219 = lean_box(0); + lean_dec_ref(x_213); + x_221 = lean_box(0); } -if (lean_is_scalar(x_219)) { - x_220 = lean_alloc_ctor(1, 4, 1); +if (lean_is_scalar(x_221)) { + x_222 = lean_alloc_ctor(1, 4, 1); } else { - x_220 = x_219; -} -lean_ctor_set(x_220, 0, x_208); -lean_ctor_set(x_220, 1, x_209); -lean_ctor_set(x_220, 2, x_210); -lean_ctor_set(x_220, 3, x_211); -lean_ctor_set_uint8(x_220, sizeof(void*)*4, x_169); -x_221 = 1; -x_222 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_222, 0, x_220); -lean_ctor_set(x_222, 1, x_2); -lean_ctor_set(x_222, 2, x_3); -lean_ctor_set(x_222, 3, x_215); -lean_ctor_set_uint8(x_222, sizeof(void*)*4, x_221); -x_223 = l_Lean_RBNode_setRed___rarg(x_214); -x_224 = l_Lean_RBNode_balance_u2083___rarg(x_218, x_212, x_213, x_223); -x_225 = 0; -lean_ctor_set(x_1, 3, x_224); -lean_ctor_set(x_1, 2, x_217); -lean_ctor_set(x_1, 1, x_216); -lean_ctor_set(x_1, 0, x_222); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_225); -return x_1; + x_222 = x_221; } +lean_ctor_set(x_222, 0, x_218); +lean_ctor_set(x_222, 1, x_219); +lean_ctor_set(x_222, 2, x_220); +lean_ctor_set(x_222, 3, x_218); +lean_ctor_set_uint8(x_222, sizeof(void*)*4, x_216); +lean_ctor_set(x_4, 3, x_222); +lean_ctor_set(x_4, 0, x_210); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_211); +x_223 = 0; +x_224 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_224, 0, x_212); +lean_ctor_set(x_224, 1, x_208); +lean_ctor_set(x_224, 2, x_209); +lean_ctor_set(x_224, 3, x_4); +lean_ctor_set_uint8(x_224, sizeof(void*)*4, x_223); +return x_224; } else { -lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; lean_object* x_231; lean_object* x_232; lean_object* x_233; lean_object* x_234; lean_object* x_235; lean_object* x_236; lean_object* x_237; lean_object* x_238; lean_object* x_239; uint8_t x_240; lean_object* x_241; lean_object* x_242; lean_object* x_243; uint8_t x_244; lean_object* x_245; -x_226 = lean_ctor_get(x_1, 0); -x_227 = lean_ctor_get(x_1, 1); -x_228 = lean_ctor_get(x_1, 2); -x_229 = lean_ctor_get(x_1, 3); -lean_inc(x_229); -lean_inc(x_228); -lean_inc(x_227); +uint8_t x_225; +x_225 = lean_ctor_get_uint8(x_218, sizeof(void*)*4); +if (x_225 == 0) +{ +lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; lean_object* x_231; lean_object* x_232; lean_object* x_233; lean_object* x_234; lean_object* x_235; uint8_t x_236; lean_object* x_237; +x_226 = lean_ctor_get(x_213, 1); lean_inc(x_226); -lean_dec(x_1); -x_230 = lean_ctor_get(x_4, 1); -lean_inc(x_230); -x_231 = lean_ctor_get(x_4, 2); -lean_inc(x_231); -x_232 = lean_ctor_get(x_4, 3); -lean_inc(x_232); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - x_233 = x_4; +x_227 = lean_ctor_get(x_213, 2); +lean_inc(x_227); +if (lean_is_exclusive(x_213)) { + lean_ctor_release(x_213, 0); + lean_ctor_release(x_213, 1); + lean_ctor_release(x_213, 2); + lean_ctor_release(x_213, 3); + x_228 = x_213; } else { - lean_dec_ref(x_4); + lean_dec_ref(x_213); + x_228 = lean_box(0); +} +x_229 = lean_ctor_get(x_218, 0); +lean_inc(x_229); +x_230 = lean_ctor_get(x_218, 1); +lean_inc(x_230); +x_231 = lean_ctor_get(x_218, 2); +lean_inc(x_231); +x_232 = lean_ctor_get(x_218, 3); +lean_inc(x_232); +if (lean_is_exclusive(x_218)) { + lean_ctor_release(x_218, 0); + lean_ctor_release(x_218, 1); + lean_ctor_release(x_218, 2); + lean_ctor_release(x_218, 3); + x_233 = x_218; +} else { + lean_dec_ref(x_218); x_233 = lean_box(0); } -x_234 = lean_ctor_get(x_166, 0); -lean_inc(x_234); -x_235 = lean_ctor_get(x_166, 1); -lean_inc(x_235); -x_236 = lean_ctor_get(x_166, 2); -lean_inc(x_236); -x_237 = lean_ctor_get(x_166, 3); -lean_inc(x_237); -if (lean_is_exclusive(x_166)) { - lean_ctor_release(x_166, 0); - lean_ctor_release(x_166, 1); - lean_ctor_release(x_166, 2); - lean_ctor_release(x_166, 3); - x_238 = x_166; +if (lean_is_scalar(x_233)) { + x_234 = lean_alloc_ctor(1, 4, 1); } else { - lean_dec_ref(x_166); + x_234 = x_233; +} +lean_ctor_set(x_234, 0, x_210); +lean_ctor_set(x_234, 1, x_23); +lean_ctor_set(x_234, 2, x_24); +lean_ctor_set(x_234, 3, x_217); +lean_ctor_set_uint8(x_234, sizeof(void*)*4, x_211); +if (lean_is_scalar(x_228)) { + x_235 = lean_alloc_ctor(1, 4, 1); +} else { + x_235 = x_228; +} +lean_ctor_set(x_235, 0, x_229); +lean_ctor_set(x_235, 1, x_230); +lean_ctor_set(x_235, 2, x_231); +lean_ctor_set(x_235, 3, x_232); +lean_ctor_set_uint8(x_235, sizeof(void*)*4, x_211); +x_236 = 0; +lean_ctor_set(x_4, 3, x_235); +lean_ctor_set(x_4, 2, x_227); +lean_ctor_set(x_4, 1, x_226); +lean_ctor_set(x_4, 0, x_234); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_236); +x_237 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_237, 0, x_212); +lean_ctor_set(x_237, 1, x_208); +lean_ctor_set(x_237, 2, x_209); +lean_ctor_set(x_237, 3, x_4); +lean_ctor_set_uint8(x_237, sizeof(void*)*4, x_236); +return x_237; +} +else +{ +lean_object* x_238; lean_object* x_239; lean_object* x_240; uint8_t x_241; lean_object* x_242; +lean_free_object(x_4); +if (lean_is_exclusive(x_218)) { + lean_ctor_release(x_218, 0); + lean_ctor_release(x_218, 1); + lean_ctor_release(x_218, 2); + lean_ctor_release(x_218, 3); + x_238 = x_218; +} else { + lean_dec_ref(x_218); x_238 = lean_box(0); } +lean_inc(x_213); if (lean_is_scalar(x_238)) { x_239 = lean_alloc_ctor(1, 4, 1); } else { x_239 = x_238; } -lean_ctor_set(x_239, 0, x_226); -lean_ctor_set(x_239, 1, x_227); -lean_ctor_set(x_239, 2, x_228); -lean_ctor_set(x_239, 3, x_229); -lean_ctor_set_uint8(x_239, sizeof(void*)*4, x_169); -x_240 = 1; -if (lean_is_scalar(x_233)) { - x_241 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_239, 0, x_210); +lean_ctor_set(x_239, 1, x_23); +lean_ctor_set(x_239, 2, x_24); +lean_ctor_set(x_239, 3, x_213); +if (lean_is_exclusive(x_213)) { + lean_ctor_release(x_213, 0); + lean_ctor_release(x_213, 1); + lean_ctor_release(x_213, 2); + lean_ctor_release(x_213, 3); + x_240 = x_213; } else { - x_241 = x_233; + lean_dec_ref(x_213); + x_240 = lean_box(0); } -lean_ctor_set(x_241, 0, x_239); -lean_ctor_set(x_241, 1, x_2); -lean_ctor_set(x_241, 2, x_3); -lean_ctor_set(x_241, 3, x_234); -lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_240); -x_242 = l_Lean_RBNode_setRed___rarg(x_232); -x_243 = l_Lean_RBNode_balance_u2083___rarg(x_237, x_230, x_231, x_242); -x_244 = 0; -x_245 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_245, 0, x_241); -lean_ctor_set(x_245, 1, x_235); -lean_ctor_set(x_245, 2, x_236); -lean_ctor_set(x_245, 3, x_243); -lean_ctor_set_uint8(x_245, sizeof(void*)*4, x_244); -return x_245; +lean_ctor_set_uint8(x_239, sizeof(void*)*4, x_211); +x_241 = 0; +if (lean_is_scalar(x_240)) { + x_242 = lean_alloc_ctor(1, 4, 1); +} else { + x_242 = x_240; } +lean_ctor_set(x_242, 0, x_212); +lean_ctor_set(x_242, 1, x_208); +lean_ctor_set(x_242, 2, x_209); +lean_ctor_set(x_242, 3, x_239); +lean_ctor_set_uint8(x_242, sizeof(void*)*4, x_241); +return x_242; } } } else { -uint8_t x_246; -x_246 = !lean_is_exclusive(x_1); -if (x_246 == 0) +uint8_t x_243; +x_243 = lean_ctor_get_uint8(x_217, sizeof(void*)*4); +if (x_243 == 0) { -uint8_t x_247; -x_247 = !lean_is_exclusive(x_4); -if (x_247 == 0) -{ -lean_object* x_248; lean_object* x_249; lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; lean_object* x_255; uint8_t x_256; lean_object* x_257; -x_248 = lean_ctor_get(x_1, 0); -x_249 = lean_ctor_get(x_1, 1); -x_250 = lean_ctor_get(x_1, 2); -x_251 = lean_ctor_get(x_1, 3); -x_252 = lean_ctor_get(x_4, 0); -x_253 = lean_ctor_get(x_4, 1); -x_254 = lean_ctor_get(x_4, 2); -x_255 = lean_ctor_get(x_4, 3); -lean_ctor_set(x_4, 3, x_251); +lean_object* x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; lean_object* x_249; lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; lean_object* x_254; uint8_t x_255; lean_object* x_256; +x_244 = lean_ctor_get(x_213, 1); +lean_inc(x_244); +x_245 = lean_ctor_get(x_213, 2); +lean_inc(x_245); +x_246 = lean_ctor_get(x_213, 3); +lean_inc(x_246); +if (lean_is_exclusive(x_213)) { + lean_ctor_release(x_213, 0); + lean_ctor_release(x_213, 1); + lean_ctor_release(x_213, 2); + lean_ctor_release(x_213, 3); + x_247 = x_213; +} else { + lean_dec_ref(x_213); + x_247 = lean_box(0); +} +x_248 = lean_ctor_get(x_217, 0); +lean_inc(x_248); +x_249 = lean_ctor_get(x_217, 1); +lean_inc(x_249); +x_250 = lean_ctor_get(x_217, 2); +lean_inc(x_250); +x_251 = lean_ctor_get(x_217, 3); +lean_inc(x_251); +if (lean_is_exclusive(x_217)) { + lean_ctor_release(x_217, 0); + lean_ctor_release(x_217, 1); + lean_ctor_release(x_217, 2); + lean_ctor_release(x_217, 3); + x_252 = x_217; +} else { + lean_dec_ref(x_217); + x_252 = lean_box(0); +} +if (lean_is_scalar(x_252)) { + x_253 = lean_alloc_ctor(1, 4, 1); +} else { + x_253 = x_252; +} +lean_ctor_set(x_253, 0, x_210); +lean_ctor_set(x_253, 1, x_23); +lean_ctor_set(x_253, 2, x_24); +lean_ctor_set(x_253, 3, x_248); +lean_ctor_set_uint8(x_253, sizeof(void*)*4, x_211); +if (lean_is_scalar(x_247)) { + x_254 = lean_alloc_ctor(1, 4, 1); +} else { + x_254 = x_247; +} +lean_ctor_set(x_254, 0, x_251); +lean_ctor_set(x_254, 1, x_244); +lean_ctor_set(x_254, 2, x_245); +lean_ctor_set(x_254, 3, x_246); +lean_ctor_set_uint8(x_254, sizeof(void*)*4, x_211); +x_255 = 0; +lean_ctor_set(x_4, 3, x_254); lean_ctor_set(x_4, 2, x_250); lean_ctor_set(x_4, 1, x_249); -lean_ctor_set(x_4, 0, x_248); -x_256 = 0; -lean_ctor_set(x_1, 3, x_255); -lean_ctor_set(x_1, 2, x_254); -lean_ctor_set(x_1, 1, x_253); -lean_ctor_set(x_1, 0, x_252); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_256); -x_257 = l_Lean_RBNode_balance_u2083___rarg(x_4, x_2, x_3, x_1); -return x_257; +lean_ctor_set(x_4, 0, x_253); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_255); +x_256 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_256, 0, x_212); +lean_ctor_set(x_256, 1, x_208); +lean_ctor_set(x_256, 2, x_209); +lean_ctor_set(x_256, 3, x_4); +lean_ctor_set_uint8(x_256, sizeof(void*)*4, x_255); +return x_256; } else { -lean_object* x_258; lean_object* x_259; lean_object* x_260; lean_object* x_261; lean_object* x_262; lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; uint8_t x_267; lean_object* x_268; -x_258 = lean_ctor_get(x_1, 0); -x_259 = lean_ctor_get(x_1, 1); -x_260 = lean_ctor_get(x_1, 2); -x_261 = lean_ctor_get(x_1, 3); -x_262 = lean_ctor_get(x_4, 0); -x_263 = lean_ctor_get(x_4, 1); -x_264 = lean_ctor_get(x_4, 2); -x_265 = lean_ctor_get(x_4, 3); -lean_inc(x_265); +lean_object* x_257; +x_257 = lean_ctor_get(x_213, 3); +lean_inc(x_257); +if (lean_obj_tag(x_257) == 0) +{ +lean_object* x_258; lean_object* x_259; lean_object* x_260; uint8_t x_261; lean_object* x_262; +lean_free_object(x_4); +if (lean_is_exclusive(x_217)) { + lean_ctor_release(x_217, 0); + lean_ctor_release(x_217, 1); + lean_ctor_release(x_217, 2); + lean_ctor_release(x_217, 3); + x_258 = x_217; +} else { + lean_dec_ref(x_217); + x_258 = lean_box(0); +} +lean_inc(x_213); +if (lean_is_scalar(x_258)) { + x_259 = lean_alloc_ctor(1, 4, 1); +} else { + x_259 = x_258; +} +lean_ctor_set(x_259, 0, x_210); +lean_ctor_set(x_259, 1, x_23); +lean_ctor_set(x_259, 2, x_24); +lean_ctor_set(x_259, 3, x_213); +if (lean_is_exclusive(x_213)) { + lean_ctor_release(x_213, 0); + lean_ctor_release(x_213, 1); + lean_ctor_release(x_213, 2); + lean_ctor_release(x_213, 3); + x_260 = x_213; +} else { + lean_dec_ref(x_213); + x_260 = lean_box(0); +} +lean_ctor_set_uint8(x_259, sizeof(void*)*4, x_211); +x_261 = 0; +if (lean_is_scalar(x_260)) { + x_262 = lean_alloc_ctor(1, 4, 1); +} else { + x_262 = x_260; +} +lean_ctor_set(x_262, 0, x_212); +lean_ctor_set(x_262, 1, x_208); +lean_ctor_set(x_262, 2, x_209); +lean_ctor_set(x_262, 3, x_259); +lean_ctor_set_uint8(x_262, sizeof(void*)*4, x_261); +return x_262; +} +else +{ +uint8_t x_263; +x_263 = lean_ctor_get_uint8(x_257, sizeof(void*)*4); +if (x_263 == 0) +{ +lean_object* x_264; lean_object* x_265; lean_object* x_266; lean_object* x_267; lean_object* x_268; lean_object* x_269; lean_object* x_270; lean_object* x_271; lean_object* x_272; lean_object* x_273; lean_object* x_274; uint8_t x_275; lean_object* x_276; +x_264 = lean_ctor_get(x_213, 1); lean_inc(x_264); -lean_inc(x_263); -lean_inc(x_262); -lean_dec(x_4); -x_266 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_266, 0, x_258); -lean_ctor_set(x_266, 1, x_259); -lean_ctor_set(x_266, 2, x_260); -lean_ctor_set(x_266, 3, x_261); -lean_ctor_set_uint8(x_266, sizeof(void*)*4, x_165); -x_267 = 0; -lean_ctor_set(x_1, 3, x_265); -lean_ctor_set(x_1, 2, x_264); -lean_ctor_set(x_1, 1, x_263); -lean_ctor_set(x_1, 0, x_262); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_267); -x_268 = l_Lean_RBNode_balance_u2083___rarg(x_266, x_2, x_3, x_1); -return x_268; +x_265 = lean_ctor_get(x_213, 2); +lean_inc(x_265); +if (lean_is_exclusive(x_213)) { + lean_ctor_release(x_213, 0); + lean_ctor_release(x_213, 1); + lean_ctor_release(x_213, 2); + lean_ctor_release(x_213, 3); + x_266 = x_213; +} else { + lean_dec_ref(x_213); + x_266 = lean_box(0); +} +x_267 = lean_ctor_get(x_257, 0); +lean_inc(x_267); +x_268 = lean_ctor_get(x_257, 1); +lean_inc(x_268); +x_269 = lean_ctor_get(x_257, 2); +lean_inc(x_269); +x_270 = lean_ctor_get(x_257, 3); +lean_inc(x_270); +if (lean_is_exclusive(x_257)) { + lean_ctor_release(x_257, 0); + lean_ctor_release(x_257, 1); + lean_ctor_release(x_257, 2); + lean_ctor_release(x_257, 3); + x_271 = x_257; +} else { + lean_dec_ref(x_257); + x_271 = lean_box(0); +} +lean_inc(x_217); +if (lean_is_scalar(x_271)) { + x_272 = lean_alloc_ctor(1, 4, 1); +} else { + x_272 = x_271; +} +lean_ctor_set(x_272, 0, x_210); +lean_ctor_set(x_272, 1, x_23); +lean_ctor_set(x_272, 2, x_24); +lean_ctor_set(x_272, 3, x_217); +if (lean_is_exclusive(x_217)) { + lean_ctor_release(x_217, 0); + lean_ctor_release(x_217, 1); + lean_ctor_release(x_217, 2); + lean_ctor_release(x_217, 3); + x_273 = x_217; +} else { + lean_dec_ref(x_217); + x_273 = lean_box(0); +} +lean_ctor_set_uint8(x_272, sizeof(void*)*4, x_211); +if (lean_is_scalar(x_273)) { + x_274 = lean_alloc_ctor(1, 4, 1); +} else { + x_274 = x_273; +} +lean_ctor_set(x_274, 0, x_267); +lean_ctor_set(x_274, 1, x_268); +lean_ctor_set(x_274, 2, x_269); +lean_ctor_set(x_274, 3, x_270); +lean_ctor_set_uint8(x_274, sizeof(void*)*4, x_211); +x_275 = 0; +if (lean_is_scalar(x_266)) { + x_276 = lean_alloc_ctor(1, 4, 1); +} else { + x_276 = x_266; +} +lean_ctor_set(x_276, 0, x_272); +lean_ctor_set(x_276, 1, x_264); +lean_ctor_set(x_276, 2, x_265); +lean_ctor_set(x_276, 3, x_274); +lean_ctor_set_uint8(x_276, sizeof(void*)*4, x_275); +lean_ctor_set(x_4, 3, x_276); +lean_ctor_set(x_4, 2, x_209); +lean_ctor_set(x_4, 1, x_208); +lean_ctor_set(x_4, 0, x_212); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_275); +return x_4; +} +else +{ +lean_object* x_277; lean_object* x_278; lean_object* x_279; lean_object* x_280; lean_object* x_281; lean_object* x_282; lean_object* x_283; lean_object* x_284; lean_object* x_285; lean_object* x_286; uint8_t x_287; lean_object* x_288; +x_277 = lean_ctor_get(x_213, 1); +lean_inc(x_277); +x_278 = lean_ctor_get(x_213, 2); +lean_inc(x_278); +if (lean_is_exclusive(x_213)) { + lean_ctor_release(x_213, 0); + lean_ctor_release(x_213, 1); + lean_ctor_release(x_213, 2); + lean_ctor_release(x_213, 3); + x_279 = x_213; +} else { + lean_dec_ref(x_213); + x_279 = lean_box(0); +} +x_280 = lean_ctor_get(x_217, 0); +lean_inc(x_280); +x_281 = lean_ctor_get(x_217, 1); +lean_inc(x_281); +x_282 = lean_ctor_get(x_217, 2); +lean_inc(x_282); +x_283 = lean_ctor_get(x_217, 3); +lean_inc(x_283); +if (lean_is_exclusive(x_217)) { + lean_ctor_release(x_217, 0); + lean_ctor_release(x_217, 1); + lean_ctor_release(x_217, 2); + lean_ctor_release(x_217, 3); + x_284 = x_217; +} else { + lean_dec_ref(x_217); + x_284 = lean_box(0); +} +if (lean_is_scalar(x_284)) { + x_285 = lean_alloc_ctor(1, 4, 1); +} else { + x_285 = x_284; +} +lean_ctor_set(x_285, 0, x_280); +lean_ctor_set(x_285, 1, x_281); +lean_ctor_set(x_285, 2, x_282); +lean_ctor_set(x_285, 3, x_283); +lean_ctor_set_uint8(x_285, sizeof(void*)*4, x_263); +if (lean_is_scalar(x_279)) { + x_286 = lean_alloc_ctor(1, 4, 1); +} else { + x_286 = x_279; +} +lean_ctor_set(x_286, 0, x_285); +lean_ctor_set(x_286, 1, x_277); +lean_ctor_set(x_286, 2, x_278); +lean_ctor_set(x_286, 3, x_257); +lean_ctor_set_uint8(x_286, sizeof(void*)*4, x_216); +lean_ctor_set(x_4, 3, x_286); +lean_ctor_set(x_4, 0, x_210); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_211); +x_287 = 0; +x_288 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_288, 0, x_212); +lean_ctor_set(x_288, 1, x_208); +lean_ctor_set(x_288, 2, x_209); +lean_ctor_set(x_288, 3, x_4); +lean_ctor_set_uint8(x_288, sizeof(void*)*4, x_287); +return x_288; +} +} +} } } else { -lean_object* x_269; lean_object* x_270; lean_object* x_271; lean_object* x_272; lean_object* x_273; lean_object* x_274; lean_object* x_275; lean_object* x_276; lean_object* x_277; lean_object* x_278; uint8_t x_279; lean_object* x_280; lean_object* x_281; -x_269 = lean_ctor_get(x_1, 0); -x_270 = lean_ctor_get(x_1, 1); -x_271 = lean_ctor_get(x_1, 2); -x_272 = lean_ctor_get(x_1, 3); -lean_inc(x_272); -lean_inc(x_271); -lean_inc(x_270); -lean_inc(x_269); +uint8_t x_289; lean_object* x_290; +lean_ctor_set(x_4, 3, x_213); +lean_ctor_set(x_4, 0, x_210); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_211); +x_289 = 0; +x_290 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_290, 0, x_212); +lean_ctor_set(x_290, 1, x_208); +lean_ctor_set(x_290, 2, x_209); +lean_ctor_set(x_290, 3, x_4); +lean_ctor_set_uint8(x_290, sizeof(void*)*4, x_289); +return x_290; +} +} +} +} +else +{ +lean_object* x_291; lean_object* x_292; lean_object* x_293; lean_object* x_294; lean_object* x_295; lean_object* x_296; lean_object* x_297; lean_object* x_298; uint8_t x_299; lean_object* x_300; lean_object* x_301; +x_291 = lean_ctor_get(x_4, 1); +x_292 = lean_ctor_get(x_4, 2); +x_293 = lean_ctor_get(x_4, 3); +lean_inc(x_293); +lean_inc(x_292); +lean_inc(x_291); +lean_dec(x_4); +x_294 = lean_ctor_get(x_8, 0); +lean_inc(x_294); +x_295 = lean_ctor_get(x_8, 1); +lean_inc(x_295); +x_296 = lean_ctor_get(x_8, 2); +lean_inc(x_296); +x_297 = lean_ctor_get(x_8, 3); +lean_inc(x_297); +if (lean_is_exclusive(x_8)) { + lean_ctor_release(x_8, 0); + lean_ctor_release(x_8, 1); + lean_ctor_release(x_8, 2); + lean_ctor_release(x_8, 3); + x_298 = x_8; +} else { + lean_dec_ref(x_8); + x_298 = lean_box(0); +} +x_299 = 1; +if (lean_is_scalar(x_298)) { + x_300 = lean_alloc_ctor(1, 4, 1); +} else { + x_300 = x_298; +} +lean_ctor_set(x_300, 0, x_1); +lean_ctor_set(x_300, 1, x_2); +lean_ctor_set(x_300, 2, x_3); +lean_ctor_set(x_300, 3, x_294); +lean_ctor_set_uint8(x_300, sizeof(void*)*4, x_299); +x_301 = l_Lean_RBNode_setRed___rarg(x_293); +if (lean_obj_tag(x_301) == 0) +{ +lean_object* x_302; uint8_t x_303; lean_object* x_304; +x_302 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_302, 0, x_297); +lean_ctor_set(x_302, 1, x_291); +lean_ctor_set(x_302, 2, x_292); +lean_ctor_set(x_302, 3, x_301); +lean_ctor_set_uint8(x_302, sizeof(void*)*4, x_299); +x_303 = 0; +x_304 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_304, 0, x_300); +lean_ctor_set(x_304, 1, x_295); +lean_ctor_set(x_304, 2, x_296); +lean_ctor_set(x_304, 3, x_302); +lean_ctor_set_uint8(x_304, sizeof(void*)*4, x_303); +return x_304; +} +else +{ +uint8_t x_305; +x_305 = lean_ctor_get_uint8(x_301, sizeof(void*)*4); +if (x_305 == 0) +{ +lean_object* x_306; +x_306 = lean_ctor_get(x_301, 0); +lean_inc(x_306); +if (lean_obj_tag(x_306) == 0) +{ +lean_object* x_307; +x_307 = lean_ctor_get(x_301, 3); +lean_inc(x_307); +if (lean_obj_tag(x_307) == 0) +{ +lean_object* x_308; lean_object* x_309; lean_object* x_310; lean_object* x_311; lean_object* x_312; uint8_t x_313; lean_object* x_314; +x_308 = lean_ctor_get(x_301, 1); +lean_inc(x_308); +x_309 = lean_ctor_get(x_301, 2); +lean_inc(x_309); +if (lean_is_exclusive(x_301)) { + lean_ctor_release(x_301, 0); + lean_ctor_release(x_301, 1); + lean_ctor_release(x_301, 2); + lean_ctor_release(x_301, 3); + x_310 = x_301; +} else { + lean_dec_ref(x_301); + x_310 = lean_box(0); +} +if (lean_is_scalar(x_310)) { + x_311 = lean_alloc_ctor(1, 4, 1); +} else { + x_311 = x_310; +} +lean_ctor_set(x_311, 0, x_307); +lean_ctor_set(x_311, 1, x_308); +lean_ctor_set(x_311, 2, x_309); +lean_ctor_set(x_311, 3, x_307); +lean_ctor_set_uint8(x_311, sizeof(void*)*4, x_305); +x_312 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_312, 0, x_297); +lean_ctor_set(x_312, 1, x_291); +lean_ctor_set(x_312, 2, x_292); +lean_ctor_set(x_312, 3, x_311); +lean_ctor_set_uint8(x_312, sizeof(void*)*4, x_299); +x_313 = 0; +x_314 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_314, 0, x_300); +lean_ctor_set(x_314, 1, x_295); +lean_ctor_set(x_314, 2, x_296); +lean_ctor_set(x_314, 3, x_312); +lean_ctor_set_uint8(x_314, sizeof(void*)*4, x_313); +return x_314; +} +else +{ +uint8_t x_315; +x_315 = lean_ctor_get_uint8(x_307, sizeof(void*)*4); +if (x_315 == 0) +{ +lean_object* x_316; lean_object* x_317; lean_object* x_318; lean_object* x_319; lean_object* x_320; lean_object* x_321; lean_object* x_322; lean_object* x_323; lean_object* x_324; lean_object* x_325; uint8_t x_326; lean_object* x_327; lean_object* x_328; +x_316 = lean_ctor_get(x_301, 1); +lean_inc(x_316); +x_317 = lean_ctor_get(x_301, 2); +lean_inc(x_317); +if (lean_is_exclusive(x_301)) { + lean_ctor_release(x_301, 0); + lean_ctor_release(x_301, 1); + lean_ctor_release(x_301, 2); + lean_ctor_release(x_301, 3); + x_318 = x_301; +} else { + lean_dec_ref(x_301); + x_318 = lean_box(0); +} +x_319 = lean_ctor_get(x_307, 0); +lean_inc(x_319); +x_320 = lean_ctor_get(x_307, 1); +lean_inc(x_320); +x_321 = lean_ctor_get(x_307, 2); +lean_inc(x_321); +x_322 = lean_ctor_get(x_307, 3); +lean_inc(x_322); +if (lean_is_exclusive(x_307)) { + lean_ctor_release(x_307, 0); + lean_ctor_release(x_307, 1); + lean_ctor_release(x_307, 2); + lean_ctor_release(x_307, 3); + x_323 = x_307; +} else { + lean_dec_ref(x_307); + x_323 = lean_box(0); +} +if (lean_is_scalar(x_323)) { + x_324 = lean_alloc_ctor(1, 4, 1); +} else { + x_324 = x_323; +} +lean_ctor_set(x_324, 0, x_297); +lean_ctor_set(x_324, 1, x_291); +lean_ctor_set(x_324, 2, x_292); +lean_ctor_set(x_324, 3, x_306); +lean_ctor_set_uint8(x_324, sizeof(void*)*4, x_299); +if (lean_is_scalar(x_318)) { + x_325 = lean_alloc_ctor(1, 4, 1); +} else { + x_325 = x_318; +} +lean_ctor_set(x_325, 0, x_319); +lean_ctor_set(x_325, 1, x_320); +lean_ctor_set(x_325, 2, x_321); +lean_ctor_set(x_325, 3, x_322); +lean_ctor_set_uint8(x_325, sizeof(void*)*4, x_299); +x_326 = 0; +x_327 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_327, 0, x_324); +lean_ctor_set(x_327, 1, x_316); +lean_ctor_set(x_327, 2, x_317); +lean_ctor_set(x_327, 3, x_325); +lean_ctor_set_uint8(x_327, sizeof(void*)*4, x_326); +x_328 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_328, 0, x_300); +lean_ctor_set(x_328, 1, x_295); +lean_ctor_set(x_328, 2, x_296); +lean_ctor_set(x_328, 3, x_327); +lean_ctor_set_uint8(x_328, sizeof(void*)*4, x_326); +return x_328; +} +else +{ +lean_object* x_329; lean_object* x_330; lean_object* x_331; uint8_t x_332; lean_object* x_333; +if (lean_is_exclusive(x_307)) { + lean_ctor_release(x_307, 0); + lean_ctor_release(x_307, 1); + lean_ctor_release(x_307, 2); + lean_ctor_release(x_307, 3); + x_329 = x_307; +} else { + lean_dec_ref(x_307); + x_329 = lean_box(0); +} +lean_inc(x_301); +if (lean_is_scalar(x_329)) { + x_330 = lean_alloc_ctor(1, 4, 1); +} else { + x_330 = x_329; +} +lean_ctor_set(x_330, 0, x_297); +lean_ctor_set(x_330, 1, x_291); +lean_ctor_set(x_330, 2, x_292); +lean_ctor_set(x_330, 3, x_301); +if (lean_is_exclusive(x_301)) { + lean_ctor_release(x_301, 0); + lean_ctor_release(x_301, 1); + lean_ctor_release(x_301, 2); + lean_ctor_release(x_301, 3); + x_331 = x_301; +} else { + lean_dec_ref(x_301); + x_331 = lean_box(0); +} +lean_ctor_set_uint8(x_330, sizeof(void*)*4, x_299); +x_332 = 0; +if (lean_is_scalar(x_331)) { + x_333 = lean_alloc_ctor(1, 4, 1); +} else { + x_333 = x_331; +} +lean_ctor_set(x_333, 0, x_300); +lean_ctor_set(x_333, 1, x_295); +lean_ctor_set(x_333, 2, x_296); +lean_ctor_set(x_333, 3, x_330); +lean_ctor_set_uint8(x_333, sizeof(void*)*4, x_332); +return x_333; +} +} +} +else +{ +uint8_t x_334; +x_334 = lean_ctor_get_uint8(x_306, sizeof(void*)*4); +if (x_334 == 0) +{ +lean_object* x_335; lean_object* x_336; lean_object* x_337; lean_object* x_338; lean_object* x_339; lean_object* x_340; lean_object* x_341; lean_object* x_342; lean_object* x_343; lean_object* x_344; lean_object* x_345; uint8_t x_346; lean_object* x_347; lean_object* x_348; +x_335 = lean_ctor_get(x_301, 1); +lean_inc(x_335); +x_336 = lean_ctor_get(x_301, 2); +lean_inc(x_336); +x_337 = lean_ctor_get(x_301, 3); +lean_inc(x_337); +if (lean_is_exclusive(x_301)) { + lean_ctor_release(x_301, 0); + lean_ctor_release(x_301, 1); + lean_ctor_release(x_301, 2); + lean_ctor_release(x_301, 3); + x_338 = x_301; +} else { + lean_dec_ref(x_301); + x_338 = lean_box(0); +} +x_339 = lean_ctor_get(x_306, 0); +lean_inc(x_339); +x_340 = lean_ctor_get(x_306, 1); +lean_inc(x_340); +x_341 = lean_ctor_get(x_306, 2); +lean_inc(x_341); +x_342 = lean_ctor_get(x_306, 3); +lean_inc(x_342); +if (lean_is_exclusive(x_306)) { + lean_ctor_release(x_306, 0); + lean_ctor_release(x_306, 1); + lean_ctor_release(x_306, 2); + lean_ctor_release(x_306, 3); + x_343 = x_306; +} else { + lean_dec_ref(x_306); + x_343 = lean_box(0); +} +if (lean_is_scalar(x_343)) { + x_344 = lean_alloc_ctor(1, 4, 1); +} else { + x_344 = x_343; +} +lean_ctor_set(x_344, 0, x_297); +lean_ctor_set(x_344, 1, x_291); +lean_ctor_set(x_344, 2, x_292); +lean_ctor_set(x_344, 3, x_339); +lean_ctor_set_uint8(x_344, sizeof(void*)*4, x_299); +if (lean_is_scalar(x_338)) { + x_345 = lean_alloc_ctor(1, 4, 1); +} else { + x_345 = x_338; +} +lean_ctor_set(x_345, 0, x_342); +lean_ctor_set(x_345, 1, x_335); +lean_ctor_set(x_345, 2, x_336); +lean_ctor_set(x_345, 3, x_337); +lean_ctor_set_uint8(x_345, sizeof(void*)*4, x_299); +x_346 = 0; +x_347 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_347, 0, x_344); +lean_ctor_set(x_347, 1, x_340); +lean_ctor_set(x_347, 2, x_341); +lean_ctor_set(x_347, 3, x_345); +lean_ctor_set_uint8(x_347, sizeof(void*)*4, x_346); +x_348 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_348, 0, x_300); +lean_ctor_set(x_348, 1, x_295); +lean_ctor_set(x_348, 2, x_296); +lean_ctor_set(x_348, 3, x_347); +lean_ctor_set_uint8(x_348, sizeof(void*)*4, x_346); +return x_348; +} +else +{ +lean_object* x_349; +x_349 = lean_ctor_get(x_301, 3); +lean_inc(x_349); +if (lean_obj_tag(x_349) == 0) +{ +lean_object* x_350; lean_object* x_351; lean_object* x_352; uint8_t x_353; lean_object* x_354; +if (lean_is_exclusive(x_306)) { + lean_ctor_release(x_306, 0); + lean_ctor_release(x_306, 1); + lean_ctor_release(x_306, 2); + lean_ctor_release(x_306, 3); + x_350 = x_306; +} else { + lean_dec_ref(x_306); + x_350 = lean_box(0); +} +lean_inc(x_301); +if (lean_is_scalar(x_350)) { + x_351 = lean_alloc_ctor(1, 4, 1); +} else { + x_351 = x_350; +} +lean_ctor_set(x_351, 0, x_297); +lean_ctor_set(x_351, 1, x_291); +lean_ctor_set(x_351, 2, x_292); +lean_ctor_set(x_351, 3, x_301); +if (lean_is_exclusive(x_301)) { + lean_ctor_release(x_301, 0); + lean_ctor_release(x_301, 1); + lean_ctor_release(x_301, 2); + lean_ctor_release(x_301, 3); + x_352 = x_301; +} else { + lean_dec_ref(x_301); + x_352 = lean_box(0); +} +lean_ctor_set_uint8(x_351, sizeof(void*)*4, x_299); +x_353 = 0; +if (lean_is_scalar(x_352)) { + x_354 = lean_alloc_ctor(1, 4, 1); +} else { + x_354 = x_352; +} +lean_ctor_set(x_354, 0, x_300); +lean_ctor_set(x_354, 1, x_295); +lean_ctor_set(x_354, 2, x_296); +lean_ctor_set(x_354, 3, x_351); +lean_ctor_set_uint8(x_354, sizeof(void*)*4, x_353); +return x_354; +} +else +{ +uint8_t x_355; +x_355 = lean_ctor_get_uint8(x_349, sizeof(void*)*4); +if (x_355 == 0) +{ +lean_object* x_356; lean_object* x_357; lean_object* x_358; lean_object* x_359; lean_object* x_360; lean_object* x_361; lean_object* x_362; lean_object* x_363; lean_object* x_364; lean_object* x_365; lean_object* x_366; uint8_t x_367; lean_object* x_368; lean_object* x_369; +x_356 = lean_ctor_get(x_301, 1); +lean_inc(x_356); +x_357 = lean_ctor_get(x_301, 2); +lean_inc(x_357); +if (lean_is_exclusive(x_301)) { + lean_ctor_release(x_301, 0); + lean_ctor_release(x_301, 1); + lean_ctor_release(x_301, 2); + lean_ctor_release(x_301, 3); + x_358 = x_301; +} else { + lean_dec_ref(x_301); + x_358 = lean_box(0); +} +x_359 = lean_ctor_get(x_349, 0); +lean_inc(x_359); +x_360 = lean_ctor_get(x_349, 1); +lean_inc(x_360); +x_361 = lean_ctor_get(x_349, 2); +lean_inc(x_361); +x_362 = lean_ctor_get(x_349, 3); +lean_inc(x_362); +if (lean_is_exclusive(x_349)) { + lean_ctor_release(x_349, 0); + lean_ctor_release(x_349, 1); + lean_ctor_release(x_349, 2); + lean_ctor_release(x_349, 3); + x_363 = x_349; +} else { + lean_dec_ref(x_349); + x_363 = lean_box(0); +} +lean_inc(x_306); +if (lean_is_scalar(x_363)) { + x_364 = lean_alloc_ctor(1, 4, 1); +} else { + x_364 = x_363; +} +lean_ctor_set(x_364, 0, x_297); +lean_ctor_set(x_364, 1, x_291); +lean_ctor_set(x_364, 2, x_292); +lean_ctor_set(x_364, 3, x_306); +if (lean_is_exclusive(x_306)) { + lean_ctor_release(x_306, 0); + lean_ctor_release(x_306, 1); + lean_ctor_release(x_306, 2); + lean_ctor_release(x_306, 3); + x_365 = x_306; +} else { + lean_dec_ref(x_306); + x_365 = lean_box(0); +} +lean_ctor_set_uint8(x_364, sizeof(void*)*4, x_299); +if (lean_is_scalar(x_365)) { + x_366 = lean_alloc_ctor(1, 4, 1); +} else { + x_366 = x_365; +} +lean_ctor_set(x_366, 0, x_359); +lean_ctor_set(x_366, 1, x_360); +lean_ctor_set(x_366, 2, x_361); +lean_ctor_set(x_366, 3, x_362); +lean_ctor_set_uint8(x_366, sizeof(void*)*4, x_299); +x_367 = 0; +if (lean_is_scalar(x_358)) { + x_368 = lean_alloc_ctor(1, 4, 1); +} else { + x_368 = x_358; +} +lean_ctor_set(x_368, 0, x_364); +lean_ctor_set(x_368, 1, x_356); +lean_ctor_set(x_368, 2, x_357); +lean_ctor_set(x_368, 3, x_366); +lean_ctor_set_uint8(x_368, sizeof(void*)*4, x_367); +x_369 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_369, 0, x_300); +lean_ctor_set(x_369, 1, x_295); +lean_ctor_set(x_369, 2, x_296); +lean_ctor_set(x_369, 3, x_368); +lean_ctor_set_uint8(x_369, sizeof(void*)*4, x_367); +return x_369; +} +else +{ +lean_object* x_370; lean_object* x_371; lean_object* x_372; lean_object* x_373; lean_object* x_374; lean_object* x_375; lean_object* x_376; lean_object* x_377; lean_object* x_378; lean_object* x_379; lean_object* x_380; uint8_t x_381; lean_object* x_382; +x_370 = lean_ctor_get(x_301, 1); +lean_inc(x_370); +x_371 = lean_ctor_get(x_301, 2); +lean_inc(x_371); +if (lean_is_exclusive(x_301)) { + lean_ctor_release(x_301, 0); + lean_ctor_release(x_301, 1); + lean_ctor_release(x_301, 2); + lean_ctor_release(x_301, 3); + x_372 = x_301; +} else { + lean_dec_ref(x_301); + x_372 = lean_box(0); +} +x_373 = lean_ctor_get(x_306, 0); +lean_inc(x_373); +x_374 = lean_ctor_get(x_306, 1); +lean_inc(x_374); +x_375 = lean_ctor_get(x_306, 2); +lean_inc(x_375); +x_376 = lean_ctor_get(x_306, 3); +lean_inc(x_376); +if (lean_is_exclusive(x_306)) { + lean_ctor_release(x_306, 0); + lean_ctor_release(x_306, 1); + lean_ctor_release(x_306, 2); + lean_ctor_release(x_306, 3); + x_377 = x_306; +} else { + lean_dec_ref(x_306); + x_377 = lean_box(0); +} +if (lean_is_scalar(x_377)) { + x_378 = lean_alloc_ctor(1, 4, 1); +} else { + x_378 = x_377; +} +lean_ctor_set(x_378, 0, x_373); +lean_ctor_set(x_378, 1, x_374); +lean_ctor_set(x_378, 2, x_375); +lean_ctor_set(x_378, 3, x_376); +lean_ctor_set_uint8(x_378, sizeof(void*)*4, x_355); +if (lean_is_scalar(x_372)) { + x_379 = lean_alloc_ctor(1, 4, 1); +} else { + x_379 = x_372; +} +lean_ctor_set(x_379, 0, x_378); +lean_ctor_set(x_379, 1, x_370); +lean_ctor_set(x_379, 2, x_371); +lean_ctor_set(x_379, 3, x_349); +lean_ctor_set_uint8(x_379, sizeof(void*)*4, x_305); +x_380 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_380, 0, x_297); +lean_ctor_set(x_380, 1, x_291); +lean_ctor_set(x_380, 2, x_292); +lean_ctor_set(x_380, 3, x_379); +lean_ctor_set_uint8(x_380, sizeof(void*)*4, x_299); +x_381 = 0; +x_382 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_382, 0, x_300); +lean_ctor_set(x_382, 1, x_295); +lean_ctor_set(x_382, 2, x_296); +lean_ctor_set(x_382, 3, x_380); +lean_ctor_set_uint8(x_382, sizeof(void*)*4, x_381); +return x_382; +} +} +} +} +} +else +{ +lean_object* x_383; uint8_t x_384; lean_object* x_385; +x_383 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_383, 0, x_297); +lean_ctor_set(x_383, 1, x_291); +lean_ctor_set(x_383, 2, x_292); +lean_ctor_set(x_383, 3, x_301); +lean_ctor_set_uint8(x_383, sizeof(void*)*4, x_299); +x_384 = 0; +x_385 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_385, 0, x_300); +lean_ctor_set(x_385, 1, x_295); +lean_ctor_set(x_385, 2, x_296); +lean_ctor_set(x_385, 3, x_383); +lean_ctor_set_uint8(x_385, sizeof(void*)*4, x_384); +return x_385; +} +} +} +} +} +} +else +{ +uint8_t x_386; +x_386 = !lean_is_exclusive(x_4); +if (x_386 == 0) +{ +lean_object* x_387; lean_object* x_388; lean_object* x_389; lean_object* x_390; uint8_t x_391; +x_387 = lean_ctor_get(x_4, 0); +x_388 = lean_ctor_get(x_4, 1); +x_389 = lean_ctor_get(x_4, 2); +x_390 = lean_ctor_get(x_4, 3); +x_391 = 0; +lean_inc(x_390); +lean_inc(x_389); +lean_inc(x_388); +lean_inc(x_387); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_391); +if (lean_obj_tag(x_387) == 0) +{ +if (lean_obj_tag(x_390) == 0) +{ +lean_object* x_392; uint8_t x_393; lean_object* x_394; +lean_dec(x_4); +x_392 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_392, 0, x_390); +lean_ctor_set(x_392, 1, x_388); +lean_ctor_set(x_392, 2, x_389); +lean_ctor_set(x_392, 3, x_390); +lean_ctor_set_uint8(x_392, sizeof(void*)*4, x_391); +x_393 = 1; +x_394 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_394, 0, x_1); +lean_ctor_set(x_394, 1, x_2); +lean_ctor_set(x_394, 2, x_3); +lean_ctor_set(x_394, 3, x_392); +lean_ctor_set_uint8(x_394, sizeof(void*)*4, x_393); +return x_394; +} +else +{ +uint8_t x_395; +x_395 = lean_ctor_get_uint8(x_390, sizeof(void*)*4); +if (x_395 == 0) +{ +uint8_t x_396; +lean_dec(x_4); +x_396 = !lean_is_exclusive(x_390); +if (x_396 == 0) +{ +lean_object* x_397; lean_object* x_398; lean_object* x_399; lean_object* x_400; uint8_t x_401; lean_object* x_402; lean_object* x_403; +x_397 = lean_ctor_get(x_390, 0); +x_398 = lean_ctor_get(x_390, 1); +x_399 = lean_ctor_get(x_390, 2); +x_400 = lean_ctor_get(x_390, 3); +x_401 = 1; +lean_ctor_set(x_390, 3, x_387); +lean_ctor_set(x_390, 2, x_3); +lean_ctor_set(x_390, 1, x_2); +lean_ctor_set(x_390, 0, x_1); +lean_ctor_set_uint8(x_390, sizeof(void*)*4, x_401); +x_402 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_402, 0, x_397); +lean_ctor_set(x_402, 1, x_398); +lean_ctor_set(x_402, 2, x_399); +lean_ctor_set(x_402, 3, x_400); +lean_ctor_set_uint8(x_402, sizeof(void*)*4, x_401); +x_403 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_403, 0, x_390); +lean_ctor_set(x_403, 1, x_388); +lean_ctor_set(x_403, 2, x_389); +lean_ctor_set(x_403, 3, x_402); +lean_ctor_set_uint8(x_403, sizeof(void*)*4, x_391); +return x_403; +} +else +{ +lean_object* x_404; lean_object* x_405; lean_object* x_406; lean_object* x_407; uint8_t x_408; lean_object* x_409; lean_object* x_410; lean_object* x_411; +x_404 = lean_ctor_get(x_390, 0); +x_405 = lean_ctor_get(x_390, 1); +x_406 = lean_ctor_get(x_390, 2); +x_407 = lean_ctor_get(x_390, 3); +lean_inc(x_407); +lean_inc(x_406); +lean_inc(x_405); +lean_inc(x_404); +lean_dec(x_390); +x_408 = 1; +x_409 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_409, 0, x_1); +lean_ctor_set(x_409, 1, x_2); +lean_ctor_set(x_409, 2, x_3); +lean_ctor_set(x_409, 3, x_387); +lean_ctor_set_uint8(x_409, sizeof(void*)*4, x_408); +x_410 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_410, 0, x_404); +lean_ctor_set(x_410, 1, x_405); +lean_ctor_set(x_410, 2, x_406); +lean_ctor_set(x_410, 3, x_407); +lean_ctor_set_uint8(x_410, sizeof(void*)*4, x_408); +x_411 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_411, 0, x_409); +lean_ctor_set(x_411, 1, x_388); +lean_ctor_set(x_411, 2, x_389); +lean_ctor_set(x_411, 3, x_410); +lean_ctor_set_uint8(x_411, sizeof(void*)*4, x_391); +return x_411; +} +} +else +{ +uint8_t x_412; +lean_dec(x_389); +lean_dec(x_388); +x_412 = !lean_is_exclusive(x_390); +if (x_412 == 0) +{ +lean_object* x_413; lean_object* x_414; lean_object* x_415; lean_object* x_416; uint8_t x_417; +x_413 = lean_ctor_get(x_390, 3); +lean_dec(x_413); +x_414 = lean_ctor_get(x_390, 2); +lean_dec(x_414); +x_415 = lean_ctor_get(x_390, 1); +lean_dec(x_415); +x_416 = lean_ctor_get(x_390, 0); +lean_dec(x_416); +x_417 = 1; +lean_ctor_set(x_390, 3, x_4); +lean_ctor_set(x_390, 2, x_3); +lean_ctor_set(x_390, 1, x_2); +lean_ctor_set(x_390, 0, x_1); +lean_ctor_set_uint8(x_390, sizeof(void*)*4, x_417); +return x_390; +} +else +{ +uint8_t x_418; lean_object* x_419; +lean_dec(x_390); +x_418 = 1; +x_419 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_419, 0, x_1); +lean_ctor_set(x_419, 1, x_2); +lean_ctor_set(x_419, 2, x_3); +lean_ctor_set(x_419, 3, x_4); +lean_ctor_set_uint8(x_419, sizeof(void*)*4, x_418); +return x_419; +} +} +} +} +else +{ +uint8_t x_420; +x_420 = lean_ctor_get_uint8(x_387, sizeof(void*)*4); +if (x_420 == 0) +{ +uint8_t x_421; +lean_dec(x_4); +x_421 = !lean_is_exclusive(x_387); +if (x_421 == 0) +{ +lean_object* x_422; lean_object* x_423; lean_object* x_424; lean_object* x_425; uint8_t x_426; lean_object* x_427; lean_object* x_428; +x_422 = lean_ctor_get(x_387, 0); +x_423 = lean_ctor_get(x_387, 1); +x_424 = lean_ctor_get(x_387, 2); +x_425 = lean_ctor_get(x_387, 3); +x_426 = 1; +lean_ctor_set(x_387, 3, x_422); +lean_ctor_set(x_387, 2, x_3); +lean_ctor_set(x_387, 1, x_2); +lean_ctor_set(x_387, 0, x_1); +lean_ctor_set_uint8(x_387, sizeof(void*)*4, x_426); +x_427 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_427, 0, x_425); +lean_ctor_set(x_427, 1, x_388); +lean_ctor_set(x_427, 2, x_389); +lean_ctor_set(x_427, 3, x_390); +lean_ctor_set_uint8(x_427, sizeof(void*)*4, x_426); +x_428 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_428, 0, x_387); +lean_ctor_set(x_428, 1, x_423); +lean_ctor_set(x_428, 2, x_424); +lean_ctor_set(x_428, 3, x_427); +lean_ctor_set_uint8(x_428, sizeof(void*)*4, x_391); +return x_428; +} +else +{ +lean_object* x_429; lean_object* x_430; lean_object* x_431; lean_object* x_432; uint8_t x_433; lean_object* x_434; lean_object* x_435; lean_object* x_436; +x_429 = lean_ctor_get(x_387, 0); +x_430 = lean_ctor_get(x_387, 1); +x_431 = lean_ctor_get(x_387, 2); +x_432 = lean_ctor_get(x_387, 3); +lean_inc(x_432); +lean_inc(x_431); +lean_inc(x_430); +lean_inc(x_429); +lean_dec(x_387); +x_433 = 1; +x_434 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_434, 0, x_1); +lean_ctor_set(x_434, 1, x_2); +lean_ctor_set(x_434, 2, x_3); +lean_ctor_set(x_434, 3, x_429); +lean_ctor_set_uint8(x_434, sizeof(void*)*4, x_433); +x_435 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_435, 0, x_432); +lean_ctor_set(x_435, 1, x_388); +lean_ctor_set(x_435, 2, x_389); +lean_ctor_set(x_435, 3, x_390); +lean_ctor_set_uint8(x_435, sizeof(void*)*4, x_433); +x_436 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_436, 0, x_434); +lean_ctor_set(x_436, 1, x_430); +lean_ctor_set(x_436, 2, x_431); +lean_ctor_set(x_436, 3, x_435); +lean_ctor_set_uint8(x_436, sizeof(void*)*4, x_391); +return x_436; +} +} +else +{ +if (lean_obj_tag(x_390) == 0) +{ +uint8_t x_437; +lean_dec(x_389); +lean_dec(x_388); +x_437 = !lean_is_exclusive(x_387); +if (x_437 == 0) +{ +lean_object* x_438; lean_object* x_439; lean_object* x_440; lean_object* x_441; uint8_t x_442; +x_438 = lean_ctor_get(x_387, 3); +lean_dec(x_438); +x_439 = lean_ctor_get(x_387, 2); +lean_dec(x_439); +x_440 = lean_ctor_get(x_387, 1); +lean_dec(x_440); +x_441 = lean_ctor_get(x_387, 0); +lean_dec(x_441); +x_442 = 1; +lean_ctor_set(x_387, 3, x_4); +lean_ctor_set(x_387, 2, x_3); +lean_ctor_set(x_387, 1, x_2); +lean_ctor_set(x_387, 0, x_1); +lean_ctor_set_uint8(x_387, sizeof(void*)*4, x_442); +return x_387; +} +else +{ +uint8_t x_443; lean_object* x_444; +lean_dec(x_387); +x_443 = 1; +x_444 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_444, 0, x_1); +lean_ctor_set(x_444, 1, x_2); +lean_ctor_set(x_444, 2, x_3); +lean_ctor_set(x_444, 3, x_4); +lean_ctor_set_uint8(x_444, sizeof(void*)*4, x_443); +return x_444; +} +} +else +{ +uint8_t x_445; +lean_dec(x_4); +x_445 = lean_ctor_get_uint8(x_390, sizeof(void*)*4); +if (x_445 == 0) +{ +uint8_t x_446; +x_446 = !lean_is_exclusive(x_390); +if (x_446 == 0) +{ +lean_object* x_447; lean_object* x_448; lean_object* x_449; lean_object* x_450; uint8_t x_451; uint8_t x_452; +x_447 = lean_ctor_get(x_390, 0); +x_448 = lean_ctor_get(x_390, 1); +x_449 = lean_ctor_get(x_390, 2); +x_450 = lean_ctor_get(x_390, 3); +x_451 = 1; +lean_inc(x_387); +lean_ctor_set(x_390, 3, x_387); +lean_ctor_set(x_390, 2, x_3); +lean_ctor_set(x_390, 1, x_2); +lean_ctor_set(x_390, 0, x_1); +x_452 = !lean_is_exclusive(x_387); +if (x_452 == 0) +{ +lean_object* x_453; lean_object* x_454; lean_object* x_455; lean_object* x_456; lean_object* x_457; +x_453 = lean_ctor_get(x_387, 3); +lean_dec(x_453); +x_454 = lean_ctor_get(x_387, 2); +lean_dec(x_454); +x_455 = lean_ctor_get(x_387, 1); +lean_dec(x_455); +x_456 = lean_ctor_get(x_387, 0); +lean_dec(x_456); +lean_ctor_set_uint8(x_390, sizeof(void*)*4, x_451); +lean_ctor_set(x_387, 3, x_450); +lean_ctor_set(x_387, 2, x_449); +lean_ctor_set(x_387, 1, x_448); +lean_ctor_set(x_387, 0, x_447); +lean_ctor_set_uint8(x_387, sizeof(void*)*4, x_451); +x_457 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_457, 0, x_390); +lean_ctor_set(x_457, 1, x_388); +lean_ctor_set(x_457, 2, x_389); +lean_ctor_set(x_457, 3, x_387); +lean_ctor_set_uint8(x_457, sizeof(void*)*4, x_391); +return x_457; +} +else +{ +lean_object* x_458; lean_object* x_459; +lean_dec(x_387); +lean_ctor_set_uint8(x_390, sizeof(void*)*4, x_451); +x_458 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_458, 0, x_447); +lean_ctor_set(x_458, 1, x_448); +lean_ctor_set(x_458, 2, x_449); +lean_ctor_set(x_458, 3, x_450); +lean_ctor_set_uint8(x_458, sizeof(void*)*4, x_451); +x_459 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_459, 0, x_390); +lean_ctor_set(x_459, 1, x_388); +lean_ctor_set(x_459, 2, x_389); +lean_ctor_set(x_459, 3, x_458); +lean_ctor_set_uint8(x_459, sizeof(void*)*4, x_391); +return x_459; +} +} +else +{ +lean_object* x_460; lean_object* x_461; lean_object* x_462; lean_object* x_463; uint8_t x_464; lean_object* x_465; lean_object* x_466; lean_object* x_467; lean_object* x_468; +x_460 = lean_ctor_get(x_390, 0); +x_461 = lean_ctor_get(x_390, 1); +x_462 = lean_ctor_get(x_390, 2); +x_463 = lean_ctor_get(x_390, 3); +lean_inc(x_463); +lean_inc(x_462); +lean_inc(x_461); +lean_inc(x_460); +lean_dec(x_390); +x_464 = 1; +lean_inc(x_387); +x_465 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_465, 0, x_1); +lean_ctor_set(x_465, 1, x_2); +lean_ctor_set(x_465, 2, x_3); +lean_ctor_set(x_465, 3, x_387); +if (lean_is_exclusive(x_387)) { + lean_ctor_release(x_387, 0); + lean_ctor_release(x_387, 1); + lean_ctor_release(x_387, 2); + lean_ctor_release(x_387, 3); + x_466 = x_387; +} else { + lean_dec_ref(x_387); + x_466 = lean_box(0); +} +lean_ctor_set_uint8(x_465, sizeof(void*)*4, x_464); +if (lean_is_scalar(x_466)) { + x_467 = lean_alloc_ctor(1, 4, 1); +} else { + x_467 = x_466; +} +lean_ctor_set(x_467, 0, x_460); +lean_ctor_set(x_467, 1, x_461); +lean_ctor_set(x_467, 2, x_462); +lean_ctor_set(x_467, 3, x_463); +lean_ctor_set_uint8(x_467, sizeof(void*)*4, x_464); +x_468 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_468, 0, x_465); +lean_ctor_set(x_468, 1, x_388); +lean_ctor_set(x_468, 2, x_389); +lean_ctor_set(x_468, 3, x_467); +lean_ctor_set_uint8(x_468, sizeof(void*)*4, x_391); +return x_468; +} +} +else +{ +uint8_t x_469; +x_469 = !lean_is_exclusive(x_387); +if (x_469 == 0) +{ +lean_object* x_470; uint8_t x_471; lean_object* x_472; +lean_ctor_set_uint8(x_387, sizeof(void*)*4, x_445); +x_470 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_470, 0, x_387); +lean_ctor_set(x_470, 1, x_388); +lean_ctor_set(x_470, 2, x_389); +lean_ctor_set(x_470, 3, x_390); +lean_ctor_set_uint8(x_470, sizeof(void*)*4, x_391); +x_471 = 1; +x_472 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_472, 0, x_1); +lean_ctor_set(x_472, 1, x_2); +lean_ctor_set(x_472, 2, x_3); +lean_ctor_set(x_472, 3, x_470); +lean_ctor_set_uint8(x_472, sizeof(void*)*4, x_471); +return x_472; +} +else +{ +lean_object* x_473; lean_object* x_474; lean_object* x_475; lean_object* x_476; lean_object* x_477; lean_object* x_478; uint8_t x_479; lean_object* x_480; +x_473 = lean_ctor_get(x_387, 0); +x_474 = lean_ctor_get(x_387, 1); +x_475 = lean_ctor_get(x_387, 2); +x_476 = lean_ctor_get(x_387, 3); +lean_inc(x_476); +lean_inc(x_475); +lean_inc(x_474); +lean_inc(x_473); +lean_dec(x_387); +x_477 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_477, 0, x_473); +lean_ctor_set(x_477, 1, x_474); +lean_ctor_set(x_477, 2, x_475); +lean_ctor_set(x_477, 3, x_476); +lean_ctor_set_uint8(x_477, sizeof(void*)*4, x_445); +x_478 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_478, 0, x_477); +lean_ctor_set(x_478, 1, x_388); +lean_ctor_set(x_478, 2, x_389); +lean_ctor_set(x_478, 3, x_390); +lean_ctor_set_uint8(x_478, sizeof(void*)*4, x_391); +x_479 = 1; +x_480 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_480, 0, x_1); +lean_ctor_set(x_480, 1, x_2); +lean_ctor_set(x_480, 2, x_3); +lean_ctor_set(x_480, 3, x_478); +lean_ctor_set_uint8(x_480, sizeof(void*)*4, x_479); +return x_480; +} +} +} +} +} +} +else +{ +lean_object* x_481; lean_object* x_482; lean_object* x_483; lean_object* x_484; uint8_t x_485; lean_object* x_486; +x_481 = lean_ctor_get(x_4, 0); +x_482 = lean_ctor_get(x_4, 1); +x_483 = lean_ctor_get(x_4, 2); +x_484 = lean_ctor_get(x_4, 3); +lean_inc(x_484); +lean_inc(x_483); +lean_inc(x_482); +lean_inc(x_481); +lean_dec(x_4); +x_485 = 0; +lean_inc(x_484); +lean_inc(x_483); +lean_inc(x_482); +lean_inc(x_481); +x_486 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_486, 0, x_481); +lean_ctor_set(x_486, 1, x_482); +lean_ctor_set(x_486, 2, x_483); +lean_ctor_set(x_486, 3, x_484); +lean_ctor_set_uint8(x_486, sizeof(void*)*4, x_485); +if (lean_obj_tag(x_481) == 0) +{ +if (lean_obj_tag(x_484) == 0) +{ +lean_object* x_487; uint8_t x_488; lean_object* x_489; +lean_dec(x_486); +x_487 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_487, 0, x_484); +lean_ctor_set(x_487, 1, x_482); +lean_ctor_set(x_487, 2, x_483); +lean_ctor_set(x_487, 3, x_484); +lean_ctor_set_uint8(x_487, sizeof(void*)*4, x_485); +x_488 = 1; +x_489 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_489, 0, x_1); +lean_ctor_set(x_489, 1, x_2); +lean_ctor_set(x_489, 2, x_3); +lean_ctor_set(x_489, 3, x_487); +lean_ctor_set_uint8(x_489, sizeof(void*)*4, x_488); +return x_489; +} +else +{ +uint8_t x_490; +x_490 = lean_ctor_get_uint8(x_484, sizeof(void*)*4); +if (x_490 == 0) +{ +lean_object* x_491; lean_object* x_492; lean_object* x_493; lean_object* x_494; lean_object* x_495; uint8_t x_496; lean_object* x_497; lean_object* x_498; lean_object* x_499; +lean_dec(x_486); +x_491 = lean_ctor_get(x_484, 0); +lean_inc(x_491); +x_492 = lean_ctor_get(x_484, 1); +lean_inc(x_492); +x_493 = lean_ctor_get(x_484, 2); +lean_inc(x_493); +x_494 = lean_ctor_get(x_484, 3); +lean_inc(x_494); +if (lean_is_exclusive(x_484)) { + lean_ctor_release(x_484, 0); + lean_ctor_release(x_484, 1); + lean_ctor_release(x_484, 2); + lean_ctor_release(x_484, 3); + x_495 = x_484; +} else { + lean_dec_ref(x_484); + x_495 = lean_box(0); +} +x_496 = 1; +if (lean_is_scalar(x_495)) { + x_497 = lean_alloc_ctor(1, 4, 1); +} else { + x_497 = x_495; +} +lean_ctor_set(x_497, 0, x_1); +lean_ctor_set(x_497, 1, x_2); +lean_ctor_set(x_497, 2, x_3); +lean_ctor_set(x_497, 3, x_481); +lean_ctor_set_uint8(x_497, sizeof(void*)*4, x_496); +x_498 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_498, 0, x_491); +lean_ctor_set(x_498, 1, x_492); +lean_ctor_set(x_498, 2, x_493); +lean_ctor_set(x_498, 3, x_494); +lean_ctor_set_uint8(x_498, sizeof(void*)*4, x_496); +x_499 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_499, 0, x_497); +lean_ctor_set(x_499, 1, x_482); +lean_ctor_set(x_499, 2, x_483); +lean_ctor_set(x_499, 3, x_498); +lean_ctor_set_uint8(x_499, sizeof(void*)*4, x_485); +return x_499; +} +else +{ +lean_object* x_500; uint8_t x_501; lean_object* x_502; +lean_dec(x_483); +lean_dec(x_482); +if (lean_is_exclusive(x_484)) { + lean_ctor_release(x_484, 0); + lean_ctor_release(x_484, 1); + lean_ctor_release(x_484, 2); + lean_ctor_release(x_484, 3); + x_500 = x_484; +} else { + lean_dec_ref(x_484); + x_500 = lean_box(0); +} +x_501 = 1; +if (lean_is_scalar(x_500)) { + x_502 = lean_alloc_ctor(1, 4, 1); +} else { + x_502 = x_500; +} +lean_ctor_set(x_502, 0, x_1); +lean_ctor_set(x_502, 1, x_2); +lean_ctor_set(x_502, 2, x_3); +lean_ctor_set(x_502, 3, x_486); +lean_ctor_set_uint8(x_502, sizeof(void*)*4, x_501); +return x_502; +} +} +} +else +{ +uint8_t x_503; +x_503 = lean_ctor_get_uint8(x_481, sizeof(void*)*4); +if (x_503 == 0) +{ +lean_object* x_504; lean_object* x_505; lean_object* x_506; lean_object* x_507; lean_object* x_508; uint8_t x_509; lean_object* x_510; lean_object* x_511; lean_object* x_512; +lean_dec(x_486); +x_504 = lean_ctor_get(x_481, 0); +lean_inc(x_504); +x_505 = lean_ctor_get(x_481, 1); +lean_inc(x_505); +x_506 = lean_ctor_get(x_481, 2); +lean_inc(x_506); +x_507 = lean_ctor_get(x_481, 3); +lean_inc(x_507); +if (lean_is_exclusive(x_481)) { + lean_ctor_release(x_481, 0); + lean_ctor_release(x_481, 1); + lean_ctor_release(x_481, 2); + lean_ctor_release(x_481, 3); + x_508 = x_481; +} else { + lean_dec_ref(x_481); + x_508 = lean_box(0); +} +x_509 = 1; +if (lean_is_scalar(x_508)) { + x_510 = lean_alloc_ctor(1, 4, 1); +} else { + x_510 = x_508; +} +lean_ctor_set(x_510, 0, x_1); +lean_ctor_set(x_510, 1, x_2); +lean_ctor_set(x_510, 2, x_3); +lean_ctor_set(x_510, 3, x_504); +lean_ctor_set_uint8(x_510, sizeof(void*)*4, x_509); +x_511 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_511, 0, x_507); +lean_ctor_set(x_511, 1, x_482); +lean_ctor_set(x_511, 2, x_483); +lean_ctor_set(x_511, 3, x_484); +lean_ctor_set_uint8(x_511, sizeof(void*)*4, x_509); +x_512 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_512, 0, x_510); +lean_ctor_set(x_512, 1, x_505); +lean_ctor_set(x_512, 2, x_506); +lean_ctor_set(x_512, 3, x_511); +lean_ctor_set_uint8(x_512, sizeof(void*)*4, x_485); +return x_512; +} +else +{ +if (lean_obj_tag(x_484) == 0) +{ +lean_object* x_513; uint8_t x_514; lean_object* x_515; +lean_dec(x_483); +lean_dec(x_482); +if (lean_is_exclusive(x_481)) { + lean_ctor_release(x_481, 0); + lean_ctor_release(x_481, 1); + lean_ctor_release(x_481, 2); + lean_ctor_release(x_481, 3); + x_513 = x_481; +} else { + lean_dec_ref(x_481); + x_513 = lean_box(0); +} +x_514 = 1; +if (lean_is_scalar(x_513)) { + x_515 = lean_alloc_ctor(1, 4, 1); +} else { + x_515 = x_513; +} +lean_ctor_set(x_515, 0, x_1); +lean_ctor_set(x_515, 1, x_2); +lean_ctor_set(x_515, 2, x_3); +lean_ctor_set(x_515, 3, x_486); +lean_ctor_set_uint8(x_515, sizeof(void*)*4, x_514); +return x_515; +} +else +{ +uint8_t x_516; +lean_dec(x_486); +x_516 = lean_ctor_get_uint8(x_484, sizeof(void*)*4); +if (x_516 == 0) +{ +lean_object* x_517; lean_object* x_518; lean_object* x_519; lean_object* x_520; lean_object* x_521; uint8_t x_522; lean_object* x_523; lean_object* x_524; lean_object* x_525; lean_object* x_526; +x_517 = lean_ctor_get(x_484, 0); +lean_inc(x_517); +x_518 = lean_ctor_get(x_484, 1); +lean_inc(x_518); +x_519 = lean_ctor_get(x_484, 2); +lean_inc(x_519); +x_520 = lean_ctor_get(x_484, 3); +lean_inc(x_520); +if (lean_is_exclusive(x_484)) { + lean_ctor_release(x_484, 0); + lean_ctor_release(x_484, 1); + lean_ctor_release(x_484, 2); + lean_ctor_release(x_484, 3); + x_521 = x_484; +} else { + lean_dec_ref(x_484); + x_521 = lean_box(0); +} +x_522 = 1; +lean_inc(x_481); +if (lean_is_scalar(x_521)) { + x_523 = lean_alloc_ctor(1, 4, 1); +} else { + x_523 = x_521; +} +lean_ctor_set(x_523, 0, x_1); +lean_ctor_set(x_523, 1, x_2); +lean_ctor_set(x_523, 2, x_3); +lean_ctor_set(x_523, 3, x_481); +if (lean_is_exclusive(x_481)) { + lean_ctor_release(x_481, 0); + lean_ctor_release(x_481, 1); + lean_ctor_release(x_481, 2); + lean_ctor_release(x_481, 3); + x_524 = x_481; +} else { + lean_dec_ref(x_481); + x_524 = lean_box(0); +} +lean_ctor_set_uint8(x_523, sizeof(void*)*4, x_522); +if (lean_is_scalar(x_524)) { + x_525 = lean_alloc_ctor(1, 4, 1); +} else { + x_525 = x_524; +} +lean_ctor_set(x_525, 0, x_517); +lean_ctor_set(x_525, 1, x_518); +lean_ctor_set(x_525, 2, x_519); +lean_ctor_set(x_525, 3, x_520); +lean_ctor_set_uint8(x_525, sizeof(void*)*4, x_522); +x_526 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_526, 0, x_523); +lean_ctor_set(x_526, 1, x_482); +lean_ctor_set(x_526, 2, x_483); +lean_ctor_set(x_526, 3, x_525); +lean_ctor_set_uint8(x_526, sizeof(void*)*4, x_485); +return x_526; +} +else +{ +lean_object* x_527; lean_object* x_528; lean_object* x_529; lean_object* x_530; lean_object* x_531; lean_object* x_532; lean_object* x_533; uint8_t x_534; lean_object* x_535; +x_527 = lean_ctor_get(x_481, 0); +lean_inc(x_527); +x_528 = lean_ctor_get(x_481, 1); +lean_inc(x_528); +x_529 = lean_ctor_get(x_481, 2); +lean_inc(x_529); +x_530 = lean_ctor_get(x_481, 3); +lean_inc(x_530); +if (lean_is_exclusive(x_481)) { + lean_ctor_release(x_481, 0); + lean_ctor_release(x_481, 1); + lean_ctor_release(x_481, 2); + lean_ctor_release(x_481, 3); + x_531 = x_481; +} else { + lean_dec_ref(x_481); + x_531 = lean_box(0); +} +if (lean_is_scalar(x_531)) { + x_532 = lean_alloc_ctor(1, 4, 1); +} else { + x_532 = x_531; +} +lean_ctor_set(x_532, 0, x_527); +lean_ctor_set(x_532, 1, x_528); +lean_ctor_set(x_532, 2, x_529); +lean_ctor_set(x_532, 3, x_530); +lean_ctor_set_uint8(x_532, sizeof(void*)*4, x_516); +x_533 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_533, 0, x_532); +lean_ctor_set(x_533, 1, x_482); +lean_ctor_set(x_533, 2, x_483); +lean_ctor_set(x_533, 3, x_484); +lean_ctor_set_uint8(x_533, sizeof(void*)*4, x_485); +x_534 = 1; +x_535 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_535, 0, x_1); +lean_ctor_set(x_535, 1, x_2); +lean_ctor_set(x_535, 2, x_3); +lean_ctor_set(x_535, 3, x_533); +lean_ctor_set_uint8(x_535, sizeof(void*)*4, x_534); +return x_535; +} +} +} +} +} +} +} +} +else +{ +uint8_t x_536; +x_536 = lean_ctor_get_uint8(x_1, sizeof(void*)*4); +if (x_536 == 0) +{ +if (lean_obj_tag(x_4) == 0) +{ +uint8_t x_537; +x_537 = !lean_is_exclusive(x_1); +if (x_537 == 0) +{ +uint8_t x_538; uint8_t x_539; lean_object* x_540; +x_538 = 1; +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_538); +x_539 = 0; +x_540 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_540, 0, x_1); +lean_ctor_set(x_540, 1, x_2); +lean_ctor_set(x_540, 2, x_3); +lean_ctor_set(x_540, 3, x_4); +lean_ctor_set_uint8(x_540, sizeof(void*)*4, x_539); +return x_540; +} +else +{ +lean_object* x_541; lean_object* x_542; lean_object* x_543; lean_object* x_544; uint8_t x_545; lean_object* x_546; uint8_t x_547; lean_object* x_548; +x_541 = lean_ctor_get(x_1, 0); +x_542 = lean_ctor_get(x_1, 1); +x_543 = lean_ctor_get(x_1, 2); +x_544 = lean_ctor_get(x_1, 3); +lean_inc(x_544); +lean_inc(x_543); +lean_inc(x_542); +lean_inc(x_541); lean_dec(x_1); -x_273 = lean_ctor_get(x_4, 0); -lean_inc(x_273); -x_274 = lean_ctor_get(x_4, 1); -lean_inc(x_274); -x_275 = lean_ctor_get(x_4, 2); -lean_inc(x_275); -x_276 = lean_ctor_get(x_4, 3); -lean_inc(x_276); +x_545 = 1; +x_546 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_546, 0, x_541); +lean_ctor_set(x_546, 1, x_542); +lean_ctor_set(x_546, 2, x_543); +lean_ctor_set(x_546, 3, x_544); +lean_ctor_set_uint8(x_546, sizeof(void*)*4, x_545); +x_547 = 0; +x_548 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_548, 0, x_546); +lean_ctor_set(x_548, 1, x_2); +lean_ctor_set(x_548, 2, x_3); +lean_ctor_set(x_548, 3, x_4); +lean_ctor_set_uint8(x_548, sizeof(void*)*4, x_547); +return x_548; +} +} +else +{ +uint8_t x_549; +x_549 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); +if (x_549 == 0) +{ +lean_object* x_550; +x_550 = lean_ctor_get(x_4, 0); +lean_inc(x_550); +if (lean_obj_tag(x_550) == 0) +{ +uint8_t x_551; +x_551 = !lean_is_exclusive(x_1); +if (x_551 == 0) +{ +uint8_t x_552; uint8_t x_553; lean_object* x_554; +x_552 = 1; +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_552); +x_553 = 0; +x_554 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_554, 0, x_1); +lean_ctor_set(x_554, 1, x_2); +lean_ctor_set(x_554, 2, x_3); +lean_ctor_set(x_554, 3, x_4); +lean_ctor_set_uint8(x_554, sizeof(void*)*4, x_553); +return x_554; +} +else +{ +lean_object* x_555; lean_object* x_556; lean_object* x_557; lean_object* x_558; uint8_t x_559; lean_object* x_560; uint8_t x_561; lean_object* x_562; +x_555 = lean_ctor_get(x_1, 0); +x_556 = lean_ctor_get(x_1, 1); +x_557 = lean_ctor_get(x_1, 2); +x_558 = lean_ctor_get(x_1, 3); +lean_inc(x_558); +lean_inc(x_557); +lean_inc(x_556); +lean_inc(x_555); +lean_dec(x_1); +x_559 = 1; +x_560 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_560, 0, x_555); +lean_ctor_set(x_560, 1, x_556); +lean_ctor_set(x_560, 2, x_557); +lean_ctor_set(x_560, 3, x_558); +lean_ctor_set_uint8(x_560, sizeof(void*)*4, x_559); +x_561 = 0; +x_562 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_562, 0, x_560); +lean_ctor_set(x_562, 1, x_2); +lean_ctor_set(x_562, 2, x_3); +lean_ctor_set(x_562, 3, x_4); +lean_ctor_set_uint8(x_562, sizeof(void*)*4, x_561); +return x_562; +} +} +else +{ +uint8_t x_563; +x_563 = lean_ctor_get_uint8(x_550, sizeof(void*)*4); +if (x_563 == 0) +{ +uint8_t x_564; +x_564 = !lean_is_exclusive(x_1); +if (x_564 == 0) +{ +uint8_t x_565; +x_565 = !lean_is_exclusive(x_4); +if (x_565 == 0) +{ +lean_object* x_566; uint8_t x_567; uint8_t x_568; lean_object* x_569; +x_566 = lean_ctor_get(x_4, 0); +lean_dec(x_566); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_563); +x_567 = 1; +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_567); +x_568 = 0; +x_569 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_569, 0, x_1); +lean_ctor_set(x_569, 1, x_2); +lean_ctor_set(x_569, 2, x_3); +lean_ctor_set(x_569, 3, x_4); +lean_ctor_set_uint8(x_569, sizeof(void*)*4, x_568); +return x_569; +} +else +{ +lean_object* x_570; lean_object* x_571; lean_object* x_572; lean_object* x_573; uint8_t x_574; uint8_t x_575; lean_object* x_576; +x_570 = lean_ctor_get(x_4, 1); +x_571 = lean_ctor_get(x_4, 2); +x_572 = lean_ctor_get(x_4, 3); +lean_inc(x_572); +lean_inc(x_571); +lean_inc(x_570); +lean_dec(x_4); +x_573 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_573, 0, x_550); +lean_ctor_set(x_573, 1, x_570); +lean_ctor_set(x_573, 2, x_571); +lean_ctor_set(x_573, 3, x_572); +lean_ctor_set_uint8(x_573, sizeof(void*)*4, x_563); +x_574 = 1; +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_574); +x_575 = 0; +x_576 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_576, 0, x_1); +lean_ctor_set(x_576, 1, x_2); +lean_ctor_set(x_576, 2, x_3); +lean_ctor_set(x_576, 3, x_573); +lean_ctor_set_uint8(x_576, sizeof(void*)*4, x_575); +return x_576; +} +} +else +{ +lean_object* x_577; lean_object* x_578; lean_object* x_579; lean_object* x_580; lean_object* x_581; lean_object* x_582; lean_object* x_583; lean_object* x_584; lean_object* x_585; uint8_t x_586; lean_object* x_587; uint8_t x_588; lean_object* x_589; +x_577 = lean_ctor_get(x_1, 0); +x_578 = lean_ctor_get(x_1, 1); +x_579 = lean_ctor_get(x_1, 2); +x_580 = lean_ctor_get(x_1, 3); +lean_inc(x_580); +lean_inc(x_579); +lean_inc(x_578); +lean_inc(x_577); +lean_dec(x_1); +x_581 = lean_ctor_get(x_4, 1); +lean_inc(x_581); +x_582 = lean_ctor_get(x_4, 2); +lean_inc(x_582); +x_583 = lean_ctor_get(x_4, 3); +lean_inc(x_583); if (lean_is_exclusive(x_4)) { lean_ctor_release(x_4, 0); lean_ctor_release(x_4, 1); lean_ctor_release(x_4, 2); lean_ctor_release(x_4, 3); - x_277 = x_4; + x_584 = x_4; } else { lean_dec_ref(x_4); - x_277 = lean_box(0); + x_584 = lean_box(0); } -if (lean_is_scalar(x_277)) { - x_278 = lean_alloc_ctor(1, 4, 1); +if (lean_is_scalar(x_584)) { + x_585 = lean_alloc_ctor(1, 4, 1); } else { - x_278 = x_277; + x_585 = x_584; +} +lean_ctor_set(x_585, 0, x_550); +lean_ctor_set(x_585, 1, x_581); +lean_ctor_set(x_585, 2, x_582); +lean_ctor_set(x_585, 3, x_583); +lean_ctor_set_uint8(x_585, sizeof(void*)*4, x_563); +x_586 = 1; +x_587 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_587, 0, x_577); +lean_ctor_set(x_587, 1, x_578); +lean_ctor_set(x_587, 2, x_579); +lean_ctor_set(x_587, 3, x_580); +lean_ctor_set_uint8(x_587, sizeof(void*)*4, x_586); +x_588 = 0; +x_589 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_589, 0, x_587); +lean_ctor_set(x_589, 1, x_2); +lean_ctor_set(x_589, 2, x_3); +lean_ctor_set(x_589, 3, x_585); +lean_ctor_set_uint8(x_589, sizeof(void*)*4, x_588); +return x_589; +} +} +else +{ +uint8_t x_590; +x_590 = !lean_is_exclusive(x_550); +if (x_590 == 0) +{ +lean_object* x_591; lean_object* x_592; lean_object* x_593; lean_object* x_594; uint8_t x_595; +x_591 = lean_ctor_get(x_550, 3); +lean_dec(x_591); +x_592 = lean_ctor_get(x_550, 2); +lean_dec(x_592); +x_593 = lean_ctor_get(x_550, 1); +lean_dec(x_593); +x_594 = lean_ctor_get(x_550, 0); +lean_dec(x_594); +x_595 = !lean_is_exclusive(x_1); +if (x_595 == 0) +{ +lean_object* x_596; lean_object* x_597; lean_object* x_598; lean_object* x_599; uint8_t x_600; uint8_t x_601; +x_596 = lean_ctor_get(x_1, 0); +x_597 = lean_ctor_get(x_1, 1); +x_598 = lean_ctor_get(x_1, 2); +x_599 = lean_ctor_get(x_1, 3); +x_600 = 1; +lean_ctor_set(x_550, 3, x_599); +lean_ctor_set(x_550, 2, x_598); +lean_ctor_set(x_550, 1, x_597); +lean_ctor_set(x_550, 0, x_596); +lean_ctor_set_uint8(x_550, sizeof(void*)*4, x_600); +x_601 = 0; +lean_ctor_set(x_1, 3, x_4); +lean_ctor_set(x_1, 2, x_3); +lean_ctor_set(x_1, 1, x_2); +lean_ctor_set(x_1, 0, x_550); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_601); +return x_1; +} +else +{ +lean_object* x_602; lean_object* x_603; lean_object* x_604; lean_object* x_605; uint8_t x_606; uint8_t x_607; lean_object* x_608; +x_602 = lean_ctor_get(x_1, 0); +x_603 = lean_ctor_get(x_1, 1); +x_604 = lean_ctor_get(x_1, 2); +x_605 = lean_ctor_get(x_1, 3); +lean_inc(x_605); +lean_inc(x_604); +lean_inc(x_603); +lean_inc(x_602); +lean_dec(x_1); +x_606 = 1; +lean_ctor_set(x_550, 3, x_605); +lean_ctor_set(x_550, 2, x_604); +lean_ctor_set(x_550, 1, x_603); +lean_ctor_set(x_550, 0, x_602); +lean_ctor_set_uint8(x_550, sizeof(void*)*4, x_606); +x_607 = 0; +x_608 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_608, 0, x_550); +lean_ctor_set(x_608, 1, x_2); +lean_ctor_set(x_608, 2, x_3); +lean_ctor_set(x_608, 3, x_4); +lean_ctor_set_uint8(x_608, sizeof(void*)*4, x_607); +return x_608; +} +} +else +{ +lean_object* x_609; lean_object* x_610; lean_object* x_611; lean_object* x_612; lean_object* x_613; uint8_t x_614; lean_object* x_615; uint8_t x_616; lean_object* x_617; +lean_dec(x_550); +x_609 = lean_ctor_get(x_1, 0); +lean_inc(x_609); +x_610 = lean_ctor_get(x_1, 1); +lean_inc(x_610); +x_611 = lean_ctor_get(x_1, 2); +lean_inc(x_611); +x_612 = lean_ctor_get(x_1, 3); +lean_inc(x_612); +if (lean_is_exclusive(x_1)) { + lean_ctor_release(x_1, 0); + lean_ctor_release(x_1, 1); + lean_ctor_release(x_1, 2); + lean_ctor_release(x_1, 3); + x_613 = x_1; +} else { + lean_dec_ref(x_1); + x_613 = lean_box(0); +} +x_614 = 1; +x_615 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_615, 0, x_609); +lean_ctor_set(x_615, 1, x_610); +lean_ctor_set(x_615, 2, x_611); +lean_ctor_set(x_615, 3, x_612); +lean_ctor_set_uint8(x_615, sizeof(void*)*4, x_614); +x_616 = 0; +if (lean_is_scalar(x_613)) { + x_617 = lean_alloc_ctor(1, 4, 1); +} else { + x_617 = x_613; +} +lean_ctor_set(x_617, 0, x_615); +lean_ctor_set(x_617, 1, x_2); +lean_ctor_set(x_617, 2, x_3); +lean_ctor_set(x_617, 3, x_4); +lean_ctor_set_uint8(x_617, sizeof(void*)*4, x_616); +return x_617; +} +} +} +} +else +{ +uint8_t x_618; +x_618 = !lean_is_exclusive(x_1); +if (x_618 == 0) +{ +uint8_t x_619; uint8_t x_620; lean_object* x_621; +x_619 = 1; +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_619); +x_620 = 0; +x_621 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_621, 0, x_1); +lean_ctor_set(x_621, 1, x_2); +lean_ctor_set(x_621, 2, x_3); +lean_ctor_set(x_621, 3, x_4); +lean_ctor_set_uint8(x_621, sizeof(void*)*4, x_620); +return x_621; +} +else +{ +lean_object* x_622; lean_object* x_623; lean_object* x_624; lean_object* x_625; uint8_t x_626; lean_object* x_627; uint8_t x_628; lean_object* x_629; +x_622 = lean_ctor_get(x_1, 0); +x_623 = lean_ctor_get(x_1, 1); +x_624 = lean_ctor_get(x_1, 2); +x_625 = lean_ctor_get(x_1, 3); +lean_inc(x_625); +lean_inc(x_624); +lean_inc(x_623); +lean_inc(x_622); +lean_dec(x_1); +x_626 = 1; +x_627 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_627, 0, x_622); +lean_ctor_set(x_627, 1, x_623); +lean_ctor_set(x_627, 2, x_624); +lean_ctor_set(x_627, 3, x_625); +lean_ctor_set_uint8(x_627, sizeof(void*)*4, x_626); +x_628 = 0; +x_629 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_629, 0, x_627); +lean_ctor_set(x_629, 1, x_2); +lean_ctor_set(x_629, 2, x_3); +lean_ctor_set(x_629, 3, x_4); +lean_ctor_set_uint8(x_629, sizeof(void*)*4, x_628); +return x_629; +} +} +} +} +else +{ +if (lean_obj_tag(x_4) == 0) +{ +uint8_t x_630; lean_object* x_631; +x_630 = 0; +x_631 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_631, 0, x_1); +lean_ctor_set(x_631, 1, x_2); +lean_ctor_set(x_631, 2, x_3); +lean_ctor_set(x_631, 3, x_4); +lean_ctor_set_uint8(x_631, sizeof(void*)*4, x_630); +return x_631; +} +else +{ +uint8_t x_632; +x_632 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); +if (x_632 == 0) +{ +lean_object* x_633; +x_633 = lean_ctor_get(x_4, 0); +lean_inc(x_633); +if (lean_obj_tag(x_633) == 0) +{ +uint8_t x_634; lean_object* x_635; +x_634 = 0; +x_635 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_635, 0, x_1); +lean_ctor_set(x_635, 1, x_2); +lean_ctor_set(x_635, 2, x_3); +lean_ctor_set(x_635, 3, x_4); +lean_ctor_set_uint8(x_635, sizeof(void*)*4, x_634); +return x_635; +} +else +{ +uint8_t x_636; +x_636 = lean_ctor_get_uint8(x_633, sizeof(void*)*4); +if (x_636 == 0) +{ +uint8_t x_637; +x_637 = !lean_is_exclusive(x_4); +if (x_637 == 0) +{ +lean_object* x_638; uint8_t x_639; lean_object* x_640; +x_638 = lean_ctor_get(x_4, 0); +lean_dec(x_638); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_636); +x_639 = 0; +x_640 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_640, 0, x_1); +lean_ctor_set(x_640, 1, x_2); +lean_ctor_set(x_640, 2, x_3); +lean_ctor_set(x_640, 3, x_4); +lean_ctor_set_uint8(x_640, sizeof(void*)*4, x_639); +return x_640; +} +else +{ +lean_object* x_641; lean_object* x_642; lean_object* x_643; lean_object* x_644; uint8_t x_645; lean_object* x_646; +x_641 = lean_ctor_get(x_4, 1); +x_642 = lean_ctor_get(x_4, 2); +x_643 = lean_ctor_get(x_4, 3); +lean_inc(x_643); +lean_inc(x_642); +lean_inc(x_641); +lean_dec(x_4); +x_644 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_644, 0, x_633); +lean_ctor_set(x_644, 1, x_641); +lean_ctor_set(x_644, 2, x_642); +lean_ctor_set(x_644, 3, x_643); +lean_ctor_set_uint8(x_644, sizeof(void*)*4, x_636); +x_645 = 0; +x_646 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_646, 0, x_1); +lean_ctor_set(x_646, 1, x_2); +lean_ctor_set(x_646, 2, x_3); +lean_ctor_set(x_646, 3, x_644); +lean_ctor_set_uint8(x_646, sizeof(void*)*4, x_645); +return x_646; +} +} +else +{ +uint8_t x_647; +x_647 = !lean_is_exclusive(x_1); +if (x_647 == 0) +{ +uint8_t x_648; +x_648 = !lean_is_exclusive(x_4); +if (x_648 == 0) +{ +lean_object* x_649; lean_object* x_650; lean_object* x_651; lean_object* x_652; lean_object* x_653; lean_object* x_654; lean_object* x_655; lean_object* x_656; uint8_t x_657; +x_649 = lean_ctor_get(x_1, 0); +x_650 = lean_ctor_get(x_1, 1); +x_651 = lean_ctor_get(x_1, 2); +x_652 = lean_ctor_get(x_1, 3); +x_653 = lean_ctor_get(x_4, 1); +x_654 = lean_ctor_get(x_4, 2); +x_655 = lean_ctor_get(x_4, 3); +x_656 = lean_ctor_get(x_4, 0); +lean_dec(x_656); +x_657 = !lean_is_exclusive(x_633); +if (x_657 == 0) +{ +lean_object* x_658; lean_object* x_659; lean_object* x_660; lean_object* x_661; uint8_t x_662; lean_object* x_663; +x_658 = lean_ctor_get(x_633, 0); +x_659 = lean_ctor_get(x_633, 1); +x_660 = lean_ctor_get(x_633, 2); +x_661 = lean_ctor_get(x_633, 3); +lean_ctor_set(x_633, 3, x_652); +lean_ctor_set(x_633, 2, x_651); +lean_ctor_set(x_633, 1, x_650); +lean_ctor_set(x_633, 0, x_649); +x_662 = 1; +lean_ctor_set(x_4, 3, x_658); +lean_ctor_set(x_4, 2, x_3); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_662); +x_663 = l_Lean_RBNode_setRed___rarg(x_655); +if (lean_obj_tag(x_663) == 0) +{ +uint8_t x_664; lean_object* x_665; +lean_ctor_set(x_1, 3, x_663); +lean_ctor_set(x_1, 2, x_654); +lean_ctor_set(x_1, 1, x_653); +lean_ctor_set(x_1, 0, x_661); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_662); +x_664 = 0; +x_665 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_665, 0, x_4); +lean_ctor_set(x_665, 1, x_659); +lean_ctor_set(x_665, 2, x_660); +lean_ctor_set(x_665, 3, x_1); +lean_ctor_set_uint8(x_665, sizeof(void*)*4, x_664); +return x_665; +} +else +{ +uint8_t x_666; +x_666 = lean_ctor_get_uint8(x_663, sizeof(void*)*4); +if (x_666 == 0) +{ +lean_object* x_667; +x_667 = lean_ctor_get(x_663, 0); +lean_inc(x_667); +if (lean_obj_tag(x_667) == 0) +{ +lean_object* x_668; +x_668 = lean_ctor_get(x_663, 3); +lean_inc(x_668); +if (lean_obj_tag(x_668) == 0) +{ +uint8_t x_669; +x_669 = !lean_is_exclusive(x_663); +if (x_669 == 0) +{ +lean_object* x_670; lean_object* x_671; uint8_t x_672; lean_object* x_673; +x_670 = lean_ctor_get(x_663, 3); +lean_dec(x_670); +x_671 = lean_ctor_get(x_663, 0); +lean_dec(x_671); +lean_ctor_set(x_663, 0, x_668); +lean_ctor_set(x_1, 3, x_663); +lean_ctor_set(x_1, 2, x_654); +lean_ctor_set(x_1, 1, x_653); +lean_ctor_set(x_1, 0, x_661); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_662); +x_672 = 0; +x_673 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_673, 0, x_4); +lean_ctor_set(x_673, 1, x_659); +lean_ctor_set(x_673, 2, x_660); +lean_ctor_set(x_673, 3, x_1); +lean_ctor_set_uint8(x_673, sizeof(void*)*4, x_672); +return x_673; +} +else +{ +lean_object* x_674; lean_object* x_675; lean_object* x_676; uint8_t x_677; lean_object* x_678; +x_674 = lean_ctor_get(x_663, 1); +x_675 = lean_ctor_get(x_663, 2); +lean_inc(x_675); +lean_inc(x_674); +lean_dec(x_663); +x_676 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_676, 0, x_668); +lean_ctor_set(x_676, 1, x_674); +lean_ctor_set(x_676, 2, x_675); +lean_ctor_set(x_676, 3, x_668); +lean_ctor_set_uint8(x_676, sizeof(void*)*4, x_666); +lean_ctor_set(x_1, 3, x_676); +lean_ctor_set(x_1, 2, x_654); +lean_ctor_set(x_1, 1, x_653); +lean_ctor_set(x_1, 0, x_661); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_662); +x_677 = 0; +x_678 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_678, 0, x_4); +lean_ctor_set(x_678, 1, x_659); +lean_ctor_set(x_678, 2, x_660); +lean_ctor_set(x_678, 3, x_1); +lean_ctor_set_uint8(x_678, sizeof(void*)*4, x_677); +return x_678; +} +} +else +{ +uint8_t x_679; +x_679 = lean_ctor_get_uint8(x_668, sizeof(void*)*4); +if (x_679 == 0) +{ +uint8_t x_680; +x_680 = !lean_is_exclusive(x_663); +if (x_680 == 0) +{ +lean_object* x_681; lean_object* x_682; lean_object* x_683; lean_object* x_684; uint8_t x_685; +x_681 = lean_ctor_get(x_663, 1); +x_682 = lean_ctor_get(x_663, 2); +x_683 = lean_ctor_get(x_663, 3); +lean_dec(x_683); +x_684 = lean_ctor_get(x_663, 0); +lean_dec(x_684); +x_685 = !lean_is_exclusive(x_668); +if (x_685 == 0) +{ +lean_object* x_686; lean_object* x_687; lean_object* x_688; lean_object* x_689; uint8_t x_690; lean_object* x_691; +x_686 = lean_ctor_get(x_668, 0); +x_687 = lean_ctor_get(x_668, 1); +x_688 = lean_ctor_get(x_668, 2); +x_689 = lean_ctor_get(x_668, 3); +lean_ctor_set(x_668, 3, x_667); +lean_ctor_set(x_668, 2, x_654); +lean_ctor_set(x_668, 1, x_653); +lean_ctor_set(x_668, 0, x_661); +lean_ctor_set_uint8(x_668, sizeof(void*)*4, x_662); +lean_ctor_set(x_663, 3, x_689); +lean_ctor_set(x_663, 2, x_688); +lean_ctor_set(x_663, 1, x_687); +lean_ctor_set(x_663, 0, x_686); +lean_ctor_set_uint8(x_663, sizeof(void*)*4, x_662); +x_690 = 0; +lean_ctor_set(x_1, 3, x_663); +lean_ctor_set(x_1, 2, x_682); +lean_ctor_set(x_1, 1, x_681); +lean_ctor_set(x_1, 0, x_668); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_690); +x_691 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_691, 0, x_4); +lean_ctor_set(x_691, 1, x_659); +lean_ctor_set(x_691, 2, x_660); +lean_ctor_set(x_691, 3, x_1); +lean_ctor_set_uint8(x_691, sizeof(void*)*4, x_690); +return x_691; +} +else +{ +lean_object* x_692; lean_object* x_693; lean_object* x_694; lean_object* x_695; lean_object* x_696; uint8_t x_697; lean_object* x_698; +x_692 = lean_ctor_get(x_668, 0); +x_693 = lean_ctor_get(x_668, 1); +x_694 = lean_ctor_get(x_668, 2); +x_695 = lean_ctor_get(x_668, 3); +lean_inc(x_695); +lean_inc(x_694); +lean_inc(x_693); +lean_inc(x_692); +lean_dec(x_668); +x_696 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_696, 0, x_661); +lean_ctor_set(x_696, 1, x_653); +lean_ctor_set(x_696, 2, x_654); +lean_ctor_set(x_696, 3, x_667); +lean_ctor_set_uint8(x_696, sizeof(void*)*4, x_662); +lean_ctor_set(x_663, 3, x_695); +lean_ctor_set(x_663, 2, x_694); +lean_ctor_set(x_663, 1, x_693); +lean_ctor_set(x_663, 0, x_692); +lean_ctor_set_uint8(x_663, sizeof(void*)*4, x_662); +x_697 = 0; +lean_ctor_set(x_1, 3, x_663); +lean_ctor_set(x_1, 2, x_682); +lean_ctor_set(x_1, 1, x_681); +lean_ctor_set(x_1, 0, x_696); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_697); +x_698 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_698, 0, x_4); +lean_ctor_set(x_698, 1, x_659); +lean_ctor_set(x_698, 2, x_660); +lean_ctor_set(x_698, 3, x_1); +lean_ctor_set_uint8(x_698, sizeof(void*)*4, x_697); +return x_698; +} +} +else +{ +lean_object* x_699; lean_object* x_700; lean_object* x_701; lean_object* x_702; lean_object* x_703; lean_object* x_704; lean_object* x_705; lean_object* x_706; lean_object* x_707; uint8_t x_708; lean_object* x_709; +x_699 = lean_ctor_get(x_663, 1); +x_700 = lean_ctor_get(x_663, 2); +lean_inc(x_700); +lean_inc(x_699); +lean_dec(x_663); +x_701 = lean_ctor_get(x_668, 0); +lean_inc(x_701); +x_702 = lean_ctor_get(x_668, 1); +lean_inc(x_702); +x_703 = lean_ctor_get(x_668, 2); +lean_inc(x_703); +x_704 = lean_ctor_get(x_668, 3); +lean_inc(x_704); +if (lean_is_exclusive(x_668)) { + lean_ctor_release(x_668, 0); + lean_ctor_release(x_668, 1); + lean_ctor_release(x_668, 2); + lean_ctor_release(x_668, 3); + x_705 = x_668; +} else { + lean_dec_ref(x_668); + x_705 = lean_box(0); +} +if (lean_is_scalar(x_705)) { + x_706 = lean_alloc_ctor(1, 4, 1); +} else { + x_706 = x_705; +} +lean_ctor_set(x_706, 0, x_661); +lean_ctor_set(x_706, 1, x_653); +lean_ctor_set(x_706, 2, x_654); +lean_ctor_set(x_706, 3, x_667); +lean_ctor_set_uint8(x_706, sizeof(void*)*4, x_662); +x_707 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_707, 0, x_701); +lean_ctor_set(x_707, 1, x_702); +lean_ctor_set(x_707, 2, x_703); +lean_ctor_set(x_707, 3, x_704); +lean_ctor_set_uint8(x_707, sizeof(void*)*4, x_662); +x_708 = 0; +lean_ctor_set(x_1, 3, x_707); +lean_ctor_set(x_1, 2, x_700); +lean_ctor_set(x_1, 1, x_699); +lean_ctor_set(x_1, 0, x_706); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_708); +x_709 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_709, 0, x_4); +lean_ctor_set(x_709, 1, x_659); +lean_ctor_set(x_709, 2, x_660); +lean_ctor_set(x_709, 3, x_1); +lean_ctor_set_uint8(x_709, sizeof(void*)*4, x_708); +return x_709; +} +} +else +{ +uint8_t x_710; +lean_free_object(x_1); +x_710 = !lean_is_exclusive(x_668); +if (x_710 == 0) +{ +lean_object* x_711; lean_object* x_712; lean_object* x_713; lean_object* x_714; uint8_t x_715; +x_711 = lean_ctor_get(x_668, 3); +lean_dec(x_711); +x_712 = lean_ctor_get(x_668, 2); +lean_dec(x_712); +x_713 = lean_ctor_get(x_668, 1); +lean_dec(x_713); +x_714 = lean_ctor_get(x_668, 0); +lean_dec(x_714); +lean_inc(x_663); +lean_ctor_set(x_668, 3, x_663); +lean_ctor_set(x_668, 2, x_654); +lean_ctor_set(x_668, 1, x_653); +lean_ctor_set(x_668, 0, x_661); +x_715 = !lean_is_exclusive(x_663); +if (x_715 == 0) +{ +lean_object* x_716; lean_object* x_717; lean_object* x_718; lean_object* x_719; uint8_t x_720; +x_716 = lean_ctor_get(x_663, 3); +lean_dec(x_716); +x_717 = lean_ctor_get(x_663, 2); +lean_dec(x_717); +x_718 = lean_ctor_get(x_663, 1); +lean_dec(x_718); +x_719 = lean_ctor_get(x_663, 0); +lean_dec(x_719); +lean_ctor_set_uint8(x_668, sizeof(void*)*4, x_662); +x_720 = 0; +lean_ctor_set(x_663, 2, x_660); +lean_ctor_set(x_663, 1, x_659); +lean_ctor_set(x_663, 0, x_4); +lean_ctor_set_uint8(x_663, sizeof(void*)*4, x_720); +return x_663; +} +else +{ +uint8_t x_721; lean_object* x_722; +lean_dec(x_663); +lean_ctor_set_uint8(x_668, sizeof(void*)*4, x_662); +x_721 = 0; +x_722 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_722, 0, x_4); +lean_ctor_set(x_722, 1, x_659); +lean_ctor_set(x_722, 2, x_660); +lean_ctor_set(x_722, 3, x_668); +lean_ctor_set_uint8(x_722, sizeof(void*)*4, x_721); +return x_722; +} +} +else +{ +lean_object* x_723; lean_object* x_724; uint8_t x_725; lean_object* x_726; +lean_dec(x_668); +lean_inc(x_663); +x_723 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_723, 0, x_661); +lean_ctor_set(x_723, 1, x_653); +lean_ctor_set(x_723, 2, x_654); +lean_ctor_set(x_723, 3, x_663); +if (lean_is_exclusive(x_663)) { + lean_ctor_release(x_663, 0); + lean_ctor_release(x_663, 1); + lean_ctor_release(x_663, 2); + lean_ctor_release(x_663, 3); + x_724 = x_663; +} else { + lean_dec_ref(x_663); + x_724 = lean_box(0); +} +lean_ctor_set_uint8(x_723, sizeof(void*)*4, x_662); +x_725 = 0; +if (lean_is_scalar(x_724)) { + x_726 = lean_alloc_ctor(1, 4, 1); +} else { + x_726 = x_724; +} +lean_ctor_set(x_726, 0, x_4); +lean_ctor_set(x_726, 1, x_659); +lean_ctor_set(x_726, 2, x_660); +lean_ctor_set(x_726, 3, x_723); +lean_ctor_set_uint8(x_726, sizeof(void*)*4, x_725); +return x_726; +} +} +} +} +else +{ +uint8_t x_727; +x_727 = lean_ctor_get_uint8(x_667, sizeof(void*)*4); +if (x_727 == 0) +{ +uint8_t x_728; +x_728 = !lean_is_exclusive(x_663); +if (x_728 == 0) +{ +lean_object* x_729; uint8_t x_730; +x_729 = lean_ctor_get(x_663, 0); +lean_dec(x_729); +x_730 = !lean_is_exclusive(x_667); +if (x_730 == 0) +{ +lean_object* x_731; lean_object* x_732; lean_object* x_733; lean_object* x_734; uint8_t x_735; lean_object* x_736; +x_731 = lean_ctor_get(x_667, 0); +x_732 = lean_ctor_get(x_667, 1); +x_733 = lean_ctor_get(x_667, 2); +x_734 = lean_ctor_get(x_667, 3); +lean_ctor_set(x_667, 3, x_731); +lean_ctor_set(x_667, 2, x_654); +lean_ctor_set(x_667, 1, x_653); +lean_ctor_set(x_667, 0, x_661); +lean_ctor_set_uint8(x_667, sizeof(void*)*4, x_662); +lean_ctor_set(x_663, 0, x_734); +lean_ctor_set_uint8(x_663, sizeof(void*)*4, x_662); +x_735 = 0; +lean_ctor_set(x_1, 3, x_663); +lean_ctor_set(x_1, 2, x_733); +lean_ctor_set(x_1, 1, x_732); +lean_ctor_set(x_1, 0, x_667); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_735); +x_736 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_736, 0, x_4); +lean_ctor_set(x_736, 1, x_659); +lean_ctor_set(x_736, 2, x_660); +lean_ctor_set(x_736, 3, x_1); +lean_ctor_set_uint8(x_736, sizeof(void*)*4, x_735); +return x_736; +} +else +{ +lean_object* x_737; lean_object* x_738; lean_object* x_739; lean_object* x_740; lean_object* x_741; uint8_t x_742; lean_object* x_743; +x_737 = lean_ctor_get(x_667, 0); +x_738 = lean_ctor_get(x_667, 1); +x_739 = lean_ctor_get(x_667, 2); +x_740 = lean_ctor_get(x_667, 3); +lean_inc(x_740); +lean_inc(x_739); +lean_inc(x_738); +lean_inc(x_737); +lean_dec(x_667); +x_741 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_741, 0, x_661); +lean_ctor_set(x_741, 1, x_653); +lean_ctor_set(x_741, 2, x_654); +lean_ctor_set(x_741, 3, x_737); +lean_ctor_set_uint8(x_741, sizeof(void*)*4, x_662); +lean_ctor_set(x_663, 0, x_740); +lean_ctor_set_uint8(x_663, sizeof(void*)*4, x_662); +x_742 = 0; +lean_ctor_set(x_1, 3, x_663); +lean_ctor_set(x_1, 2, x_739); +lean_ctor_set(x_1, 1, x_738); +lean_ctor_set(x_1, 0, x_741); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_742); +x_743 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_743, 0, x_4); +lean_ctor_set(x_743, 1, x_659); +lean_ctor_set(x_743, 2, x_660); +lean_ctor_set(x_743, 3, x_1); +lean_ctor_set_uint8(x_743, sizeof(void*)*4, x_742); +return x_743; +} +} +else +{ +lean_object* x_744; lean_object* x_745; lean_object* x_746; lean_object* x_747; lean_object* x_748; lean_object* x_749; lean_object* x_750; lean_object* x_751; lean_object* x_752; lean_object* x_753; uint8_t x_754; lean_object* x_755; +x_744 = lean_ctor_get(x_663, 1); +x_745 = lean_ctor_get(x_663, 2); +x_746 = lean_ctor_get(x_663, 3); +lean_inc(x_746); +lean_inc(x_745); +lean_inc(x_744); +lean_dec(x_663); +x_747 = lean_ctor_get(x_667, 0); +lean_inc(x_747); +x_748 = lean_ctor_get(x_667, 1); +lean_inc(x_748); +x_749 = lean_ctor_get(x_667, 2); +lean_inc(x_749); +x_750 = lean_ctor_get(x_667, 3); +lean_inc(x_750); +if (lean_is_exclusive(x_667)) { + lean_ctor_release(x_667, 0); + lean_ctor_release(x_667, 1); + lean_ctor_release(x_667, 2); + lean_ctor_release(x_667, 3); + x_751 = x_667; +} else { + lean_dec_ref(x_667); + x_751 = lean_box(0); +} +if (lean_is_scalar(x_751)) { + x_752 = lean_alloc_ctor(1, 4, 1); +} else { + x_752 = x_751; +} +lean_ctor_set(x_752, 0, x_661); +lean_ctor_set(x_752, 1, x_653); +lean_ctor_set(x_752, 2, x_654); +lean_ctor_set(x_752, 3, x_747); +lean_ctor_set_uint8(x_752, sizeof(void*)*4, x_662); +x_753 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_753, 0, x_750); +lean_ctor_set(x_753, 1, x_744); +lean_ctor_set(x_753, 2, x_745); +lean_ctor_set(x_753, 3, x_746); +lean_ctor_set_uint8(x_753, sizeof(void*)*4, x_662); +x_754 = 0; +lean_ctor_set(x_1, 3, x_753); +lean_ctor_set(x_1, 2, x_749); +lean_ctor_set(x_1, 1, x_748); +lean_ctor_set(x_1, 0, x_752); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_754); +x_755 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_755, 0, x_4); +lean_ctor_set(x_755, 1, x_659); +lean_ctor_set(x_755, 2, x_660); +lean_ctor_set(x_755, 3, x_1); +lean_ctor_set_uint8(x_755, sizeof(void*)*4, x_754); +return x_755; +} +} +else +{ +lean_object* x_756; +x_756 = lean_ctor_get(x_663, 3); +lean_inc(x_756); +if (lean_obj_tag(x_756) == 0) +{ +uint8_t x_757; +lean_free_object(x_1); +x_757 = !lean_is_exclusive(x_667); +if (x_757 == 0) +{ +lean_object* x_758; lean_object* x_759; lean_object* x_760; lean_object* x_761; uint8_t x_762; +x_758 = lean_ctor_get(x_667, 3); +lean_dec(x_758); +x_759 = lean_ctor_get(x_667, 2); +lean_dec(x_759); +x_760 = lean_ctor_get(x_667, 1); +lean_dec(x_760); +x_761 = lean_ctor_get(x_667, 0); +lean_dec(x_761); +lean_inc(x_663); +lean_ctor_set(x_667, 3, x_663); +lean_ctor_set(x_667, 2, x_654); +lean_ctor_set(x_667, 1, x_653); +lean_ctor_set(x_667, 0, x_661); +x_762 = !lean_is_exclusive(x_663); +if (x_762 == 0) +{ +lean_object* x_763; lean_object* x_764; lean_object* x_765; lean_object* x_766; uint8_t x_767; +x_763 = lean_ctor_get(x_663, 3); +lean_dec(x_763); +x_764 = lean_ctor_get(x_663, 2); +lean_dec(x_764); +x_765 = lean_ctor_get(x_663, 1); +lean_dec(x_765); +x_766 = lean_ctor_get(x_663, 0); +lean_dec(x_766); +lean_ctor_set_uint8(x_667, sizeof(void*)*4, x_662); +x_767 = 0; +lean_ctor_set(x_663, 3, x_667); +lean_ctor_set(x_663, 2, x_660); +lean_ctor_set(x_663, 1, x_659); +lean_ctor_set(x_663, 0, x_4); +lean_ctor_set_uint8(x_663, sizeof(void*)*4, x_767); +return x_663; +} +else +{ +uint8_t x_768; lean_object* x_769; +lean_dec(x_663); +lean_ctor_set_uint8(x_667, sizeof(void*)*4, x_662); +x_768 = 0; +x_769 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_769, 0, x_4); +lean_ctor_set(x_769, 1, x_659); +lean_ctor_set(x_769, 2, x_660); +lean_ctor_set(x_769, 3, x_667); +lean_ctor_set_uint8(x_769, sizeof(void*)*4, x_768); +return x_769; +} +} +else +{ +lean_object* x_770; lean_object* x_771; uint8_t x_772; lean_object* x_773; +lean_dec(x_667); +lean_inc(x_663); +x_770 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_770, 0, x_661); +lean_ctor_set(x_770, 1, x_653); +lean_ctor_set(x_770, 2, x_654); +lean_ctor_set(x_770, 3, x_663); +if (lean_is_exclusive(x_663)) { + lean_ctor_release(x_663, 0); + lean_ctor_release(x_663, 1); + lean_ctor_release(x_663, 2); + lean_ctor_release(x_663, 3); + x_771 = x_663; +} else { + lean_dec_ref(x_663); + x_771 = lean_box(0); +} +lean_ctor_set_uint8(x_770, sizeof(void*)*4, x_662); +x_772 = 0; +if (lean_is_scalar(x_771)) { + x_773 = lean_alloc_ctor(1, 4, 1); +} else { + x_773 = x_771; +} +lean_ctor_set(x_773, 0, x_4); +lean_ctor_set(x_773, 1, x_659); +lean_ctor_set(x_773, 2, x_660); +lean_ctor_set(x_773, 3, x_770); +lean_ctor_set_uint8(x_773, sizeof(void*)*4, x_772); +return x_773; +} +} +else +{ +uint8_t x_774; +x_774 = lean_ctor_get_uint8(x_756, sizeof(void*)*4); +if (x_774 == 0) +{ +uint8_t x_775; +x_775 = !lean_is_exclusive(x_663); +if (x_775 == 0) +{ +lean_object* x_776; lean_object* x_777; uint8_t x_778; +x_776 = lean_ctor_get(x_663, 3); +lean_dec(x_776); +x_777 = lean_ctor_get(x_663, 0); +lean_dec(x_777); +x_778 = !lean_is_exclusive(x_756); +if (x_778 == 0) +{ +lean_object* x_779; lean_object* x_780; lean_object* x_781; lean_object* x_782; uint8_t x_783; +x_779 = lean_ctor_get(x_756, 0); +x_780 = lean_ctor_get(x_756, 1); +x_781 = lean_ctor_get(x_756, 2); +x_782 = lean_ctor_get(x_756, 3); +lean_inc(x_667); +lean_ctor_set(x_756, 3, x_667); +lean_ctor_set(x_756, 2, x_654); +lean_ctor_set(x_756, 1, x_653); +lean_ctor_set(x_756, 0, x_661); +x_783 = !lean_is_exclusive(x_667); +if (x_783 == 0) +{ +lean_object* x_784; lean_object* x_785; lean_object* x_786; lean_object* x_787; uint8_t x_788; +x_784 = lean_ctor_get(x_667, 3); +lean_dec(x_784); +x_785 = lean_ctor_get(x_667, 2); +lean_dec(x_785); +x_786 = lean_ctor_get(x_667, 1); +lean_dec(x_786); +x_787 = lean_ctor_get(x_667, 0); +lean_dec(x_787); +lean_ctor_set_uint8(x_756, sizeof(void*)*4, x_662); +lean_ctor_set(x_667, 3, x_782); +lean_ctor_set(x_667, 2, x_781); +lean_ctor_set(x_667, 1, x_780); +lean_ctor_set(x_667, 0, x_779); +lean_ctor_set_uint8(x_667, sizeof(void*)*4, x_662); +x_788 = 0; +lean_ctor_set(x_663, 3, x_667); +lean_ctor_set(x_663, 0, x_756); +lean_ctor_set_uint8(x_663, sizeof(void*)*4, x_788); +lean_ctor_set(x_1, 3, x_663); +lean_ctor_set(x_1, 2, x_660); +lean_ctor_set(x_1, 1, x_659); +lean_ctor_set(x_1, 0, x_4); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_788); +return x_1; +} +else +{ +lean_object* x_789; uint8_t x_790; +lean_dec(x_667); +lean_ctor_set_uint8(x_756, sizeof(void*)*4, x_662); +x_789 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_789, 0, x_779); +lean_ctor_set(x_789, 1, x_780); +lean_ctor_set(x_789, 2, x_781); +lean_ctor_set(x_789, 3, x_782); +lean_ctor_set_uint8(x_789, sizeof(void*)*4, x_662); +x_790 = 0; +lean_ctor_set(x_663, 3, x_789); +lean_ctor_set(x_663, 0, x_756); +lean_ctor_set_uint8(x_663, sizeof(void*)*4, x_790); +lean_ctor_set(x_1, 3, x_663); +lean_ctor_set(x_1, 2, x_660); +lean_ctor_set(x_1, 1, x_659); +lean_ctor_set(x_1, 0, x_4); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_790); +return x_1; +} +} +else +{ +lean_object* x_791; lean_object* x_792; lean_object* x_793; lean_object* x_794; lean_object* x_795; lean_object* x_796; lean_object* x_797; uint8_t x_798; +x_791 = lean_ctor_get(x_756, 0); +x_792 = lean_ctor_get(x_756, 1); +x_793 = lean_ctor_get(x_756, 2); +x_794 = lean_ctor_get(x_756, 3); +lean_inc(x_794); +lean_inc(x_793); +lean_inc(x_792); +lean_inc(x_791); +lean_dec(x_756); +lean_inc(x_667); +x_795 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_795, 0, x_661); +lean_ctor_set(x_795, 1, x_653); +lean_ctor_set(x_795, 2, x_654); +lean_ctor_set(x_795, 3, x_667); +if (lean_is_exclusive(x_667)) { + lean_ctor_release(x_667, 0); + lean_ctor_release(x_667, 1); + lean_ctor_release(x_667, 2); + lean_ctor_release(x_667, 3); + x_796 = x_667; +} else { + lean_dec_ref(x_667); + x_796 = lean_box(0); +} +lean_ctor_set_uint8(x_795, sizeof(void*)*4, x_662); +if (lean_is_scalar(x_796)) { + x_797 = lean_alloc_ctor(1, 4, 1); +} else { + x_797 = x_796; +} +lean_ctor_set(x_797, 0, x_791); +lean_ctor_set(x_797, 1, x_792); +lean_ctor_set(x_797, 2, x_793); +lean_ctor_set(x_797, 3, x_794); +lean_ctor_set_uint8(x_797, sizeof(void*)*4, x_662); +x_798 = 0; +lean_ctor_set(x_663, 3, x_797); +lean_ctor_set(x_663, 0, x_795); +lean_ctor_set_uint8(x_663, sizeof(void*)*4, x_798); +lean_ctor_set(x_1, 3, x_663); +lean_ctor_set(x_1, 2, x_660); +lean_ctor_set(x_1, 1, x_659); +lean_ctor_set(x_1, 0, x_4); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_798); +return x_1; +} +} +else +{ +lean_object* x_799; lean_object* x_800; lean_object* x_801; lean_object* x_802; lean_object* x_803; lean_object* x_804; lean_object* x_805; lean_object* x_806; lean_object* x_807; lean_object* x_808; uint8_t x_809; lean_object* x_810; +x_799 = lean_ctor_get(x_663, 1); +x_800 = lean_ctor_get(x_663, 2); +lean_inc(x_800); +lean_inc(x_799); +lean_dec(x_663); +x_801 = lean_ctor_get(x_756, 0); +lean_inc(x_801); +x_802 = lean_ctor_get(x_756, 1); +lean_inc(x_802); +x_803 = lean_ctor_get(x_756, 2); +lean_inc(x_803); +x_804 = lean_ctor_get(x_756, 3); +lean_inc(x_804); +if (lean_is_exclusive(x_756)) { + lean_ctor_release(x_756, 0); + lean_ctor_release(x_756, 1); + lean_ctor_release(x_756, 2); + lean_ctor_release(x_756, 3); + x_805 = x_756; +} else { + lean_dec_ref(x_756); + x_805 = lean_box(0); +} +lean_inc(x_667); +if (lean_is_scalar(x_805)) { + x_806 = lean_alloc_ctor(1, 4, 1); +} else { + x_806 = x_805; +} +lean_ctor_set(x_806, 0, x_661); +lean_ctor_set(x_806, 1, x_653); +lean_ctor_set(x_806, 2, x_654); +lean_ctor_set(x_806, 3, x_667); +if (lean_is_exclusive(x_667)) { + lean_ctor_release(x_667, 0); + lean_ctor_release(x_667, 1); + lean_ctor_release(x_667, 2); + lean_ctor_release(x_667, 3); + x_807 = x_667; +} else { + lean_dec_ref(x_667); + x_807 = lean_box(0); +} +lean_ctor_set_uint8(x_806, sizeof(void*)*4, x_662); +if (lean_is_scalar(x_807)) { + x_808 = lean_alloc_ctor(1, 4, 1); +} else { + x_808 = x_807; +} +lean_ctor_set(x_808, 0, x_801); +lean_ctor_set(x_808, 1, x_802); +lean_ctor_set(x_808, 2, x_803); +lean_ctor_set(x_808, 3, x_804); +lean_ctor_set_uint8(x_808, sizeof(void*)*4, x_662); +x_809 = 0; +x_810 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_810, 0, x_806); +lean_ctor_set(x_810, 1, x_799); +lean_ctor_set(x_810, 2, x_800); +lean_ctor_set(x_810, 3, x_808); +lean_ctor_set_uint8(x_810, sizeof(void*)*4, x_809); +lean_ctor_set(x_1, 3, x_810); +lean_ctor_set(x_1, 2, x_660); +lean_ctor_set(x_1, 1, x_659); +lean_ctor_set(x_1, 0, x_4); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_809); +return x_1; +} +} +else +{ +uint8_t x_811; +x_811 = !lean_is_exclusive(x_663); +if (x_811 == 0) +{ +lean_object* x_812; lean_object* x_813; uint8_t x_814; +x_812 = lean_ctor_get(x_663, 3); +lean_dec(x_812); +x_813 = lean_ctor_get(x_663, 0); +lean_dec(x_813); +x_814 = !lean_is_exclusive(x_667); +if (x_814 == 0) +{ +uint8_t x_815; lean_object* x_816; +lean_ctor_set_uint8(x_667, sizeof(void*)*4, x_774); +lean_ctor_set(x_1, 3, x_663); +lean_ctor_set(x_1, 2, x_654); +lean_ctor_set(x_1, 1, x_653); +lean_ctor_set(x_1, 0, x_661); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_662); +x_815 = 0; +x_816 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_816, 0, x_4); +lean_ctor_set(x_816, 1, x_659); +lean_ctor_set(x_816, 2, x_660); +lean_ctor_set(x_816, 3, x_1); +lean_ctor_set_uint8(x_816, sizeof(void*)*4, x_815); +return x_816; +} +else +{ +lean_object* x_817; lean_object* x_818; lean_object* x_819; lean_object* x_820; lean_object* x_821; uint8_t x_822; lean_object* x_823; +x_817 = lean_ctor_get(x_667, 0); +x_818 = lean_ctor_get(x_667, 1); +x_819 = lean_ctor_get(x_667, 2); +x_820 = lean_ctor_get(x_667, 3); +lean_inc(x_820); +lean_inc(x_819); +lean_inc(x_818); +lean_inc(x_817); +lean_dec(x_667); +x_821 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_821, 0, x_817); +lean_ctor_set(x_821, 1, x_818); +lean_ctor_set(x_821, 2, x_819); +lean_ctor_set(x_821, 3, x_820); +lean_ctor_set_uint8(x_821, sizeof(void*)*4, x_774); +lean_ctor_set(x_663, 0, x_821); +lean_ctor_set(x_1, 3, x_663); +lean_ctor_set(x_1, 2, x_654); +lean_ctor_set(x_1, 1, x_653); +lean_ctor_set(x_1, 0, x_661); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_662); +x_822 = 0; +x_823 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_823, 0, x_4); +lean_ctor_set(x_823, 1, x_659); +lean_ctor_set(x_823, 2, x_660); +lean_ctor_set(x_823, 3, x_1); +lean_ctor_set_uint8(x_823, sizeof(void*)*4, x_822); +return x_823; +} +} +else +{ +lean_object* x_824; lean_object* x_825; lean_object* x_826; lean_object* x_827; lean_object* x_828; lean_object* x_829; lean_object* x_830; lean_object* x_831; lean_object* x_832; uint8_t x_833; lean_object* x_834; +x_824 = lean_ctor_get(x_663, 1); +x_825 = lean_ctor_get(x_663, 2); +lean_inc(x_825); +lean_inc(x_824); +lean_dec(x_663); +x_826 = lean_ctor_get(x_667, 0); +lean_inc(x_826); +x_827 = lean_ctor_get(x_667, 1); +lean_inc(x_827); +x_828 = lean_ctor_get(x_667, 2); +lean_inc(x_828); +x_829 = lean_ctor_get(x_667, 3); +lean_inc(x_829); +if (lean_is_exclusive(x_667)) { + lean_ctor_release(x_667, 0); + lean_ctor_release(x_667, 1); + lean_ctor_release(x_667, 2); + lean_ctor_release(x_667, 3); + x_830 = x_667; +} else { + lean_dec_ref(x_667); + x_830 = lean_box(0); +} +if (lean_is_scalar(x_830)) { + x_831 = lean_alloc_ctor(1, 4, 1); +} else { + x_831 = x_830; +} +lean_ctor_set(x_831, 0, x_826); +lean_ctor_set(x_831, 1, x_827); +lean_ctor_set(x_831, 2, x_828); +lean_ctor_set(x_831, 3, x_829); +lean_ctor_set_uint8(x_831, sizeof(void*)*4, x_774); +x_832 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_832, 0, x_831); +lean_ctor_set(x_832, 1, x_824); +lean_ctor_set(x_832, 2, x_825); +lean_ctor_set(x_832, 3, x_756); +lean_ctor_set_uint8(x_832, sizeof(void*)*4, x_666); +lean_ctor_set(x_1, 3, x_832); +lean_ctor_set(x_1, 2, x_654); +lean_ctor_set(x_1, 1, x_653); +lean_ctor_set(x_1, 0, x_661); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_662); +x_833 = 0; +x_834 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_834, 0, x_4); +lean_ctor_set(x_834, 1, x_659); +lean_ctor_set(x_834, 2, x_660); +lean_ctor_set(x_834, 3, x_1); +lean_ctor_set_uint8(x_834, sizeof(void*)*4, x_833); +return x_834; +} +} +} +} +} +} +else +{ +uint8_t x_835; lean_object* x_836; +lean_ctor_set(x_1, 3, x_663); +lean_ctor_set(x_1, 2, x_654); +lean_ctor_set(x_1, 1, x_653); +lean_ctor_set(x_1, 0, x_661); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_662); +x_835 = 0; +x_836 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_836, 0, x_4); +lean_ctor_set(x_836, 1, x_659); +lean_ctor_set(x_836, 2, x_660); +lean_ctor_set(x_836, 3, x_1); +lean_ctor_set_uint8(x_836, sizeof(void*)*4, x_835); +return x_836; +} +} +} +else +{ +lean_object* x_837; lean_object* x_838; lean_object* x_839; lean_object* x_840; lean_object* x_841; uint8_t x_842; lean_object* x_843; +x_837 = lean_ctor_get(x_633, 0); +x_838 = lean_ctor_get(x_633, 1); +x_839 = lean_ctor_get(x_633, 2); +x_840 = lean_ctor_get(x_633, 3); +lean_inc(x_840); +lean_inc(x_839); +lean_inc(x_838); +lean_inc(x_837); +lean_dec(x_633); +x_841 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_841, 0, x_649); +lean_ctor_set(x_841, 1, x_650); +lean_ctor_set(x_841, 2, x_651); +lean_ctor_set(x_841, 3, x_652); +lean_ctor_set_uint8(x_841, sizeof(void*)*4, x_636); +x_842 = 1; +lean_ctor_set(x_4, 3, x_837); +lean_ctor_set(x_4, 2, x_3); +lean_ctor_set(x_4, 1, x_2); +lean_ctor_set(x_4, 0, x_841); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_842); +x_843 = l_Lean_RBNode_setRed___rarg(x_655); +if (lean_obj_tag(x_843) == 0) +{ +uint8_t x_844; lean_object* x_845; +lean_ctor_set(x_1, 3, x_843); +lean_ctor_set(x_1, 2, x_654); +lean_ctor_set(x_1, 1, x_653); +lean_ctor_set(x_1, 0, x_840); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_842); +x_844 = 0; +x_845 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_845, 0, x_4); +lean_ctor_set(x_845, 1, x_838); +lean_ctor_set(x_845, 2, x_839); +lean_ctor_set(x_845, 3, x_1); +lean_ctor_set_uint8(x_845, sizeof(void*)*4, x_844); +return x_845; +} +else +{ +uint8_t x_846; +x_846 = lean_ctor_get_uint8(x_843, sizeof(void*)*4); +if (x_846 == 0) +{ +lean_object* x_847; +x_847 = lean_ctor_get(x_843, 0); +lean_inc(x_847); +if (lean_obj_tag(x_847) == 0) +{ +lean_object* x_848; +x_848 = lean_ctor_get(x_843, 3); +lean_inc(x_848); +if (lean_obj_tag(x_848) == 0) +{ +lean_object* x_849; lean_object* x_850; lean_object* x_851; lean_object* x_852; uint8_t x_853; lean_object* x_854; +x_849 = lean_ctor_get(x_843, 1); +lean_inc(x_849); +x_850 = lean_ctor_get(x_843, 2); +lean_inc(x_850); +if (lean_is_exclusive(x_843)) { + lean_ctor_release(x_843, 0); + lean_ctor_release(x_843, 1); + lean_ctor_release(x_843, 2); + lean_ctor_release(x_843, 3); + x_851 = x_843; +} else { + lean_dec_ref(x_843); + x_851 = lean_box(0); +} +if (lean_is_scalar(x_851)) { + x_852 = lean_alloc_ctor(1, 4, 1); +} else { + x_852 = x_851; +} +lean_ctor_set(x_852, 0, x_848); +lean_ctor_set(x_852, 1, x_849); +lean_ctor_set(x_852, 2, x_850); +lean_ctor_set(x_852, 3, x_848); +lean_ctor_set_uint8(x_852, sizeof(void*)*4, x_846); +lean_ctor_set(x_1, 3, x_852); +lean_ctor_set(x_1, 2, x_654); +lean_ctor_set(x_1, 1, x_653); +lean_ctor_set(x_1, 0, x_840); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_842); +x_853 = 0; +x_854 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_854, 0, x_4); +lean_ctor_set(x_854, 1, x_838); +lean_ctor_set(x_854, 2, x_839); +lean_ctor_set(x_854, 3, x_1); +lean_ctor_set_uint8(x_854, sizeof(void*)*4, x_853); +return x_854; +} +else +{ +uint8_t x_855; +x_855 = lean_ctor_get_uint8(x_848, sizeof(void*)*4); +if (x_855 == 0) +{ +lean_object* x_856; lean_object* x_857; lean_object* x_858; lean_object* x_859; lean_object* x_860; lean_object* x_861; lean_object* x_862; lean_object* x_863; lean_object* x_864; lean_object* x_865; uint8_t x_866; lean_object* x_867; +x_856 = lean_ctor_get(x_843, 1); +lean_inc(x_856); +x_857 = lean_ctor_get(x_843, 2); +lean_inc(x_857); +if (lean_is_exclusive(x_843)) { + lean_ctor_release(x_843, 0); + lean_ctor_release(x_843, 1); + lean_ctor_release(x_843, 2); + lean_ctor_release(x_843, 3); + x_858 = x_843; +} else { + lean_dec_ref(x_843); + x_858 = lean_box(0); +} +x_859 = lean_ctor_get(x_848, 0); +lean_inc(x_859); +x_860 = lean_ctor_get(x_848, 1); +lean_inc(x_860); +x_861 = lean_ctor_get(x_848, 2); +lean_inc(x_861); +x_862 = lean_ctor_get(x_848, 3); +lean_inc(x_862); +if (lean_is_exclusive(x_848)) { + lean_ctor_release(x_848, 0); + lean_ctor_release(x_848, 1); + lean_ctor_release(x_848, 2); + lean_ctor_release(x_848, 3); + x_863 = x_848; +} else { + lean_dec_ref(x_848); + x_863 = lean_box(0); +} +if (lean_is_scalar(x_863)) { + x_864 = lean_alloc_ctor(1, 4, 1); +} else { + x_864 = x_863; +} +lean_ctor_set(x_864, 0, x_840); +lean_ctor_set(x_864, 1, x_653); +lean_ctor_set(x_864, 2, x_654); +lean_ctor_set(x_864, 3, x_847); +lean_ctor_set_uint8(x_864, sizeof(void*)*4, x_842); +if (lean_is_scalar(x_858)) { + x_865 = lean_alloc_ctor(1, 4, 1); +} else { + x_865 = x_858; +} +lean_ctor_set(x_865, 0, x_859); +lean_ctor_set(x_865, 1, x_860); +lean_ctor_set(x_865, 2, x_861); +lean_ctor_set(x_865, 3, x_862); +lean_ctor_set_uint8(x_865, sizeof(void*)*4, x_842); +x_866 = 0; +lean_ctor_set(x_1, 3, x_865); +lean_ctor_set(x_1, 2, x_857); +lean_ctor_set(x_1, 1, x_856); +lean_ctor_set(x_1, 0, x_864); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_866); +x_867 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_867, 0, x_4); +lean_ctor_set(x_867, 1, x_838); +lean_ctor_set(x_867, 2, x_839); +lean_ctor_set(x_867, 3, x_1); +lean_ctor_set_uint8(x_867, sizeof(void*)*4, x_866); +return x_867; +} +else +{ +lean_object* x_868; lean_object* x_869; lean_object* x_870; uint8_t x_871; lean_object* x_872; +lean_free_object(x_1); +if (lean_is_exclusive(x_848)) { + lean_ctor_release(x_848, 0); + lean_ctor_release(x_848, 1); + lean_ctor_release(x_848, 2); + lean_ctor_release(x_848, 3); + x_868 = x_848; +} else { + lean_dec_ref(x_848); + x_868 = lean_box(0); +} +lean_inc(x_843); +if (lean_is_scalar(x_868)) { + x_869 = lean_alloc_ctor(1, 4, 1); +} else { + x_869 = x_868; +} +lean_ctor_set(x_869, 0, x_840); +lean_ctor_set(x_869, 1, x_653); +lean_ctor_set(x_869, 2, x_654); +lean_ctor_set(x_869, 3, x_843); +if (lean_is_exclusive(x_843)) { + lean_ctor_release(x_843, 0); + lean_ctor_release(x_843, 1); + lean_ctor_release(x_843, 2); + lean_ctor_release(x_843, 3); + x_870 = x_843; +} else { + lean_dec_ref(x_843); + x_870 = lean_box(0); +} +lean_ctor_set_uint8(x_869, sizeof(void*)*4, x_842); +x_871 = 0; +if (lean_is_scalar(x_870)) { + x_872 = lean_alloc_ctor(1, 4, 1); +} else { + x_872 = x_870; +} +lean_ctor_set(x_872, 0, x_4); +lean_ctor_set(x_872, 1, x_838); +lean_ctor_set(x_872, 2, x_839); +lean_ctor_set(x_872, 3, x_869); +lean_ctor_set_uint8(x_872, sizeof(void*)*4, x_871); +return x_872; +} +} +} +else +{ +uint8_t x_873; +x_873 = lean_ctor_get_uint8(x_847, sizeof(void*)*4); +if (x_873 == 0) +{ +lean_object* x_874; lean_object* x_875; lean_object* x_876; lean_object* x_877; lean_object* x_878; lean_object* x_879; lean_object* x_880; lean_object* x_881; lean_object* x_882; lean_object* x_883; lean_object* x_884; uint8_t x_885; lean_object* x_886; +x_874 = lean_ctor_get(x_843, 1); +lean_inc(x_874); +x_875 = lean_ctor_get(x_843, 2); +lean_inc(x_875); +x_876 = lean_ctor_get(x_843, 3); +lean_inc(x_876); +if (lean_is_exclusive(x_843)) { + lean_ctor_release(x_843, 0); + lean_ctor_release(x_843, 1); + lean_ctor_release(x_843, 2); + lean_ctor_release(x_843, 3); + x_877 = x_843; +} else { + lean_dec_ref(x_843); + x_877 = lean_box(0); +} +x_878 = lean_ctor_get(x_847, 0); +lean_inc(x_878); +x_879 = lean_ctor_get(x_847, 1); +lean_inc(x_879); +x_880 = lean_ctor_get(x_847, 2); +lean_inc(x_880); +x_881 = lean_ctor_get(x_847, 3); +lean_inc(x_881); +if (lean_is_exclusive(x_847)) { + lean_ctor_release(x_847, 0); + lean_ctor_release(x_847, 1); + lean_ctor_release(x_847, 2); + lean_ctor_release(x_847, 3); + x_882 = x_847; +} else { + lean_dec_ref(x_847); + x_882 = lean_box(0); +} +if (lean_is_scalar(x_882)) { + x_883 = lean_alloc_ctor(1, 4, 1); +} else { + x_883 = x_882; +} +lean_ctor_set(x_883, 0, x_840); +lean_ctor_set(x_883, 1, x_653); +lean_ctor_set(x_883, 2, x_654); +lean_ctor_set(x_883, 3, x_878); +lean_ctor_set_uint8(x_883, sizeof(void*)*4, x_842); +if (lean_is_scalar(x_877)) { + x_884 = lean_alloc_ctor(1, 4, 1); +} else { + x_884 = x_877; +} +lean_ctor_set(x_884, 0, x_881); +lean_ctor_set(x_884, 1, x_874); +lean_ctor_set(x_884, 2, x_875); +lean_ctor_set(x_884, 3, x_876); +lean_ctor_set_uint8(x_884, sizeof(void*)*4, x_842); +x_885 = 0; +lean_ctor_set(x_1, 3, x_884); +lean_ctor_set(x_1, 2, x_880); +lean_ctor_set(x_1, 1, x_879); +lean_ctor_set(x_1, 0, x_883); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_885); +x_886 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_886, 0, x_4); +lean_ctor_set(x_886, 1, x_838); +lean_ctor_set(x_886, 2, x_839); +lean_ctor_set(x_886, 3, x_1); +lean_ctor_set_uint8(x_886, sizeof(void*)*4, x_885); +return x_886; +} +else +{ +lean_object* x_887; +x_887 = lean_ctor_get(x_843, 3); +lean_inc(x_887); +if (lean_obj_tag(x_887) == 0) +{ +lean_object* x_888; lean_object* x_889; lean_object* x_890; uint8_t x_891; lean_object* x_892; +lean_free_object(x_1); +if (lean_is_exclusive(x_847)) { + lean_ctor_release(x_847, 0); + lean_ctor_release(x_847, 1); + lean_ctor_release(x_847, 2); + lean_ctor_release(x_847, 3); + x_888 = x_847; +} else { + lean_dec_ref(x_847); + x_888 = lean_box(0); +} +lean_inc(x_843); +if (lean_is_scalar(x_888)) { + x_889 = lean_alloc_ctor(1, 4, 1); +} else { + x_889 = x_888; +} +lean_ctor_set(x_889, 0, x_840); +lean_ctor_set(x_889, 1, x_653); +lean_ctor_set(x_889, 2, x_654); +lean_ctor_set(x_889, 3, x_843); +if (lean_is_exclusive(x_843)) { + lean_ctor_release(x_843, 0); + lean_ctor_release(x_843, 1); + lean_ctor_release(x_843, 2); + lean_ctor_release(x_843, 3); + x_890 = x_843; +} else { + lean_dec_ref(x_843); + x_890 = lean_box(0); +} +lean_ctor_set_uint8(x_889, sizeof(void*)*4, x_842); +x_891 = 0; +if (lean_is_scalar(x_890)) { + x_892 = lean_alloc_ctor(1, 4, 1); +} else { + x_892 = x_890; +} +lean_ctor_set(x_892, 0, x_4); +lean_ctor_set(x_892, 1, x_838); +lean_ctor_set(x_892, 2, x_839); +lean_ctor_set(x_892, 3, x_889); +lean_ctor_set_uint8(x_892, sizeof(void*)*4, x_891); +return x_892; +} +else +{ +uint8_t x_893; +x_893 = lean_ctor_get_uint8(x_887, sizeof(void*)*4); +if (x_893 == 0) +{ +lean_object* x_894; lean_object* x_895; lean_object* x_896; lean_object* x_897; lean_object* x_898; lean_object* x_899; lean_object* x_900; lean_object* x_901; lean_object* x_902; lean_object* x_903; lean_object* x_904; uint8_t x_905; lean_object* x_906; +x_894 = lean_ctor_get(x_843, 1); +lean_inc(x_894); +x_895 = lean_ctor_get(x_843, 2); +lean_inc(x_895); +if (lean_is_exclusive(x_843)) { + lean_ctor_release(x_843, 0); + lean_ctor_release(x_843, 1); + lean_ctor_release(x_843, 2); + lean_ctor_release(x_843, 3); + x_896 = x_843; +} else { + lean_dec_ref(x_843); + x_896 = lean_box(0); +} +x_897 = lean_ctor_get(x_887, 0); +lean_inc(x_897); +x_898 = lean_ctor_get(x_887, 1); +lean_inc(x_898); +x_899 = lean_ctor_get(x_887, 2); +lean_inc(x_899); +x_900 = lean_ctor_get(x_887, 3); +lean_inc(x_900); +if (lean_is_exclusive(x_887)) { + lean_ctor_release(x_887, 0); + lean_ctor_release(x_887, 1); + lean_ctor_release(x_887, 2); + lean_ctor_release(x_887, 3); + x_901 = x_887; +} else { + lean_dec_ref(x_887); + x_901 = lean_box(0); +} +lean_inc(x_847); +if (lean_is_scalar(x_901)) { + x_902 = lean_alloc_ctor(1, 4, 1); +} else { + x_902 = x_901; +} +lean_ctor_set(x_902, 0, x_840); +lean_ctor_set(x_902, 1, x_653); +lean_ctor_set(x_902, 2, x_654); +lean_ctor_set(x_902, 3, x_847); +if (lean_is_exclusive(x_847)) { + lean_ctor_release(x_847, 0); + lean_ctor_release(x_847, 1); + lean_ctor_release(x_847, 2); + lean_ctor_release(x_847, 3); + x_903 = x_847; +} else { + lean_dec_ref(x_847); + x_903 = lean_box(0); +} +lean_ctor_set_uint8(x_902, sizeof(void*)*4, x_842); +if (lean_is_scalar(x_903)) { + x_904 = lean_alloc_ctor(1, 4, 1); +} else { + x_904 = x_903; +} +lean_ctor_set(x_904, 0, x_897); +lean_ctor_set(x_904, 1, x_898); +lean_ctor_set(x_904, 2, x_899); +lean_ctor_set(x_904, 3, x_900); +lean_ctor_set_uint8(x_904, sizeof(void*)*4, x_842); +x_905 = 0; +if (lean_is_scalar(x_896)) { + x_906 = lean_alloc_ctor(1, 4, 1); +} else { + x_906 = x_896; +} +lean_ctor_set(x_906, 0, x_902); +lean_ctor_set(x_906, 1, x_894); +lean_ctor_set(x_906, 2, x_895); +lean_ctor_set(x_906, 3, x_904); +lean_ctor_set_uint8(x_906, sizeof(void*)*4, x_905); +lean_ctor_set(x_1, 3, x_906); +lean_ctor_set(x_1, 2, x_839); +lean_ctor_set(x_1, 1, x_838); +lean_ctor_set(x_1, 0, x_4); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_905); +return x_1; +} +else +{ +lean_object* x_907; lean_object* x_908; lean_object* x_909; lean_object* x_910; lean_object* x_911; lean_object* x_912; lean_object* x_913; lean_object* x_914; lean_object* x_915; lean_object* x_916; uint8_t x_917; lean_object* x_918; +x_907 = lean_ctor_get(x_843, 1); +lean_inc(x_907); +x_908 = lean_ctor_get(x_843, 2); +lean_inc(x_908); +if (lean_is_exclusive(x_843)) { + lean_ctor_release(x_843, 0); + lean_ctor_release(x_843, 1); + lean_ctor_release(x_843, 2); + lean_ctor_release(x_843, 3); + x_909 = x_843; +} else { + lean_dec_ref(x_843); + x_909 = lean_box(0); +} +x_910 = lean_ctor_get(x_847, 0); +lean_inc(x_910); +x_911 = lean_ctor_get(x_847, 1); +lean_inc(x_911); +x_912 = lean_ctor_get(x_847, 2); +lean_inc(x_912); +x_913 = lean_ctor_get(x_847, 3); +lean_inc(x_913); +if (lean_is_exclusive(x_847)) { + lean_ctor_release(x_847, 0); + lean_ctor_release(x_847, 1); + lean_ctor_release(x_847, 2); + lean_ctor_release(x_847, 3); + x_914 = x_847; +} else { + lean_dec_ref(x_847); + x_914 = lean_box(0); +} +if (lean_is_scalar(x_914)) { + x_915 = lean_alloc_ctor(1, 4, 1); +} else { + x_915 = x_914; +} +lean_ctor_set(x_915, 0, x_910); +lean_ctor_set(x_915, 1, x_911); +lean_ctor_set(x_915, 2, x_912); +lean_ctor_set(x_915, 3, x_913); +lean_ctor_set_uint8(x_915, sizeof(void*)*4, x_893); +if (lean_is_scalar(x_909)) { + x_916 = lean_alloc_ctor(1, 4, 1); +} else { + x_916 = x_909; +} +lean_ctor_set(x_916, 0, x_915); +lean_ctor_set(x_916, 1, x_907); +lean_ctor_set(x_916, 2, x_908); +lean_ctor_set(x_916, 3, x_887); +lean_ctor_set_uint8(x_916, sizeof(void*)*4, x_846); +lean_ctor_set(x_1, 3, x_916); +lean_ctor_set(x_1, 2, x_654); +lean_ctor_set(x_1, 1, x_653); +lean_ctor_set(x_1, 0, x_840); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_842); +x_917 = 0; +x_918 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_918, 0, x_4); +lean_ctor_set(x_918, 1, x_838); +lean_ctor_set(x_918, 2, x_839); +lean_ctor_set(x_918, 3, x_1); +lean_ctor_set_uint8(x_918, sizeof(void*)*4, x_917); +return x_918; +} +} +} +} +} +else +{ +uint8_t x_919; lean_object* x_920; +lean_ctor_set(x_1, 3, x_843); +lean_ctor_set(x_1, 2, x_654); +lean_ctor_set(x_1, 1, x_653); +lean_ctor_set(x_1, 0, x_840); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_842); +x_919 = 0; +x_920 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_920, 0, x_4); +lean_ctor_set(x_920, 1, x_838); +lean_ctor_set(x_920, 2, x_839); +lean_ctor_set(x_920, 3, x_1); +lean_ctor_set_uint8(x_920, sizeof(void*)*4, x_919); +return x_920; +} +} +} +} +else +{ +lean_object* x_921; lean_object* x_922; lean_object* x_923; lean_object* x_924; lean_object* x_925; lean_object* x_926; lean_object* x_927; lean_object* x_928; lean_object* x_929; lean_object* x_930; lean_object* x_931; lean_object* x_932; lean_object* x_933; uint8_t x_934; lean_object* x_935; lean_object* x_936; +x_921 = lean_ctor_get(x_1, 0); +x_922 = lean_ctor_get(x_1, 1); +x_923 = lean_ctor_get(x_1, 2); +x_924 = lean_ctor_get(x_1, 3); +x_925 = lean_ctor_get(x_4, 1); +x_926 = lean_ctor_get(x_4, 2); +x_927 = lean_ctor_get(x_4, 3); +lean_inc(x_927); +lean_inc(x_926); +lean_inc(x_925); +lean_dec(x_4); +x_928 = lean_ctor_get(x_633, 0); +lean_inc(x_928); +x_929 = lean_ctor_get(x_633, 1); +lean_inc(x_929); +x_930 = lean_ctor_get(x_633, 2); +lean_inc(x_930); +x_931 = lean_ctor_get(x_633, 3); +lean_inc(x_931); +if (lean_is_exclusive(x_633)) { + lean_ctor_release(x_633, 0); + lean_ctor_release(x_633, 1); + lean_ctor_release(x_633, 2); + lean_ctor_release(x_633, 3); + x_932 = x_633; +} else { + lean_dec_ref(x_633); + x_932 = lean_box(0); +} +if (lean_is_scalar(x_932)) { + x_933 = lean_alloc_ctor(1, 4, 1); +} else { + x_933 = x_932; +} +lean_ctor_set(x_933, 0, x_921); +lean_ctor_set(x_933, 1, x_922); +lean_ctor_set(x_933, 2, x_923); +lean_ctor_set(x_933, 3, x_924); +lean_ctor_set_uint8(x_933, sizeof(void*)*4, x_636); +x_934 = 1; +x_935 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_935, 0, x_933); +lean_ctor_set(x_935, 1, x_2); +lean_ctor_set(x_935, 2, x_3); +lean_ctor_set(x_935, 3, x_928); +lean_ctor_set_uint8(x_935, sizeof(void*)*4, x_934); +x_936 = l_Lean_RBNode_setRed___rarg(x_927); +if (lean_obj_tag(x_936) == 0) +{ +uint8_t x_937; lean_object* x_938; +lean_ctor_set(x_1, 3, x_936); +lean_ctor_set(x_1, 2, x_926); +lean_ctor_set(x_1, 1, x_925); +lean_ctor_set(x_1, 0, x_931); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_934); +x_937 = 0; +x_938 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_938, 0, x_935); +lean_ctor_set(x_938, 1, x_929); +lean_ctor_set(x_938, 2, x_930); +lean_ctor_set(x_938, 3, x_1); +lean_ctor_set_uint8(x_938, sizeof(void*)*4, x_937); +return x_938; +} +else +{ +uint8_t x_939; +x_939 = lean_ctor_get_uint8(x_936, sizeof(void*)*4); +if (x_939 == 0) +{ +lean_object* x_940; +x_940 = lean_ctor_get(x_936, 0); +lean_inc(x_940); +if (lean_obj_tag(x_940) == 0) +{ +lean_object* x_941; +x_941 = lean_ctor_get(x_936, 3); +lean_inc(x_941); +if (lean_obj_tag(x_941) == 0) +{ +lean_object* x_942; lean_object* x_943; lean_object* x_944; lean_object* x_945; uint8_t x_946; lean_object* x_947; +x_942 = lean_ctor_get(x_936, 1); +lean_inc(x_942); +x_943 = lean_ctor_get(x_936, 2); +lean_inc(x_943); +if (lean_is_exclusive(x_936)) { + lean_ctor_release(x_936, 0); + lean_ctor_release(x_936, 1); + lean_ctor_release(x_936, 2); + lean_ctor_release(x_936, 3); + x_944 = x_936; +} else { + lean_dec_ref(x_936); + x_944 = lean_box(0); +} +if (lean_is_scalar(x_944)) { + x_945 = lean_alloc_ctor(1, 4, 1); +} else { + x_945 = x_944; +} +lean_ctor_set(x_945, 0, x_941); +lean_ctor_set(x_945, 1, x_942); +lean_ctor_set(x_945, 2, x_943); +lean_ctor_set(x_945, 3, x_941); +lean_ctor_set_uint8(x_945, sizeof(void*)*4, x_939); +lean_ctor_set(x_1, 3, x_945); +lean_ctor_set(x_1, 2, x_926); +lean_ctor_set(x_1, 1, x_925); +lean_ctor_set(x_1, 0, x_931); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_934); +x_946 = 0; +x_947 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_947, 0, x_935); +lean_ctor_set(x_947, 1, x_929); +lean_ctor_set(x_947, 2, x_930); +lean_ctor_set(x_947, 3, x_1); +lean_ctor_set_uint8(x_947, sizeof(void*)*4, x_946); +return x_947; +} +else +{ +uint8_t x_948; +x_948 = lean_ctor_get_uint8(x_941, sizeof(void*)*4); +if (x_948 == 0) +{ +lean_object* x_949; lean_object* x_950; lean_object* x_951; lean_object* x_952; lean_object* x_953; lean_object* x_954; lean_object* x_955; lean_object* x_956; lean_object* x_957; lean_object* x_958; uint8_t x_959; lean_object* x_960; +x_949 = lean_ctor_get(x_936, 1); +lean_inc(x_949); +x_950 = lean_ctor_get(x_936, 2); +lean_inc(x_950); +if (lean_is_exclusive(x_936)) { + lean_ctor_release(x_936, 0); + lean_ctor_release(x_936, 1); + lean_ctor_release(x_936, 2); + lean_ctor_release(x_936, 3); + x_951 = x_936; +} else { + lean_dec_ref(x_936); + x_951 = lean_box(0); +} +x_952 = lean_ctor_get(x_941, 0); +lean_inc(x_952); +x_953 = lean_ctor_get(x_941, 1); +lean_inc(x_953); +x_954 = lean_ctor_get(x_941, 2); +lean_inc(x_954); +x_955 = lean_ctor_get(x_941, 3); +lean_inc(x_955); +if (lean_is_exclusive(x_941)) { + lean_ctor_release(x_941, 0); + lean_ctor_release(x_941, 1); + lean_ctor_release(x_941, 2); + lean_ctor_release(x_941, 3); + x_956 = x_941; +} else { + lean_dec_ref(x_941); + x_956 = lean_box(0); +} +if (lean_is_scalar(x_956)) { + x_957 = lean_alloc_ctor(1, 4, 1); +} else { + x_957 = x_956; +} +lean_ctor_set(x_957, 0, x_931); +lean_ctor_set(x_957, 1, x_925); +lean_ctor_set(x_957, 2, x_926); +lean_ctor_set(x_957, 3, x_940); +lean_ctor_set_uint8(x_957, sizeof(void*)*4, x_934); +if (lean_is_scalar(x_951)) { + x_958 = lean_alloc_ctor(1, 4, 1); +} else { + x_958 = x_951; +} +lean_ctor_set(x_958, 0, x_952); +lean_ctor_set(x_958, 1, x_953); +lean_ctor_set(x_958, 2, x_954); +lean_ctor_set(x_958, 3, x_955); +lean_ctor_set_uint8(x_958, sizeof(void*)*4, x_934); +x_959 = 0; +lean_ctor_set(x_1, 3, x_958); +lean_ctor_set(x_1, 2, x_950); +lean_ctor_set(x_1, 1, x_949); +lean_ctor_set(x_1, 0, x_957); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_959); +x_960 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_960, 0, x_935); +lean_ctor_set(x_960, 1, x_929); +lean_ctor_set(x_960, 2, x_930); +lean_ctor_set(x_960, 3, x_1); +lean_ctor_set_uint8(x_960, sizeof(void*)*4, x_959); +return x_960; +} +else +{ +lean_object* x_961; lean_object* x_962; lean_object* x_963; uint8_t x_964; lean_object* x_965; +lean_free_object(x_1); +if (lean_is_exclusive(x_941)) { + lean_ctor_release(x_941, 0); + lean_ctor_release(x_941, 1); + lean_ctor_release(x_941, 2); + lean_ctor_release(x_941, 3); + x_961 = x_941; +} else { + lean_dec_ref(x_941); + x_961 = lean_box(0); +} +lean_inc(x_936); +if (lean_is_scalar(x_961)) { + x_962 = lean_alloc_ctor(1, 4, 1); +} else { + x_962 = x_961; +} +lean_ctor_set(x_962, 0, x_931); +lean_ctor_set(x_962, 1, x_925); +lean_ctor_set(x_962, 2, x_926); +lean_ctor_set(x_962, 3, x_936); +if (lean_is_exclusive(x_936)) { + lean_ctor_release(x_936, 0); + lean_ctor_release(x_936, 1); + lean_ctor_release(x_936, 2); + lean_ctor_release(x_936, 3); + x_963 = x_936; +} else { + lean_dec_ref(x_936); + x_963 = lean_box(0); +} +lean_ctor_set_uint8(x_962, sizeof(void*)*4, x_934); +x_964 = 0; +if (lean_is_scalar(x_963)) { + x_965 = lean_alloc_ctor(1, 4, 1); +} else { + x_965 = x_963; +} +lean_ctor_set(x_965, 0, x_935); +lean_ctor_set(x_965, 1, x_929); +lean_ctor_set(x_965, 2, x_930); +lean_ctor_set(x_965, 3, x_962); +lean_ctor_set_uint8(x_965, sizeof(void*)*4, x_964); +return x_965; +} +} +} +else +{ +uint8_t x_966; +x_966 = lean_ctor_get_uint8(x_940, sizeof(void*)*4); +if (x_966 == 0) +{ +lean_object* x_967; lean_object* x_968; lean_object* x_969; lean_object* x_970; lean_object* x_971; lean_object* x_972; lean_object* x_973; lean_object* x_974; lean_object* x_975; lean_object* x_976; lean_object* x_977; uint8_t x_978; lean_object* x_979; +x_967 = lean_ctor_get(x_936, 1); +lean_inc(x_967); +x_968 = lean_ctor_get(x_936, 2); +lean_inc(x_968); +x_969 = lean_ctor_get(x_936, 3); +lean_inc(x_969); +if (lean_is_exclusive(x_936)) { + lean_ctor_release(x_936, 0); + lean_ctor_release(x_936, 1); + lean_ctor_release(x_936, 2); + lean_ctor_release(x_936, 3); + x_970 = x_936; +} else { + lean_dec_ref(x_936); + x_970 = lean_box(0); +} +x_971 = lean_ctor_get(x_940, 0); +lean_inc(x_971); +x_972 = lean_ctor_get(x_940, 1); +lean_inc(x_972); +x_973 = lean_ctor_get(x_940, 2); +lean_inc(x_973); +x_974 = lean_ctor_get(x_940, 3); +lean_inc(x_974); +if (lean_is_exclusive(x_940)) { + lean_ctor_release(x_940, 0); + lean_ctor_release(x_940, 1); + lean_ctor_release(x_940, 2); + lean_ctor_release(x_940, 3); + x_975 = x_940; +} else { + lean_dec_ref(x_940); + x_975 = lean_box(0); +} +if (lean_is_scalar(x_975)) { + x_976 = lean_alloc_ctor(1, 4, 1); +} else { + x_976 = x_975; +} +lean_ctor_set(x_976, 0, x_931); +lean_ctor_set(x_976, 1, x_925); +lean_ctor_set(x_976, 2, x_926); +lean_ctor_set(x_976, 3, x_971); +lean_ctor_set_uint8(x_976, sizeof(void*)*4, x_934); +if (lean_is_scalar(x_970)) { + x_977 = lean_alloc_ctor(1, 4, 1); +} else { + x_977 = x_970; +} +lean_ctor_set(x_977, 0, x_974); +lean_ctor_set(x_977, 1, x_967); +lean_ctor_set(x_977, 2, x_968); +lean_ctor_set(x_977, 3, x_969); +lean_ctor_set_uint8(x_977, sizeof(void*)*4, x_934); +x_978 = 0; +lean_ctor_set(x_1, 3, x_977); +lean_ctor_set(x_1, 2, x_973); +lean_ctor_set(x_1, 1, x_972); +lean_ctor_set(x_1, 0, x_976); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_978); +x_979 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_979, 0, x_935); +lean_ctor_set(x_979, 1, x_929); +lean_ctor_set(x_979, 2, x_930); +lean_ctor_set(x_979, 3, x_1); +lean_ctor_set_uint8(x_979, sizeof(void*)*4, x_978); +return x_979; +} +else +{ +lean_object* x_980; +x_980 = lean_ctor_get(x_936, 3); +lean_inc(x_980); +if (lean_obj_tag(x_980) == 0) +{ +lean_object* x_981; lean_object* x_982; lean_object* x_983; uint8_t x_984; lean_object* x_985; +lean_free_object(x_1); +if (lean_is_exclusive(x_940)) { + lean_ctor_release(x_940, 0); + lean_ctor_release(x_940, 1); + lean_ctor_release(x_940, 2); + lean_ctor_release(x_940, 3); + x_981 = x_940; +} else { + lean_dec_ref(x_940); + x_981 = lean_box(0); +} +lean_inc(x_936); +if (lean_is_scalar(x_981)) { + x_982 = lean_alloc_ctor(1, 4, 1); +} else { + x_982 = x_981; +} +lean_ctor_set(x_982, 0, x_931); +lean_ctor_set(x_982, 1, x_925); +lean_ctor_set(x_982, 2, x_926); +lean_ctor_set(x_982, 3, x_936); +if (lean_is_exclusive(x_936)) { + lean_ctor_release(x_936, 0); + lean_ctor_release(x_936, 1); + lean_ctor_release(x_936, 2); + lean_ctor_release(x_936, 3); + x_983 = x_936; +} else { + lean_dec_ref(x_936); + x_983 = lean_box(0); +} +lean_ctor_set_uint8(x_982, sizeof(void*)*4, x_934); +x_984 = 0; +if (lean_is_scalar(x_983)) { + x_985 = lean_alloc_ctor(1, 4, 1); +} else { + x_985 = x_983; +} +lean_ctor_set(x_985, 0, x_935); +lean_ctor_set(x_985, 1, x_929); +lean_ctor_set(x_985, 2, x_930); +lean_ctor_set(x_985, 3, x_982); +lean_ctor_set_uint8(x_985, sizeof(void*)*4, x_984); +return x_985; +} +else +{ +uint8_t x_986; +x_986 = lean_ctor_get_uint8(x_980, sizeof(void*)*4); +if (x_986 == 0) +{ +lean_object* x_987; lean_object* x_988; lean_object* x_989; lean_object* x_990; lean_object* x_991; lean_object* x_992; lean_object* x_993; lean_object* x_994; lean_object* x_995; lean_object* x_996; lean_object* x_997; uint8_t x_998; lean_object* x_999; +x_987 = lean_ctor_get(x_936, 1); +lean_inc(x_987); +x_988 = lean_ctor_get(x_936, 2); +lean_inc(x_988); +if (lean_is_exclusive(x_936)) { + lean_ctor_release(x_936, 0); + lean_ctor_release(x_936, 1); + lean_ctor_release(x_936, 2); + lean_ctor_release(x_936, 3); + x_989 = x_936; +} else { + lean_dec_ref(x_936); + x_989 = lean_box(0); +} +x_990 = lean_ctor_get(x_980, 0); +lean_inc(x_990); +x_991 = lean_ctor_get(x_980, 1); +lean_inc(x_991); +x_992 = lean_ctor_get(x_980, 2); +lean_inc(x_992); +x_993 = lean_ctor_get(x_980, 3); +lean_inc(x_993); +if (lean_is_exclusive(x_980)) { + lean_ctor_release(x_980, 0); + lean_ctor_release(x_980, 1); + lean_ctor_release(x_980, 2); + lean_ctor_release(x_980, 3); + x_994 = x_980; +} else { + lean_dec_ref(x_980); + x_994 = lean_box(0); +} +lean_inc(x_940); +if (lean_is_scalar(x_994)) { + x_995 = lean_alloc_ctor(1, 4, 1); +} else { + x_995 = x_994; +} +lean_ctor_set(x_995, 0, x_931); +lean_ctor_set(x_995, 1, x_925); +lean_ctor_set(x_995, 2, x_926); +lean_ctor_set(x_995, 3, x_940); +if (lean_is_exclusive(x_940)) { + lean_ctor_release(x_940, 0); + lean_ctor_release(x_940, 1); + lean_ctor_release(x_940, 2); + lean_ctor_release(x_940, 3); + x_996 = x_940; +} else { + lean_dec_ref(x_940); + x_996 = lean_box(0); +} +lean_ctor_set_uint8(x_995, sizeof(void*)*4, x_934); +if (lean_is_scalar(x_996)) { + x_997 = lean_alloc_ctor(1, 4, 1); +} else { + x_997 = x_996; +} +lean_ctor_set(x_997, 0, x_990); +lean_ctor_set(x_997, 1, x_991); +lean_ctor_set(x_997, 2, x_992); +lean_ctor_set(x_997, 3, x_993); +lean_ctor_set_uint8(x_997, sizeof(void*)*4, x_934); +x_998 = 0; +if (lean_is_scalar(x_989)) { + x_999 = lean_alloc_ctor(1, 4, 1); +} else { + x_999 = x_989; +} +lean_ctor_set(x_999, 0, x_995); +lean_ctor_set(x_999, 1, x_987); +lean_ctor_set(x_999, 2, x_988); +lean_ctor_set(x_999, 3, x_997); +lean_ctor_set_uint8(x_999, sizeof(void*)*4, x_998); +lean_ctor_set(x_1, 3, x_999); +lean_ctor_set(x_1, 2, x_930); +lean_ctor_set(x_1, 1, x_929); +lean_ctor_set(x_1, 0, x_935); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_998); +return x_1; +} +else +{ +lean_object* x_1000; lean_object* x_1001; lean_object* x_1002; lean_object* x_1003; lean_object* x_1004; lean_object* x_1005; lean_object* x_1006; lean_object* x_1007; lean_object* x_1008; lean_object* x_1009; uint8_t x_1010; lean_object* x_1011; +x_1000 = lean_ctor_get(x_936, 1); +lean_inc(x_1000); +x_1001 = lean_ctor_get(x_936, 2); +lean_inc(x_1001); +if (lean_is_exclusive(x_936)) { + lean_ctor_release(x_936, 0); + lean_ctor_release(x_936, 1); + lean_ctor_release(x_936, 2); + lean_ctor_release(x_936, 3); + x_1002 = x_936; +} else { + lean_dec_ref(x_936); + x_1002 = lean_box(0); +} +x_1003 = lean_ctor_get(x_940, 0); +lean_inc(x_1003); +x_1004 = lean_ctor_get(x_940, 1); +lean_inc(x_1004); +x_1005 = lean_ctor_get(x_940, 2); +lean_inc(x_1005); +x_1006 = lean_ctor_get(x_940, 3); +lean_inc(x_1006); +if (lean_is_exclusive(x_940)) { + lean_ctor_release(x_940, 0); + lean_ctor_release(x_940, 1); + lean_ctor_release(x_940, 2); + lean_ctor_release(x_940, 3); + x_1007 = x_940; +} else { + lean_dec_ref(x_940); + x_1007 = lean_box(0); +} +if (lean_is_scalar(x_1007)) { + x_1008 = lean_alloc_ctor(1, 4, 1); +} else { + x_1008 = x_1007; +} +lean_ctor_set(x_1008, 0, x_1003); +lean_ctor_set(x_1008, 1, x_1004); +lean_ctor_set(x_1008, 2, x_1005); +lean_ctor_set(x_1008, 3, x_1006); +lean_ctor_set_uint8(x_1008, sizeof(void*)*4, x_986); +if (lean_is_scalar(x_1002)) { + x_1009 = lean_alloc_ctor(1, 4, 1); +} else { + x_1009 = x_1002; +} +lean_ctor_set(x_1009, 0, x_1008); +lean_ctor_set(x_1009, 1, x_1000); +lean_ctor_set(x_1009, 2, x_1001); +lean_ctor_set(x_1009, 3, x_980); +lean_ctor_set_uint8(x_1009, sizeof(void*)*4, x_939); +lean_ctor_set(x_1, 3, x_1009); +lean_ctor_set(x_1, 2, x_926); +lean_ctor_set(x_1, 1, x_925); +lean_ctor_set(x_1, 0, x_931); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_934); +x_1010 = 0; +x_1011 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1011, 0, x_935); +lean_ctor_set(x_1011, 1, x_929); +lean_ctor_set(x_1011, 2, x_930); +lean_ctor_set(x_1011, 3, x_1); +lean_ctor_set_uint8(x_1011, sizeof(void*)*4, x_1010); +return x_1011; +} +} +} +} +} +else +{ +uint8_t x_1012; lean_object* x_1013; +lean_ctor_set(x_1, 3, x_936); +lean_ctor_set(x_1, 2, x_926); +lean_ctor_set(x_1, 1, x_925); +lean_ctor_set(x_1, 0, x_931); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_934); +x_1012 = 0; +x_1013 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1013, 0, x_935); +lean_ctor_set(x_1013, 1, x_929); +lean_ctor_set(x_1013, 2, x_930); +lean_ctor_set(x_1013, 3, x_1); +lean_ctor_set_uint8(x_1013, sizeof(void*)*4, x_1012); +return x_1013; +} +} +} +} +else +{ +lean_object* x_1014; lean_object* x_1015; lean_object* x_1016; lean_object* x_1017; lean_object* x_1018; lean_object* x_1019; lean_object* x_1020; lean_object* x_1021; lean_object* x_1022; lean_object* x_1023; lean_object* x_1024; lean_object* x_1025; lean_object* x_1026; lean_object* x_1027; uint8_t x_1028; lean_object* x_1029; lean_object* x_1030; +x_1014 = lean_ctor_get(x_1, 0); +x_1015 = lean_ctor_get(x_1, 1); +x_1016 = lean_ctor_get(x_1, 2); +x_1017 = lean_ctor_get(x_1, 3); +lean_inc(x_1017); +lean_inc(x_1016); +lean_inc(x_1015); +lean_inc(x_1014); +lean_dec(x_1); +x_1018 = lean_ctor_get(x_4, 1); +lean_inc(x_1018); +x_1019 = lean_ctor_get(x_4, 2); +lean_inc(x_1019); +x_1020 = lean_ctor_get(x_4, 3); +lean_inc(x_1020); +if (lean_is_exclusive(x_4)) { + lean_ctor_release(x_4, 0); + lean_ctor_release(x_4, 1); + lean_ctor_release(x_4, 2); + lean_ctor_release(x_4, 3); + x_1021 = x_4; +} else { + lean_dec_ref(x_4); + x_1021 = lean_box(0); +} +x_1022 = lean_ctor_get(x_633, 0); +lean_inc(x_1022); +x_1023 = lean_ctor_get(x_633, 1); +lean_inc(x_1023); +x_1024 = lean_ctor_get(x_633, 2); +lean_inc(x_1024); +x_1025 = lean_ctor_get(x_633, 3); +lean_inc(x_1025); +if (lean_is_exclusive(x_633)) { + lean_ctor_release(x_633, 0); + lean_ctor_release(x_633, 1); + lean_ctor_release(x_633, 2); + lean_ctor_release(x_633, 3); + x_1026 = x_633; +} else { + lean_dec_ref(x_633); + x_1026 = lean_box(0); +} +if (lean_is_scalar(x_1026)) { + x_1027 = lean_alloc_ctor(1, 4, 1); +} else { + x_1027 = x_1026; +} +lean_ctor_set(x_1027, 0, x_1014); +lean_ctor_set(x_1027, 1, x_1015); +lean_ctor_set(x_1027, 2, x_1016); +lean_ctor_set(x_1027, 3, x_1017); +lean_ctor_set_uint8(x_1027, sizeof(void*)*4, x_636); +x_1028 = 1; +if (lean_is_scalar(x_1021)) { + x_1029 = lean_alloc_ctor(1, 4, 1); +} else { + x_1029 = x_1021; +} +lean_ctor_set(x_1029, 0, x_1027); +lean_ctor_set(x_1029, 1, x_2); +lean_ctor_set(x_1029, 2, x_3); +lean_ctor_set(x_1029, 3, x_1022); +lean_ctor_set_uint8(x_1029, sizeof(void*)*4, x_1028); +x_1030 = l_Lean_RBNode_setRed___rarg(x_1020); +if (lean_obj_tag(x_1030) == 0) +{ +lean_object* x_1031; uint8_t x_1032; lean_object* x_1033; +x_1031 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1031, 0, x_1025); +lean_ctor_set(x_1031, 1, x_1018); +lean_ctor_set(x_1031, 2, x_1019); +lean_ctor_set(x_1031, 3, x_1030); +lean_ctor_set_uint8(x_1031, sizeof(void*)*4, x_1028); +x_1032 = 0; +x_1033 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1033, 0, x_1029); +lean_ctor_set(x_1033, 1, x_1023); +lean_ctor_set(x_1033, 2, x_1024); +lean_ctor_set(x_1033, 3, x_1031); +lean_ctor_set_uint8(x_1033, sizeof(void*)*4, x_1032); +return x_1033; +} +else +{ +uint8_t x_1034; +x_1034 = lean_ctor_get_uint8(x_1030, sizeof(void*)*4); +if (x_1034 == 0) +{ +lean_object* x_1035; +x_1035 = lean_ctor_get(x_1030, 0); +lean_inc(x_1035); +if (lean_obj_tag(x_1035) == 0) +{ +lean_object* x_1036; +x_1036 = lean_ctor_get(x_1030, 3); +lean_inc(x_1036); +if (lean_obj_tag(x_1036) == 0) +{ +lean_object* x_1037; lean_object* x_1038; lean_object* x_1039; lean_object* x_1040; lean_object* x_1041; uint8_t x_1042; lean_object* x_1043; +x_1037 = lean_ctor_get(x_1030, 1); +lean_inc(x_1037); +x_1038 = lean_ctor_get(x_1030, 2); +lean_inc(x_1038); +if (lean_is_exclusive(x_1030)) { + lean_ctor_release(x_1030, 0); + lean_ctor_release(x_1030, 1); + lean_ctor_release(x_1030, 2); + lean_ctor_release(x_1030, 3); + x_1039 = x_1030; +} else { + lean_dec_ref(x_1030); + x_1039 = lean_box(0); +} +if (lean_is_scalar(x_1039)) { + x_1040 = lean_alloc_ctor(1, 4, 1); +} else { + x_1040 = x_1039; +} +lean_ctor_set(x_1040, 0, x_1036); +lean_ctor_set(x_1040, 1, x_1037); +lean_ctor_set(x_1040, 2, x_1038); +lean_ctor_set(x_1040, 3, x_1036); +lean_ctor_set_uint8(x_1040, sizeof(void*)*4, x_1034); +x_1041 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1041, 0, x_1025); +lean_ctor_set(x_1041, 1, x_1018); +lean_ctor_set(x_1041, 2, x_1019); +lean_ctor_set(x_1041, 3, x_1040); +lean_ctor_set_uint8(x_1041, sizeof(void*)*4, x_1028); +x_1042 = 0; +x_1043 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1043, 0, x_1029); +lean_ctor_set(x_1043, 1, x_1023); +lean_ctor_set(x_1043, 2, x_1024); +lean_ctor_set(x_1043, 3, x_1041); +lean_ctor_set_uint8(x_1043, sizeof(void*)*4, x_1042); +return x_1043; +} +else +{ +uint8_t x_1044; +x_1044 = lean_ctor_get_uint8(x_1036, sizeof(void*)*4); +if (x_1044 == 0) +{ +lean_object* x_1045; lean_object* x_1046; lean_object* x_1047; lean_object* x_1048; lean_object* x_1049; lean_object* x_1050; lean_object* x_1051; lean_object* x_1052; lean_object* x_1053; lean_object* x_1054; uint8_t x_1055; lean_object* x_1056; lean_object* x_1057; +x_1045 = lean_ctor_get(x_1030, 1); +lean_inc(x_1045); +x_1046 = lean_ctor_get(x_1030, 2); +lean_inc(x_1046); +if (lean_is_exclusive(x_1030)) { + lean_ctor_release(x_1030, 0); + lean_ctor_release(x_1030, 1); + lean_ctor_release(x_1030, 2); + lean_ctor_release(x_1030, 3); + x_1047 = x_1030; +} else { + lean_dec_ref(x_1030); + x_1047 = lean_box(0); +} +x_1048 = lean_ctor_get(x_1036, 0); +lean_inc(x_1048); +x_1049 = lean_ctor_get(x_1036, 1); +lean_inc(x_1049); +x_1050 = lean_ctor_get(x_1036, 2); +lean_inc(x_1050); +x_1051 = lean_ctor_get(x_1036, 3); +lean_inc(x_1051); +if (lean_is_exclusive(x_1036)) { + lean_ctor_release(x_1036, 0); + lean_ctor_release(x_1036, 1); + lean_ctor_release(x_1036, 2); + lean_ctor_release(x_1036, 3); + x_1052 = x_1036; +} else { + lean_dec_ref(x_1036); + x_1052 = lean_box(0); +} +if (lean_is_scalar(x_1052)) { + x_1053 = lean_alloc_ctor(1, 4, 1); +} else { + x_1053 = x_1052; +} +lean_ctor_set(x_1053, 0, x_1025); +lean_ctor_set(x_1053, 1, x_1018); +lean_ctor_set(x_1053, 2, x_1019); +lean_ctor_set(x_1053, 3, x_1035); +lean_ctor_set_uint8(x_1053, sizeof(void*)*4, x_1028); +if (lean_is_scalar(x_1047)) { + x_1054 = lean_alloc_ctor(1, 4, 1); +} else { + x_1054 = x_1047; +} +lean_ctor_set(x_1054, 0, x_1048); +lean_ctor_set(x_1054, 1, x_1049); +lean_ctor_set(x_1054, 2, x_1050); +lean_ctor_set(x_1054, 3, x_1051); +lean_ctor_set_uint8(x_1054, sizeof(void*)*4, x_1028); +x_1055 = 0; +x_1056 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1056, 0, x_1053); +lean_ctor_set(x_1056, 1, x_1045); +lean_ctor_set(x_1056, 2, x_1046); +lean_ctor_set(x_1056, 3, x_1054); +lean_ctor_set_uint8(x_1056, sizeof(void*)*4, x_1055); +x_1057 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1057, 0, x_1029); +lean_ctor_set(x_1057, 1, x_1023); +lean_ctor_set(x_1057, 2, x_1024); +lean_ctor_set(x_1057, 3, x_1056); +lean_ctor_set_uint8(x_1057, sizeof(void*)*4, x_1055); +return x_1057; +} +else +{ +lean_object* x_1058; lean_object* x_1059; lean_object* x_1060; uint8_t x_1061; lean_object* x_1062; +if (lean_is_exclusive(x_1036)) { + lean_ctor_release(x_1036, 0); + lean_ctor_release(x_1036, 1); + lean_ctor_release(x_1036, 2); + lean_ctor_release(x_1036, 3); + x_1058 = x_1036; +} else { + lean_dec_ref(x_1036); + x_1058 = lean_box(0); +} +lean_inc(x_1030); +if (lean_is_scalar(x_1058)) { + x_1059 = lean_alloc_ctor(1, 4, 1); +} else { + x_1059 = x_1058; +} +lean_ctor_set(x_1059, 0, x_1025); +lean_ctor_set(x_1059, 1, x_1018); +lean_ctor_set(x_1059, 2, x_1019); +lean_ctor_set(x_1059, 3, x_1030); +if (lean_is_exclusive(x_1030)) { + lean_ctor_release(x_1030, 0); + lean_ctor_release(x_1030, 1); + lean_ctor_release(x_1030, 2); + lean_ctor_release(x_1030, 3); + x_1060 = x_1030; +} else { + lean_dec_ref(x_1030); + x_1060 = lean_box(0); +} +lean_ctor_set_uint8(x_1059, sizeof(void*)*4, x_1028); +x_1061 = 0; +if (lean_is_scalar(x_1060)) { + x_1062 = lean_alloc_ctor(1, 4, 1); +} else { + x_1062 = x_1060; +} +lean_ctor_set(x_1062, 0, x_1029); +lean_ctor_set(x_1062, 1, x_1023); +lean_ctor_set(x_1062, 2, x_1024); +lean_ctor_set(x_1062, 3, x_1059); +lean_ctor_set_uint8(x_1062, sizeof(void*)*4, x_1061); +return x_1062; +} +} +} +else +{ +uint8_t x_1063; +x_1063 = lean_ctor_get_uint8(x_1035, sizeof(void*)*4); +if (x_1063 == 0) +{ +lean_object* x_1064; lean_object* x_1065; lean_object* x_1066; lean_object* x_1067; lean_object* x_1068; lean_object* x_1069; lean_object* x_1070; lean_object* x_1071; lean_object* x_1072; lean_object* x_1073; lean_object* x_1074; uint8_t x_1075; lean_object* x_1076; lean_object* x_1077; +x_1064 = lean_ctor_get(x_1030, 1); +lean_inc(x_1064); +x_1065 = lean_ctor_get(x_1030, 2); +lean_inc(x_1065); +x_1066 = lean_ctor_get(x_1030, 3); +lean_inc(x_1066); +if (lean_is_exclusive(x_1030)) { + lean_ctor_release(x_1030, 0); + lean_ctor_release(x_1030, 1); + lean_ctor_release(x_1030, 2); + lean_ctor_release(x_1030, 3); + x_1067 = x_1030; +} else { + lean_dec_ref(x_1030); + x_1067 = lean_box(0); +} +x_1068 = lean_ctor_get(x_1035, 0); +lean_inc(x_1068); +x_1069 = lean_ctor_get(x_1035, 1); +lean_inc(x_1069); +x_1070 = lean_ctor_get(x_1035, 2); +lean_inc(x_1070); +x_1071 = lean_ctor_get(x_1035, 3); +lean_inc(x_1071); +if (lean_is_exclusive(x_1035)) { + lean_ctor_release(x_1035, 0); + lean_ctor_release(x_1035, 1); + lean_ctor_release(x_1035, 2); + lean_ctor_release(x_1035, 3); + x_1072 = x_1035; +} else { + lean_dec_ref(x_1035); + x_1072 = lean_box(0); +} +if (lean_is_scalar(x_1072)) { + x_1073 = lean_alloc_ctor(1, 4, 1); +} else { + x_1073 = x_1072; +} +lean_ctor_set(x_1073, 0, x_1025); +lean_ctor_set(x_1073, 1, x_1018); +lean_ctor_set(x_1073, 2, x_1019); +lean_ctor_set(x_1073, 3, x_1068); +lean_ctor_set_uint8(x_1073, sizeof(void*)*4, x_1028); +if (lean_is_scalar(x_1067)) { + x_1074 = lean_alloc_ctor(1, 4, 1); +} else { + x_1074 = x_1067; +} +lean_ctor_set(x_1074, 0, x_1071); +lean_ctor_set(x_1074, 1, x_1064); +lean_ctor_set(x_1074, 2, x_1065); +lean_ctor_set(x_1074, 3, x_1066); +lean_ctor_set_uint8(x_1074, sizeof(void*)*4, x_1028); +x_1075 = 0; +x_1076 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1076, 0, x_1073); +lean_ctor_set(x_1076, 1, x_1069); +lean_ctor_set(x_1076, 2, x_1070); +lean_ctor_set(x_1076, 3, x_1074); +lean_ctor_set_uint8(x_1076, sizeof(void*)*4, x_1075); +x_1077 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1077, 0, x_1029); +lean_ctor_set(x_1077, 1, x_1023); +lean_ctor_set(x_1077, 2, x_1024); +lean_ctor_set(x_1077, 3, x_1076); +lean_ctor_set_uint8(x_1077, sizeof(void*)*4, x_1075); +return x_1077; +} +else +{ +lean_object* x_1078; +x_1078 = lean_ctor_get(x_1030, 3); +lean_inc(x_1078); +if (lean_obj_tag(x_1078) == 0) +{ +lean_object* x_1079; lean_object* x_1080; lean_object* x_1081; uint8_t x_1082; lean_object* x_1083; +if (lean_is_exclusive(x_1035)) { + lean_ctor_release(x_1035, 0); + lean_ctor_release(x_1035, 1); + lean_ctor_release(x_1035, 2); + lean_ctor_release(x_1035, 3); + x_1079 = x_1035; +} else { + lean_dec_ref(x_1035); + x_1079 = lean_box(0); +} +lean_inc(x_1030); +if (lean_is_scalar(x_1079)) { + x_1080 = lean_alloc_ctor(1, 4, 1); +} else { + x_1080 = x_1079; +} +lean_ctor_set(x_1080, 0, x_1025); +lean_ctor_set(x_1080, 1, x_1018); +lean_ctor_set(x_1080, 2, x_1019); +lean_ctor_set(x_1080, 3, x_1030); +if (lean_is_exclusive(x_1030)) { + lean_ctor_release(x_1030, 0); + lean_ctor_release(x_1030, 1); + lean_ctor_release(x_1030, 2); + lean_ctor_release(x_1030, 3); + x_1081 = x_1030; +} else { + lean_dec_ref(x_1030); + x_1081 = lean_box(0); +} +lean_ctor_set_uint8(x_1080, sizeof(void*)*4, x_1028); +x_1082 = 0; +if (lean_is_scalar(x_1081)) { + x_1083 = lean_alloc_ctor(1, 4, 1); +} else { + x_1083 = x_1081; +} +lean_ctor_set(x_1083, 0, x_1029); +lean_ctor_set(x_1083, 1, x_1023); +lean_ctor_set(x_1083, 2, x_1024); +lean_ctor_set(x_1083, 3, x_1080); +lean_ctor_set_uint8(x_1083, sizeof(void*)*4, x_1082); +return x_1083; +} +else +{ +uint8_t x_1084; +x_1084 = lean_ctor_get_uint8(x_1078, sizeof(void*)*4); +if (x_1084 == 0) +{ +lean_object* x_1085; lean_object* x_1086; lean_object* x_1087; lean_object* x_1088; lean_object* x_1089; lean_object* x_1090; lean_object* x_1091; lean_object* x_1092; lean_object* x_1093; lean_object* x_1094; lean_object* x_1095; uint8_t x_1096; lean_object* x_1097; lean_object* x_1098; +x_1085 = lean_ctor_get(x_1030, 1); +lean_inc(x_1085); +x_1086 = lean_ctor_get(x_1030, 2); +lean_inc(x_1086); +if (lean_is_exclusive(x_1030)) { + lean_ctor_release(x_1030, 0); + lean_ctor_release(x_1030, 1); + lean_ctor_release(x_1030, 2); + lean_ctor_release(x_1030, 3); + x_1087 = x_1030; +} else { + lean_dec_ref(x_1030); + x_1087 = lean_box(0); +} +x_1088 = lean_ctor_get(x_1078, 0); +lean_inc(x_1088); +x_1089 = lean_ctor_get(x_1078, 1); +lean_inc(x_1089); +x_1090 = lean_ctor_get(x_1078, 2); +lean_inc(x_1090); +x_1091 = lean_ctor_get(x_1078, 3); +lean_inc(x_1091); +if (lean_is_exclusive(x_1078)) { + lean_ctor_release(x_1078, 0); + lean_ctor_release(x_1078, 1); + lean_ctor_release(x_1078, 2); + lean_ctor_release(x_1078, 3); + x_1092 = x_1078; +} else { + lean_dec_ref(x_1078); + x_1092 = lean_box(0); +} +lean_inc(x_1035); +if (lean_is_scalar(x_1092)) { + x_1093 = lean_alloc_ctor(1, 4, 1); +} else { + x_1093 = x_1092; +} +lean_ctor_set(x_1093, 0, x_1025); +lean_ctor_set(x_1093, 1, x_1018); +lean_ctor_set(x_1093, 2, x_1019); +lean_ctor_set(x_1093, 3, x_1035); +if (lean_is_exclusive(x_1035)) { + lean_ctor_release(x_1035, 0); + lean_ctor_release(x_1035, 1); + lean_ctor_release(x_1035, 2); + lean_ctor_release(x_1035, 3); + x_1094 = x_1035; +} else { + lean_dec_ref(x_1035); + x_1094 = lean_box(0); +} +lean_ctor_set_uint8(x_1093, sizeof(void*)*4, x_1028); +if (lean_is_scalar(x_1094)) { + x_1095 = lean_alloc_ctor(1, 4, 1); +} else { + x_1095 = x_1094; +} +lean_ctor_set(x_1095, 0, x_1088); +lean_ctor_set(x_1095, 1, x_1089); +lean_ctor_set(x_1095, 2, x_1090); +lean_ctor_set(x_1095, 3, x_1091); +lean_ctor_set_uint8(x_1095, sizeof(void*)*4, x_1028); +x_1096 = 0; +if (lean_is_scalar(x_1087)) { + x_1097 = lean_alloc_ctor(1, 4, 1); +} else { + x_1097 = x_1087; +} +lean_ctor_set(x_1097, 0, x_1093); +lean_ctor_set(x_1097, 1, x_1085); +lean_ctor_set(x_1097, 2, x_1086); +lean_ctor_set(x_1097, 3, x_1095); +lean_ctor_set_uint8(x_1097, sizeof(void*)*4, x_1096); +x_1098 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1098, 0, x_1029); +lean_ctor_set(x_1098, 1, x_1023); +lean_ctor_set(x_1098, 2, x_1024); +lean_ctor_set(x_1098, 3, x_1097); +lean_ctor_set_uint8(x_1098, sizeof(void*)*4, x_1096); +return x_1098; +} +else +{ +lean_object* x_1099; lean_object* x_1100; lean_object* x_1101; lean_object* x_1102; lean_object* x_1103; lean_object* x_1104; lean_object* x_1105; lean_object* x_1106; lean_object* x_1107; lean_object* x_1108; lean_object* x_1109; uint8_t x_1110; lean_object* x_1111; +x_1099 = lean_ctor_get(x_1030, 1); +lean_inc(x_1099); +x_1100 = lean_ctor_get(x_1030, 2); +lean_inc(x_1100); +if (lean_is_exclusive(x_1030)) { + lean_ctor_release(x_1030, 0); + lean_ctor_release(x_1030, 1); + lean_ctor_release(x_1030, 2); + lean_ctor_release(x_1030, 3); + x_1101 = x_1030; +} else { + lean_dec_ref(x_1030); + x_1101 = lean_box(0); +} +x_1102 = lean_ctor_get(x_1035, 0); +lean_inc(x_1102); +x_1103 = lean_ctor_get(x_1035, 1); +lean_inc(x_1103); +x_1104 = lean_ctor_get(x_1035, 2); +lean_inc(x_1104); +x_1105 = lean_ctor_get(x_1035, 3); +lean_inc(x_1105); +if (lean_is_exclusive(x_1035)) { + lean_ctor_release(x_1035, 0); + lean_ctor_release(x_1035, 1); + lean_ctor_release(x_1035, 2); + lean_ctor_release(x_1035, 3); + x_1106 = x_1035; +} else { + lean_dec_ref(x_1035); + x_1106 = lean_box(0); +} +if (lean_is_scalar(x_1106)) { + x_1107 = lean_alloc_ctor(1, 4, 1); +} else { + x_1107 = x_1106; +} +lean_ctor_set(x_1107, 0, x_1102); +lean_ctor_set(x_1107, 1, x_1103); +lean_ctor_set(x_1107, 2, x_1104); +lean_ctor_set(x_1107, 3, x_1105); +lean_ctor_set_uint8(x_1107, sizeof(void*)*4, x_1084); +if (lean_is_scalar(x_1101)) { + x_1108 = lean_alloc_ctor(1, 4, 1); +} else { + x_1108 = x_1101; +} +lean_ctor_set(x_1108, 0, x_1107); +lean_ctor_set(x_1108, 1, x_1099); +lean_ctor_set(x_1108, 2, x_1100); +lean_ctor_set(x_1108, 3, x_1078); +lean_ctor_set_uint8(x_1108, sizeof(void*)*4, x_1034); +x_1109 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1109, 0, x_1025); +lean_ctor_set(x_1109, 1, x_1018); +lean_ctor_set(x_1109, 2, x_1019); +lean_ctor_set(x_1109, 3, x_1108); +lean_ctor_set_uint8(x_1109, sizeof(void*)*4, x_1028); +x_1110 = 0; +x_1111 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1111, 0, x_1029); +lean_ctor_set(x_1111, 1, x_1023); +lean_ctor_set(x_1111, 2, x_1024); +lean_ctor_set(x_1111, 3, x_1109); +lean_ctor_set_uint8(x_1111, sizeof(void*)*4, x_1110); +return x_1111; +} +} +} +} +} +else +{ +lean_object* x_1112; uint8_t x_1113; lean_object* x_1114; +x_1112 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1112, 0, x_1025); +lean_ctor_set(x_1112, 1, x_1018); +lean_ctor_set(x_1112, 2, x_1019); +lean_ctor_set(x_1112, 3, x_1030); +lean_ctor_set_uint8(x_1112, sizeof(void*)*4, x_1028); +x_1113 = 0; +x_1114 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1114, 0, x_1029); +lean_ctor_set(x_1114, 1, x_1023); +lean_ctor_set(x_1114, 2, x_1024); +lean_ctor_set(x_1114, 3, x_1112); +lean_ctor_set_uint8(x_1114, sizeof(void*)*4, x_1113); +return x_1114; +} +} +} +} +} +} +else +{ +uint8_t x_1115; +x_1115 = !lean_is_exclusive(x_1); +if (x_1115 == 0) +{ +uint8_t x_1116; +x_1116 = !lean_is_exclusive(x_4); +if (x_1116 == 0) +{ +lean_object* x_1117; lean_object* x_1118; lean_object* x_1119; lean_object* x_1120; lean_object* x_1121; lean_object* x_1122; lean_object* x_1123; lean_object* x_1124; uint8_t x_1125; +x_1117 = lean_ctor_get(x_1, 0); +x_1118 = lean_ctor_get(x_1, 1); +x_1119 = lean_ctor_get(x_1, 2); +x_1120 = lean_ctor_get(x_1, 3); +x_1121 = lean_ctor_get(x_4, 0); +x_1122 = lean_ctor_get(x_4, 1); +x_1123 = lean_ctor_get(x_4, 2); +x_1124 = lean_ctor_get(x_4, 3); +lean_ctor_set(x_4, 3, x_1120); +lean_ctor_set(x_4, 2, x_1119); +lean_ctor_set(x_4, 1, x_1118); +lean_ctor_set(x_4, 0, x_1117); +x_1125 = 0; +lean_inc(x_1124); +lean_inc(x_1123); +lean_inc(x_1122); +lean_inc(x_1121); +lean_ctor_set(x_1, 3, x_1124); +lean_ctor_set(x_1, 2, x_1123); +lean_ctor_set(x_1, 1, x_1122); +lean_ctor_set(x_1, 0, x_1121); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_1125); +if (lean_obj_tag(x_1121) == 0) +{ +if (lean_obj_tag(x_1124) == 0) +{ +lean_object* x_1126; uint8_t x_1127; lean_object* x_1128; +lean_dec(x_1); +x_1126 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1126, 0, x_1124); +lean_ctor_set(x_1126, 1, x_1122); +lean_ctor_set(x_1126, 2, x_1123); +lean_ctor_set(x_1126, 3, x_1124); +lean_ctor_set_uint8(x_1126, sizeof(void*)*4, x_1125); +x_1127 = 1; +x_1128 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1128, 0, x_4); +lean_ctor_set(x_1128, 1, x_2); +lean_ctor_set(x_1128, 2, x_3); +lean_ctor_set(x_1128, 3, x_1126); +lean_ctor_set_uint8(x_1128, sizeof(void*)*4, x_1127); +return x_1128; +} +else +{ +uint8_t x_1129; +x_1129 = lean_ctor_get_uint8(x_1124, sizeof(void*)*4); +if (x_1129 == 0) +{ +uint8_t x_1130; +lean_dec(x_1); +x_1130 = !lean_is_exclusive(x_1124); +if (x_1130 == 0) +{ +lean_object* x_1131; lean_object* x_1132; lean_object* x_1133; lean_object* x_1134; uint8_t x_1135; lean_object* x_1136; lean_object* x_1137; +x_1131 = lean_ctor_get(x_1124, 0); +x_1132 = lean_ctor_get(x_1124, 1); +x_1133 = lean_ctor_get(x_1124, 2); +x_1134 = lean_ctor_get(x_1124, 3); +x_1135 = 1; +lean_ctor_set(x_1124, 3, x_1121); +lean_ctor_set(x_1124, 2, x_3); +lean_ctor_set(x_1124, 1, x_2); +lean_ctor_set(x_1124, 0, x_4); +lean_ctor_set_uint8(x_1124, sizeof(void*)*4, x_1135); +x_1136 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1136, 0, x_1131); +lean_ctor_set(x_1136, 1, x_1132); +lean_ctor_set(x_1136, 2, x_1133); +lean_ctor_set(x_1136, 3, x_1134); +lean_ctor_set_uint8(x_1136, sizeof(void*)*4, x_1135); +x_1137 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1137, 0, x_1124); +lean_ctor_set(x_1137, 1, x_1122); +lean_ctor_set(x_1137, 2, x_1123); +lean_ctor_set(x_1137, 3, x_1136); +lean_ctor_set_uint8(x_1137, sizeof(void*)*4, x_1125); +return x_1137; +} +else +{ +lean_object* x_1138; lean_object* x_1139; lean_object* x_1140; lean_object* x_1141; uint8_t x_1142; lean_object* x_1143; lean_object* x_1144; lean_object* x_1145; +x_1138 = lean_ctor_get(x_1124, 0); +x_1139 = lean_ctor_get(x_1124, 1); +x_1140 = lean_ctor_get(x_1124, 2); +x_1141 = lean_ctor_get(x_1124, 3); +lean_inc(x_1141); +lean_inc(x_1140); +lean_inc(x_1139); +lean_inc(x_1138); +lean_dec(x_1124); +x_1142 = 1; +x_1143 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1143, 0, x_4); +lean_ctor_set(x_1143, 1, x_2); +lean_ctor_set(x_1143, 2, x_3); +lean_ctor_set(x_1143, 3, x_1121); +lean_ctor_set_uint8(x_1143, sizeof(void*)*4, x_1142); +x_1144 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1144, 0, x_1138); +lean_ctor_set(x_1144, 1, x_1139); +lean_ctor_set(x_1144, 2, x_1140); +lean_ctor_set(x_1144, 3, x_1141); +lean_ctor_set_uint8(x_1144, sizeof(void*)*4, x_1142); +x_1145 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1145, 0, x_1143); +lean_ctor_set(x_1145, 1, x_1122); +lean_ctor_set(x_1145, 2, x_1123); +lean_ctor_set(x_1145, 3, x_1144); +lean_ctor_set_uint8(x_1145, sizeof(void*)*4, x_1125); +return x_1145; +} +} +else +{ +uint8_t x_1146; +lean_dec(x_1123); +lean_dec(x_1122); +x_1146 = !lean_is_exclusive(x_1124); +if (x_1146 == 0) +{ +lean_object* x_1147; lean_object* x_1148; lean_object* x_1149; lean_object* x_1150; uint8_t x_1151; +x_1147 = lean_ctor_get(x_1124, 3); +lean_dec(x_1147); +x_1148 = lean_ctor_get(x_1124, 2); +lean_dec(x_1148); +x_1149 = lean_ctor_get(x_1124, 1); +lean_dec(x_1149); +x_1150 = lean_ctor_get(x_1124, 0); +lean_dec(x_1150); +x_1151 = 1; +lean_ctor_set(x_1124, 3, x_1); +lean_ctor_set(x_1124, 2, x_3); +lean_ctor_set(x_1124, 1, x_2); +lean_ctor_set(x_1124, 0, x_4); +lean_ctor_set_uint8(x_1124, sizeof(void*)*4, x_1151); +return x_1124; +} +else +{ +uint8_t x_1152; lean_object* x_1153; +lean_dec(x_1124); +x_1152 = 1; +x_1153 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1153, 0, x_4); +lean_ctor_set(x_1153, 1, x_2); +lean_ctor_set(x_1153, 2, x_3); +lean_ctor_set(x_1153, 3, x_1); +lean_ctor_set_uint8(x_1153, sizeof(void*)*4, x_1152); +return x_1153; +} +} +} +} +else +{ +uint8_t x_1154; +x_1154 = lean_ctor_get_uint8(x_1121, sizeof(void*)*4); +if (x_1154 == 0) +{ +uint8_t x_1155; +lean_dec(x_1); +x_1155 = !lean_is_exclusive(x_1121); +if (x_1155 == 0) +{ +lean_object* x_1156; lean_object* x_1157; lean_object* x_1158; lean_object* x_1159; uint8_t x_1160; lean_object* x_1161; lean_object* x_1162; +x_1156 = lean_ctor_get(x_1121, 0); +x_1157 = lean_ctor_get(x_1121, 1); +x_1158 = lean_ctor_get(x_1121, 2); +x_1159 = lean_ctor_get(x_1121, 3); +x_1160 = 1; +lean_ctor_set(x_1121, 3, x_1156); +lean_ctor_set(x_1121, 2, x_3); +lean_ctor_set(x_1121, 1, x_2); +lean_ctor_set(x_1121, 0, x_4); +lean_ctor_set_uint8(x_1121, sizeof(void*)*4, x_1160); +x_1161 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1161, 0, x_1159); +lean_ctor_set(x_1161, 1, x_1122); +lean_ctor_set(x_1161, 2, x_1123); +lean_ctor_set(x_1161, 3, x_1124); +lean_ctor_set_uint8(x_1161, sizeof(void*)*4, x_1160); +x_1162 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1162, 0, x_1121); +lean_ctor_set(x_1162, 1, x_1157); +lean_ctor_set(x_1162, 2, x_1158); +lean_ctor_set(x_1162, 3, x_1161); +lean_ctor_set_uint8(x_1162, sizeof(void*)*4, x_1125); +return x_1162; +} +else +{ +lean_object* x_1163; lean_object* x_1164; lean_object* x_1165; lean_object* x_1166; uint8_t x_1167; lean_object* x_1168; lean_object* x_1169; lean_object* x_1170; +x_1163 = lean_ctor_get(x_1121, 0); +x_1164 = lean_ctor_get(x_1121, 1); +x_1165 = lean_ctor_get(x_1121, 2); +x_1166 = lean_ctor_get(x_1121, 3); +lean_inc(x_1166); +lean_inc(x_1165); +lean_inc(x_1164); +lean_inc(x_1163); +lean_dec(x_1121); +x_1167 = 1; +x_1168 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1168, 0, x_4); +lean_ctor_set(x_1168, 1, x_2); +lean_ctor_set(x_1168, 2, x_3); +lean_ctor_set(x_1168, 3, x_1163); +lean_ctor_set_uint8(x_1168, sizeof(void*)*4, x_1167); +x_1169 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1169, 0, x_1166); +lean_ctor_set(x_1169, 1, x_1122); +lean_ctor_set(x_1169, 2, x_1123); +lean_ctor_set(x_1169, 3, x_1124); +lean_ctor_set_uint8(x_1169, sizeof(void*)*4, x_1167); +x_1170 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1170, 0, x_1168); +lean_ctor_set(x_1170, 1, x_1164); +lean_ctor_set(x_1170, 2, x_1165); +lean_ctor_set(x_1170, 3, x_1169); +lean_ctor_set_uint8(x_1170, sizeof(void*)*4, x_1125); +return x_1170; +} +} +else +{ +if (lean_obj_tag(x_1124) == 0) +{ +uint8_t x_1171; +lean_dec(x_1123); +lean_dec(x_1122); +x_1171 = !lean_is_exclusive(x_1121); +if (x_1171 == 0) +{ +lean_object* x_1172; lean_object* x_1173; lean_object* x_1174; lean_object* x_1175; uint8_t x_1176; +x_1172 = lean_ctor_get(x_1121, 3); +lean_dec(x_1172); +x_1173 = lean_ctor_get(x_1121, 2); +lean_dec(x_1173); +x_1174 = lean_ctor_get(x_1121, 1); +lean_dec(x_1174); +x_1175 = lean_ctor_get(x_1121, 0); +lean_dec(x_1175); +x_1176 = 1; +lean_ctor_set(x_1121, 3, x_1); +lean_ctor_set(x_1121, 2, x_3); +lean_ctor_set(x_1121, 1, x_2); +lean_ctor_set(x_1121, 0, x_4); +lean_ctor_set_uint8(x_1121, sizeof(void*)*4, x_1176); +return x_1121; +} +else +{ +uint8_t x_1177; lean_object* x_1178; +lean_dec(x_1121); +x_1177 = 1; +x_1178 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1178, 0, x_4); +lean_ctor_set(x_1178, 1, x_2); +lean_ctor_set(x_1178, 2, x_3); +lean_ctor_set(x_1178, 3, x_1); +lean_ctor_set_uint8(x_1178, sizeof(void*)*4, x_1177); +return x_1178; +} +} +else +{ +uint8_t x_1179; +lean_dec(x_1); +x_1179 = lean_ctor_get_uint8(x_1124, sizeof(void*)*4); +if (x_1179 == 0) +{ +uint8_t x_1180; +x_1180 = !lean_is_exclusive(x_1124); +if (x_1180 == 0) +{ +lean_object* x_1181; lean_object* x_1182; lean_object* x_1183; lean_object* x_1184; uint8_t x_1185; uint8_t x_1186; +x_1181 = lean_ctor_get(x_1124, 0); +x_1182 = lean_ctor_get(x_1124, 1); +x_1183 = lean_ctor_get(x_1124, 2); +x_1184 = lean_ctor_get(x_1124, 3); +x_1185 = 1; +lean_inc(x_1121); +lean_ctor_set(x_1124, 3, x_1121); +lean_ctor_set(x_1124, 2, x_3); +lean_ctor_set(x_1124, 1, x_2); +lean_ctor_set(x_1124, 0, x_4); +x_1186 = !lean_is_exclusive(x_1121); +if (x_1186 == 0) +{ +lean_object* x_1187; lean_object* x_1188; lean_object* x_1189; lean_object* x_1190; lean_object* x_1191; +x_1187 = lean_ctor_get(x_1121, 3); +lean_dec(x_1187); +x_1188 = lean_ctor_get(x_1121, 2); +lean_dec(x_1188); +x_1189 = lean_ctor_get(x_1121, 1); +lean_dec(x_1189); +x_1190 = lean_ctor_get(x_1121, 0); +lean_dec(x_1190); +lean_ctor_set_uint8(x_1124, sizeof(void*)*4, x_1185); +lean_ctor_set(x_1121, 3, x_1184); +lean_ctor_set(x_1121, 2, x_1183); +lean_ctor_set(x_1121, 1, x_1182); +lean_ctor_set(x_1121, 0, x_1181); +lean_ctor_set_uint8(x_1121, sizeof(void*)*4, x_1185); +x_1191 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1191, 0, x_1124); +lean_ctor_set(x_1191, 1, x_1122); +lean_ctor_set(x_1191, 2, x_1123); +lean_ctor_set(x_1191, 3, x_1121); +lean_ctor_set_uint8(x_1191, sizeof(void*)*4, x_1125); +return x_1191; +} +else +{ +lean_object* x_1192; lean_object* x_1193; +lean_dec(x_1121); +lean_ctor_set_uint8(x_1124, sizeof(void*)*4, x_1185); +x_1192 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1192, 0, x_1181); +lean_ctor_set(x_1192, 1, x_1182); +lean_ctor_set(x_1192, 2, x_1183); +lean_ctor_set(x_1192, 3, x_1184); +lean_ctor_set_uint8(x_1192, sizeof(void*)*4, x_1185); +x_1193 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1193, 0, x_1124); +lean_ctor_set(x_1193, 1, x_1122); +lean_ctor_set(x_1193, 2, x_1123); +lean_ctor_set(x_1193, 3, x_1192); +lean_ctor_set_uint8(x_1193, sizeof(void*)*4, x_1125); +return x_1193; +} +} +else +{ +lean_object* x_1194; lean_object* x_1195; lean_object* x_1196; lean_object* x_1197; uint8_t x_1198; lean_object* x_1199; lean_object* x_1200; lean_object* x_1201; lean_object* x_1202; +x_1194 = lean_ctor_get(x_1124, 0); +x_1195 = lean_ctor_get(x_1124, 1); +x_1196 = lean_ctor_get(x_1124, 2); +x_1197 = lean_ctor_get(x_1124, 3); +lean_inc(x_1197); +lean_inc(x_1196); +lean_inc(x_1195); +lean_inc(x_1194); +lean_dec(x_1124); +x_1198 = 1; +lean_inc(x_1121); +x_1199 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1199, 0, x_4); +lean_ctor_set(x_1199, 1, x_2); +lean_ctor_set(x_1199, 2, x_3); +lean_ctor_set(x_1199, 3, x_1121); +if (lean_is_exclusive(x_1121)) { + lean_ctor_release(x_1121, 0); + lean_ctor_release(x_1121, 1); + lean_ctor_release(x_1121, 2); + lean_ctor_release(x_1121, 3); + x_1200 = x_1121; +} else { + lean_dec_ref(x_1121); + x_1200 = lean_box(0); +} +lean_ctor_set_uint8(x_1199, sizeof(void*)*4, x_1198); +if (lean_is_scalar(x_1200)) { + x_1201 = lean_alloc_ctor(1, 4, 1); +} else { + x_1201 = x_1200; +} +lean_ctor_set(x_1201, 0, x_1194); +lean_ctor_set(x_1201, 1, x_1195); +lean_ctor_set(x_1201, 2, x_1196); +lean_ctor_set(x_1201, 3, x_1197); +lean_ctor_set_uint8(x_1201, sizeof(void*)*4, x_1198); +x_1202 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1202, 0, x_1199); +lean_ctor_set(x_1202, 1, x_1122); +lean_ctor_set(x_1202, 2, x_1123); +lean_ctor_set(x_1202, 3, x_1201); +lean_ctor_set_uint8(x_1202, sizeof(void*)*4, x_1125); +return x_1202; +} +} +else +{ +uint8_t x_1203; +x_1203 = !lean_is_exclusive(x_1121); +if (x_1203 == 0) +{ +lean_object* x_1204; uint8_t x_1205; lean_object* x_1206; +lean_ctor_set_uint8(x_1121, sizeof(void*)*4, x_1179); +x_1204 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1204, 0, x_1121); +lean_ctor_set(x_1204, 1, x_1122); +lean_ctor_set(x_1204, 2, x_1123); +lean_ctor_set(x_1204, 3, x_1124); +lean_ctor_set_uint8(x_1204, sizeof(void*)*4, x_1125); +x_1205 = 1; +x_1206 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1206, 0, x_4); +lean_ctor_set(x_1206, 1, x_2); +lean_ctor_set(x_1206, 2, x_3); +lean_ctor_set(x_1206, 3, x_1204); +lean_ctor_set_uint8(x_1206, sizeof(void*)*4, x_1205); +return x_1206; +} +else +{ +lean_object* x_1207; lean_object* x_1208; lean_object* x_1209; lean_object* x_1210; lean_object* x_1211; lean_object* x_1212; uint8_t x_1213; lean_object* x_1214; +x_1207 = lean_ctor_get(x_1121, 0); +x_1208 = lean_ctor_get(x_1121, 1); +x_1209 = lean_ctor_get(x_1121, 2); +x_1210 = lean_ctor_get(x_1121, 3); +lean_inc(x_1210); +lean_inc(x_1209); +lean_inc(x_1208); +lean_inc(x_1207); +lean_dec(x_1121); +x_1211 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1211, 0, x_1207); +lean_ctor_set(x_1211, 1, x_1208); +lean_ctor_set(x_1211, 2, x_1209); +lean_ctor_set(x_1211, 3, x_1210); +lean_ctor_set_uint8(x_1211, sizeof(void*)*4, x_1179); +x_1212 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1212, 0, x_1211); +lean_ctor_set(x_1212, 1, x_1122); +lean_ctor_set(x_1212, 2, x_1123); +lean_ctor_set(x_1212, 3, x_1124); +lean_ctor_set_uint8(x_1212, sizeof(void*)*4, x_1125); +x_1213 = 1; +x_1214 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1214, 0, x_4); +lean_ctor_set(x_1214, 1, x_2); +lean_ctor_set(x_1214, 2, x_3); +lean_ctor_set(x_1214, 3, x_1212); +lean_ctor_set_uint8(x_1214, sizeof(void*)*4, x_1213); +return x_1214; +} +} +} +} +} +} +else +{ +lean_object* x_1215; lean_object* x_1216; lean_object* x_1217; lean_object* x_1218; lean_object* x_1219; lean_object* x_1220; lean_object* x_1221; lean_object* x_1222; lean_object* x_1223; uint8_t x_1224; +x_1215 = lean_ctor_get(x_1, 0); +x_1216 = lean_ctor_get(x_1, 1); +x_1217 = lean_ctor_get(x_1, 2); +x_1218 = lean_ctor_get(x_1, 3); +x_1219 = lean_ctor_get(x_4, 0); +x_1220 = lean_ctor_get(x_4, 1); +x_1221 = lean_ctor_get(x_4, 2); +x_1222 = lean_ctor_get(x_4, 3); +lean_inc(x_1222); +lean_inc(x_1221); +lean_inc(x_1220); +lean_inc(x_1219); +lean_dec(x_4); +x_1223 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1223, 0, x_1215); +lean_ctor_set(x_1223, 1, x_1216); +lean_ctor_set(x_1223, 2, x_1217); +lean_ctor_set(x_1223, 3, x_1218); +lean_ctor_set_uint8(x_1223, sizeof(void*)*4, x_632); +x_1224 = 0; +lean_inc(x_1222); +lean_inc(x_1221); +lean_inc(x_1220); +lean_inc(x_1219); +lean_ctor_set(x_1, 3, x_1222); +lean_ctor_set(x_1, 2, x_1221); +lean_ctor_set(x_1, 1, x_1220); +lean_ctor_set(x_1, 0, x_1219); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_1224); +if (lean_obj_tag(x_1219) == 0) +{ +if (lean_obj_tag(x_1222) == 0) +{ +lean_object* x_1225; uint8_t x_1226; lean_object* x_1227; +lean_dec(x_1); +x_1225 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1225, 0, x_1222); +lean_ctor_set(x_1225, 1, x_1220); +lean_ctor_set(x_1225, 2, x_1221); +lean_ctor_set(x_1225, 3, x_1222); +lean_ctor_set_uint8(x_1225, sizeof(void*)*4, x_1224); +x_1226 = 1; +x_1227 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1227, 0, x_1223); +lean_ctor_set(x_1227, 1, x_2); +lean_ctor_set(x_1227, 2, x_3); +lean_ctor_set(x_1227, 3, x_1225); +lean_ctor_set_uint8(x_1227, sizeof(void*)*4, x_1226); +return x_1227; +} +else +{ +uint8_t x_1228; +x_1228 = lean_ctor_get_uint8(x_1222, sizeof(void*)*4); +if (x_1228 == 0) +{ +lean_object* x_1229; lean_object* x_1230; lean_object* x_1231; lean_object* x_1232; lean_object* x_1233; uint8_t x_1234; lean_object* x_1235; lean_object* x_1236; lean_object* x_1237; +lean_dec(x_1); +x_1229 = lean_ctor_get(x_1222, 0); +lean_inc(x_1229); +x_1230 = lean_ctor_get(x_1222, 1); +lean_inc(x_1230); +x_1231 = lean_ctor_get(x_1222, 2); +lean_inc(x_1231); +x_1232 = lean_ctor_get(x_1222, 3); +lean_inc(x_1232); +if (lean_is_exclusive(x_1222)) { + lean_ctor_release(x_1222, 0); + lean_ctor_release(x_1222, 1); + lean_ctor_release(x_1222, 2); + lean_ctor_release(x_1222, 3); + x_1233 = x_1222; +} else { + lean_dec_ref(x_1222); + x_1233 = lean_box(0); +} +x_1234 = 1; +if (lean_is_scalar(x_1233)) { + x_1235 = lean_alloc_ctor(1, 4, 1); +} else { + x_1235 = x_1233; +} +lean_ctor_set(x_1235, 0, x_1223); +lean_ctor_set(x_1235, 1, x_2); +lean_ctor_set(x_1235, 2, x_3); +lean_ctor_set(x_1235, 3, x_1219); +lean_ctor_set_uint8(x_1235, sizeof(void*)*4, x_1234); +x_1236 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1236, 0, x_1229); +lean_ctor_set(x_1236, 1, x_1230); +lean_ctor_set(x_1236, 2, x_1231); +lean_ctor_set(x_1236, 3, x_1232); +lean_ctor_set_uint8(x_1236, sizeof(void*)*4, x_1234); +x_1237 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1237, 0, x_1235); +lean_ctor_set(x_1237, 1, x_1220); +lean_ctor_set(x_1237, 2, x_1221); +lean_ctor_set(x_1237, 3, x_1236); +lean_ctor_set_uint8(x_1237, sizeof(void*)*4, x_1224); +return x_1237; +} +else +{ +lean_object* x_1238; uint8_t x_1239; lean_object* x_1240; +lean_dec(x_1221); +lean_dec(x_1220); +if (lean_is_exclusive(x_1222)) { + lean_ctor_release(x_1222, 0); + lean_ctor_release(x_1222, 1); + lean_ctor_release(x_1222, 2); + lean_ctor_release(x_1222, 3); + x_1238 = x_1222; +} else { + lean_dec_ref(x_1222); + x_1238 = lean_box(0); +} +x_1239 = 1; +if (lean_is_scalar(x_1238)) { + x_1240 = lean_alloc_ctor(1, 4, 1); +} else { + x_1240 = x_1238; +} +lean_ctor_set(x_1240, 0, x_1223); +lean_ctor_set(x_1240, 1, x_2); +lean_ctor_set(x_1240, 2, x_3); +lean_ctor_set(x_1240, 3, x_1); +lean_ctor_set_uint8(x_1240, sizeof(void*)*4, x_1239); +return x_1240; +} +} +} +else +{ +uint8_t x_1241; +x_1241 = lean_ctor_get_uint8(x_1219, sizeof(void*)*4); +if (x_1241 == 0) +{ +lean_object* x_1242; lean_object* x_1243; lean_object* x_1244; lean_object* x_1245; lean_object* x_1246; uint8_t x_1247; lean_object* x_1248; lean_object* x_1249; lean_object* x_1250; +lean_dec(x_1); +x_1242 = lean_ctor_get(x_1219, 0); +lean_inc(x_1242); +x_1243 = lean_ctor_get(x_1219, 1); +lean_inc(x_1243); +x_1244 = lean_ctor_get(x_1219, 2); +lean_inc(x_1244); +x_1245 = lean_ctor_get(x_1219, 3); +lean_inc(x_1245); +if (lean_is_exclusive(x_1219)) { + lean_ctor_release(x_1219, 0); + lean_ctor_release(x_1219, 1); + lean_ctor_release(x_1219, 2); + lean_ctor_release(x_1219, 3); + x_1246 = x_1219; +} else { + lean_dec_ref(x_1219); + x_1246 = lean_box(0); +} +x_1247 = 1; +if (lean_is_scalar(x_1246)) { + x_1248 = lean_alloc_ctor(1, 4, 1); +} else { + x_1248 = x_1246; +} +lean_ctor_set(x_1248, 0, x_1223); +lean_ctor_set(x_1248, 1, x_2); +lean_ctor_set(x_1248, 2, x_3); +lean_ctor_set(x_1248, 3, x_1242); +lean_ctor_set_uint8(x_1248, sizeof(void*)*4, x_1247); +x_1249 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1249, 0, x_1245); +lean_ctor_set(x_1249, 1, x_1220); +lean_ctor_set(x_1249, 2, x_1221); +lean_ctor_set(x_1249, 3, x_1222); +lean_ctor_set_uint8(x_1249, sizeof(void*)*4, x_1247); +x_1250 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1250, 0, x_1248); +lean_ctor_set(x_1250, 1, x_1243); +lean_ctor_set(x_1250, 2, x_1244); +lean_ctor_set(x_1250, 3, x_1249); +lean_ctor_set_uint8(x_1250, sizeof(void*)*4, x_1224); +return x_1250; +} +else +{ +if (lean_obj_tag(x_1222) == 0) +{ +lean_object* x_1251; uint8_t x_1252; lean_object* x_1253; +lean_dec(x_1221); +lean_dec(x_1220); +if (lean_is_exclusive(x_1219)) { + lean_ctor_release(x_1219, 0); + lean_ctor_release(x_1219, 1); + lean_ctor_release(x_1219, 2); + lean_ctor_release(x_1219, 3); + x_1251 = x_1219; +} else { + lean_dec_ref(x_1219); + x_1251 = lean_box(0); +} +x_1252 = 1; +if (lean_is_scalar(x_1251)) { + x_1253 = lean_alloc_ctor(1, 4, 1); +} else { + x_1253 = x_1251; +} +lean_ctor_set(x_1253, 0, x_1223); +lean_ctor_set(x_1253, 1, x_2); +lean_ctor_set(x_1253, 2, x_3); +lean_ctor_set(x_1253, 3, x_1); +lean_ctor_set_uint8(x_1253, sizeof(void*)*4, x_1252); +return x_1253; +} +else +{ +uint8_t x_1254; +lean_dec(x_1); +x_1254 = lean_ctor_get_uint8(x_1222, sizeof(void*)*4); +if (x_1254 == 0) +{ +lean_object* x_1255; lean_object* x_1256; lean_object* x_1257; lean_object* x_1258; lean_object* x_1259; uint8_t x_1260; lean_object* x_1261; lean_object* x_1262; lean_object* x_1263; lean_object* x_1264; +x_1255 = lean_ctor_get(x_1222, 0); +lean_inc(x_1255); +x_1256 = lean_ctor_get(x_1222, 1); +lean_inc(x_1256); +x_1257 = lean_ctor_get(x_1222, 2); +lean_inc(x_1257); +x_1258 = lean_ctor_get(x_1222, 3); +lean_inc(x_1258); +if (lean_is_exclusive(x_1222)) { + lean_ctor_release(x_1222, 0); + lean_ctor_release(x_1222, 1); + lean_ctor_release(x_1222, 2); + lean_ctor_release(x_1222, 3); + x_1259 = x_1222; +} else { + lean_dec_ref(x_1222); + x_1259 = lean_box(0); +} +x_1260 = 1; +lean_inc(x_1219); +if (lean_is_scalar(x_1259)) { + x_1261 = lean_alloc_ctor(1, 4, 1); +} else { + x_1261 = x_1259; +} +lean_ctor_set(x_1261, 0, x_1223); +lean_ctor_set(x_1261, 1, x_2); +lean_ctor_set(x_1261, 2, x_3); +lean_ctor_set(x_1261, 3, x_1219); +if (lean_is_exclusive(x_1219)) { + lean_ctor_release(x_1219, 0); + lean_ctor_release(x_1219, 1); + lean_ctor_release(x_1219, 2); + lean_ctor_release(x_1219, 3); + x_1262 = x_1219; +} else { + lean_dec_ref(x_1219); + x_1262 = lean_box(0); +} +lean_ctor_set_uint8(x_1261, sizeof(void*)*4, x_1260); +if (lean_is_scalar(x_1262)) { + x_1263 = lean_alloc_ctor(1, 4, 1); +} else { + x_1263 = x_1262; +} +lean_ctor_set(x_1263, 0, x_1255); +lean_ctor_set(x_1263, 1, x_1256); +lean_ctor_set(x_1263, 2, x_1257); +lean_ctor_set(x_1263, 3, x_1258); +lean_ctor_set_uint8(x_1263, sizeof(void*)*4, x_1260); +x_1264 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1264, 0, x_1261); +lean_ctor_set(x_1264, 1, x_1220); +lean_ctor_set(x_1264, 2, x_1221); +lean_ctor_set(x_1264, 3, x_1263); +lean_ctor_set_uint8(x_1264, sizeof(void*)*4, x_1224); +return x_1264; +} +else +{ +lean_object* x_1265; lean_object* x_1266; lean_object* x_1267; lean_object* x_1268; lean_object* x_1269; lean_object* x_1270; lean_object* x_1271; uint8_t x_1272; lean_object* x_1273; +x_1265 = lean_ctor_get(x_1219, 0); +lean_inc(x_1265); +x_1266 = lean_ctor_get(x_1219, 1); +lean_inc(x_1266); +x_1267 = lean_ctor_get(x_1219, 2); +lean_inc(x_1267); +x_1268 = lean_ctor_get(x_1219, 3); +lean_inc(x_1268); +if (lean_is_exclusive(x_1219)) { + lean_ctor_release(x_1219, 0); + lean_ctor_release(x_1219, 1); + lean_ctor_release(x_1219, 2); + lean_ctor_release(x_1219, 3); + x_1269 = x_1219; +} else { + lean_dec_ref(x_1219); + x_1269 = lean_box(0); +} +if (lean_is_scalar(x_1269)) { + x_1270 = lean_alloc_ctor(1, 4, 1); +} else { + x_1270 = x_1269; +} +lean_ctor_set(x_1270, 0, x_1265); +lean_ctor_set(x_1270, 1, x_1266); +lean_ctor_set(x_1270, 2, x_1267); +lean_ctor_set(x_1270, 3, x_1268); +lean_ctor_set_uint8(x_1270, sizeof(void*)*4, x_1254); +x_1271 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1271, 0, x_1270); +lean_ctor_set(x_1271, 1, x_1220); +lean_ctor_set(x_1271, 2, x_1221); +lean_ctor_set(x_1271, 3, x_1222); +lean_ctor_set_uint8(x_1271, sizeof(void*)*4, x_1224); +x_1272 = 1; +x_1273 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1273, 0, x_1223); +lean_ctor_set(x_1273, 1, x_2); +lean_ctor_set(x_1273, 2, x_3); +lean_ctor_set(x_1273, 3, x_1271); +lean_ctor_set_uint8(x_1273, sizeof(void*)*4, x_1272); +return x_1273; +} +} +} +} +} +} +else +{ +lean_object* x_1274; lean_object* x_1275; lean_object* x_1276; lean_object* x_1277; lean_object* x_1278; lean_object* x_1279; lean_object* x_1280; lean_object* x_1281; lean_object* x_1282; lean_object* x_1283; uint8_t x_1284; lean_object* x_1285; +x_1274 = lean_ctor_get(x_1, 0); +x_1275 = lean_ctor_get(x_1, 1); +x_1276 = lean_ctor_get(x_1, 2); +x_1277 = lean_ctor_get(x_1, 3); +lean_inc(x_1277); +lean_inc(x_1276); +lean_inc(x_1275); +lean_inc(x_1274); +lean_dec(x_1); +x_1278 = lean_ctor_get(x_4, 0); +lean_inc(x_1278); +x_1279 = lean_ctor_get(x_4, 1); +lean_inc(x_1279); +x_1280 = lean_ctor_get(x_4, 2); +lean_inc(x_1280); +x_1281 = lean_ctor_get(x_4, 3); +lean_inc(x_1281); +if (lean_is_exclusive(x_4)) { + lean_ctor_release(x_4, 0); + lean_ctor_release(x_4, 1); + lean_ctor_release(x_4, 2); + lean_ctor_release(x_4, 3); + x_1282 = x_4; +} else { + lean_dec_ref(x_4); + x_1282 = lean_box(0); +} +if (lean_is_scalar(x_1282)) { + x_1283 = lean_alloc_ctor(1, 4, 1); +} else { + x_1283 = x_1282; +} +lean_ctor_set(x_1283, 0, x_1274); +lean_ctor_set(x_1283, 1, x_1275); +lean_ctor_set(x_1283, 2, x_1276); +lean_ctor_set(x_1283, 3, x_1277); +lean_ctor_set_uint8(x_1283, sizeof(void*)*4, x_632); +x_1284 = 0; +lean_inc(x_1281); +lean_inc(x_1280); +lean_inc(x_1279); +lean_inc(x_1278); +x_1285 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1285, 0, x_1278); +lean_ctor_set(x_1285, 1, x_1279); +lean_ctor_set(x_1285, 2, x_1280); +lean_ctor_set(x_1285, 3, x_1281); +lean_ctor_set_uint8(x_1285, sizeof(void*)*4, x_1284); +if (lean_obj_tag(x_1278) == 0) +{ +if (lean_obj_tag(x_1281) == 0) +{ +lean_object* x_1286; uint8_t x_1287; lean_object* x_1288; +lean_dec(x_1285); +x_1286 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1286, 0, x_1281); +lean_ctor_set(x_1286, 1, x_1279); +lean_ctor_set(x_1286, 2, x_1280); +lean_ctor_set(x_1286, 3, x_1281); +lean_ctor_set_uint8(x_1286, sizeof(void*)*4, x_1284); +x_1287 = 1; +x_1288 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1288, 0, x_1283); +lean_ctor_set(x_1288, 1, x_2); +lean_ctor_set(x_1288, 2, x_3); +lean_ctor_set(x_1288, 3, x_1286); +lean_ctor_set_uint8(x_1288, sizeof(void*)*4, x_1287); +return x_1288; +} +else +{ +uint8_t x_1289; +x_1289 = lean_ctor_get_uint8(x_1281, sizeof(void*)*4); +if (x_1289 == 0) +{ +lean_object* x_1290; lean_object* x_1291; lean_object* x_1292; lean_object* x_1293; lean_object* x_1294; uint8_t x_1295; lean_object* x_1296; lean_object* x_1297; lean_object* x_1298; +lean_dec(x_1285); +x_1290 = lean_ctor_get(x_1281, 0); +lean_inc(x_1290); +x_1291 = lean_ctor_get(x_1281, 1); +lean_inc(x_1291); +x_1292 = lean_ctor_get(x_1281, 2); +lean_inc(x_1292); +x_1293 = lean_ctor_get(x_1281, 3); +lean_inc(x_1293); +if (lean_is_exclusive(x_1281)) { + lean_ctor_release(x_1281, 0); + lean_ctor_release(x_1281, 1); + lean_ctor_release(x_1281, 2); + lean_ctor_release(x_1281, 3); + x_1294 = x_1281; +} else { + lean_dec_ref(x_1281); + x_1294 = lean_box(0); +} +x_1295 = 1; +if (lean_is_scalar(x_1294)) { + x_1296 = lean_alloc_ctor(1, 4, 1); +} else { + x_1296 = x_1294; +} +lean_ctor_set(x_1296, 0, x_1283); +lean_ctor_set(x_1296, 1, x_2); +lean_ctor_set(x_1296, 2, x_3); +lean_ctor_set(x_1296, 3, x_1278); +lean_ctor_set_uint8(x_1296, sizeof(void*)*4, x_1295); +x_1297 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1297, 0, x_1290); +lean_ctor_set(x_1297, 1, x_1291); +lean_ctor_set(x_1297, 2, x_1292); +lean_ctor_set(x_1297, 3, x_1293); +lean_ctor_set_uint8(x_1297, sizeof(void*)*4, x_1295); +x_1298 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1298, 0, x_1296); +lean_ctor_set(x_1298, 1, x_1279); +lean_ctor_set(x_1298, 2, x_1280); +lean_ctor_set(x_1298, 3, x_1297); +lean_ctor_set_uint8(x_1298, sizeof(void*)*4, x_1284); +return x_1298; +} +else +{ +lean_object* x_1299; uint8_t x_1300; lean_object* x_1301; +lean_dec(x_1280); +lean_dec(x_1279); +if (lean_is_exclusive(x_1281)) { + lean_ctor_release(x_1281, 0); + lean_ctor_release(x_1281, 1); + lean_ctor_release(x_1281, 2); + lean_ctor_release(x_1281, 3); + x_1299 = x_1281; +} else { + lean_dec_ref(x_1281); + x_1299 = lean_box(0); +} +x_1300 = 1; +if (lean_is_scalar(x_1299)) { + x_1301 = lean_alloc_ctor(1, 4, 1); +} else { + x_1301 = x_1299; +} +lean_ctor_set(x_1301, 0, x_1283); +lean_ctor_set(x_1301, 1, x_2); +lean_ctor_set(x_1301, 2, x_3); +lean_ctor_set(x_1301, 3, x_1285); +lean_ctor_set_uint8(x_1301, sizeof(void*)*4, x_1300); +return x_1301; +} +} +} +else +{ +uint8_t x_1302; +x_1302 = lean_ctor_get_uint8(x_1278, sizeof(void*)*4); +if (x_1302 == 0) +{ +lean_object* x_1303; lean_object* x_1304; lean_object* x_1305; lean_object* x_1306; lean_object* x_1307; uint8_t x_1308; lean_object* x_1309; lean_object* x_1310; lean_object* x_1311; +lean_dec(x_1285); +x_1303 = lean_ctor_get(x_1278, 0); +lean_inc(x_1303); +x_1304 = lean_ctor_get(x_1278, 1); +lean_inc(x_1304); +x_1305 = lean_ctor_get(x_1278, 2); +lean_inc(x_1305); +x_1306 = lean_ctor_get(x_1278, 3); +lean_inc(x_1306); +if (lean_is_exclusive(x_1278)) { + lean_ctor_release(x_1278, 0); + lean_ctor_release(x_1278, 1); + lean_ctor_release(x_1278, 2); + lean_ctor_release(x_1278, 3); + x_1307 = x_1278; +} else { + lean_dec_ref(x_1278); + x_1307 = lean_box(0); +} +x_1308 = 1; +if (lean_is_scalar(x_1307)) { + x_1309 = lean_alloc_ctor(1, 4, 1); +} else { + x_1309 = x_1307; +} +lean_ctor_set(x_1309, 0, x_1283); +lean_ctor_set(x_1309, 1, x_2); +lean_ctor_set(x_1309, 2, x_3); +lean_ctor_set(x_1309, 3, x_1303); +lean_ctor_set_uint8(x_1309, sizeof(void*)*4, x_1308); +x_1310 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1310, 0, x_1306); +lean_ctor_set(x_1310, 1, x_1279); +lean_ctor_set(x_1310, 2, x_1280); +lean_ctor_set(x_1310, 3, x_1281); +lean_ctor_set_uint8(x_1310, sizeof(void*)*4, x_1308); +x_1311 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1311, 0, x_1309); +lean_ctor_set(x_1311, 1, x_1304); +lean_ctor_set(x_1311, 2, x_1305); +lean_ctor_set(x_1311, 3, x_1310); +lean_ctor_set_uint8(x_1311, sizeof(void*)*4, x_1284); +return x_1311; +} +else +{ +if (lean_obj_tag(x_1281) == 0) +{ +lean_object* x_1312; uint8_t x_1313; lean_object* x_1314; +lean_dec(x_1280); +lean_dec(x_1279); +if (lean_is_exclusive(x_1278)) { + lean_ctor_release(x_1278, 0); + lean_ctor_release(x_1278, 1); + lean_ctor_release(x_1278, 2); + lean_ctor_release(x_1278, 3); + x_1312 = x_1278; +} else { + lean_dec_ref(x_1278); + x_1312 = lean_box(0); +} +x_1313 = 1; +if (lean_is_scalar(x_1312)) { + x_1314 = lean_alloc_ctor(1, 4, 1); +} else { + x_1314 = x_1312; +} +lean_ctor_set(x_1314, 0, x_1283); +lean_ctor_set(x_1314, 1, x_2); +lean_ctor_set(x_1314, 2, x_3); +lean_ctor_set(x_1314, 3, x_1285); +lean_ctor_set_uint8(x_1314, sizeof(void*)*4, x_1313); +return x_1314; +} +else +{ +uint8_t x_1315; +lean_dec(x_1285); +x_1315 = lean_ctor_get_uint8(x_1281, sizeof(void*)*4); +if (x_1315 == 0) +{ +lean_object* x_1316; lean_object* x_1317; lean_object* x_1318; lean_object* x_1319; lean_object* x_1320; uint8_t x_1321; lean_object* x_1322; lean_object* x_1323; lean_object* x_1324; lean_object* x_1325; +x_1316 = lean_ctor_get(x_1281, 0); +lean_inc(x_1316); +x_1317 = lean_ctor_get(x_1281, 1); +lean_inc(x_1317); +x_1318 = lean_ctor_get(x_1281, 2); +lean_inc(x_1318); +x_1319 = lean_ctor_get(x_1281, 3); +lean_inc(x_1319); +if (lean_is_exclusive(x_1281)) { + lean_ctor_release(x_1281, 0); + lean_ctor_release(x_1281, 1); + lean_ctor_release(x_1281, 2); + lean_ctor_release(x_1281, 3); + x_1320 = x_1281; +} else { + lean_dec_ref(x_1281); + x_1320 = lean_box(0); +} +x_1321 = 1; +lean_inc(x_1278); +if (lean_is_scalar(x_1320)) { + x_1322 = lean_alloc_ctor(1, 4, 1); +} else { + x_1322 = x_1320; +} +lean_ctor_set(x_1322, 0, x_1283); +lean_ctor_set(x_1322, 1, x_2); +lean_ctor_set(x_1322, 2, x_3); +lean_ctor_set(x_1322, 3, x_1278); +if (lean_is_exclusive(x_1278)) { + lean_ctor_release(x_1278, 0); + lean_ctor_release(x_1278, 1); + lean_ctor_release(x_1278, 2); + lean_ctor_release(x_1278, 3); + x_1323 = x_1278; +} else { + lean_dec_ref(x_1278); + x_1323 = lean_box(0); +} +lean_ctor_set_uint8(x_1322, sizeof(void*)*4, x_1321); +if (lean_is_scalar(x_1323)) { + x_1324 = lean_alloc_ctor(1, 4, 1); +} else { + x_1324 = x_1323; +} +lean_ctor_set(x_1324, 0, x_1316); +lean_ctor_set(x_1324, 1, x_1317); +lean_ctor_set(x_1324, 2, x_1318); +lean_ctor_set(x_1324, 3, x_1319); +lean_ctor_set_uint8(x_1324, sizeof(void*)*4, x_1321); +x_1325 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1325, 0, x_1322); +lean_ctor_set(x_1325, 1, x_1279); +lean_ctor_set(x_1325, 2, x_1280); +lean_ctor_set(x_1325, 3, x_1324); +lean_ctor_set_uint8(x_1325, sizeof(void*)*4, x_1284); +return x_1325; +} +else +{ +lean_object* x_1326; lean_object* x_1327; lean_object* x_1328; lean_object* x_1329; lean_object* x_1330; lean_object* x_1331; lean_object* x_1332; uint8_t x_1333; lean_object* x_1334; +x_1326 = lean_ctor_get(x_1278, 0); +lean_inc(x_1326); +x_1327 = lean_ctor_get(x_1278, 1); +lean_inc(x_1327); +x_1328 = lean_ctor_get(x_1278, 2); +lean_inc(x_1328); +x_1329 = lean_ctor_get(x_1278, 3); +lean_inc(x_1329); +if (lean_is_exclusive(x_1278)) { + lean_ctor_release(x_1278, 0); + lean_ctor_release(x_1278, 1); + lean_ctor_release(x_1278, 2); + lean_ctor_release(x_1278, 3); + x_1330 = x_1278; +} else { + lean_dec_ref(x_1278); + x_1330 = lean_box(0); +} +if (lean_is_scalar(x_1330)) { + x_1331 = lean_alloc_ctor(1, 4, 1); +} else { + x_1331 = x_1330; +} +lean_ctor_set(x_1331, 0, x_1326); +lean_ctor_set(x_1331, 1, x_1327); +lean_ctor_set(x_1331, 2, x_1328); +lean_ctor_set(x_1331, 3, x_1329); +lean_ctor_set_uint8(x_1331, sizeof(void*)*4, x_1315); +x_1332 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1332, 0, x_1331); +lean_ctor_set(x_1332, 1, x_1279); +lean_ctor_set(x_1332, 2, x_1280); +lean_ctor_set(x_1332, 3, x_1281); +lean_ctor_set_uint8(x_1332, sizeof(void*)*4, x_1284); +x_1333 = 1; +x_1334 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1334, 0, x_1283); +lean_ctor_set(x_1334, 1, x_2); +lean_ctor_set(x_1334, 2, x_3); +lean_ctor_set(x_1334, 3, x_1332); +lean_ctor_set_uint8(x_1334, sizeof(void*)*4, x_1333); +return x_1334; +} +} +} } -lean_ctor_set(x_278, 0, x_269); -lean_ctor_set(x_278, 1, x_270); -lean_ctor_set(x_278, 2, x_271); -lean_ctor_set(x_278, 3, x_272); -lean_ctor_set_uint8(x_278, sizeof(void*)*4, x_165); -x_279 = 0; -x_280 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_280, 0, x_273); -lean_ctor_set(x_280, 1, x_274); -lean_ctor_set(x_280, 2, x_275); -lean_ctor_set(x_280, 3, x_276); -lean_ctor_set_uint8(x_280, sizeof(void*)*4, x_279); -x_281 = l_Lean_RBNode_balance_u2083___rarg(x_278, x_2, x_3, x_280); -return x_281; } } } @@ -15813,424 +12353,6249 @@ lean_dec(x_24); x_25 = !lean_is_exclusive(x_8); if (x_25 == 0) { -lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; uint8_t x_33; +lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; uint8_t x_31; x_26 = lean_ctor_get(x_8, 0); x_27 = lean_ctor_get(x_8, 1); x_28 = lean_ctor_get(x_8, 2); x_29 = lean_ctor_get(x_8, 3); x_30 = l_Lean_RBNode_setRed___rarg(x_21); -x_31 = l_Lean_RBNode_balance_u2083___rarg(x_30, x_22, x_23, x_26); -x_32 = 1; +x_31 = 1; lean_ctor_set(x_8, 3, x_4); lean_ctor_set(x_8, 2, x_3); lean_ctor_set(x_8, 1, x_2); lean_ctor_set(x_8, 0, x_29); -lean_ctor_set_uint8(x_8, sizeof(void*)*4, x_32); -x_33 = 0; +lean_ctor_set_uint8(x_8, sizeof(void*)*4, x_31); +if (lean_obj_tag(x_30) == 0) +{ +uint8_t x_32; lean_object* x_33; +lean_ctor_set(x_1, 3, x_26); +lean_ctor_set(x_1, 0, x_30); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_31); +x_32 = 0; +x_33 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_33, 0, x_1); +lean_ctor_set(x_33, 1, x_27); +lean_ctor_set(x_33, 2, x_28); +lean_ctor_set(x_33, 3, x_8); +lean_ctor_set_uint8(x_33, sizeof(void*)*4, x_32); +return x_33; +} +else +{ +uint8_t x_34; +x_34 = lean_ctor_get_uint8(x_30, sizeof(void*)*4); +if (x_34 == 0) +{ +lean_object* x_35; +x_35 = lean_ctor_get(x_30, 0); +lean_inc(x_35); +if (lean_obj_tag(x_35) == 0) +{ +lean_object* x_36; +x_36 = lean_ctor_get(x_30, 3); +lean_inc(x_36); +if (lean_obj_tag(x_36) == 0) +{ +uint8_t x_37; +x_37 = !lean_is_exclusive(x_30); +if (x_37 == 0) +{ +lean_object* x_38; lean_object* x_39; uint8_t x_40; lean_object* x_41; +x_38 = lean_ctor_get(x_30, 3); +lean_dec(x_38); +x_39 = lean_ctor_get(x_30, 0); +lean_dec(x_39); +lean_ctor_set(x_30, 0, x_36); +lean_ctor_set(x_1, 3, x_26); +lean_ctor_set(x_1, 0, x_30); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_31); +x_40 = 0; +x_41 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_41, 0, x_1); +lean_ctor_set(x_41, 1, x_27); +lean_ctor_set(x_41, 2, x_28); +lean_ctor_set(x_41, 3, x_8); +lean_ctor_set_uint8(x_41, sizeof(void*)*4, x_40); +return x_41; +} +else +{ +lean_object* x_42; lean_object* x_43; lean_object* x_44; uint8_t x_45; lean_object* x_46; +x_42 = lean_ctor_get(x_30, 1); +x_43 = lean_ctor_get(x_30, 2); +lean_inc(x_43); +lean_inc(x_42); +lean_dec(x_30); +x_44 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_44, 0, x_36); +lean_ctor_set(x_44, 1, x_42); +lean_ctor_set(x_44, 2, x_43); +lean_ctor_set(x_44, 3, x_36); +lean_ctor_set_uint8(x_44, sizeof(void*)*4, x_34); +lean_ctor_set(x_1, 3, x_26); +lean_ctor_set(x_1, 0, x_44); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_31); +x_45 = 0; +x_46 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_46, 0, x_1); +lean_ctor_set(x_46, 1, x_27); +lean_ctor_set(x_46, 2, x_28); +lean_ctor_set(x_46, 3, x_8); +lean_ctor_set_uint8(x_46, sizeof(void*)*4, x_45); +return x_46; +} +} +else +{ +uint8_t x_47; +x_47 = lean_ctor_get_uint8(x_36, sizeof(void*)*4); +if (x_47 == 0) +{ +uint8_t x_48; +x_48 = !lean_is_exclusive(x_30); +if (x_48 == 0) +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; uint8_t x_53; +x_49 = lean_ctor_get(x_30, 1); +x_50 = lean_ctor_get(x_30, 2); +x_51 = lean_ctor_get(x_30, 3); +lean_dec(x_51); +x_52 = lean_ctor_get(x_30, 0); +lean_dec(x_52); +x_53 = !lean_is_exclusive(x_36); +if (x_53 == 0) +{ +lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; uint8_t x_58; lean_object* x_59; +x_54 = lean_ctor_get(x_36, 0); +x_55 = lean_ctor_get(x_36, 1); +x_56 = lean_ctor_get(x_36, 2); +x_57 = lean_ctor_get(x_36, 3); +lean_ctor_set(x_36, 3, x_54); +lean_ctor_set(x_36, 2, x_50); +lean_ctor_set(x_36, 1, x_49); +lean_ctor_set(x_36, 0, x_35); +lean_ctor_set_uint8(x_36, sizeof(void*)*4, x_31); +lean_ctor_set(x_30, 3, x_26); +lean_ctor_set(x_30, 2, x_23); +lean_ctor_set(x_30, 1, x_22); +lean_ctor_set(x_30, 0, x_57); +lean_ctor_set_uint8(x_30, sizeof(void*)*4, x_31); +x_58 = 0; +lean_ctor_set(x_1, 3, x_30); +lean_ctor_set(x_1, 2, x_56); +lean_ctor_set(x_1, 1, x_55); +lean_ctor_set(x_1, 0, x_36); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_58); +x_59 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_59, 0, x_1); +lean_ctor_set(x_59, 1, x_27); +lean_ctor_set(x_59, 2, x_28); +lean_ctor_set(x_59, 3, x_8); +lean_ctor_set_uint8(x_59, sizeof(void*)*4, x_58); +return x_59; +} +else +{ +lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; lean_object* x_66; +x_60 = lean_ctor_get(x_36, 0); +x_61 = lean_ctor_get(x_36, 1); +x_62 = lean_ctor_get(x_36, 2); +x_63 = lean_ctor_get(x_36, 3); +lean_inc(x_63); +lean_inc(x_62); +lean_inc(x_61); +lean_inc(x_60); +lean_dec(x_36); +x_64 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_64, 0, x_35); +lean_ctor_set(x_64, 1, x_49); +lean_ctor_set(x_64, 2, x_50); +lean_ctor_set(x_64, 3, x_60); +lean_ctor_set_uint8(x_64, sizeof(void*)*4, x_31); +lean_ctor_set(x_30, 3, x_26); +lean_ctor_set(x_30, 2, x_23); +lean_ctor_set(x_30, 1, x_22); +lean_ctor_set(x_30, 0, x_63); +lean_ctor_set_uint8(x_30, sizeof(void*)*4, x_31); +x_65 = 0; +lean_ctor_set(x_1, 3, x_30); +lean_ctor_set(x_1, 2, x_62); +lean_ctor_set(x_1, 1, x_61); +lean_ctor_set(x_1, 0, x_64); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_65); +x_66 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_66, 0, x_1); +lean_ctor_set(x_66, 1, x_27); +lean_ctor_set(x_66, 2, x_28); +lean_ctor_set(x_66, 3, x_8); +lean_ctor_set_uint8(x_66, sizeof(void*)*4, x_65); +return x_66; +} +} +else +{ +lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; uint8_t x_76; lean_object* x_77; +x_67 = lean_ctor_get(x_30, 1); +x_68 = lean_ctor_get(x_30, 2); +lean_inc(x_68); +lean_inc(x_67); +lean_dec(x_30); +x_69 = lean_ctor_get(x_36, 0); +lean_inc(x_69); +x_70 = lean_ctor_get(x_36, 1); +lean_inc(x_70); +x_71 = lean_ctor_get(x_36, 2); +lean_inc(x_71); +x_72 = lean_ctor_get(x_36, 3); +lean_inc(x_72); +if (lean_is_exclusive(x_36)) { + lean_ctor_release(x_36, 0); + lean_ctor_release(x_36, 1); + lean_ctor_release(x_36, 2); + lean_ctor_release(x_36, 3); + x_73 = x_36; +} else { + lean_dec_ref(x_36); + x_73 = lean_box(0); +} +if (lean_is_scalar(x_73)) { + x_74 = lean_alloc_ctor(1, 4, 1); +} else { + x_74 = x_73; +} +lean_ctor_set(x_74, 0, x_35); +lean_ctor_set(x_74, 1, x_67); +lean_ctor_set(x_74, 2, x_68); +lean_ctor_set(x_74, 3, x_69); +lean_ctor_set_uint8(x_74, sizeof(void*)*4, x_31); +x_75 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_75, 0, x_72); +lean_ctor_set(x_75, 1, x_22); +lean_ctor_set(x_75, 2, x_23); +lean_ctor_set(x_75, 3, x_26); +lean_ctor_set_uint8(x_75, sizeof(void*)*4, x_31); +x_76 = 0; +lean_ctor_set(x_1, 3, x_75); +lean_ctor_set(x_1, 2, x_71); +lean_ctor_set(x_1, 1, x_70); +lean_ctor_set(x_1, 0, x_74); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_76); +x_77 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_77, 0, x_1); +lean_ctor_set(x_77, 1, x_27); +lean_ctor_set(x_77, 2, x_28); +lean_ctor_set(x_77, 3, x_8); +lean_ctor_set_uint8(x_77, sizeof(void*)*4, x_76); +return x_77; +} +} +else +{ +uint8_t x_78; +lean_free_object(x_1); +x_78 = !lean_is_exclusive(x_36); +if (x_78 == 0) +{ +lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; uint8_t x_83; +x_79 = lean_ctor_get(x_36, 3); +lean_dec(x_79); +x_80 = lean_ctor_get(x_36, 2); +lean_dec(x_80); +x_81 = lean_ctor_get(x_36, 1); +lean_dec(x_81); +x_82 = lean_ctor_get(x_36, 0); +lean_dec(x_82); +lean_inc(x_30); +lean_ctor_set(x_36, 3, x_26); +lean_ctor_set(x_36, 2, x_23); +lean_ctor_set(x_36, 1, x_22); +lean_ctor_set(x_36, 0, x_30); +x_83 = !lean_is_exclusive(x_30); +if (x_83 == 0) +{ +lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; uint8_t x_88; +x_84 = lean_ctor_get(x_30, 3); +lean_dec(x_84); +x_85 = lean_ctor_get(x_30, 2); +lean_dec(x_85); +x_86 = lean_ctor_get(x_30, 1); +lean_dec(x_86); +x_87 = lean_ctor_get(x_30, 0); +lean_dec(x_87); +lean_ctor_set_uint8(x_36, sizeof(void*)*4, x_31); +x_88 = 0; +lean_ctor_set(x_30, 3, x_8); +lean_ctor_set(x_30, 2, x_28); +lean_ctor_set(x_30, 1, x_27); +lean_ctor_set(x_30, 0, x_36); +lean_ctor_set_uint8(x_30, sizeof(void*)*4, x_88); +return x_30; +} +else +{ +uint8_t x_89; lean_object* x_90; +lean_dec(x_30); +lean_ctor_set_uint8(x_36, sizeof(void*)*4, x_31); +x_89 = 0; +x_90 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_90, 0, x_36); +lean_ctor_set(x_90, 1, x_27); +lean_ctor_set(x_90, 2, x_28); +lean_ctor_set(x_90, 3, x_8); +lean_ctor_set_uint8(x_90, sizeof(void*)*4, x_89); +return x_90; +} +} +else +{ +lean_object* x_91; lean_object* x_92; uint8_t x_93; lean_object* x_94; +lean_dec(x_36); +lean_inc(x_30); +x_91 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_91, 0, x_30); +lean_ctor_set(x_91, 1, x_22); +lean_ctor_set(x_91, 2, x_23); +lean_ctor_set(x_91, 3, x_26); +if (lean_is_exclusive(x_30)) { + lean_ctor_release(x_30, 0); + lean_ctor_release(x_30, 1); + lean_ctor_release(x_30, 2); + lean_ctor_release(x_30, 3); + x_92 = x_30; +} else { + lean_dec_ref(x_30); + x_92 = lean_box(0); +} +lean_ctor_set_uint8(x_91, sizeof(void*)*4, x_31); +x_93 = 0; +if (lean_is_scalar(x_92)) { + x_94 = lean_alloc_ctor(1, 4, 1); +} else { + x_94 = x_92; +} +lean_ctor_set(x_94, 0, x_91); +lean_ctor_set(x_94, 1, x_27); +lean_ctor_set(x_94, 2, x_28); +lean_ctor_set(x_94, 3, x_8); +lean_ctor_set_uint8(x_94, sizeof(void*)*4, x_93); +return x_94; +} +} +} +} +else +{ +uint8_t x_95; +x_95 = lean_ctor_get_uint8(x_35, sizeof(void*)*4); +if (x_95 == 0) +{ +uint8_t x_96; +x_96 = !lean_is_exclusive(x_30); +if (x_96 == 0) +{ +lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; uint8_t x_101; +x_97 = lean_ctor_get(x_30, 1); +x_98 = lean_ctor_get(x_30, 2); +x_99 = lean_ctor_get(x_30, 3); +x_100 = lean_ctor_get(x_30, 0); +lean_dec(x_100); +x_101 = !lean_is_exclusive(x_35); +if (x_101 == 0) +{ +uint8_t x_102; lean_object* x_103; +lean_ctor_set_uint8(x_35, sizeof(void*)*4, x_31); +lean_ctor_set(x_30, 3, x_26); +lean_ctor_set(x_30, 2, x_23); +lean_ctor_set(x_30, 1, x_22); +lean_ctor_set(x_30, 0, x_99); +lean_ctor_set_uint8(x_30, sizeof(void*)*4, x_31); +x_102 = 0; +lean_ctor_set(x_1, 3, x_30); +lean_ctor_set(x_1, 2, x_98); +lean_ctor_set(x_1, 1, x_97); +lean_ctor_set(x_1, 0, x_35); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_102); +x_103 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_103, 0, x_1); +lean_ctor_set(x_103, 1, x_27); +lean_ctor_set(x_103, 2, x_28); +lean_ctor_set(x_103, 3, x_8); +lean_ctor_set_uint8(x_103, sizeof(void*)*4, x_102); +return x_103; +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; uint8_t x_109; lean_object* x_110; +x_104 = lean_ctor_get(x_35, 0); +x_105 = lean_ctor_get(x_35, 1); +x_106 = lean_ctor_get(x_35, 2); +x_107 = lean_ctor_get(x_35, 3); +lean_inc(x_107); +lean_inc(x_106); +lean_inc(x_105); +lean_inc(x_104); +lean_dec(x_35); +x_108 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_108, 0, x_104); +lean_ctor_set(x_108, 1, x_105); +lean_ctor_set(x_108, 2, x_106); +lean_ctor_set(x_108, 3, x_107); +lean_ctor_set_uint8(x_108, sizeof(void*)*4, x_31); +lean_ctor_set(x_30, 3, x_26); +lean_ctor_set(x_30, 2, x_23); +lean_ctor_set(x_30, 1, x_22); +lean_ctor_set(x_30, 0, x_99); +lean_ctor_set_uint8(x_30, sizeof(void*)*4, x_31); +x_109 = 0; +lean_ctor_set(x_1, 3, x_30); +lean_ctor_set(x_1, 2, x_98); +lean_ctor_set(x_1, 1, x_97); +lean_ctor_set(x_1, 0, x_108); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_109); +x_110 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_110, 0, x_1); +lean_ctor_set(x_110, 1, x_27); +lean_ctor_set(x_110, 2, x_28); +lean_ctor_set(x_110, 3, x_8); +lean_ctor_set_uint8(x_110, sizeof(void*)*4, x_109); +return x_110; +} +} +else +{ +lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; uint8_t x_121; lean_object* x_122; +x_111 = lean_ctor_get(x_30, 1); +x_112 = lean_ctor_get(x_30, 2); +x_113 = lean_ctor_get(x_30, 3); +lean_inc(x_113); +lean_inc(x_112); +lean_inc(x_111); +lean_dec(x_30); +x_114 = lean_ctor_get(x_35, 0); +lean_inc(x_114); +x_115 = lean_ctor_get(x_35, 1); +lean_inc(x_115); +x_116 = lean_ctor_get(x_35, 2); +lean_inc(x_116); +x_117 = lean_ctor_get(x_35, 3); +lean_inc(x_117); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + lean_ctor_release(x_35, 1); + lean_ctor_release(x_35, 2); + lean_ctor_release(x_35, 3); + x_118 = x_35; +} else { + lean_dec_ref(x_35); + x_118 = lean_box(0); +} +if (lean_is_scalar(x_118)) { + x_119 = lean_alloc_ctor(1, 4, 1); +} else { + x_119 = x_118; +} +lean_ctor_set(x_119, 0, x_114); +lean_ctor_set(x_119, 1, x_115); +lean_ctor_set(x_119, 2, x_116); +lean_ctor_set(x_119, 3, x_117); +lean_ctor_set_uint8(x_119, sizeof(void*)*4, x_31); +x_120 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_120, 0, x_113); +lean_ctor_set(x_120, 1, x_22); +lean_ctor_set(x_120, 2, x_23); +lean_ctor_set(x_120, 3, x_26); +lean_ctor_set_uint8(x_120, sizeof(void*)*4, x_31); +x_121 = 0; +lean_ctor_set(x_1, 3, x_120); +lean_ctor_set(x_1, 2, x_112); +lean_ctor_set(x_1, 1, x_111); +lean_ctor_set(x_1, 0, x_119); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_121); +x_122 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_122, 0, x_1); +lean_ctor_set(x_122, 1, x_27); +lean_ctor_set(x_122, 2, x_28); +lean_ctor_set(x_122, 3, x_8); +lean_ctor_set_uint8(x_122, sizeof(void*)*4, x_121); +return x_122; +} +} +else +{ +lean_object* x_123; +x_123 = lean_ctor_get(x_30, 3); +lean_inc(x_123); +if (lean_obj_tag(x_123) == 0) +{ +uint8_t x_124; +lean_free_object(x_1); +x_124 = !lean_is_exclusive(x_35); +if (x_124 == 0) +{ +lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; uint8_t x_129; +x_125 = lean_ctor_get(x_35, 3); +lean_dec(x_125); +x_126 = lean_ctor_get(x_35, 2); +lean_dec(x_126); +x_127 = lean_ctor_get(x_35, 1); +lean_dec(x_127); +x_128 = lean_ctor_get(x_35, 0); +lean_dec(x_128); +lean_inc(x_30); +lean_ctor_set(x_35, 3, x_26); +lean_ctor_set(x_35, 2, x_23); +lean_ctor_set(x_35, 1, x_22); +lean_ctor_set(x_35, 0, x_30); +x_129 = !lean_is_exclusive(x_30); +if (x_129 == 0) +{ +lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; uint8_t x_134; +x_130 = lean_ctor_get(x_30, 3); +lean_dec(x_130); +x_131 = lean_ctor_get(x_30, 2); +lean_dec(x_131); +x_132 = lean_ctor_get(x_30, 1); +lean_dec(x_132); +x_133 = lean_ctor_get(x_30, 0); +lean_dec(x_133); +lean_ctor_set_uint8(x_35, sizeof(void*)*4, x_31); +x_134 = 0; +lean_ctor_set(x_30, 3, x_8); +lean_ctor_set(x_30, 2, x_28); +lean_ctor_set(x_30, 1, x_27); +lean_ctor_set_uint8(x_30, sizeof(void*)*4, x_134); +return x_30; +} +else +{ +uint8_t x_135; lean_object* x_136; +lean_dec(x_30); +lean_ctor_set_uint8(x_35, sizeof(void*)*4, x_31); +x_135 = 0; +x_136 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_136, 0, x_35); +lean_ctor_set(x_136, 1, x_27); +lean_ctor_set(x_136, 2, x_28); +lean_ctor_set(x_136, 3, x_8); +lean_ctor_set_uint8(x_136, sizeof(void*)*4, x_135); +return x_136; +} +} +else +{ +lean_object* x_137; lean_object* x_138; uint8_t x_139; lean_object* x_140; +lean_dec(x_35); +lean_inc(x_30); +x_137 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_137, 0, x_30); +lean_ctor_set(x_137, 1, x_22); +lean_ctor_set(x_137, 2, x_23); +lean_ctor_set(x_137, 3, x_26); +if (lean_is_exclusive(x_30)) { + lean_ctor_release(x_30, 0); + lean_ctor_release(x_30, 1); + lean_ctor_release(x_30, 2); + lean_ctor_release(x_30, 3); + x_138 = x_30; +} else { + lean_dec_ref(x_30); + x_138 = lean_box(0); +} +lean_ctor_set_uint8(x_137, sizeof(void*)*4, x_31); +x_139 = 0; +if (lean_is_scalar(x_138)) { + x_140 = lean_alloc_ctor(1, 4, 1); +} else { + x_140 = x_138; +} +lean_ctor_set(x_140, 0, x_137); +lean_ctor_set(x_140, 1, x_27); +lean_ctor_set(x_140, 2, x_28); +lean_ctor_set(x_140, 3, x_8); +lean_ctor_set_uint8(x_140, sizeof(void*)*4, x_139); +return x_140; +} +} +else +{ +uint8_t x_141; +x_141 = lean_ctor_get_uint8(x_123, sizeof(void*)*4); +if (x_141 == 0) +{ +uint8_t x_142; +x_142 = !lean_is_exclusive(x_30); +if (x_142 == 0) +{ +lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; uint8_t x_147; +x_143 = lean_ctor_get(x_30, 1); +x_144 = lean_ctor_get(x_30, 2); +x_145 = lean_ctor_get(x_30, 3); +lean_dec(x_145); +x_146 = lean_ctor_get(x_30, 0); +lean_dec(x_146); +x_147 = !lean_is_exclusive(x_123); +if (x_147 == 0) +{ +lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; uint8_t x_152; +x_148 = lean_ctor_get(x_123, 0); +x_149 = lean_ctor_get(x_123, 1); +x_150 = lean_ctor_get(x_123, 2); +x_151 = lean_ctor_get(x_123, 3); +lean_inc(x_35); +lean_ctor_set(x_123, 3, x_148); +lean_ctor_set(x_123, 2, x_144); +lean_ctor_set(x_123, 1, x_143); +lean_ctor_set(x_123, 0, x_35); +x_152 = !lean_is_exclusive(x_35); +if (x_152 == 0) +{ +lean_object* x_153; lean_object* x_154; lean_object* x_155; lean_object* x_156; uint8_t x_157; +x_153 = lean_ctor_get(x_35, 3); +lean_dec(x_153); +x_154 = lean_ctor_get(x_35, 2); +lean_dec(x_154); +x_155 = lean_ctor_get(x_35, 1); +lean_dec(x_155); +x_156 = lean_ctor_get(x_35, 0); +lean_dec(x_156); +lean_ctor_set_uint8(x_123, sizeof(void*)*4, x_31); +lean_ctor_set(x_35, 3, x_26); +lean_ctor_set(x_35, 2, x_23); +lean_ctor_set(x_35, 1, x_22); +lean_ctor_set(x_35, 0, x_151); +lean_ctor_set_uint8(x_35, sizeof(void*)*4, x_31); +x_157 = 0; +lean_ctor_set(x_30, 3, x_35); +lean_ctor_set(x_30, 2, x_150); +lean_ctor_set(x_30, 1, x_149); +lean_ctor_set(x_30, 0, x_123); +lean_ctor_set_uint8(x_30, sizeof(void*)*4, x_157); lean_ctor_set(x_1, 2, x_28); lean_ctor_set(x_1, 1, x_27); -lean_ctor_set(x_1, 0, x_31); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_33); +lean_ctor_set(x_1, 0, x_30); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_157); return x_1; } else { -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; uint8_t x_40; lean_object* x_41; uint8_t x_42; -x_34 = lean_ctor_get(x_8, 0); -x_35 = lean_ctor_get(x_8, 1); -x_36 = lean_ctor_get(x_8, 2); -x_37 = lean_ctor_get(x_8, 3); -lean_inc(x_37); -lean_inc(x_36); +lean_object* x_158; uint8_t x_159; +lean_dec(x_35); +lean_ctor_set_uint8(x_123, sizeof(void*)*4, x_31); +x_158 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_158, 0, x_151); +lean_ctor_set(x_158, 1, x_22); +lean_ctor_set(x_158, 2, x_23); +lean_ctor_set(x_158, 3, x_26); +lean_ctor_set_uint8(x_158, sizeof(void*)*4, x_31); +x_159 = 0; +lean_ctor_set(x_30, 3, x_158); +lean_ctor_set(x_30, 2, x_150); +lean_ctor_set(x_30, 1, x_149); +lean_ctor_set(x_30, 0, x_123); +lean_ctor_set_uint8(x_30, sizeof(void*)*4, x_159); +lean_ctor_set(x_1, 2, x_28); +lean_ctor_set(x_1, 1, x_27); +lean_ctor_set(x_1, 0, x_30); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_159); +return x_1; +} +} +else +{ +lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; uint8_t x_167; +x_160 = lean_ctor_get(x_123, 0); +x_161 = lean_ctor_get(x_123, 1); +x_162 = lean_ctor_get(x_123, 2); +x_163 = lean_ctor_get(x_123, 3); +lean_inc(x_163); +lean_inc(x_162); +lean_inc(x_161); +lean_inc(x_160); +lean_dec(x_123); lean_inc(x_35); -lean_inc(x_34); -lean_dec(x_8); -x_38 = l_Lean_RBNode_setRed___rarg(x_21); -x_39 = l_Lean_RBNode_balance_u2083___rarg(x_38, x_22, x_23, x_34); -x_40 = 1; -x_41 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_41, 0, x_37); -lean_ctor_set(x_41, 1, x_2); -lean_ctor_set(x_41, 2, x_3); -lean_ctor_set(x_41, 3, x_4); -lean_ctor_set_uint8(x_41, sizeof(void*)*4, x_40); -x_42 = 0; -lean_ctor_set(x_1, 3, x_41); -lean_ctor_set(x_1, 2, x_36); -lean_ctor_set(x_1, 1, x_35); -lean_ctor_set(x_1, 0, x_39); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_42); +x_164 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_164, 0, x_35); +lean_ctor_set(x_164, 1, x_143); +lean_ctor_set(x_164, 2, x_144); +lean_ctor_set(x_164, 3, x_160); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + lean_ctor_release(x_35, 1); + lean_ctor_release(x_35, 2); + lean_ctor_release(x_35, 3); + x_165 = x_35; +} else { + lean_dec_ref(x_35); + x_165 = lean_box(0); +} +lean_ctor_set_uint8(x_164, sizeof(void*)*4, x_31); +if (lean_is_scalar(x_165)) { + x_166 = lean_alloc_ctor(1, 4, 1); +} else { + x_166 = x_165; +} +lean_ctor_set(x_166, 0, x_163); +lean_ctor_set(x_166, 1, x_22); +lean_ctor_set(x_166, 2, x_23); +lean_ctor_set(x_166, 3, x_26); +lean_ctor_set_uint8(x_166, sizeof(void*)*4, x_31); +x_167 = 0; +lean_ctor_set(x_30, 3, x_166); +lean_ctor_set(x_30, 2, x_162); +lean_ctor_set(x_30, 1, x_161); +lean_ctor_set(x_30, 0, x_164); +lean_ctor_set_uint8(x_30, sizeof(void*)*4, x_167); +lean_ctor_set(x_1, 2, x_28); +lean_ctor_set(x_1, 1, x_27); +lean_ctor_set(x_1, 0, x_30); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_167); return x_1; } } else { -lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; uint8_t x_53; lean_object* x_54; uint8_t x_55; lean_object* x_56; -x_43 = lean_ctor_get(x_1, 0); -x_44 = lean_ctor_get(x_1, 1); -x_45 = lean_ctor_get(x_1, 2); -lean_inc(x_45); -lean_inc(x_44); -lean_inc(x_43); +lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; uint8_t x_178; lean_object* x_179; +x_168 = lean_ctor_get(x_30, 1); +x_169 = lean_ctor_get(x_30, 2); +lean_inc(x_169); +lean_inc(x_168); +lean_dec(x_30); +x_170 = lean_ctor_get(x_123, 0); +lean_inc(x_170); +x_171 = lean_ctor_get(x_123, 1); +lean_inc(x_171); +x_172 = lean_ctor_get(x_123, 2); +lean_inc(x_172); +x_173 = lean_ctor_get(x_123, 3); +lean_inc(x_173); +if (lean_is_exclusive(x_123)) { + lean_ctor_release(x_123, 0); + lean_ctor_release(x_123, 1); + lean_ctor_release(x_123, 2); + lean_ctor_release(x_123, 3); + x_174 = x_123; +} else { + lean_dec_ref(x_123); + x_174 = lean_box(0); +} +lean_inc(x_35); +if (lean_is_scalar(x_174)) { + x_175 = lean_alloc_ctor(1, 4, 1); +} else { + x_175 = x_174; +} +lean_ctor_set(x_175, 0, x_35); +lean_ctor_set(x_175, 1, x_168); +lean_ctor_set(x_175, 2, x_169); +lean_ctor_set(x_175, 3, x_170); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + lean_ctor_release(x_35, 1); + lean_ctor_release(x_35, 2); + lean_ctor_release(x_35, 3); + x_176 = x_35; +} else { + lean_dec_ref(x_35); + x_176 = lean_box(0); +} +lean_ctor_set_uint8(x_175, sizeof(void*)*4, x_31); +if (lean_is_scalar(x_176)) { + x_177 = lean_alloc_ctor(1, 4, 1); +} else { + x_177 = x_176; +} +lean_ctor_set(x_177, 0, x_173); +lean_ctor_set(x_177, 1, x_22); +lean_ctor_set(x_177, 2, x_23); +lean_ctor_set(x_177, 3, x_26); +lean_ctor_set_uint8(x_177, sizeof(void*)*4, x_31); +x_178 = 0; +x_179 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_179, 0, x_175); +lean_ctor_set(x_179, 1, x_171); +lean_ctor_set(x_179, 2, x_172); +lean_ctor_set(x_179, 3, x_177); +lean_ctor_set_uint8(x_179, sizeof(void*)*4, x_178); +lean_ctor_set(x_1, 2, x_28); +lean_ctor_set(x_1, 1, x_27); +lean_ctor_set(x_1, 0, x_179); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_178); +return x_1; +} +} +else +{ +uint8_t x_180; +x_180 = !lean_is_exclusive(x_30); +if (x_180 == 0) +{ +lean_object* x_181; lean_object* x_182; uint8_t x_183; +x_181 = lean_ctor_get(x_30, 3); +lean_dec(x_181); +x_182 = lean_ctor_get(x_30, 0); +lean_dec(x_182); +x_183 = !lean_is_exclusive(x_35); +if (x_183 == 0) +{ +uint8_t x_184; lean_object* x_185; +lean_ctor_set_uint8(x_35, sizeof(void*)*4, x_141); +lean_ctor_set(x_1, 3, x_26); +lean_ctor_set(x_1, 0, x_30); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_31); +x_184 = 0; +x_185 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_185, 0, x_1); +lean_ctor_set(x_185, 1, x_27); +lean_ctor_set(x_185, 2, x_28); +lean_ctor_set(x_185, 3, x_8); +lean_ctor_set_uint8(x_185, sizeof(void*)*4, x_184); +return x_185; +} +else +{ +lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; uint8_t x_191; lean_object* x_192; +x_186 = lean_ctor_get(x_35, 0); +x_187 = lean_ctor_get(x_35, 1); +x_188 = lean_ctor_get(x_35, 2); +x_189 = lean_ctor_get(x_35, 3); +lean_inc(x_189); +lean_inc(x_188); +lean_inc(x_187); +lean_inc(x_186); +lean_dec(x_35); +x_190 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_190, 0, x_186); +lean_ctor_set(x_190, 1, x_187); +lean_ctor_set(x_190, 2, x_188); +lean_ctor_set(x_190, 3, x_189); +lean_ctor_set_uint8(x_190, sizeof(void*)*4, x_141); +lean_ctor_set(x_30, 0, x_190); +lean_ctor_set(x_1, 3, x_26); +lean_ctor_set(x_1, 0, x_30); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_31); +x_191 = 0; +x_192 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_192, 0, x_1); +lean_ctor_set(x_192, 1, x_27); +lean_ctor_set(x_192, 2, x_28); +lean_ctor_set(x_192, 3, x_8); +lean_ctor_set_uint8(x_192, sizeof(void*)*4, x_191); +return x_192; +} +} +else +{ +lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; lean_object* x_198; lean_object* x_199; lean_object* x_200; lean_object* x_201; uint8_t x_202; lean_object* x_203; +x_193 = lean_ctor_get(x_30, 1); +x_194 = lean_ctor_get(x_30, 2); +lean_inc(x_194); +lean_inc(x_193); +lean_dec(x_30); +x_195 = lean_ctor_get(x_35, 0); +lean_inc(x_195); +x_196 = lean_ctor_get(x_35, 1); +lean_inc(x_196); +x_197 = lean_ctor_get(x_35, 2); +lean_inc(x_197); +x_198 = lean_ctor_get(x_35, 3); +lean_inc(x_198); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + lean_ctor_release(x_35, 1); + lean_ctor_release(x_35, 2); + lean_ctor_release(x_35, 3); + x_199 = x_35; +} else { + lean_dec_ref(x_35); + x_199 = lean_box(0); +} +if (lean_is_scalar(x_199)) { + x_200 = lean_alloc_ctor(1, 4, 1); +} else { + x_200 = x_199; +} +lean_ctor_set(x_200, 0, x_195); +lean_ctor_set(x_200, 1, x_196); +lean_ctor_set(x_200, 2, x_197); +lean_ctor_set(x_200, 3, x_198); +lean_ctor_set_uint8(x_200, sizeof(void*)*4, x_141); +x_201 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_201, 0, x_200); +lean_ctor_set(x_201, 1, x_193); +lean_ctor_set(x_201, 2, x_194); +lean_ctor_set(x_201, 3, x_123); +lean_ctor_set_uint8(x_201, sizeof(void*)*4, x_34); +lean_ctor_set(x_1, 3, x_26); +lean_ctor_set(x_1, 0, x_201); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_31); +x_202 = 0; +x_203 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_203, 0, x_1); +lean_ctor_set(x_203, 1, x_27); +lean_ctor_set(x_203, 2, x_28); +lean_ctor_set(x_203, 3, x_8); +lean_ctor_set_uint8(x_203, sizeof(void*)*4, x_202); +return x_203; +} +} +} +} +} +} +else +{ +uint8_t x_204; lean_object* x_205; +lean_ctor_set(x_1, 3, x_26); +lean_ctor_set(x_1, 0, x_30); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_31); +x_204 = 0; +x_205 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_205, 0, x_1); +lean_ctor_set(x_205, 1, x_27); +lean_ctor_set(x_205, 2, x_28); +lean_ctor_set(x_205, 3, x_8); +lean_ctor_set_uint8(x_205, sizeof(void*)*4, x_204); +return x_205; +} +} +} +else +{ +lean_object* x_206; lean_object* x_207; lean_object* x_208; lean_object* x_209; lean_object* x_210; uint8_t x_211; lean_object* x_212; +x_206 = lean_ctor_get(x_8, 0); +x_207 = lean_ctor_get(x_8, 1); +x_208 = lean_ctor_get(x_8, 2); +x_209 = lean_ctor_get(x_8, 3); +lean_inc(x_209); +lean_inc(x_208); +lean_inc(x_207); +lean_inc(x_206); +lean_dec(x_8); +x_210 = l_Lean_RBNode_setRed___rarg(x_21); +x_211 = 1; +x_212 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_212, 0, x_209); +lean_ctor_set(x_212, 1, x_2); +lean_ctor_set(x_212, 2, x_3); +lean_ctor_set(x_212, 3, x_4); +lean_ctor_set_uint8(x_212, sizeof(void*)*4, x_211); +if (lean_obj_tag(x_210) == 0) +{ +uint8_t x_213; lean_object* x_214; +lean_ctor_set(x_1, 3, x_206); +lean_ctor_set(x_1, 0, x_210); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_211); +x_213 = 0; +x_214 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_214, 0, x_1); +lean_ctor_set(x_214, 1, x_207); +lean_ctor_set(x_214, 2, x_208); +lean_ctor_set(x_214, 3, x_212); +lean_ctor_set_uint8(x_214, sizeof(void*)*4, x_213); +return x_214; +} +else +{ +uint8_t x_215; +x_215 = lean_ctor_get_uint8(x_210, sizeof(void*)*4); +if (x_215 == 0) +{ +lean_object* x_216; +x_216 = lean_ctor_get(x_210, 0); +lean_inc(x_216); +if (lean_obj_tag(x_216) == 0) +{ +lean_object* x_217; +x_217 = lean_ctor_get(x_210, 3); +lean_inc(x_217); +if (lean_obj_tag(x_217) == 0) +{ +lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; uint8_t x_222; lean_object* x_223; +x_218 = lean_ctor_get(x_210, 1); +lean_inc(x_218); +x_219 = lean_ctor_get(x_210, 2); +lean_inc(x_219); +if (lean_is_exclusive(x_210)) { + lean_ctor_release(x_210, 0); + lean_ctor_release(x_210, 1); + lean_ctor_release(x_210, 2); + lean_ctor_release(x_210, 3); + x_220 = x_210; +} else { + lean_dec_ref(x_210); + x_220 = lean_box(0); +} +if (lean_is_scalar(x_220)) { + x_221 = lean_alloc_ctor(1, 4, 1); +} else { + x_221 = x_220; +} +lean_ctor_set(x_221, 0, x_217); +lean_ctor_set(x_221, 1, x_218); +lean_ctor_set(x_221, 2, x_219); +lean_ctor_set(x_221, 3, x_217); +lean_ctor_set_uint8(x_221, sizeof(void*)*4, x_215); +lean_ctor_set(x_1, 3, x_206); +lean_ctor_set(x_1, 0, x_221); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_211); +x_222 = 0; +x_223 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_223, 0, x_1); +lean_ctor_set(x_223, 1, x_207); +lean_ctor_set(x_223, 2, x_208); +lean_ctor_set(x_223, 3, x_212); +lean_ctor_set_uint8(x_223, sizeof(void*)*4, x_222); +return x_223; +} +else +{ +uint8_t x_224; +x_224 = lean_ctor_get_uint8(x_217, sizeof(void*)*4); +if (x_224 == 0) +{ +lean_object* x_225; lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; lean_object* x_231; lean_object* x_232; lean_object* x_233; lean_object* x_234; uint8_t x_235; lean_object* x_236; +x_225 = lean_ctor_get(x_210, 1); +lean_inc(x_225); +x_226 = lean_ctor_get(x_210, 2); +lean_inc(x_226); +if (lean_is_exclusive(x_210)) { + lean_ctor_release(x_210, 0); + lean_ctor_release(x_210, 1); + lean_ctor_release(x_210, 2); + lean_ctor_release(x_210, 3); + x_227 = x_210; +} else { + lean_dec_ref(x_210); + x_227 = lean_box(0); +} +x_228 = lean_ctor_get(x_217, 0); +lean_inc(x_228); +x_229 = lean_ctor_get(x_217, 1); +lean_inc(x_229); +x_230 = lean_ctor_get(x_217, 2); +lean_inc(x_230); +x_231 = lean_ctor_get(x_217, 3); +lean_inc(x_231); +if (lean_is_exclusive(x_217)) { + lean_ctor_release(x_217, 0); + lean_ctor_release(x_217, 1); + lean_ctor_release(x_217, 2); + lean_ctor_release(x_217, 3); + x_232 = x_217; +} else { + lean_dec_ref(x_217); + x_232 = lean_box(0); +} +if (lean_is_scalar(x_232)) { + x_233 = lean_alloc_ctor(1, 4, 1); +} else { + x_233 = x_232; +} +lean_ctor_set(x_233, 0, x_216); +lean_ctor_set(x_233, 1, x_225); +lean_ctor_set(x_233, 2, x_226); +lean_ctor_set(x_233, 3, x_228); +lean_ctor_set_uint8(x_233, sizeof(void*)*4, x_211); +if (lean_is_scalar(x_227)) { + x_234 = lean_alloc_ctor(1, 4, 1); +} else { + x_234 = x_227; +} +lean_ctor_set(x_234, 0, x_231); +lean_ctor_set(x_234, 1, x_22); +lean_ctor_set(x_234, 2, x_23); +lean_ctor_set(x_234, 3, x_206); +lean_ctor_set_uint8(x_234, sizeof(void*)*4, x_211); +x_235 = 0; +lean_ctor_set(x_1, 3, x_234); +lean_ctor_set(x_1, 2, x_230); +lean_ctor_set(x_1, 1, x_229); +lean_ctor_set(x_1, 0, x_233); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_235); +x_236 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_236, 0, x_1); +lean_ctor_set(x_236, 1, x_207); +lean_ctor_set(x_236, 2, x_208); +lean_ctor_set(x_236, 3, x_212); +lean_ctor_set_uint8(x_236, sizeof(void*)*4, x_235); +return x_236; +} +else +{ +lean_object* x_237; lean_object* x_238; lean_object* x_239; uint8_t x_240; lean_object* x_241; +lean_free_object(x_1); +if (lean_is_exclusive(x_217)) { + lean_ctor_release(x_217, 0); + lean_ctor_release(x_217, 1); + lean_ctor_release(x_217, 2); + lean_ctor_release(x_217, 3); + x_237 = x_217; +} else { + lean_dec_ref(x_217); + x_237 = lean_box(0); +} +lean_inc(x_210); +if (lean_is_scalar(x_237)) { + x_238 = lean_alloc_ctor(1, 4, 1); +} else { + x_238 = x_237; +} +lean_ctor_set(x_238, 0, x_210); +lean_ctor_set(x_238, 1, x_22); +lean_ctor_set(x_238, 2, x_23); +lean_ctor_set(x_238, 3, x_206); +if (lean_is_exclusive(x_210)) { + lean_ctor_release(x_210, 0); + lean_ctor_release(x_210, 1); + lean_ctor_release(x_210, 2); + lean_ctor_release(x_210, 3); + x_239 = x_210; +} else { + lean_dec_ref(x_210); + x_239 = lean_box(0); +} +lean_ctor_set_uint8(x_238, sizeof(void*)*4, x_211); +x_240 = 0; +if (lean_is_scalar(x_239)) { + x_241 = lean_alloc_ctor(1, 4, 1); +} else { + x_241 = x_239; +} +lean_ctor_set(x_241, 0, x_238); +lean_ctor_set(x_241, 1, x_207); +lean_ctor_set(x_241, 2, x_208); +lean_ctor_set(x_241, 3, x_212); +lean_ctor_set_uint8(x_241, sizeof(void*)*4, x_240); +return x_241; +} +} +} +else +{ +uint8_t x_242; +x_242 = lean_ctor_get_uint8(x_216, sizeof(void*)*4); +if (x_242 == 0) +{ +lean_object* x_243; lean_object* x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; lean_object* x_249; lean_object* x_250; lean_object* x_251; lean_object* x_252; lean_object* x_253; uint8_t x_254; lean_object* x_255; +x_243 = lean_ctor_get(x_210, 1); +lean_inc(x_243); +x_244 = lean_ctor_get(x_210, 2); +lean_inc(x_244); +x_245 = lean_ctor_get(x_210, 3); +lean_inc(x_245); +if (lean_is_exclusive(x_210)) { + lean_ctor_release(x_210, 0); + lean_ctor_release(x_210, 1); + lean_ctor_release(x_210, 2); + lean_ctor_release(x_210, 3); + x_246 = x_210; +} else { + lean_dec_ref(x_210); + x_246 = lean_box(0); +} +x_247 = lean_ctor_get(x_216, 0); +lean_inc(x_247); +x_248 = lean_ctor_get(x_216, 1); +lean_inc(x_248); +x_249 = lean_ctor_get(x_216, 2); +lean_inc(x_249); +x_250 = lean_ctor_get(x_216, 3); +lean_inc(x_250); +if (lean_is_exclusive(x_216)) { + lean_ctor_release(x_216, 0); + lean_ctor_release(x_216, 1); + lean_ctor_release(x_216, 2); + lean_ctor_release(x_216, 3); + x_251 = x_216; +} else { + lean_dec_ref(x_216); + x_251 = lean_box(0); +} +if (lean_is_scalar(x_251)) { + x_252 = lean_alloc_ctor(1, 4, 1); +} else { + x_252 = x_251; +} +lean_ctor_set(x_252, 0, x_247); +lean_ctor_set(x_252, 1, x_248); +lean_ctor_set(x_252, 2, x_249); +lean_ctor_set(x_252, 3, x_250); +lean_ctor_set_uint8(x_252, sizeof(void*)*4, x_211); +if (lean_is_scalar(x_246)) { + x_253 = lean_alloc_ctor(1, 4, 1); +} else { + x_253 = x_246; +} +lean_ctor_set(x_253, 0, x_245); +lean_ctor_set(x_253, 1, x_22); +lean_ctor_set(x_253, 2, x_23); +lean_ctor_set(x_253, 3, x_206); +lean_ctor_set_uint8(x_253, sizeof(void*)*4, x_211); +x_254 = 0; +lean_ctor_set(x_1, 3, x_253); +lean_ctor_set(x_1, 2, x_244); +lean_ctor_set(x_1, 1, x_243); +lean_ctor_set(x_1, 0, x_252); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_254); +x_255 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_255, 0, x_1); +lean_ctor_set(x_255, 1, x_207); +lean_ctor_set(x_255, 2, x_208); +lean_ctor_set(x_255, 3, x_212); +lean_ctor_set_uint8(x_255, sizeof(void*)*4, x_254); +return x_255; +} +else +{ +lean_object* x_256; +x_256 = lean_ctor_get(x_210, 3); +lean_inc(x_256); +if (lean_obj_tag(x_256) == 0) +{ +lean_object* x_257; lean_object* x_258; lean_object* x_259; uint8_t x_260; lean_object* x_261; +lean_free_object(x_1); +if (lean_is_exclusive(x_216)) { + lean_ctor_release(x_216, 0); + lean_ctor_release(x_216, 1); + lean_ctor_release(x_216, 2); + lean_ctor_release(x_216, 3); + x_257 = x_216; +} else { + lean_dec_ref(x_216); + x_257 = lean_box(0); +} +lean_inc(x_210); +if (lean_is_scalar(x_257)) { + x_258 = lean_alloc_ctor(1, 4, 1); +} else { + x_258 = x_257; +} +lean_ctor_set(x_258, 0, x_210); +lean_ctor_set(x_258, 1, x_22); +lean_ctor_set(x_258, 2, x_23); +lean_ctor_set(x_258, 3, x_206); +if (lean_is_exclusive(x_210)) { + lean_ctor_release(x_210, 0); + lean_ctor_release(x_210, 1); + lean_ctor_release(x_210, 2); + lean_ctor_release(x_210, 3); + x_259 = x_210; +} else { + lean_dec_ref(x_210); + x_259 = lean_box(0); +} +lean_ctor_set_uint8(x_258, sizeof(void*)*4, x_211); +x_260 = 0; +if (lean_is_scalar(x_259)) { + x_261 = lean_alloc_ctor(1, 4, 1); +} else { + x_261 = x_259; +} +lean_ctor_set(x_261, 0, x_258); +lean_ctor_set(x_261, 1, x_207); +lean_ctor_set(x_261, 2, x_208); +lean_ctor_set(x_261, 3, x_212); +lean_ctor_set_uint8(x_261, sizeof(void*)*4, x_260); +return x_261; +} +else +{ +uint8_t x_262; +x_262 = lean_ctor_get_uint8(x_256, sizeof(void*)*4); +if (x_262 == 0) +{ +lean_object* x_263; lean_object* x_264; lean_object* x_265; lean_object* x_266; lean_object* x_267; lean_object* x_268; lean_object* x_269; lean_object* x_270; lean_object* x_271; lean_object* x_272; lean_object* x_273; uint8_t x_274; lean_object* x_275; +x_263 = lean_ctor_get(x_210, 1); +lean_inc(x_263); +x_264 = lean_ctor_get(x_210, 2); +lean_inc(x_264); +if (lean_is_exclusive(x_210)) { + lean_ctor_release(x_210, 0); + lean_ctor_release(x_210, 1); + lean_ctor_release(x_210, 2); + lean_ctor_release(x_210, 3); + x_265 = x_210; +} else { + lean_dec_ref(x_210); + x_265 = lean_box(0); +} +x_266 = lean_ctor_get(x_256, 0); +lean_inc(x_266); +x_267 = lean_ctor_get(x_256, 1); +lean_inc(x_267); +x_268 = lean_ctor_get(x_256, 2); +lean_inc(x_268); +x_269 = lean_ctor_get(x_256, 3); +lean_inc(x_269); +if (lean_is_exclusive(x_256)) { + lean_ctor_release(x_256, 0); + lean_ctor_release(x_256, 1); + lean_ctor_release(x_256, 2); + lean_ctor_release(x_256, 3); + x_270 = x_256; +} else { + lean_dec_ref(x_256); + x_270 = lean_box(0); +} +lean_inc(x_216); +if (lean_is_scalar(x_270)) { + x_271 = lean_alloc_ctor(1, 4, 1); +} else { + x_271 = x_270; +} +lean_ctor_set(x_271, 0, x_216); +lean_ctor_set(x_271, 1, x_263); +lean_ctor_set(x_271, 2, x_264); +lean_ctor_set(x_271, 3, x_266); +if (lean_is_exclusive(x_216)) { + lean_ctor_release(x_216, 0); + lean_ctor_release(x_216, 1); + lean_ctor_release(x_216, 2); + lean_ctor_release(x_216, 3); + x_272 = x_216; +} else { + lean_dec_ref(x_216); + x_272 = lean_box(0); +} +lean_ctor_set_uint8(x_271, sizeof(void*)*4, x_211); +if (lean_is_scalar(x_272)) { + x_273 = lean_alloc_ctor(1, 4, 1); +} else { + x_273 = x_272; +} +lean_ctor_set(x_273, 0, x_269); +lean_ctor_set(x_273, 1, x_22); +lean_ctor_set(x_273, 2, x_23); +lean_ctor_set(x_273, 3, x_206); +lean_ctor_set_uint8(x_273, sizeof(void*)*4, x_211); +x_274 = 0; +if (lean_is_scalar(x_265)) { + x_275 = lean_alloc_ctor(1, 4, 1); +} else { + x_275 = x_265; +} +lean_ctor_set(x_275, 0, x_271); +lean_ctor_set(x_275, 1, x_267); +lean_ctor_set(x_275, 2, x_268); +lean_ctor_set(x_275, 3, x_273); +lean_ctor_set_uint8(x_275, sizeof(void*)*4, x_274); +lean_ctor_set(x_1, 3, x_212); +lean_ctor_set(x_1, 2, x_208); +lean_ctor_set(x_1, 1, x_207); +lean_ctor_set(x_1, 0, x_275); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_274); +return x_1; +} +else +{ +lean_object* x_276; lean_object* x_277; lean_object* x_278; lean_object* x_279; lean_object* x_280; lean_object* x_281; lean_object* x_282; lean_object* x_283; lean_object* x_284; lean_object* x_285; uint8_t x_286; lean_object* x_287; +x_276 = lean_ctor_get(x_210, 1); +lean_inc(x_276); +x_277 = lean_ctor_get(x_210, 2); +lean_inc(x_277); +if (lean_is_exclusive(x_210)) { + lean_ctor_release(x_210, 0); + lean_ctor_release(x_210, 1); + lean_ctor_release(x_210, 2); + lean_ctor_release(x_210, 3); + x_278 = x_210; +} else { + lean_dec_ref(x_210); + x_278 = lean_box(0); +} +x_279 = lean_ctor_get(x_216, 0); +lean_inc(x_279); +x_280 = lean_ctor_get(x_216, 1); +lean_inc(x_280); +x_281 = lean_ctor_get(x_216, 2); +lean_inc(x_281); +x_282 = lean_ctor_get(x_216, 3); +lean_inc(x_282); +if (lean_is_exclusive(x_216)) { + lean_ctor_release(x_216, 0); + lean_ctor_release(x_216, 1); + lean_ctor_release(x_216, 2); + lean_ctor_release(x_216, 3); + x_283 = x_216; +} else { + lean_dec_ref(x_216); + x_283 = lean_box(0); +} +if (lean_is_scalar(x_283)) { + x_284 = lean_alloc_ctor(1, 4, 1); +} else { + x_284 = x_283; +} +lean_ctor_set(x_284, 0, x_279); +lean_ctor_set(x_284, 1, x_280); +lean_ctor_set(x_284, 2, x_281); +lean_ctor_set(x_284, 3, x_282); +lean_ctor_set_uint8(x_284, sizeof(void*)*4, x_262); +if (lean_is_scalar(x_278)) { + x_285 = lean_alloc_ctor(1, 4, 1); +} else { + x_285 = x_278; +} +lean_ctor_set(x_285, 0, x_284); +lean_ctor_set(x_285, 1, x_276); +lean_ctor_set(x_285, 2, x_277); +lean_ctor_set(x_285, 3, x_256); +lean_ctor_set_uint8(x_285, sizeof(void*)*4, x_215); +lean_ctor_set(x_1, 3, x_206); +lean_ctor_set(x_1, 0, x_285); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_211); +x_286 = 0; +x_287 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_287, 0, x_1); +lean_ctor_set(x_287, 1, x_207); +lean_ctor_set(x_287, 2, x_208); +lean_ctor_set(x_287, 3, x_212); +lean_ctor_set_uint8(x_287, sizeof(void*)*4, x_286); +return x_287; +} +} +} +} +} +else +{ +uint8_t x_288; lean_object* x_289; +lean_ctor_set(x_1, 3, x_206); +lean_ctor_set(x_1, 0, x_210); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_211); +x_288 = 0; +x_289 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_289, 0, x_1); +lean_ctor_set(x_289, 1, x_207); +lean_ctor_set(x_289, 2, x_208); +lean_ctor_set(x_289, 3, x_212); +lean_ctor_set_uint8(x_289, sizeof(void*)*4, x_288); +return x_289; +} +} +} +} +else +{ +lean_object* x_290; lean_object* x_291; lean_object* x_292; lean_object* x_293; lean_object* x_294; lean_object* x_295; lean_object* x_296; lean_object* x_297; lean_object* x_298; uint8_t x_299; lean_object* x_300; +x_290 = lean_ctor_get(x_1, 0); +x_291 = lean_ctor_get(x_1, 1); +x_292 = lean_ctor_get(x_1, 2); +lean_inc(x_292); +lean_inc(x_291); +lean_inc(x_290); lean_dec(x_1); -x_46 = lean_ctor_get(x_8, 0); -lean_inc(x_46); -x_47 = lean_ctor_get(x_8, 1); -lean_inc(x_47); -x_48 = lean_ctor_get(x_8, 2); -lean_inc(x_48); -x_49 = lean_ctor_get(x_8, 3); -lean_inc(x_49); +x_293 = lean_ctor_get(x_8, 0); +lean_inc(x_293); +x_294 = lean_ctor_get(x_8, 1); +lean_inc(x_294); +x_295 = lean_ctor_get(x_8, 2); +lean_inc(x_295); +x_296 = lean_ctor_get(x_8, 3); +lean_inc(x_296); if (lean_is_exclusive(x_8)) { lean_ctor_release(x_8, 0); lean_ctor_release(x_8, 1); lean_ctor_release(x_8, 2); lean_ctor_release(x_8, 3); - x_50 = x_8; + x_297 = x_8; } else { lean_dec_ref(x_8); - x_50 = lean_box(0); + x_297 = lean_box(0); } -x_51 = l_Lean_RBNode_setRed___rarg(x_43); -x_52 = l_Lean_RBNode_balance_u2083___rarg(x_51, x_44, x_45, x_46); -x_53 = 1; -if (lean_is_scalar(x_50)) { - x_54 = lean_alloc_ctor(1, 4, 1); +x_298 = l_Lean_RBNode_setRed___rarg(x_290); +x_299 = 1; +if (lean_is_scalar(x_297)) { + x_300 = lean_alloc_ctor(1, 4, 1); } else { - x_54 = x_50; + x_300 = x_297; +} +lean_ctor_set(x_300, 0, x_296); +lean_ctor_set(x_300, 1, x_2); +lean_ctor_set(x_300, 2, x_3); +lean_ctor_set(x_300, 3, x_4); +lean_ctor_set_uint8(x_300, sizeof(void*)*4, x_299); +if (lean_obj_tag(x_298) == 0) +{ +lean_object* x_301; uint8_t x_302; lean_object* x_303; +x_301 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_301, 0, x_298); +lean_ctor_set(x_301, 1, x_291); +lean_ctor_set(x_301, 2, x_292); +lean_ctor_set(x_301, 3, x_293); +lean_ctor_set_uint8(x_301, sizeof(void*)*4, x_299); +x_302 = 0; +x_303 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_303, 0, x_301); +lean_ctor_set(x_303, 1, x_294); +lean_ctor_set(x_303, 2, x_295); +lean_ctor_set(x_303, 3, x_300); +lean_ctor_set_uint8(x_303, sizeof(void*)*4, x_302); +return x_303; +} +else +{ +uint8_t x_304; +x_304 = lean_ctor_get_uint8(x_298, sizeof(void*)*4); +if (x_304 == 0) +{ +lean_object* x_305; +x_305 = lean_ctor_get(x_298, 0); +lean_inc(x_305); +if (lean_obj_tag(x_305) == 0) +{ +lean_object* x_306; +x_306 = lean_ctor_get(x_298, 3); +lean_inc(x_306); +if (lean_obj_tag(x_306) == 0) +{ +lean_object* x_307; lean_object* x_308; lean_object* x_309; lean_object* x_310; lean_object* x_311; uint8_t x_312; lean_object* x_313; +x_307 = lean_ctor_get(x_298, 1); +lean_inc(x_307); +x_308 = lean_ctor_get(x_298, 2); +lean_inc(x_308); +if (lean_is_exclusive(x_298)) { + lean_ctor_release(x_298, 0); + lean_ctor_release(x_298, 1); + lean_ctor_release(x_298, 2); + lean_ctor_release(x_298, 3); + x_309 = x_298; +} else { + lean_dec_ref(x_298); + x_309 = lean_box(0); +} +if (lean_is_scalar(x_309)) { + x_310 = lean_alloc_ctor(1, 4, 1); +} else { + x_310 = x_309; +} +lean_ctor_set(x_310, 0, x_306); +lean_ctor_set(x_310, 1, x_307); +lean_ctor_set(x_310, 2, x_308); +lean_ctor_set(x_310, 3, x_306); +lean_ctor_set_uint8(x_310, sizeof(void*)*4, x_304); +x_311 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_311, 0, x_310); +lean_ctor_set(x_311, 1, x_291); +lean_ctor_set(x_311, 2, x_292); +lean_ctor_set(x_311, 3, x_293); +lean_ctor_set_uint8(x_311, sizeof(void*)*4, x_299); +x_312 = 0; +x_313 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_313, 0, x_311); +lean_ctor_set(x_313, 1, x_294); +lean_ctor_set(x_313, 2, x_295); +lean_ctor_set(x_313, 3, x_300); +lean_ctor_set_uint8(x_313, sizeof(void*)*4, x_312); +return x_313; +} +else +{ +uint8_t x_314; +x_314 = lean_ctor_get_uint8(x_306, sizeof(void*)*4); +if (x_314 == 0) +{ +lean_object* x_315; lean_object* x_316; lean_object* x_317; lean_object* x_318; lean_object* x_319; lean_object* x_320; lean_object* x_321; lean_object* x_322; lean_object* x_323; lean_object* x_324; uint8_t x_325; lean_object* x_326; lean_object* x_327; +x_315 = lean_ctor_get(x_298, 1); +lean_inc(x_315); +x_316 = lean_ctor_get(x_298, 2); +lean_inc(x_316); +if (lean_is_exclusive(x_298)) { + lean_ctor_release(x_298, 0); + lean_ctor_release(x_298, 1); + lean_ctor_release(x_298, 2); + lean_ctor_release(x_298, 3); + x_317 = x_298; +} else { + lean_dec_ref(x_298); + x_317 = lean_box(0); +} +x_318 = lean_ctor_get(x_306, 0); +lean_inc(x_318); +x_319 = lean_ctor_get(x_306, 1); +lean_inc(x_319); +x_320 = lean_ctor_get(x_306, 2); +lean_inc(x_320); +x_321 = lean_ctor_get(x_306, 3); +lean_inc(x_321); +if (lean_is_exclusive(x_306)) { + lean_ctor_release(x_306, 0); + lean_ctor_release(x_306, 1); + lean_ctor_release(x_306, 2); + lean_ctor_release(x_306, 3); + x_322 = x_306; +} else { + lean_dec_ref(x_306); + x_322 = lean_box(0); +} +if (lean_is_scalar(x_322)) { + x_323 = lean_alloc_ctor(1, 4, 1); +} else { + x_323 = x_322; +} +lean_ctor_set(x_323, 0, x_305); +lean_ctor_set(x_323, 1, x_315); +lean_ctor_set(x_323, 2, x_316); +lean_ctor_set(x_323, 3, x_318); +lean_ctor_set_uint8(x_323, sizeof(void*)*4, x_299); +if (lean_is_scalar(x_317)) { + x_324 = lean_alloc_ctor(1, 4, 1); +} else { + x_324 = x_317; +} +lean_ctor_set(x_324, 0, x_321); +lean_ctor_set(x_324, 1, x_291); +lean_ctor_set(x_324, 2, x_292); +lean_ctor_set(x_324, 3, x_293); +lean_ctor_set_uint8(x_324, sizeof(void*)*4, x_299); +x_325 = 0; +x_326 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_326, 0, x_323); +lean_ctor_set(x_326, 1, x_319); +lean_ctor_set(x_326, 2, x_320); +lean_ctor_set(x_326, 3, x_324); +lean_ctor_set_uint8(x_326, sizeof(void*)*4, x_325); +x_327 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_327, 0, x_326); +lean_ctor_set(x_327, 1, x_294); +lean_ctor_set(x_327, 2, x_295); +lean_ctor_set(x_327, 3, x_300); +lean_ctor_set_uint8(x_327, sizeof(void*)*4, x_325); +return x_327; +} +else +{ +lean_object* x_328; lean_object* x_329; lean_object* x_330; uint8_t x_331; lean_object* x_332; +if (lean_is_exclusive(x_306)) { + lean_ctor_release(x_306, 0); + lean_ctor_release(x_306, 1); + lean_ctor_release(x_306, 2); + lean_ctor_release(x_306, 3); + x_328 = x_306; +} else { + lean_dec_ref(x_306); + x_328 = lean_box(0); +} +lean_inc(x_298); +if (lean_is_scalar(x_328)) { + x_329 = lean_alloc_ctor(1, 4, 1); +} else { + x_329 = x_328; +} +lean_ctor_set(x_329, 0, x_298); +lean_ctor_set(x_329, 1, x_291); +lean_ctor_set(x_329, 2, x_292); +lean_ctor_set(x_329, 3, x_293); +if (lean_is_exclusive(x_298)) { + lean_ctor_release(x_298, 0); + lean_ctor_release(x_298, 1); + lean_ctor_release(x_298, 2); + lean_ctor_release(x_298, 3); + x_330 = x_298; +} else { + lean_dec_ref(x_298); + x_330 = lean_box(0); +} +lean_ctor_set_uint8(x_329, sizeof(void*)*4, x_299); +x_331 = 0; +if (lean_is_scalar(x_330)) { + x_332 = lean_alloc_ctor(1, 4, 1); +} else { + x_332 = x_330; +} +lean_ctor_set(x_332, 0, x_329); +lean_ctor_set(x_332, 1, x_294); +lean_ctor_set(x_332, 2, x_295); +lean_ctor_set(x_332, 3, x_300); +lean_ctor_set_uint8(x_332, sizeof(void*)*4, x_331); +return x_332; +} +} +} +else +{ +uint8_t x_333; +x_333 = lean_ctor_get_uint8(x_305, sizeof(void*)*4); +if (x_333 == 0) +{ +lean_object* x_334; lean_object* x_335; lean_object* x_336; lean_object* x_337; lean_object* x_338; lean_object* x_339; lean_object* x_340; lean_object* x_341; lean_object* x_342; lean_object* x_343; lean_object* x_344; uint8_t x_345; lean_object* x_346; lean_object* x_347; +x_334 = lean_ctor_get(x_298, 1); +lean_inc(x_334); +x_335 = lean_ctor_get(x_298, 2); +lean_inc(x_335); +x_336 = lean_ctor_get(x_298, 3); +lean_inc(x_336); +if (lean_is_exclusive(x_298)) { + lean_ctor_release(x_298, 0); + lean_ctor_release(x_298, 1); + lean_ctor_release(x_298, 2); + lean_ctor_release(x_298, 3); + x_337 = x_298; +} else { + lean_dec_ref(x_298); + x_337 = lean_box(0); +} +x_338 = lean_ctor_get(x_305, 0); +lean_inc(x_338); +x_339 = lean_ctor_get(x_305, 1); +lean_inc(x_339); +x_340 = lean_ctor_get(x_305, 2); +lean_inc(x_340); +x_341 = lean_ctor_get(x_305, 3); +lean_inc(x_341); +if (lean_is_exclusive(x_305)) { + lean_ctor_release(x_305, 0); + lean_ctor_release(x_305, 1); + lean_ctor_release(x_305, 2); + lean_ctor_release(x_305, 3); + x_342 = x_305; +} else { + lean_dec_ref(x_305); + x_342 = lean_box(0); +} +if (lean_is_scalar(x_342)) { + x_343 = lean_alloc_ctor(1, 4, 1); +} else { + x_343 = x_342; +} +lean_ctor_set(x_343, 0, x_338); +lean_ctor_set(x_343, 1, x_339); +lean_ctor_set(x_343, 2, x_340); +lean_ctor_set(x_343, 3, x_341); +lean_ctor_set_uint8(x_343, sizeof(void*)*4, x_299); +if (lean_is_scalar(x_337)) { + x_344 = lean_alloc_ctor(1, 4, 1); +} else { + x_344 = x_337; +} +lean_ctor_set(x_344, 0, x_336); +lean_ctor_set(x_344, 1, x_291); +lean_ctor_set(x_344, 2, x_292); +lean_ctor_set(x_344, 3, x_293); +lean_ctor_set_uint8(x_344, sizeof(void*)*4, x_299); +x_345 = 0; +x_346 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_346, 0, x_343); +lean_ctor_set(x_346, 1, x_334); +lean_ctor_set(x_346, 2, x_335); +lean_ctor_set(x_346, 3, x_344); +lean_ctor_set_uint8(x_346, sizeof(void*)*4, x_345); +x_347 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_347, 0, x_346); +lean_ctor_set(x_347, 1, x_294); +lean_ctor_set(x_347, 2, x_295); +lean_ctor_set(x_347, 3, x_300); +lean_ctor_set_uint8(x_347, sizeof(void*)*4, x_345); +return x_347; +} +else +{ +lean_object* x_348; +x_348 = lean_ctor_get(x_298, 3); +lean_inc(x_348); +if (lean_obj_tag(x_348) == 0) +{ +lean_object* x_349; lean_object* x_350; lean_object* x_351; uint8_t x_352; lean_object* x_353; +if (lean_is_exclusive(x_305)) { + lean_ctor_release(x_305, 0); + lean_ctor_release(x_305, 1); + lean_ctor_release(x_305, 2); + lean_ctor_release(x_305, 3); + x_349 = x_305; +} else { + lean_dec_ref(x_305); + x_349 = lean_box(0); +} +lean_inc(x_298); +if (lean_is_scalar(x_349)) { + x_350 = lean_alloc_ctor(1, 4, 1); +} else { + x_350 = x_349; +} +lean_ctor_set(x_350, 0, x_298); +lean_ctor_set(x_350, 1, x_291); +lean_ctor_set(x_350, 2, x_292); +lean_ctor_set(x_350, 3, x_293); +if (lean_is_exclusive(x_298)) { + lean_ctor_release(x_298, 0); + lean_ctor_release(x_298, 1); + lean_ctor_release(x_298, 2); + lean_ctor_release(x_298, 3); + x_351 = x_298; +} else { + lean_dec_ref(x_298); + x_351 = lean_box(0); +} +lean_ctor_set_uint8(x_350, sizeof(void*)*4, x_299); +x_352 = 0; +if (lean_is_scalar(x_351)) { + x_353 = lean_alloc_ctor(1, 4, 1); +} else { + x_353 = x_351; +} +lean_ctor_set(x_353, 0, x_350); +lean_ctor_set(x_353, 1, x_294); +lean_ctor_set(x_353, 2, x_295); +lean_ctor_set(x_353, 3, x_300); +lean_ctor_set_uint8(x_353, sizeof(void*)*4, x_352); +return x_353; +} +else +{ +uint8_t x_354; +x_354 = lean_ctor_get_uint8(x_348, sizeof(void*)*4); +if (x_354 == 0) +{ +lean_object* x_355; lean_object* x_356; lean_object* x_357; lean_object* x_358; lean_object* x_359; lean_object* x_360; lean_object* x_361; lean_object* x_362; lean_object* x_363; lean_object* x_364; lean_object* x_365; uint8_t x_366; lean_object* x_367; lean_object* x_368; +x_355 = lean_ctor_get(x_298, 1); +lean_inc(x_355); +x_356 = lean_ctor_get(x_298, 2); +lean_inc(x_356); +if (lean_is_exclusive(x_298)) { + lean_ctor_release(x_298, 0); + lean_ctor_release(x_298, 1); + lean_ctor_release(x_298, 2); + lean_ctor_release(x_298, 3); + x_357 = x_298; +} else { + lean_dec_ref(x_298); + x_357 = lean_box(0); +} +x_358 = lean_ctor_get(x_348, 0); +lean_inc(x_358); +x_359 = lean_ctor_get(x_348, 1); +lean_inc(x_359); +x_360 = lean_ctor_get(x_348, 2); +lean_inc(x_360); +x_361 = lean_ctor_get(x_348, 3); +lean_inc(x_361); +if (lean_is_exclusive(x_348)) { + lean_ctor_release(x_348, 0); + lean_ctor_release(x_348, 1); + lean_ctor_release(x_348, 2); + lean_ctor_release(x_348, 3); + x_362 = x_348; +} else { + lean_dec_ref(x_348); + x_362 = lean_box(0); +} +lean_inc(x_305); +if (lean_is_scalar(x_362)) { + x_363 = lean_alloc_ctor(1, 4, 1); +} else { + x_363 = x_362; +} +lean_ctor_set(x_363, 0, x_305); +lean_ctor_set(x_363, 1, x_355); +lean_ctor_set(x_363, 2, x_356); +lean_ctor_set(x_363, 3, x_358); +if (lean_is_exclusive(x_305)) { + lean_ctor_release(x_305, 0); + lean_ctor_release(x_305, 1); + lean_ctor_release(x_305, 2); + lean_ctor_release(x_305, 3); + x_364 = x_305; +} else { + lean_dec_ref(x_305); + x_364 = lean_box(0); +} +lean_ctor_set_uint8(x_363, sizeof(void*)*4, x_299); +if (lean_is_scalar(x_364)) { + x_365 = lean_alloc_ctor(1, 4, 1); +} else { + x_365 = x_364; +} +lean_ctor_set(x_365, 0, x_361); +lean_ctor_set(x_365, 1, x_291); +lean_ctor_set(x_365, 2, x_292); +lean_ctor_set(x_365, 3, x_293); +lean_ctor_set_uint8(x_365, sizeof(void*)*4, x_299); +x_366 = 0; +if (lean_is_scalar(x_357)) { + x_367 = lean_alloc_ctor(1, 4, 1); +} else { + x_367 = x_357; +} +lean_ctor_set(x_367, 0, x_363); +lean_ctor_set(x_367, 1, x_359); +lean_ctor_set(x_367, 2, x_360); +lean_ctor_set(x_367, 3, x_365); +lean_ctor_set_uint8(x_367, sizeof(void*)*4, x_366); +x_368 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_368, 0, x_367); +lean_ctor_set(x_368, 1, x_294); +lean_ctor_set(x_368, 2, x_295); +lean_ctor_set(x_368, 3, x_300); +lean_ctor_set_uint8(x_368, sizeof(void*)*4, x_366); +return x_368; +} +else +{ +lean_object* x_369; lean_object* x_370; lean_object* x_371; lean_object* x_372; lean_object* x_373; lean_object* x_374; lean_object* x_375; lean_object* x_376; lean_object* x_377; lean_object* x_378; lean_object* x_379; uint8_t x_380; lean_object* x_381; +x_369 = lean_ctor_get(x_298, 1); +lean_inc(x_369); +x_370 = lean_ctor_get(x_298, 2); +lean_inc(x_370); +if (lean_is_exclusive(x_298)) { + lean_ctor_release(x_298, 0); + lean_ctor_release(x_298, 1); + lean_ctor_release(x_298, 2); + lean_ctor_release(x_298, 3); + x_371 = x_298; +} else { + lean_dec_ref(x_298); + x_371 = lean_box(0); +} +x_372 = lean_ctor_get(x_305, 0); +lean_inc(x_372); +x_373 = lean_ctor_get(x_305, 1); +lean_inc(x_373); +x_374 = lean_ctor_get(x_305, 2); +lean_inc(x_374); +x_375 = lean_ctor_get(x_305, 3); +lean_inc(x_375); +if (lean_is_exclusive(x_305)) { + lean_ctor_release(x_305, 0); + lean_ctor_release(x_305, 1); + lean_ctor_release(x_305, 2); + lean_ctor_release(x_305, 3); + x_376 = x_305; +} else { + lean_dec_ref(x_305); + x_376 = lean_box(0); +} +if (lean_is_scalar(x_376)) { + x_377 = lean_alloc_ctor(1, 4, 1); +} else { + x_377 = x_376; +} +lean_ctor_set(x_377, 0, x_372); +lean_ctor_set(x_377, 1, x_373); +lean_ctor_set(x_377, 2, x_374); +lean_ctor_set(x_377, 3, x_375); +lean_ctor_set_uint8(x_377, sizeof(void*)*4, x_354); +if (lean_is_scalar(x_371)) { + x_378 = lean_alloc_ctor(1, 4, 1); +} else { + x_378 = x_371; +} +lean_ctor_set(x_378, 0, x_377); +lean_ctor_set(x_378, 1, x_369); +lean_ctor_set(x_378, 2, x_370); +lean_ctor_set(x_378, 3, x_348); +lean_ctor_set_uint8(x_378, sizeof(void*)*4, x_304); +x_379 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_379, 0, x_378); +lean_ctor_set(x_379, 1, x_291); +lean_ctor_set(x_379, 2, x_292); +lean_ctor_set(x_379, 3, x_293); +lean_ctor_set_uint8(x_379, sizeof(void*)*4, x_299); +x_380 = 0; +x_381 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_381, 0, x_379); +lean_ctor_set(x_381, 1, x_294); +lean_ctor_set(x_381, 2, x_295); +lean_ctor_set(x_381, 3, x_300); +lean_ctor_set_uint8(x_381, sizeof(void*)*4, x_380); +return x_381; } -lean_ctor_set(x_54, 0, x_49); -lean_ctor_set(x_54, 1, x_2); -lean_ctor_set(x_54, 2, x_3); -lean_ctor_set(x_54, 3, x_4); -lean_ctor_set_uint8(x_54, sizeof(void*)*4, x_53); -x_55 = 0; -x_56 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_56, 0, x_52); -lean_ctor_set(x_56, 1, x_47); -lean_ctor_set(x_56, 2, x_48); -lean_ctor_set(x_56, 3, x_54); -lean_ctor_set_uint8(x_56, sizeof(void*)*4, x_55); -return x_56; } } } } else { -uint8_t x_57; -x_57 = !lean_is_exclusive(x_1); -if (x_57 == 0) -{ -uint8_t x_58; lean_object* x_59; -x_58 = 0; -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_58); -x_59 = l_Lean_RBNode_balance_u2083___rarg(x_1, x_2, x_3, x_4); -return x_59; +lean_object* x_382; uint8_t x_383; lean_object* x_384; +x_382 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_382, 0, x_298); +lean_ctor_set(x_382, 1, x_291); +lean_ctor_set(x_382, 2, x_292); +lean_ctor_set(x_382, 3, x_293); +lean_ctor_set_uint8(x_382, sizeof(void*)*4, x_299); +x_383 = 0; +x_384 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_384, 0, x_382); +lean_ctor_set(x_384, 1, x_294); +lean_ctor_set(x_384, 2, x_295); +lean_ctor_set(x_384, 3, x_300); +lean_ctor_set_uint8(x_384, sizeof(void*)*4, x_383); +return x_384; +} +} +} +} +} } else { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; uint8_t x_64; lean_object* x_65; lean_object* x_66; -x_60 = lean_ctor_get(x_1, 0); -x_61 = lean_ctor_get(x_1, 1); -x_62 = lean_ctor_get(x_1, 2); -x_63 = lean_ctor_get(x_1, 3); -lean_inc(x_63); -lean_inc(x_62); -lean_inc(x_61); -lean_inc(x_60); +uint8_t x_385; +x_385 = !lean_is_exclusive(x_1); +if (x_385 == 0) +{ +lean_object* x_386; lean_object* x_387; lean_object* x_388; lean_object* x_389; uint8_t x_390; +x_386 = lean_ctor_get(x_1, 0); +x_387 = lean_ctor_get(x_1, 1); +x_388 = lean_ctor_get(x_1, 2); +x_389 = lean_ctor_get(x_1, 3); +x_390 = 0; +lean_inc(x_389); +lean_inc(x_388); +lean_inc(x_387); +lean_inc(x_386); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_390); +if (lean_obj_tag(x_386) == 0) +{ +if (lean_obj_tag(x_389) == 0) +{ +lean_object* x_391; uint8_t x_392; lean_object* x_393; lean_dec(x_1); -x_64 = 0; -x_65 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_65, 0, x_60); -lean_ctor_set(x_65, 1, x_61); -lean_ctor_set(x_65, 2, x_62); -lean_ctor_set(x_65, 3, x_63); -lean_ctor_set_uint8(x_65, sizeof(void*)*4, x_64); -x_66 = l_Lean_RBNode_balance_u2083___rarg(x_65, x_2, x_3, x_4); -return x_66; +x_391 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_391, 0, x_389); +lean_ctor_set(x_391, 1, x_387); +lean_ctor_set(x_391, 2, x_388); +lean_ctor_set(x_391, 3, x_389); +lean_ctor_set_uint8(x_391, sizeof(void*)*4, x_390); +x_392 = 1; +x_393 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_393, 0, x_391); +lean_ctor_set(x_393, 1, x_2); +lean_ctor_set(x_393, 2, x_3); +lean_ctor_set(x_393, 3, x_4); +lean_ctor_set_uint8(x_393, sizeof(void*)*4, x_392); +return x_393; +} +else +{ +uint8_t x_394; +x_394 = lean_ctor_get_uint8(x_389, sizeof(void*)*4); +if (x_394 == 0) +{ +uint8_t x_395; +lean_dec(x_1); +x_395 = !lean_is_exclusive(x_389); +if (x_395 == 0) +{ +lean_object* x_396; lean_object* x_397; lean_object* x_398; lean_object* x_399; uint8_t x_400; lean_object* x_401; lean_object* x_402; +x_396 = lean_ctor_get(x_389, 0); +x_397 = lean_ctor_get(x_389, 1); +x_398 = lean_ctor_get(x_389, 2); +x_399 = lean_ctor_get(x_389, 3); +x_400 = 1; +lean_ctor_set(x_389, 3, x_396); +lean_ctor_set(x_389, 2, x_388); +lean_ctor_set(x_389, 1, x_387); +lean_ctor_set(x_389, 0, x_386); +lean_ctor_set_uint8(x_389, sizeof(void*)*4, x_400); +x_401 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_401, 0, x_399); +lean_ctor_set(x_401, 1, x_2); +lean_ctor_set(x_401, 2, x_3); +lean_ctor_set(x_401, 3, x_4); +lean_ctor_set_uint8(x_401, sizeof(void*)*4, x_400); +x_402 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_402, 0, x_389); +lean_ctor_set(x_402, 1, x_397); +lean_ctor_set(x_402, 2, x_398); +lean_ctor_set(x_402, 3, x_401); +lean_ctor_set_uint8(x_402, sizeof(void*)*4, x_390); +return x_402; +} +else +{ +lean_object* x_403; lean_object* x_404; lean_object* x_405; lean_object* x_406; uint8_t x_407; lean_object* x_408; lean_object* x_409; lean_object* x_410; +x_403 = lean_ctor_get(x_389, 0); +x_404 = lean_ctor_get(x_389, 1); +x_405 = lean_ctor_get(x_389, 2); +x_406 = lean_ctor_get(x_389, 3); +lean_inc(x_406); +lean_inc(x_405); +lean_inc(x_404); +lean_inc(x_403); +lean_dec(x_389); +x_407 = 1; +x_408 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_408, 0, x_386); +lean_ctor_set(x_408, 1, x_387); +lean_ctor_set(x_408, 2, x_388); +lean_ctor_set(x_408, 3, x_403); +lean_ctor_set_uint8(x_408, sizeof(void*)*4, x_407); +x_409 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_409, 0, x_406); +lean_ctor_set(x_409, 1, x_2); +lean_ctor_set(x_409, 2, x_3); +lean_ctor_set(x_409, 3, x_4); +lean_ctor_set_uint8(x_409, sizeof(void*)*4, x_407); +x_410 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_410, 0, x_408); +lean_ctor_set(x_410, 1, x_404); +lean_ctor_set(x_410, 2, x_405); +lean_ctor_set(x_410, 3, x_409); +lean_ctor_set_uint8(x_410, sizeof(void*)*4, x_390); +return x_410; +} +} +else +{ +uint8_t x_411; +lean_dec(x_388); +lean_dec(x_387); +x_411 = !lean_is_exclusive(x_389); +if (x_411 == 0) +{ +lean_object* x_412; lean_object* x_413; lean_object* x_414; lean_object* x_415; uint8_t x_416; +x_412 = lean_ctor_get(x_389, 3); +lean_dec(x_412); +x_413 = lean_ctor_get(x_389, 2); +lean_dec(x_413); +x_414 = lean_ctor_get(x_389, 1); +lean_dec(x_414); +x_415 = lean_ctor_get(x_389, 0); +lean_dec(x_415); +x_416 = 1; +lean_ctor_set(x_389, 3, x_4); +lean_ctor_set(x_389, 2, x_3); +lean_ctor_set(x_389, 1, x_2); +lean_ctor_set(x_389, 0, x_1); +lean_ctor_set_uint8(x_389, sizeof(void*)*4, x_416); +return x_389; +} +else +{ +uint8_t x_417; lean_object* x_418; +lean_dec(x_389); +x_417 = 1; +x_418 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_418, 0, x_1); +lean_ctor_set(x_418, 1, x_2); +lean_ctor_set(x_418, 2, x_3); +lean_ctor_set(x_418, 3, x_4); +lean_ctor_set_uint8(x_418, sizeof(void*)*4, x_417); +return x_418; } } } } else { -uint8_t x_67; -x_67 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); -if (x_67 == 0) +uint8_t x_419; +x_419 = lean_ctor_get_uint8(x_386, sizeof(void*)*4); +if (x_419 == 0) { -uint8_t x_68; -x_68 = !lean_is_exclusive(x_4); -if (x_68 == 0) +uint8_t x_420; +lean_dec(x_1); +x_420 = !lean_is_exclusive(x_386); +if (x_420 == 0) { -uint8_t x_69; uint8_t x_70; lean_object* x_71; -x_69 = 1; -lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_69); -x_70 = 0; -x_71 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_71, 0, x_1); -lean_ctor_set(x_71, 1, x_2); -lean_ctor_set(x_71, 2, x_3); -lean_ctor_set(x_71, 3, x_4); -lean_ctor_set_uint8(x_71, sizeof(void*)*4, x_70); -return x_71; +uint8_t x_421; lean_object* x_422; lean_object* x_423; +x_421 = 1; +lean_ctor_set_uint8(x_386, sizeof(void*)*4, x_421); +x_422 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_422, 0, x_389); +lean_ctor_set(x_422, 1, x_2); +lean_ctor_set(x_422, 2, x_3); +lean_ctor_set(x_422, 3, x_4); +lean_ctor_set_uint8(x_422, sizeof(void*)*4, x_421); +x_423 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_423, 0, x_386); +lean_ctor_set(x_423, 1, x_387); +lean_ctor_set(x_423, 2, x_388); +lean_ctor_set(x_423, 3, x_422); +lean_ctor_set_uint8(x_423, sizeof(void*)*4, x_390); +return x_423; } else { -lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; uint8_t x_76; lean_object* x_77; uint8_t x_78; lean_object* x_79; -x_72 = lean_ctor_get(x_4, 0); -x_73 = lean_ctor_get(x_4, 1); -x_74 = lean_ctor_get(x_4, 2); -x_75 = lean_ctor_get(x_4, 3); -lean_inc(x_75); -lean_inc(x_74); -lean_inc(x_73); -lean_inc(x_72); +lean_object* x_424; lean_object* x_425; lean_object* x_426; lean_object* x_427; uint8_t x_428; lean_object* x_429; lean_object* x_430; lean_object* x_431; +x_424 = lean_ctor_get(x_386, 0); +x_425 = lean_ctor_get(x_386, 1); +x_426 = lean_ctor_get(x_386, 2); +x_427 = lean_ctor_get(x_386, 3); +lean_inc(x_427); +lean_inc(x_426); +lean_inc(x_425); +lean_inc(x_424); +lean_dec(x_386); +x_428 = 1; +x_429 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_429, 0, x_424); +lean_ctor_set(x_429, 1, x_425); +lean_ctor_set(x_429, 2, x_426); +lean_ctor_set(x_429, 3, x_427); +lean_ctor_set_uint8(x_429, sizeof(void*)*4, x_428); +x_430 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_430, 0, x_389); +lean_ctor_set(x_430, 1, x_2); +lean_ctor_set(x_430, 2, x_3); +lean_ctor_set(x_430, 3, x_4); +lean_ctor_set_uint8(x_430, sizeof(void*)*4, x_428); +x_431 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_431, 0, x_429); +lean_ctor_set(x_431, 1, x_387); +lean_ctor_set(x_431, 2, x_388); +lean_ctor_set(x_431, 3, x_430); +lean_ctor_set_uint8(x_431, sizeof(void*)*4, x_390); +return x_431; +} +} +else +{ +if (lean_obj_tag(x_389) == 0) +{ +uint8_t x_432; +lean_dec(x_388); +lean_dec(x_387); +x_432 = !lean_is_exclusive(x_386); +if (x_432 == 0) +{ +lean_object* x_433; lean_object* x_434; lean_object* x_435; lean_object* x_436; uint8_t x_437; +x_433 = lean_ctor_get(x_386, 3); +lean_dec(x_433); +x_434 = lean_ctor_get(x_386, 2); +lean_dec(x_434); +x_435 = lean_ctor_get(x_386, 1); +lean_dec(x_435); +x_436 = lean_ctor_get(x_386, 0); +lean_dec(x_436); +x_437 = 1; +lean_ctor_set(x_386, 3, x_4); +lean_ctor_set(x_386, 2, x_3); +lean_ctor_set(x_386, 1, x_2); +lean_ctor_set(x_386, 0, x_1); +lean_ctor_set_uint8(x_386, sizeof(void*)*4, x_437); +return x_386; +} +else +{ +uint8_t x_438; lean_object* x_439; +lean_dec(x_386); +x_438 = 1; +x_439 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_439, 0, x_1); +lean_ctor_set(x_439, 1, x_2); +lean_ctor_set(x_439, 2, x_3); +lean_ctor_set(x_439, 3, x_4); +lean_ctor_set_uint8(x_439, sizeof(void*)*4, x_438); +return x_439; +} +} +else +{ +uint8_t x_440; +lean_dec(x_1); +x_440 = lean_ctor_get_uint8(x_389, sizeof(void*)*4); +if (x_440 == 0) +{ +uint8_t x_441; +x_441 = !lean_is_exclusive(x_389); +if (x_441 == 0) +{ +lean_object* x_442; lean_object* x_443; lean_object* x_444; lean_object* x_445; uint8_t x_446; uint8_t x_447; +x_442 = lean_ctor_get(x_389, 0); +x_443 = lean_ctor_get(x_389, 1); +x_444 = lean_ctor_get(x_389, 2); +x_445 = lean_ctor_get(x_389, 3); +x_446 = 1; +lean_inc(x_386); +lean_ctor_set(x_389, 3, x_442); +lean_ctor_set(x_389, 2, x_388); +lean_ctor_set(x_389, 1, x_387); +lean_ctor_set(x_389, 0, x_386); +x_447 = !lean_is_exclusive(x_386); +if (x_447 == 0) +{ +lean_object* x_448; lean_object* x_449; lean_object* x_450; lean_object* x_451; lean_object* x_452; +x_448 = lean_ctor_get(x_386, 3); +lean_dec(x_448); +x_449 = lean_ctor_get(x_386, 2); +lean_dec(x_449); +x_450 = lean_ctor_get(x_386, 1); +lean_dec(x_450); +x_451 = lean_ctor_get(x_386, 0); +lean_dec(x_451); +lean_ctor_set_uint8(x_389, sizeof(void*)*4, x_446); +lean_ctor_set(x_386, 3, x_4); +lean_ctor_set(x_386, 2, x_3); +lean_ctor_set(x_386, 1, x_2); +lean_ctor_set(x_386, 0, x_445); +lean_ctor_set_uint8(x_386, sizeof(void*)*4, x_446); +x_452 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_452, 0, x_389); +lean_ctor_set(x_452, 1, x_443); +lean_ctor_set(x_452, 2, x_444); +lean_ctor_set(x_452, 3, x_386); +lean_ctor_set_uint8(x_452, sizeof(void*)*4, x_390); +return x_452; +} +else +{ +lean_object* x_453; lean_object* x_454; +lean_dec(x_386); +lean_ctor_set_uint8(x_389, sizeof(void*)*4, x_446); +x_453 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_453, 0, x_445); +lean_ctor_set(x_453, 1, x_2); +lean_ctor_set(x_453, 2, x_3); +lean_ctor_set(x_453, 3, x_4); +lean_ctor_set_uint8(x_453, sizeof(void*)*4, x_446); +x_454 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_454, 0, x_389); +lean_ctor_set(x_454, 1, x_443); +lean_ctor_set(x_454, 2, x_444); +lean_ctor_set(x_454, 3, x_453); +lean_ctor_set_uint8(x_454, sizeof(void*)*4, x_390); +return x_454; +} +} +else +{ +lean_object* x_455; lean_object* x_456; lean_object* x_457; lean_object* x_458; uint8_t x_459; lean_object* x_460; lean_object* x_461; lean_object* x_462; lean_object* x_463; +x_455 = lean_ctor_get(x_389, 0); +x_456 = lean_ctor_get(x_389, 1); +x_457 = lean_ctor_get(x_389, 2); +x_458 = lean_ctor_get(x_389, 3); +lean_inc(x_458); +lean_inc(x_457); +lean_inc(x_456); +lean_inc(x_455); +lean_dec(x_389); +x_459 = 1; +lean_inc(x_386); +x_460 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_460, 0, x_386); +lean_ctor_set(x_460, 1, x_387); +lean_ctor_set(x_460, 2, x_388); +lean_ctor_set(x_460, 3, x_455); +if (lean_is_exclusive(x_386)) { + lean_ctor_release(x_386, 0); + lean_ctor_release(x_386, 1); + lean_ctor_release(x_386, 2); + lean_ctor_release(x_386, 3); + x_461 = x_386; +} else { + lean_dec_ref(x_386); + x_461 = lean_box(0); +} +lean_ctor_set_uint8(x_460, sizeof(void*)*4, x_459); +if (lean_is_scalar(x_461)) { + x_462 = lean_alloc_ctor(1, 4, 1); +} else { + x_462 = x_461; +} +lean_ctor_set(x_462, 0, x_458); +lean_ctor_set(x_462, 1, x_2); +lean_ctor_set(x_462, 2, x_3); +lean_ctor_set(x_462, 3, x_4); +lean_ctor_set_uint8(x_462, sizeof(void*)*4, x_459); +x_463 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_463, 0, x_460); +lean_ctor_set(x_463, 1, x_456); +lean_ctor_set(x_463, 2, x_457); +lean_ctor_set(x_463, 3, x_462); +lean_ctor_set_uint8(x_463, sizeof(void*)*4, x_390); +return x_463; +} +} +else +{ +uint8_t x_464; +x_464 = !lean_is_exclusive(x_386); +if (x_464 == 0) +{ +lean_object* x_465; uint8_t x_466; lean_object* x_467; +lean_ctor_set_uint8(x_386, sizeof(void*)*4, x_440); +x_465 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_465, 0, x_386); +lean_ctor_set(x_465, 1, x_387); +lean_ctor_set(x_465, 2, x_388); +lean_ctor_set(x_465, 3, x_389); +lean_ctor_set_uint8(x_465, sizeof(void*)*4, x_390); +x_466 = 1; +x_467 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_467, 0, x_465); +lean_ctor_set(x_467, 1, x_2); +lean_ctor_set(x_467, 2, x_3); +lean_ctor_set(x_467, 3, x_4); +lean_ctor_set_uint8(x_467, sizeof(void*)*4, x_466); +return x_467; +} +else +{ +lean_object* x_468; lean_object* x_469; lean_object* x_470; lean_object* x_471; lean_object* x_472; lean_object* x_473; uint8_t x_474; lean_object* x_475; +x_468 = lean_ctor_get(x_386, 0); +x_469 = lean_ctor_get(x_386, 1); +x_470 = lean_ctor_get(x_386, 2); +x_471 = lean_ctor_get(x_386, 3); +lean_inc(x_471); +lean_inc(x_470); +lean_inc(x_469); +lean_inc(x_468); +lean_dec(x_386); +x_472 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_472, 0, x_468); +lean_ctor_set(x_472, 1, x_469); +lean_ctor_set(x_472, 2, x_470); +lean_ctor_set(x_472, 3, x_471); +lean_ctor_set_uint8(x_472, sizeof(void*)*4, x_440); +x_473 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_473, 0, x_472); +lean_ctor_set(x_473, 1, x_387); +lean_ctor_set(x_473, 2, x_388); +lean_ctor_set(x_473, 3, x_389); +lean_ctor_set_uint8(x_473, sizeof(void*)*4, x_390); +x_474 = 1; +x_475 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_475, 0, x_473); +lean_ctor_set(x_475, 1, x_2); +lean_ctor_set(x_475, 2, x_3); +lean_ctor_set(x_475, 3, x_4); +lean_ctor_set_uint8(x_475, sizeof(void*)*4, x_474); +return x_475; +} +} +} +} +} +} +else +{ +lean_object* x_476; lean_object* x_477; lean_object* x_478; lean_object* x_479; uint8_t x_480; lean_object* x_481; +x_476 = lean_ctor_get(x_1, 0); +x_477 = lean_ctor_get(x_1, 1); +x_478 = lean_ctor_get(x_1, 2); +x_479 = lean_ctor_get(x_1, 3); +lean_inc(x_479); +lean_inc(x_478); +lean_inc(x_477); +lean_inc(x_476); +lean_dec(x_1); +x_480 = 0; +lean_inc(x_479); +lean_inc(x_478); +lean_inc(x_477); +lean_inc(x_476); +x_481 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_481, 0, x_476); +lean_ctor_set(x_481, 1, x_477); +lean_ctor_set(x_481, 2, x_478); +lean_ctor_set(x_481, 3, x_479); +lean_ctor_set_uint8(x_481, sizeof(void*)*4, x_480); +if (lean_obj_tag(x_476) == 0) +{ +if (lean_obj_tag(x_479) == 0) +{ +lean_object* x_482; uint8_t x_483; lean_object* x_484; +lean_dec(x_481); +x_482 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_482, 0, x_479); +lean_ctor_set(x_482, 1, x_477); +lean_ctor_set(x_482, 2, x_478); +lean_ctor_set(x_482, 3, x_479); +lean_ctor_set_uint8(x_482, sizeof(void*)*4, x_480); +x_483 = 1; +x_484 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_484, 0, x_482); +lean_ctor_set(x_484, 1, x_2); +lean_ctor_set(x_484, 2, x_3); +lean_ctor_set(x_484, 3, x_4); +lean_ctor_set_uint8(x_484, sizeof(void*)*4, x_483); +return x_484; +} +else +{ +uint8_t x_485; +x_485 = lean_ctor_get_uint8(x_479, sizeof(void*)*4); +if (x_485 == 0) +{ +lean_object* x_486; lean_object* x_487; lean_object* x_488; lean_object* x_489; lean_object* x_490; uint8_t x_491; lean_object* x_492; lean_object* x_493; lean_object* x_494; +lean_dec(x_481); +x_486 = lean_ctor_get(x_479, 0); +lean_inc(x_486); +x_487 = lean_ctor_get(x_479, 1); +lean_inc(x_487); +x_488 = lean_ctor_get(x_479, 2); +lean_inc(x_488); +x_489 = lean_ctor_get(x_479, 3); +lean_inc(x_489); +if (lean_is_exclusive(x_479)) { + lean_ctor_release(x_479, 0); + lean_ctor_release(x_479, 1); + lean_ctor_release(x_479, 2); + lean_ctor_release(x_479, 3); + x_490 = x_479; +} else { + lean_dec_ref(x_479); + x_490 = lean_box(0); +} +x_491 = 1; +if (lean_is_scalar(x_490)) { + x_492 = lean_alloc_ctor(1, 4, 1); +} else { + x_492 = x_490; +} +lean_ctor_set(x_492, 0, x_476); +lean_ctor_set(x_492, 1, x_477); +lean_ctor_set(x_492, 2, x_478); +lean_ctor_set(x_492, 3, x_486); +lean_ctor_set_uint8(x_492, sizeof(void*)*4, x_491); +x_493 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_493, 0, x_489); +lean_ctor_set(x_493, 1, x_2); +lean_ctor_set(x_493, 2, x_3); +lean_ctor_set(x_493, 3, x_4); +lean_ctor_set_uint8(x_493, sizeof(void*)*4, x_491); +x_494 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_494, 0, x_492); +lean_ctor_set(x_494, 1, x_487); +lean_ctor_set(x_494, 2, x_488); +lean_ctor_set(x_494, 3, x_493); +lean_ctor_set_uint8(x_494, sizeof(void*)*4, x_480); +return x_494; +} +else +{ +lean_object* x_495; uint8_t x_496; lean_object* x_497; +lean_dec(x_478); +lean_dec(x_477); +if (lean_is_exclusive(x_479)) { + lean_ctor_release(x_479, 0); + lean_ctor_release(x_479, 1); + lean_ctor_release(x_479, 2); + lean_ctor_release(x_479, 3); + x_495 = x_479; +} else { + lean_dec_ref(x_479); + x_495 = lean_box(0); +} +x_496 = 1; +if (lean_is_scalar(x_495)) { + x_497 = lean_alloc_ctor(1, 4, 1); +} else { + x_497 = x_495; +} +lean_ctor_set(x_497, 0, x_481); +lean_ctor_set(x_497, 1, x_2); +lean_ctor_set(x_497, 2, x_3); +lean_ctor_set(x_497, 3, x_4); +lean_ctor_set_uint8(x_497, sizeof(void*)*4, x_496); +return x_497; +} +} +} +else +{ +uint8_t x_498; +x_498 = lean_ctor_get_uint8(x_476, sizeof(void*)*4); +if (x_498 == 0) +{ +lean_object* x_499; lean_object* x_500; lean_object* x_501; lean_object* x_502; lean_object* x_503; uint8_t x_504; lean_object* x_505; lean_object* x_506; lean_object* x_507; +lean_dec(x_481); +x_499 = lean_ctor_get(x_476, 0); +lean_inc(x_499); +x_500 = lean_ctor_get(x_476, 1); +lean_inc(x_500); +x_501 = lean_ctor_get(x_476, 2); +lean_inc(x_501); +x_502 = lean_ctor_get(x_476, 3); +lean_inc(x_502); +if (lean_is_exclusive(x_476)) { + lean_ctor_release(x_476, 0); + lean_ctor_release(x_476, 1); + lean_ctor_release(x_476, 2); + lean_ctor_release(x_476, 3); + x_503 = x_476; +} else { + lean_dec_ref(x_476); + x_503 = lean_box(0); +} +x_504 = 1; +if (lean_is_scalar(x_503)) { + x_505 = lean_alloc_ctor(1, 4, 1); +} else { + x_505 = x_503; +} +lean_ctor_set(x_505, 0, x_499); +lean_ctor_set(x_505, 1, x_500); +lean_ctor_set(x_505, 2, x_501); +lean_ctor_set(x_505, 3, x_502); +lean_ctor_set_uint8(x_505, sizeof(void*)*4, x_504); +x_506 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_506, 0, x_479); +lean_ctor_set(x_506, 1, x_2); +lean_ctor_set(x_506, 2, x_3); +lean_ctor_set(x_506, 3, x_4); +lean_ctor_set_uint8(x_506, sizeof(void*)*4, x_504); +x_507 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_507, 0, x_505); +lean_ctor_set(x_507, 1, x_477); +lean_ctor_set(x_507, 2, x_478); +lean_ctor_set(x_507, 3, x_506); +lean_ctor_set_uint8(x_507, sizeof(void*)*4, x_480); +return x_507; +} +else +{ +if (lean_obj_tag(x_479) == 0) +{ +lean_object* x_508; uint8_t x_509; lean_object* x_510; +lean_dec(x_478); +lean_dec(x_477); +if (lean_is_exclusive(x_476)) { + lean_ctor_release(x_476, 0); + lean_ctor_release(x_476, 1); + lean_ctor_release(x_476, 2); + lean_ctor_release(x_476, 3); + x_508 = x_476; +} else { + lean_dec_ref(x_476); + x_508 = lean_box(0); +} +x_509 = 1; +if (lean_is_scalar(x_508)) { + x_510 = lean_alloc_ctor(1, 4, 1); +} else { + x_510 = x_508; +} +lean_ctor_set(x_510, 0, x_481); +lean_ctor_set(x_510, 1, x_2); +lean_ctor_set(x_510, 2, x_3); +lean_ctor_set(x_510, 3, x_4); +lean_ctor_set_uint8(x_510, sizeof(void*)*4, x_509); +return x_510; +} +else +{ +uint8_t x_511; +lean_dec(x_481); +x_511 = lean_ctor_get_uint8(x_479, sizeof(void*)*4); +if (x_511 == 0) +{ +lean_object* x_512; lean_object* x_513; lean_object* x_514; lean_object* x_515; lean_object* x_516; uint8_t x_517; lean_object* x_518; lean_object* x_519; lean_object* x_520; lean_object* x_521; +x_512 = lean_ctor_get(x_479, 0); +lean_inc(x_512); +x_513 = lean_ctor_get(x_479, 1); +lean_inc(x_513); +x_514 = lean_ctor_get(x_479, 2); +lean_inc(x_514); +x_515 = lean_ctor_get(x_479, 3); +lean_inc(x_515); +if (lean_is_exclusive(x_479)) { + lean_ctor_release(x_479, 0); + lean_ctor_release(x_479, 1); + lean_ctor_release(x_479, 2); + lean_ctor_release(x_479, 3); + x_516 = x_479; +} else { + lean_dec_ref(x_479); + x_516 = lean_box(0); +} +x_517 = 1; +lean_inc(x_476); +if (lean_is_scalar(x_516)) { + x_518 = lean_alloc_ctor(1, 4, 1); +} else { + x_518 = x_516; +} +lean_ctor_set(x_518, 0, x_476); +lean_ctor_set(x_518, 1, x_477); +lean_ctor_set(x_518, 2, x_478); +lean_ctor_set(x_518, 3, x_512); +if (lean_is_exclusive(x_476)) { + lean_ctor_release(x_476, 0); + lean_ctor_release(x_476, 1); + lean_ctor_release(x_476, 2); + lean_ctor_release(x_476, 3); + x_519 = x_476; +} else { + lean_dec_ref(x_476); + x_519 = lean_box(0); +} +lean_ctor_set_uint8(x_518, sizeof(void*)*4, x_517); +if (lean_is_scalar(x_519)) { + x_520 = lean_alloc_ctor(1, 4, 1); +} else { + x_520 = x_519; +} +lean_ctor_set(x_520, 0, x_515); +lean_ctor_set(x_520, 1, x_2); +lean_ctor_set(x_520, 2, x_3); +lean_ctor_set(x_520, 3, x_4); +lean_ctor_set_uint8(x_520, sizeof(void*)*4, x_517); +x_521 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_521, 0, x_518); +lean_ctor_set(x_521, 1, x_513); +lean_ctor_set(x_521, 2, x_514); +lean_ctor_set(x_521, 3, x_520); +lean_ctor_set_uint8(x_521, sizeof(void*)*4, x_480); +return x_521; +} +else +{ +lean_object* x_522; lean_object* x_523; lean_object* x_524; lean_object* x_525; lean_object* x_526; lean_object* x_527; lean_object* x_528; uint8_t x_529; lean_object* x_530; +x_522 = lean_ctor_get(x_476, 0); +lean_inc(x_522); +x_523 = lean_ctor_get(x_476, 1); +lean_inc(x_523); +x_524 = lean_ctor_get(x_476, 2); +lean_inc(x_524); +x_525 = lean_ctor_get(x_476, 3); +lean_inc(x_525); +if (lean_is_exclusive(x_476)) { + lean_ctor_release(x_476, 0); + lean_ctor_release(x_476, 1); + lean_ctor_release(x_476, 2); + lean_ctor_release(x_476, 3); + x_526 = x_476; +} else { + lean_dec_ref(x_476); + x_526 = lean_box(0); +} +if (lean_is_scalar(x_526)) { + x_527 = lean_alloc_ctor(1, 4, 1); +} else { + x_527 = x_526; +} +lean_ctor_set(x_527, 0, x_522); +lean_ctor_set(x_527, 1, x_523); +lean_ctor_set(x_527, 2, x_524); +lean_ctor_set(x_527, 3, x_525); +lean_ctor_set_uint8(x_527, sizeof(void*)*4, x_511); +x_528 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_528, 0, x_527); +lean_ctor_set(x_528, 1, x_477); +lean_ctor_set(x_528, 2, x_478); +lean_ctor_set(x_528, 3, x_479); +lean_ctor_set_uint8(x_528, sizeof(void*)*4, x_480); +x_529 = 1; +x_530 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_530, 0, x_528); +lean_ctor_set(x_530, 1, x_2); +lean_ctor_set(x_530, 2, x_3); +lean_ctor_set(x_530, 3, x_4); +lean_ctor_set_uint8(x_530, sizeof(void*)*4, x_529); +return x_530; +} +} +} +} +} +} +} +} +else +{ +uint8_t x_531; +x_531 = lean_ctor_get_uint8(x_4, sizeof(void*)*4); +if (x_531 == 0) +{ +uint8_t x_532; +x_532 = !lean_is_exclusive(x_4); +if (x_532 == 0) +{ +uint8_t x_533; uint8_t x_534; lean_object* x_535; +x_533 = 1; +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_533); +x_534 = 0; +x_535 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_535, 0, x_1); +lean_ctor_set(x_535, 1, x_2); +lean_ctor_set(x_535, 2, x_3); +lean_ctor_set(x_535, 3, x_4); +lean_ctor_set_uint8(x_535, sizeof(void*)*4, x_534); +return x_535; +} +else +{ +lean_object* x_536; lean_object* x_537; lean_object* x_538; lean_object* x_539; uint8_t x_540; lean_object* x_541; uint8_t x_542; lean_object* x_543; +x_536 = lean_ctor_get(x_4, 0); +x_537 = lean_ctor_get(x_4, 1); +x_538 = lean_ctor_get(x_4, 2); +x_539 = lean_ctor_get(x_4, 3); +lean_inc(x_539); +lean_inc(x_538); +lean_inc(x_537); +lean_inc(x_536); lean_dec(x_4); -x_76 = 1; -x_77 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_77, 0, x_72); -lean_ctor_set(x_77, 1, x_73); -lean_ctor_set(x_77, 2, x_74); -lean_ctor_set(x_77, 3, x_75); -lean_ctor_set_uint8(x_77, sizeof(void*)*4, x_76); -x_78 = 0; -x_79 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_79, 0, x_1); -lean_ctor_set(x_79, 1, x_2); -lean_ctor_set(x_79, 2, x_3); -lean_ctor_set(x_79, 3, x_77); -lean_ctor_set_uint8(x_79, sizeof(void*)*4, x_78); -return x_79; +x_540 = 1; +x_541 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_541, 0, x_536); +lean_ctor_set(x_541, 1, x_537); +lean_ctor_set(x_541, 2, x_538); +lean_ctor_set(x_541, 3, x_539); +lean_ctor_set_uint8(x_541, sizeof(void*)*4, x_540); +x_542 = 0; +x_543 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_543, 0, x_1); +lean_ctor_set(x_543, 1, x_2); +lean_ctor_set(x_543, 2, x_3); +lean_ctor_set(x_543, 3, x_541); +lean_ctor_set_uint8(x_543, sizeof(void*)*4, x_542); +return x_543; } } else { if (lean_obj_tag(x_1) == 0) { -uint8_t x_80; lean_object* x_81; -x_80 = 0; -x_81 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_81, 0, x_1); -lean_ctor_set(x_81, 1, x_2); -lean_ctor_set(x_81, 2, x_3); -lean_ctor_set(x_81, 3, x_4); -lean_ctor_set_uint8(x_81, sizeof(void*)*4, x_80); -return x_81; +uint8_t x_544; lean_object* x_545; +x_544 = 0; +x_545 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_545, 0, x_1); +lean_ctor_set(x_545, 1, x_2); +lean_ctor_set(x_545, 2, x_3); +lean_ctor_set(x_545, 3, x_4); +lean_ctor_set_uint8(x_545, sizeof(void*)*4, x_544); +return x_545; } else { -uint8_t x_82; -x_82 = lean_ctor_get_uint8(x_1, sizeof(void*)*4); -if (x_82 == 0) +uint8_t x_546; +x_546 = lean_ctor_get_uint8(x_1, sizeof(void*)*4); +if (x_546 == 0) { -lean_object* x_83; -x_83 = lean_ctor_get(x_1, 3); -lean_inc(x_83); -if (lean_obj_tag(x_83) == 0) +lean_object* x_547; +x_547 = lean_ctor_get(x_1, 3); +lean_inc(x_547); +if (lean_obj_tag(x_547) == 0) { -uint8_t x_84; lean_object* x_85; -x_84 = 0; -x_85 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_85, 0, x_1); -lean_ctor_set(x_85, 1, x_2); -lean_ctor_set(x_85, 2, x_3); -lean_ctor_set(x_85, 3, x_4); -lean_ctor_set_uint8(x_85, sizeof(void*)*4, x_84); -return x_85; +uint8_t x_548; lean_object* x_549; +x_548 = 0; +x_549 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_549, 0, x_1); +lean_ctor_set(x_549, 1, x_2); +lean_ctor_set(x_549, 2, x_3); +lean_ctor_set(x_549, 3, x_4); +lean_ctor_set_uint8(x_549, sizeof(void*)*4, x_548); +return x_549; } else { -uint8_t x_86; -x_86 = lean_ctor_get_uint8(x_83, sizeof(void*)*4); -if (x_86 == 0) +uint8_t x_550; +x_550 = lean_ctor_get_uint8(x_547, sizeof(void*)*4); +if (x_550 == 0) { -uint8_t x_87; -x_87 = !lean_is_exclusive(x_83); -if (x_87 == 0) +uint8_t x_551; +x_551 = !lean_is_exclusive(x_547); +if (x_551 == 0) { -lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; uint8_t x_92; -x_88 = lean_ctor_get(x_83, 3); -lean_dec(x_88); -x_89 = lean_ctor_get(x_83, 2); -lean_dec(x_89); -x_90 = lean_ctor_get(x_83, 1); -lean_dec(x_90); -x_91 = lean_ctor_get(x_83, 0); -lean_dec(x_91); -x_92 = 0; -lean_ctor_set(x_83, 3, x_4); -lean_ctor_set(x_83, 2, x_3); -lean_ctor_set(x_83, 1, x_2); -lean_ctor_set(x_83, 0, x_1); -lean_ctor_set_uint8(x_83, sizeof(void*)*4, x_92); -return x_83; +lean_object* x_552; lean_object* x_553; lean_object* x_554; lean_object* x_555; uint8_t x_556; +x_552 = lean_ctor_get(x_547, 3); +lean_dec(x_552); +x_553 = lean_ctor_get(x_547, 2); +lean_dec(x_553); +x_554 = lean_ctor_get(x_547, 1); +lean_dec(x_554); +x_555 = lean_ctor_get(x_547, 0); +lean_dec(x_555); +x_556 = 0; +lean_ctor_set(x_547, 3, x_4); +lean_ctor_set(x_547, 2, x_3); +lean_ctor_set(x_547, 1, x_2); +lean_ctor_set(x_547, 0, x_1); +lean_ctor_set_uint8(x_547, sizeof(void*)*4, x_556); +return x_547; } else { -uint8_t x_93; lean_object* x_94; -lean_dec(x_83); -x_93 = 0; -x_94 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_94, 0, x_1); -lean_ctor_set(x_94, 1, x_2); -lean_ctor_set(x_94, 2, x_3); -lean_ctor_set(x_94, 3, x_4); -lean_ctor_set_uint8(x_94, sizeof(void*)*4, x_93); -return x_94; +uint8_t x_557; lean_object* x_558; +lean_dec(x_547); +x_557 = 0; +x_558 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_558, 0, x_1); +lean_ctor_set(x_558, 1, x_2); +lean_ctor_set(x_558, 2, x_3); +lean_ctor_set(x_558, 3, x_4); +lean_ctor_set_uint8(x_558, sizeof(void*)*4, x_557); +return x_558; } } else { -uint8_t x_95; -x_95 = !lean_is_exclusive(x_1); -if (x_95 == 0) +uint8_t x_559; +x_559 = !lean_is_exclusive(x_1); +if (x_559 == 0) { -lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; uint8_t x_100; -x_96 = lean_ctor_get(x_1, 0); -x_97 = lean_ctor_get(x_1, 1); -x_98 = lean_ctor_get(x_1, 2); -x_99 = lean_ctor_get(x_1, 3); -lean_dec(x_99); -x_100 = !lean_is_exclusive(x_83); -if (x_100 == 0) +lean_object* x_560; lean_object* x_561; lean_object* x_562; lean_object* x_563; uint8_t x_564; +x_560 = lean_ctor_get(x_1, 0); +x_561 = lean_ctor_get(x_1, 1); +x_562 = lean_ctor_get(x_1, 2); +x_563 = lean_ctor_get(x_1, 3); +lean_dec(x_563); +x_564 = !lean_is_exclusive(x_547); +if (x_564 == 0) { -lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; uint8_t x_107; uint8_t x_108; -x_101 = lean_ctor_get(x_83, 0); -x_102 = lean_ctor_get(x_83, 1); -x_103 = lean_ctor_get(x_83, 2); -x_104 = lean_ctor_get(x_83, 3); -x_105 = l_Lean_RBNode_setRed___rarg(x_96); -x_106 = l_Lean_RBNode_balance_u2083___rarg(x_105, x_97, x_98, x_101); -x_107 = 1; -lean_ctor_set(x_83, 3, x_4); -lean_ctor_set(x_83, 2, x_3); -lean_ctor_set(x_83, 1, x_2); -lean_ctor_set(x_83, 0, x_104); -lean_ctor_set_uint8(x_83, sizeof(void*)*4, x_107); -x_108 = 0; -lean_ctor_set(x_1, 2, x_103); -lean_ctor_set(x_1, 1, x_102); -lean_ctor_set(x_1, 0, x_106); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_108); +lean_object* x_565; lean_object* x_566; lean_object* x_567; lean_object* x_568; lean_object* x_569; uint8_t x_570; uint8_t x_571; +x_565 = lean_ctor_get(x_547, 0); +x_566 = lean_ctor_get(x_547, 1); +x_567 = lean_ctor_get(x_547, 2); +x_568 = lean_ctor_get(x_547, 3); +x_569 = l_Lean_RBNode_setRed___rarg(x_560); +x_570 = 1; +lean_inc(x_4); +lean_ctor_set(x_547, 3, x_4); +lean_ctor_set(x_547, 2, x_3); +lean_ctor_set(x_547, 1, x_2); +lean_ctor_set(x_547, 0, x_568); +x_571 = !lean_is_exclusive(x_4); +if (x_571 == 0) +{ +lean_object* x_572; lean_object* x_573; lean_object* x_574; lean_object* x_575; +x_572 = lean_ctor_get(x_4, 3); +lean_dec(x_572); +x_573 = lean_ctor_get(x_4, 2); +lean_dec(x_573); +x_574 = lean_ctor_get(x_4, 1); +lean_dec(x_574); +x_575 = lean_ctor_get(x_4, 0); +lean_dec(x_575); +lean_ctor_set_uint8(x_547, sizeof(void*)*4, x_570); +if (lean_obj_tag(x_569) == 0) +{ +uint8_t x_576; +lean_ctor_set(x_1, 3, x_565); +lean_ctor_set(x_1, 0, x_569); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_570); +x_576 = 0; +lean_ctor_set(x_4, 3, x_547); +lean_ctor_set(x_4, 2, x_567); +lean_ctor_set(x_4, 1, x_566); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_576); +return x_4; +} +else +{ +uint8_t x_577; +x_577 = lean_ctor_get_uint8(x_569, sizeof(void*)*4); +if (x_577 == 0) +{ +lean_object* x_578; +x_578 = lean_ctor_get(x_569, 0); +lean_inc(x_578); +if (lean_obj_tag(x_578) == 0) +{ +lean_object* x_579; +x_579 = lean_ctor_get(x_569, 3); +lean_inc(x_579); +if (lean_obj_tag(x_579) == 0) +{ +uint8_t x_580; +x_580 = !lean_is_exclusive(x_569); +if (x_580 == 0) +{ +lean_object* x_581; lean_object* x_582; uint8_t x_583; +x_581 = lean_ctor_get(x_569, 3); +lean_dec(x_581); +x_582 = lean_ctor_get(x_569, 0); +lean_dec(x_582); +lean_ctor_set(x_569, 0, x_579); +lean_ctor_set(x_1, 3, x_565); +lean_ctor_set(x_1, 0, x_569); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_570); +x_583 = 0; +lean_ctor_set(x_4, 3, x_547); +lean_ctor_set(x_4, 2, x_567); +lean_ctor_set(x_4, 1, x_566); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_583); +return x_4; +} +else +{ +lean_object* x_584; lean_object* x_585; lean_object* x_586; uint8_t x_587; +x_584 = lean_ctor_get(x_569, 1); +x_585 = lean_ctor_get(x_569, 2); +lean_inc(x_585); +lean_inc(x_584); +lean_dec(x_569); +x_586 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_586, 0, x_579); +lean_ctor_set(x_586, 1, x_584); +lean_ctor_set(x_586, 2, x_585); +lean_ctor_set(x_586, 3, x_579); +lean_ctor_set_uint8(x_586, sizeof(void*)*4, x_577); +lean_ctor_set(x_1, 3, x_565); +lean_ctor_set(x_1, 0, x_586); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_570); +x_587 = 0; +lean_ctor_set(x_4, 3, x_547); +lean_ctor_set(x_4, 2, x_567); +lean_ctor_set(x_4, 1, x_566); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_587); +return x_4; +} +} +else +{ +uint8_t x_588; +x_588 = lean_ctor_get_uint8(x_579, sizeof(void*)*4); +if (x_588 == 0) +{ +uint8_t x_589; +x_589 = !lean_is_exclusive(x_569); +if (x_589 == 0) +{ +lean_object* x_590; lean_object* x_591; lean_object* x_592; lean_object* x_593; uint8_t x_594; +x_590 = lean_ctor_get(x_569, 1); +x_591 = lean_ctor_get(x_569, 2); +x_592 = lean_ctor_get(x_569, 3); +lean_dec(x_592); +x_593 = lean_ctor_get(x_569, 0); +lean_dec(x_593); +x_594 = !lean_is_exclusive(x_579); +if (x_594 == 0) +{ +lean_object* x_595; lean_object* x_596; lean_object* x_597; lean_object* x_598; uint8_t x_599; +x_595 = lean_ctor_get(x_579, 0); +x_596 = lean_ctor_get(x_579, 1); +x_597 = lean_ctor_get(x_579, 2); +x_598 = lean_ctor_get(x_579, 3); +lean_ctor_set(x_579, 3, x_595); +lean_ctor_set(x_579, 2, x_591); +lean_ctor_set(x_579, 1, x_590); +lean_ctor_set(x_579, 0, x_578); +lean_ctor_set_uint8(x_579, sizeof(void*)*4, x_570); +lean_ctor_set(x_569, 3, x_565); +lean_ctor_set(x_569, 2, x_562); +lean_ctor_set(x_569, 1, x_561); +lean_ctor_set(x_569, 0, x_598); +lean_ctor_set_uint8(x_569, sizeof(void*)*4, x_570); +x_599 = 0; +lean_ctor_set(x_1, 3, x_569); +lean_ctor_set(x_1, 2, x_597); +lean_ctor_set(x_1, 1, x_596); +lean_ctor_set(x_1, 0, x_579); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_599); +lean_ctor_set(x_4, 3, x_547); +lean_ctor_set(x_4, 2, x_567); +lean_ctor_set(x_4, 1, x_566); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_599); +return x_4; +} +else +{ +lean_object* x_600; lean_object* x_601; lean_object* x_602; lean_object* x_603; lean_object* x_604; uint8_t x_605; +x_600 = lean_ctor_get(x_579, 0); +x_601 = lean_ctor_get(x_579, 1); +x_602 = lean_ctor_get(x_579, 2); +x_603 = lean_ctor_get(x_579, 3); +lean_inc(x_603); +lean_inc(x_602); +lean_inc(x_601); +lean_inc(x_600); +lean_dec(x_579); +x_604 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_604, 0, x_578); +lean_ctor_set(x_604, 1, x_590); +lean_ctor_set(x_604, 2, x_591); +lean_ctor_set(x_604, 3, x_600); +lean_ctor_set_uint8(x_604, sizeof(void*)*4, x_570); +lean_ctor_set(x_569, 3, x_565); +lean_ctor_set(x_569, 2, x_562); +lean_ctor_set(x_569, 1, x_561); +lean_ctor_set(x_569, 0, x_603); +lean_ctor_set_uint8(x_569, sizeof(void*)*4, x_570); +x_605 = 0; +lean_ctor_set(x_1, 3, x_569); +lean_ctor_set(x_1, 2, x_602); +lean_ctor_set(x_1, 1, x_601); +lean_ctor_set(x_1, 0, x_604); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_605); +lean_ctor_set(x_4, 3, x_547); +lean_ctor_set(x_4, 2, x_567); +lean_ctor_set(x_4, 1, x_566); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_605); +return x_4; +} +} +else +{ +lean_object* x_606; lean_object* x_607; lean_object* x_608; lean_object* x_609; lean_object* x_610; lean_object* x_611; lean_object* x_612; lean_object* x_613; lean_object* x_614; uint8_t x_615; +x_606 = lean_ctor_get(x_569, 1); +x_607 = lean_ctor_get(x_569, 2); +lean_inc(x_607); +lean_inc(x_606); +lean_dec(x_569); +x_608 = lean_ctor_get(x_579, 0); +lean_inc(x_608); +x_609 = lean_ctor_get(x_579, 1); +lean_inc(x_609); +x_610 = lean_ctor_get(x_579, 2); +lean_inc(x_610); +x_611 = lean_ctor_get(x_579, 3); +lean_inc(x_611); +if (lean_is_exclusive(x_579)) { + lean_ctor_release(x_579, 0); + lean_ctor_release(x_579, 1); + lean_ctor_release(x_579, 2); + lean_ctor_release(x_579, 3); + x_612 = x_579; +} else { + lean_dec_ref(x_579); + x_612 = lean_box(0); +} +if (lean_is_scalar(x_612)) { + x_613 = lean_alloc_ctor(1, 4, 1); +} else { + x_613 = x_612; +} +lean_ctor_set(x_613, 0, x_578); +lean_ctor_set(x_613, 1, x_606); +lean_ctor_set(x_613, 2, x_607); +lean_ctor_set(x_613, 3, x_608); +lean_ctor_set_uint8(x_613, sizeof(void*)*4, x_570); +x_614 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_614, 0, x_611); +lean_ctor_set(x_614, 1, x_561); +lean_ctor_set(x_614, 2, x_562); +lean_ctor_set(x_614, 3, x_565); +lean_ctor_set_uint8(x_614, sizeof(void*)*4, x_570); +x_615 = 0; +lean_ctor_set(x_1, 3, x_614); +lean_ctor_set(x_1, 2, x_610); +lean_ctor_set(x_1, 1, x_609); +lean_ctor_set(x_1, 0, x_613); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_615); +lean_ctor_set(x_4, 3, x_547); +lean_ctor_set(x_4, 2, x_567); +lean_ctor_set(x_4, 1, x_566); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_615); +return x_4; +} +} +else +{ +uint8_t x_616; +lean_free_object(x_4); +lean_free_object(x_1); +x_616 = !lean_is_exclusive(x_579); +if (x_616 == 0) +{ +lean_object* x_617; lean_object* x_618; lean_object* x_619; lean_object* x_620; uint8_t x_621; +x_617 = lean_ctor_get(x_579, 3); +lean_dec(x_617); +x_618 = lean_ctor_get(x_579, 2); +lean_dec(x_618); +x_619 = lean_ctor_get(x_579, 1); +lean_dec(x_619); +x_620 = lean_ctor_get(x_579, 0); +lean_dec(x_620); +lean_inc(x_569); +lean_ctor_set(x_579, 3, x_565); +lean_ctor_set(x_579, 2, x_562); +lean_ctor_set(x_579, 1, x_561); +lean_ctor_set(x_579, 0, x_569); +x_621 = !lean_is_exclusive(x_569); +if (x_621 == 0) +{ +lean_object* x_622; lean_object* x_623; lean_object* x_624; lean_object* x_625; uint8_t x_626; +x_622 = lean_ctor_get(x_569, 3); +lean_dec(x_622); +x_623 = lean_ctor_get(x_569, 2); +lean_dec(x_623); +x_624 = lean_ctor_get(x_569, 1); +lean_dec(x_624); +x_625 = lean_ctor_get(x_569, 0); +lean_dec(x_625); +lean_ctor_set_uint8(x_579, sizeof(void*)*4, x_570); +x_626 = 0; +lean_ctor_set(x_569, 3, x_547); +lean_ctor_set(x_569, 2, x_567); +lean_ctor_set(x_569, 1, x_566); +lean_ctor_set(x_569, 0, x_579); +lean_ctor_set_uint8(x_569, sizeof(void*)*4, x_626); +return x_569; +} +else +{ +uint8_t x_627; lean_object* x_628; +lean_dec(x_569); +lean_ctor_set_uint8(x_579, sizeof(void*)*4, x_570); +x_627 = 0; +x_628 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_628, 0, x_579); +lean_ctor_set(x_628, 1, x_566); +lean_ctor_set(x_628, 2, x_567); +lean_ctor_set(x_628, 3, x_547); +lean_ctor_set_uint8(x_628, sizeof(void*)*4, x_627); +return x_628; +} +} +else +{ +lean_object* x_629; lean_object* x_630; uint8_t x_631; lean_object* x_632; +lean_dec(x_579); +lean_inc(x_569); +x_629 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_629, 0, x_569); +lean_ctor_set(x_629, 1, x_561); +lean_ctor_set(x_629, 2, x_562); +lean_ctor_set(x_629, 3, x_565); +if (lean_is_exclusive(x_569)) { + lean_ctor_release(x_569, 0); + lean_ctor_release(x_569, 1); + lean_ctor_release(x_569, 2); + lean_ctor_release(x_569, 3); + x_630 = x_569; +} else { + lean_dec_ref(x_569); + x_630 = lean_box(0); +} +lean_ctor_set_uint8(x_629, sizeof(void*)*4, x_570); +x_631 = 0; +if (lean_is_scalar(x_630)) { + x_632 = lean_alloc_ctor(1, 4, 1); +} else { + x_632 = x_630; +} +lean_ctor_set(x_632, 0, x_629); +lean_ctor_set(x_632, 1, x_566); +lean_ctor_set(x_632, 2, x_567); +lean_ctor_set(x_632, 3, x_547); +lean_ctor_set_uint8(x_632, sizeof(void*)*4, x_631); +return x_632; +} +} +} +} +else +{ +uint8_t x_633; +x_633 = lean_ctor_get_uint8(x_578, sizeof(void*)*4); +if (x_633 == 0) +{ +uint8_t x_634; +x_634 = !lean_is_exclusive(x_569); +if (x_634 == 0) +{ +lean_object* x_635; lean_object* x_636; lean_object* x_637; lean_object* x_638; uint8_t x_639; +x_635 = lean_ctor_get(x_569, 1); +x_636 = lean_ctor_get(x_569, 2); +x_637 = lean_ctor_get(x_569, 3); +x_638 = lean_ctor_get(x_569, 0); +lean_dec(x_638); +x_639 = !lean_is_exclusive(x_578); +if (x_639 == 0) +{ +uint8_t x_640; +lean_ctor_set_uint8(x_578, sizeof(void*)*4, x_570); +lean_ctor_set(x_569, 3, x_565); +lean_ctor_set(x_569, 2, x_562); +lean_ctor_set(x_569, 1, x_561); +lean_ctor_set(x_569, 0, x_637); +lean_ctor_set_uint8(x_569, sizeof(void*)*4, x_570); +x_640 = 0; +lean_ctor_set(x_1, 3, x_569); +lean_ctor_set(x_1, 2, x_636); +lean_ctor_set(x_1, 1, x_635); +lean_ctor_set(x_1, 0, x_578); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_640); +lean_ctor_set(x_4, 3, x_547); +lean_ctor_set(x_4, 2, x_567); +lean_ctor_set(x_4, 1, x_566); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_640); +return x_4; +} +else +{ +lean_object* x_641; lean_object* x_642; lean_object* x_643; lean_object* x_644; lean_object* x_645; uint8_t x_646; +x_641 = lean_ctor_get(x_578, 0); +x_642 = lean_ctor_get(x_578, 1); +x_643 = lean_ctor_get(x_578, 2); +x_644 = lean_ctor_get(x_578, 3); +lean_inc(x_644); +lean_inc(x_643); +lean_inc(x_642); +lean_inc(x_641); +lean_dec(x_578); +x_645 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_645, 0, x_641); +lean_ctor_set(x_645, 1, x_642); +lean_ctor_set(x_645, 2, x_643); +lean_ctor_set(x_645, 3, x_644); +lean_ctor_set_uint8(x_645, sizeof(void*)*4, x_570); +lean_ctor_set(x_569, 3, x_565); +lean_ctor_set(x_569, 2, x_562); +lean_ctor_set(x_569, 1, x_561); +lean_ctor_set(x_569, 0, x_637); +lean_ctor_set_uint8(x_569, sizeof(void*)*4, x_570); +x_646 = 0; +lean_ctor_set(x_1, 3, x_569); +lean_ctor_set(x_1, 2, x_636); +lean_ctor_set(x_1, 1, x_635); +lean_ctor_set(x_1, 0, x_645); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_646); +lean_ctor_set(x_4, 3, x_547); +lean_ctor_set(x_4, 2, x_567); +lean_ctor_set(x_4, 1, x_566); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_646); +return x_4; +} +} +else +{ +lean_object* x_647; lean_object* x_648; lean_object* x_649; lean_object* x_650; lean_object* x_651; lean_object* x_652; lean_object* x_653; lean_object* x_654; lean_object* x_655; lean_object* x_656; uint8_t x_657; +x_647 = lean_ctor_get(x_569, 1); +x_648 = lean_ctor_get(x_569, 2); +x_649 = lean_ctor_get(x_569, 3); +lean_inc(x_649); +lean_inc(x_648); +lean_inc(x_647); +lean_dec(x_569); +x_650 = lean_ctor_get(x_578, 0); +lean_inc(x_650); +x_651 = lean_ctor_get(x_578, 1); +lean_inc(x_651); +x_652 = lean_ctor_get(x_578, 2); +lean_inc(x_652); +x_653 = lean_ctor_get(x_578, 3); +lean_inc(x_653); +if (lean_is_exclusive(x_578)) { + lean_ctor_release(x_578, 0); + lean_ctor_release(x_578, 1); + lean_ctor_release(x_578, 2); + lean_ctor_release(x_578, 3); + x_654 = x_578; +} else { + lean_dec_ref(x_578); + x_654 = lean_box(0); +} +if (lean_is_scalar(x_654)) { + x_655 = lean_alloc_ctor(1, 4, 1); +} else { + x_655 = x_654; +} +lean_ctor_set(x_655, 0, x_650); +lean_ctor_set(x_655, 1, x_651); +lean_ctor_set(x_655, 2, x_652); +lean_ctor_set(x_655, 3, x_653); +lean_ctor_set_uint8(x_655, sizeof(void*)*4, x_570); +x_656 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_656, 0, x_649); +lean_ctor_set(x_656, 1, x_561); +lean_ctor_set(x_656, 2, x_562); +lean_ctor_set(x_656, 3, x_565); +lean_ctor_set_uint8(x_656, sizeof(void*)*4, x_570); +x_657 = 0; +lean_ctor_set(x_1, 3, x_656); +lean_ctor_set(x_1, 2, x_648); +lean_ctor_set(x_1, 1, x_647); +lean_ctor_set(x_1, 0, x_655); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_657); +lean_ctor_set(x_4, 3, x_547); +lean_ctor_set(x_4, 2, x_567); +lean_ctor_set(x_4, 1, x_566); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_657); +return x_4; +} +} +else +{ +lean_object* x_658; +x_658 = lean_ctor_get(x_569, 3); +lean_inc(x_658); +if (lean_obj_tag(x_658) == 0) +{ +uint8_t x_659; +lean_free_object(x_4); +lean_free_object(x_1); +x_659 = !lean_is_exclusive(x_578); +if (x_659 == 0) +{ +lean_object* x_660; lean_object* x_661; lean_object* x_662; lean_object* x_663; uint8_t x_664; +x_660 = lean_ctor_get(x_578, 3); +lean_dec(x_660); +x_661 = lean_ctor_get(x_578, 2); +lean_dec(x_661); +x_662 = lean_ctor_get(x_578, 1); +lean_dec(x_662); +x_663 = lean_ctor_get(x_578, 0); +lean_dec(x_663); +lean_inc(x_569); +lean_ctor_set(x_578, 3, x_565); +lean_ctor_set(x_578, 2, x_562); +lean_ctor_set(x_578, 1, x_561); +lean_ctor_set(x_578, 0, x_569); +x_664 = !lean_is_exclusive(x_569); +if (x_664 == 0) +{ +lean_object* x_665; lean_object* x_666; lean_object* x_667; lean_object* x_668; uint8_t x_669; +x_665 = lean_ctor_get(x_569, 3); +lean_dec(x_665); +x_666 = lean_ctor_get(x_569, 2); +lean_dec(x_666); +x_667 = lean_ctor_get(x_569, 1); +lean_dec(x_667); +x_668 = lean_ctor_get(x_569, 0); +lean_dec(x_668); +lean_ctor_set_uint8(x_578, sizeof(void*)*4, x_570); +x_669 = 0; +lean_ctor_set(x_569, 3, x_547); +lean_ctor_set(x_569, 2, x_567); +lean_ctor_set(x_569, 1, x_566); +lean_ctor_set_uint8(x_569, sizeof(void*)*4, x_669); +return x_569; +} +else +{ +uint8_t x_670; lean_object* x_671; +lean_dec(x_569); +lean_ctor_set_uint8(x_578, sizeof(void*)*4, x_570); +x_670 = 0; +x_671 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_671, 0, x_578); +lean_ctor_set(x_671, 1, x_566); +lean_ctor_set(x_671, 2, x_567); +lean_ctor_set(x_671, 3, x_547); +lean_ctor_set_uint8(x_671, sizeof(void*)*4, x_670); +return x_671; +} +} +else +{ +lean_object* x_672; lean_object* x_673; uint8_t x_674; lean_object* x_675; +lean_dec(x_578); +lean_inc(x_569); +x_672 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_672, 0, x_569); +lean_ctor_set(x_672, 1, x_561); +lean_ctor_set(x_672, 2, x_562); +lean_ctor_set(x_672, 3, x_565); +if (lean_is_exclusive(x_569)) { + lean_ctor_release(x_569, 0); + lean_ctor_release(x_569, 1); + lean_ctor_release(x_569, 2); + lean_ctor_release(x_569, 3); + x_673 = x_569; +} else { + lean_dec_ref(x_569); + x_673 = lean_box(0); +} +lean_ctor_set_uint8(x_672, sizeof(void*)*4, x_570); +x_674 = 0; +if (lean_is_scalar(x_673)) { + x_675 = lean_alloc_ctor(1, 4, 1); +} else { + x_675 = x_673; +} +lean_ctor_set(x_675, 0, x_672); +lean_ctor_set(x_675, 1, x_566); +lean_ctor_set(x_675, 2, x_567); +lean_ctor_set(x_675, 3, x_547); +lean_ctor_set_uint8(x_675, sizeof(void*)*4, x_674); +return x_675; +} +} +else +{ +uint8_t x_676; +x_676 = lean_ctor_get_uint8(x_658, sizeof(void*)*4); +if (x_676 == 0) +{ +uint8_t x_677; +lean_free_object(x_4); +x_677 = !lean_is_exclusive(x_569); +if (x_677 == 0) +{ +lean_object* x_678; lean_object* x_679; lean_object* x_680; lean_object* x_681; uint8_t x_682; +x_678 = lean_ctor_get(x_569, 1); +x_679 = lean_ctor_get(x_569, 2); +x_680 = lean_ctor_get(x_569, 3); +lean_dec(x_680); +x_681 = lean_ctor_get(x_569, 0); +lean_dec(x_681); +x_682 = !lean_is_exclusive(x_658); +if (x_682 == 0) +{ +lean_object* x_683; lean_object* x_684; lean_object* x_685; lean_object* x_686; uint8_t x_687; +x_683 = lean_ctor_get(x_658, 0); +x_684 = lean_ctor_get(x_658, 1); +x_685 = lean_ctor_get(x_658, 2); +x_686 = lean_ctor_get(x_658, 3); +lean_inc(x_578); +lean_ctor_set(x_658, 3, x_683); +lean_ctor_set(x_658, 2, x_679); +lean_ctor_set(x_658, 1, x_678); +lean_ctor_set(x_658, 0, x_578); +x_687 = !lean_is_exclusive(x_578); +if (x_687 == 0) +{ +lean_object* x_688; lean_object* x_689; lean_object* x_690; lean_object* x_691; uint8_t x_692; +x_688 = lean_ctor_get(x_578, 3); +lean_dec(x_688); +x_689 = lean_ctor_get(x_578, 2); +lean_dec(x_689); +x_690 = lean_ctor_get(x_578, 1); +lean_dec(x_690); +x_691 = lean_ctor_get(x_578, 0); +lean_dec(x_691); +lean_ctor_set_uint8(x_658, sizeof(void*)*4, x_570); +lean_ctor_set(x_578, 3, x_565); +lean_ctor_set(x_578, 2, x_562); +lean_ctor_set(x_578, 1, x_561); +lean_ctor_set(x_578, 0, x_686); +lean_ctor_set_uint8(x_578, sizeof(void*)*4, x_570); +x_692 = 0; +lean_ctor_set(x_569, 3, x_578); +lean_ctor_set(x_569, 2, x_685); +lean_ctor_set(x_569, 1, x_684); +lean_ctor_set(x_569, 0, x_658); +lean_ctor_set_uint8(x_569, sizeof(void*)*4, x_692); +lean_ctor_set(x_1, 2, x_567); +lean_ctor_set(x_1, 1, x_566); +lean_ctor_set(x_1, 0, x_569); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_692); return x_1; } else { -lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; uint8_t x_115; lean_object* x_116; uint8_t x_117; -x_109 = lean_ctor_get(x_83, 0); -x_110 = lean_ctor_get(x_83, 1); -x_111 = lean_ctor_get(x_83, 2); -x_112 = lean_ctor_get(x_83, 3); -lean_inc(x_112); -lean_inc(x_111); -lean_inc(x_110); -lean_inc(x_109); -lean_dec(x_83); -x_113 = l_Lean_RBNode_setRed___rarg(x_96); -x_114 = l_Lean_RBNode_balance_u2083___rarg(x_113, x_97, x_98, x_109); -x_115 = 1; -x_116 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_116, 0, x_112); -lean_ctor_set(x_116, 1, x_2); -lean_ctor_set(x_116, 2, x_3); -lean_ctor_set(x_116, 3, x_4); -lean_ctor_set_uint8(x_116, sizeof(void*)*4, x_115); -x_117 = 0; -lean_ctor_set(x_1, 3, x_116); -lean_ctor_set(x_1, 2, x_111); -lean_ctor_set(x_1, 1, x_110); -lean_ctor_set(x_1, 0, x_114); -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_117); +lean_object* x_693; uint8_t x_694; +lean_dec(x_578); +lean_ctor_set_uint8(x_658, sizeof(void*)*4, x_570); +x_693 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_693, 0, x_686); +lean_ctor_set(x_693, 1, x_561); +lean_ctor_set(x_693, 2, x_562); +lean_ctor_set(x_693, 3, x_565); +lean_ctor_set_uint8(x_693, sizeof(void*)*4, x_570); +x_694 = 0; +lean_ctor_set(x_569, 3, x_693); +lean_ctor_set(x_569, 2, x_685); +lean_ctor_set(x_569, 1, x_684); +lean_ctor_set(x_569, 0, x_658); +lean_ctor_set_uint8(x_569, sizeof(void*)*4, x_694); +lean_ctor_set(x_1, 2, x_567); +lean_ctor_set(x_1, 1, x_566); +lean_ctor_set(x_1, 0, x_569); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_694); return x_1; } } else { -lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; uint8_t x_128; lean_object* x_129; uint8_t x_130; lean_object* x_131; -x_118 = lean_ctor_get(x_1, 0); -x_119 = lean_ctor_get(x_1, 1); -x_120 = lean_ctor_get(x_1, 2); -lean_inc(x_120); -lean_inc(x_119); -lean_inc(x_118); -lean_dec(x_1); -x_121 = lean_ctor_get(x_83, 0); -lean_inc(x_121); -x_122 = lean_ctor_get(x_83, 1); -lean_inc(x_122); -x_123 = lean_ctor_get(x_83, 2); -lean_inc(x_123); -x_124 = lean_ctor_get(x_83, 3); -lean_inc(x_124); -if (lean_is_exclusive(x_83)) { - lean_ctor_release(x_83, 0); - lean_ctor_release(x_83, 1); - lean_ctor_release(x_83, 2); - lean_ctor_release(x_83, 3); - x_125 = x_83; +lean_object* x_695; lean_object* x_696; lean_object* x_697; lean_object* x_698; lean_object* x_699; lean_object* x_700; lean_object* x_701; uint8_t x_702; +x_695 = lean_ctor_get(x_658, 0); +x_696 = lean_ctor_get(x_658, 1); +x_697 = lean_ctor_get(x_658, 2); +x_698 = lean_ctor_get(x_658, 3); +lean_inc(x_698); +lean_inc(x_697); +lean_inc(x_696); +lean_inc(x_695); +lean_dec(x_658); +lean_inc(x_578); +x_699 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_699, 0, x_578); +lean_ctor_set(x_699, 1, x_678); +lean_ctor_set(x_699, 2, x_679); +lean_ctor_set(x_699, 3, x_695); +if (lean_is_exclusive(x_578)) { + lean_ctor_release(x_578, 0); + lean_ctor_release(x_578, 1); + lean_ctor_release(x_578, 2); + lean_ctor_release(x_578, 3); + x_700 = x_578; } else { - lean_dec_ref(x_83); - x_125 = lean_box(0); + lean_dec_ref(x_578); + x_700 = lean_box(0); } -x_126 = l_Lean_RBNode_setRed___rarg(x_118); -x_127 = l_Lean_RBNode_balance_u2083___rarg(x_126, x_119, x_120, x_121); -x_128 = 1; -if (lean_is_scalar(x_125)) { - x_129 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set_uint8(x_699, sizeof(void*)*4, x_570); +if (lean_is_scalar(x_700)) { + x_701 = lean_alloc_ctor(1, 4, 1); } else { - x_129 = x_125; + x_701 = x_700; +} +lean_ctor_set(x_701, 0, x_698); +lean_ctor_set(x_701, 1, x_561); +lean_ctor_set(x_701, 2, x_562); +lean_ctor_set(x_701, 3, x_565); +lean_ctor_set_uint8(x_701, sizeof(void*)*4, x_570); +x_702 = 0; +lean_ctor_set(x_569, 3, x_701); +lean_ctor_set(x_569, 2, x_697); +lean_ctor_set(x_569, 1, x_696); +lean_ctor_set(x_569, 0, x_699); +lean_ctor_set_uint8(x_569, sizeof(void*)*4, x_702); +lean_ctor_set(x_1, 2, x_567); +lean_ctor_set(x_1, 1, x_566); +lean_ctor_set(x_1, 0, x_569); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_702); +return x_1; +} +} +else +{ +lean_object* x_703; lean_object* x_704; lean_object* x_705; lean_object* x_706; lean_object* x_707; lean_object* x_708; lean_object* x_709; lean_object* x_710; lean_object* x_711; lean_object* x_712; uint8_t x_713; lean_object* x_714; +x_703 = lean_ctor_get(x_569, 1); +x_704 = lean_ctor_get(x_569, 2); +lean_inc(x_704); +lean_inc(x_703); +lean_dec(x_569); +x_705 = lean_ctor_get(x_658, 0); +lean_inc(x_705); +x_706 = lean_ctor_get(x_658, 1); +lean_inc(x_706); +x_707 = lean_ctor_get(x_658, 2); +lean_inc(x_707); +x_708 = lean_ctor_get(x_658, 3); +lean_inc(x_708); +if (lean_is_exclusive(x_658)) { + lean_ctor_release(x_658, 0); + lean_ctor_release(x_658, 1); + lean_ctor_release(x_658, 2); + lean_ctor_release(x_658, 3); + x_709 = x_658; +} else { + lean_dec_ref(x_658); + x_709 = lean_box(0); +} +lean_inc(x_578); +if (lean_is_scalar(x_709)) { + x_710 = lean_alloc_ctor(1, 4, 1); +} else { + x_710 = x_709; +} +lean_ctor_set(x_710, 0, x_578); +lean_ctor_set(x_710, 1, x_703); +lean_ctor_set(x_710, 2, x_704); +lean_ctor_set(x_710, 3, x_705); +if (lean_is_exclusive(x_578)) { + lean_ctor_release(x_578, 0); + lean_ctor_release(x_578, 1); + lean_ctor_release(x_578, 2); + lean_ctor_release(x_578, 3); + x_711 = x_578; +} else { + lean_dec_ref(x_578); + x_711 = lean_box(0); +} +lean_ctor_set_uint8(x_710, sizeof(void*)*4, x_570); +if (lean_is_scalar(x_711)) { + x_712 = lean_alloc_ctor(1, 4, 1); +} else { + x_712 = x_711; +} +lean_ctor_set(x_712, 0, x_708); +lean_ctor_set(x_712, 1, x_561); +lean_ctor_set(x_712, 2, x_562); +lean_ctor_set(x_712, 3, x_565); +lean_ctor_set_uint8(x_712, sizeof(void*)*4, x_570); +x_713 = 0; +x_714 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_714, 0, x_710); +lean_ctor_set(x_714, 1, x_706); +lean_ctor_set(x_714, 2, x_707); +lean_ctor_set(x_714, 3, x_712); +lean_ctor_set_uint8(x_714, sizeof(void*)*4, x_713); +lean_ctor_set(x_1, 2, x_567); +lean_ctor_set(x_1, 1, x_566); +lean_ctor_set(x_1, 0, x_714); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_713); +return x_1; +} +} +else +{ +uint8_t x_715; +x_715 = !lean_is_exclusive(x_569); +if (x_715 == 0) +{ +lean_object* x_716; lean_object* x_717; uint8_t x_718; +x_716 = lean_ctor_get(x_569, 3); +lean_dec(x_716); +x_717 = lean_ctor_get(x_569, 0); +lean_dec(x_717); +x_718 = !lean_is_exclusive(x_578); +if (x_718 == 0) +{ +uint8_t x_719; +lean_ctor_set_uint8(x_578, sizeof(void*)*4, x_676); +lean_ctor_set(x_1, 3, x_565); +lean_ctor_set(x_1, 0, x_569); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_570); +x_719 = 0; +lean_ctor_set(x_4, 3, x_547); +lean_ctor_set(x_4, 2, x_567); +lean_ctor_set(x_4, 1, x_566); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_719); +return x_4; +} +else +{ +lean_object* x_720; lean_object* x_721; lean_object* x_722; lean_object* x_723; lean_object* x_724; uint8_t x_725; +x_720 = lean_ctor_get(x_578, 0); +x_721 = lean_ctor_get(x_578, 1); +x_722 = lean_ctor_get(x_578, 2); +x_723 = lean_ctor_get(x_578, 3); +lean_inc(x_723); +lean_inc(x_722); +lean_inc(x_721); +lean_inc(x_720); +lean_dec(x_578); +x_724 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_724, 0, x_720); +lean_ctor_set(x_724, 1, x_721); +lean_ctor_set(x_724, 2, x_722); +lean_ctor_set(x_724, 3, x_723); +lean_ctor_set_uint8(x_724, sizeof(void*)*4, x_676); +lean_ctor_set(x_569, 0, x_724); +lean_ctor_set(x_1, 3, x_565); +lean_ctor_set(x_1, 0, x_569); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_570); +x_725 = 0; +lean_ctor_set(x_4, 3, x_547); +lean_ctor_set(x_4, 2, x_567); +lean_ctor_set(x_4, 1, x_566); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_725); +return x_4; +} +} +else +{ +lean_object* x_726; lean_object* x_727; lean_object* x_728; lean_object* x_729; lean_object* x_730; lean_object* x_731; lean_object* x_732; lean_object* x_733; lean_object* x_734; uint8_t x_735; +x_726 = lean_ctor_get(x_569, 1); +x_727 = lean_ctor_get(x_569, 2); +lean_inc(x_727); +lean_inc(x_726); +lean_dec(x_569); +x_728 = lean_ctor_get(x_578, 0); +lean_inc(x_728); +x_729 = lean_ctor_get(x_578, 1); +lean_inc(x_729); +x_730 = lean_ctor_get(x_578, 2); +lean_inc(x_730); +x_731 = lean_ctor_get(x_578, 3); +lean_inc(x_731); +if (lean_is_exclusive(x_578)) { + lean_ctor_release(x_578, 0); + lean_ctor_release(x_578, 1); + lean_ctor_release(x_578, 2); + lean_ctor_release(x_578, 3); + x_732 = x_578; +} else { + lean_dec_ref(x_578); + x_732 = lean_box(0); +} +if (lean_is_scalar(x_732)) { + x_733 = lean_alloc_ctor(1, 4, 1); +} else { + x_733 = x_732; +} +lean_ctor_set(x_733, 0, x_728); +lean_ctor_set(x_733, 1, x_729); +lean_ctor_set(x_733, 2, x_730); +lean_ctor_set(x_733, 3, x_731); +lean_ctor_set_uint8(x_733, sizeof(void*)*4, x_676); +x_734 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_734, 0, x_733); +lean_ctor_set(x_734, 1, x_726); +lean_ctor_set(x_734, 2, x_727); +lean_ctor_set(x_734, 3, x_658); +lean_ctor_set_uint8(x_734, sizeof(void*)*4, x_577); +lean_ctor_set(x_1, 3, x_565); +lean_ctor_set(x_1, 0, x_734); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_570); +x_735 = 0; +lean_ctor_set(x_4, 3, x_547); +lean_ctor_set(x_4, 2, x_567); +lean_ctor_set(x_4, 1, x_566); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_735); +return x_4; +} } -lean_ctor_set(x_129, 0, x_124); -lean_ctor_set(x_129, 1, x_2); -lean_ctor_set(x_129, 2, x_3); -lean_ctor_set(x_129, 3, x_4); -lean_ctor_set_uint8(x_129, sizeof(void*)*4, x_128); -x_130 = 0; -x_131 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_131, 0, x_127); -lean_ctor_set(x_131, 1, x_122); -lean_ctor_set(x_131, 2, x_123); -lean_ctor_set(x_131, 3, x_129); -lean_ctor_set_uint8(x_131, sizeof(void*)*4, x_130); -return x_131; } } } } else { -uint8_t x_132; -x_132 = !lean_is_exclusive(x_1); -if (x_132 == 0) -{ -uint8_t x_133; lean_object* x_134; -x_133 = 0; -lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_133); -x_134 = l_Lean_RBNode_balance_u2083___rarg(x_1, x_2, x_3, x_4); -return x_134; +uint8_t x_736; +lean_ctor_set(x_1, 3, x_565); +lean_ctor_set(x_1, 0, x_569); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_570); +x_736 = 0; +lean_ctor_set(x_4, 3, x_547); +lean_ctor_set(x_4, 2, x_567); +lean_ctor_set(x_4, 1, x_566); +lean_ctor_set(x_4, 0, x_1); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_736); +return x_4; +} +} } else { -lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; uint8_t x_139; lean_object* x_140; lean_object* x_141; -x_135 = lean_ctor_get(x_1, 0); -x_136 = lean_ctor_get(x_1, 1); -x_137 = lean_ctor_get(x_1, 2); -x_138 = lean_ctor_get(x_1, 3); -lean_inc(x_138); -lean_inc(x_137); -lean_inc(x_136); -lean_inc(x_135); +lean_dec(x_4); +lean_ctor_set_uint8(x_547, sizeof(void*)*4, x_570); +if (lean_obj_tag(x_569) == 0) +{ +uint8_t x_737; lean_object* x_738; +lean_ctor_set(x_1, 3, x_565); +lean_ctor_set(x_1, 0, x_569); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_570); +x_737 = 0; +x_738 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_738, 0, x_1); +lean_ctor_set(x_738, 1, x_566); +lean_ctor_set(x_738, 2, x_567); +lean_ctor_set(x_738, 3, x_547); +lean_ctor_set_uint8(x_738, sizeof(void*)*4, x_737); +return x_738; +} +else +{ +uint8_t x_739; +x_739 = lean_ctor_get_uint8(x_569, sizeof(void*)*4); +if (x_739 == 0) +{ +lean_object* x_740; +x_740 = lean_ctor_get(x_569, 0); +lean_inc(x_740); +if (lean_obj_tag(x_740) == 0) +{ +lean_object* x_741; +x_741 = lean_ctor_get(x_569, 3); +lean_inc(x_741); +if (lean_obj_tag(x_741) == 0) +{ +lean_object* x_742; lean_object* x_743; lean_object* x_744; lean_object* x_745; uint8_t x_746; lean_object* x_747; +x_742 = lean_ctor_get(x_569, 1); +lean_inc(x_742); +x_743 = lean_ctor_get(x_569, 2); +lean_inc(x_743); +if (lean_is_exclusive(x_569)) { + lean_ctor_release(x_569, 0); + lean_ctor_release(x_569, 1); + lean_ctor_release(x_569, 2); + lean_ctor_release(x_569, 3); + x_744 = x_569; +} else { + lean_dec_ref(x_569); + x_744 = lean_box(0); +} +if (lean_is_scalar(x_744)) { + x_745 = lean_alloc_ctor(1, 4, 1); +} else { + x_745 = x_744; +} +lean_ctor_set(x_745, 0, x_741); +lean_ctor_set(x_745, 1, x_742); +lean_ctor_set(x_745, 2, x_743); +lean_ctor_set(x_745, 3, x_741); +lean_ctor_set_uint8(x_745, sizeof(void*)*4, x_739); +lean_ctor_set(x_1, 3, x_565); +lean_ctor_set(x_1, 0, x_745); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_570); +x_746 = 0; +x_747 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_747, 0, x_1); +lean_ctor_set(x_747, 1, x_566); +lean_ctor_set(x_747, 2, x_567); +lean_ctor_set(x_747, 3, x_547); +lean_ctor_set_uint8(x_747, sizeof(void*)*4, x_746); +return x_747; +} +else +{ +uint8_t x_748; +x_748 = lean_ctor_get_uint8(x_741, sizeof(void*)*4); +if (x_748 == 0) +{ +lean_object* x_749; lean_object* x_750; lean_object* x_751; lean_object* x_752; lean_object* x_753; lean_object* x_754; lean_object* x_755; lean_object* x_756; lean_object* x_757; lean_object* x_758; uint8_t x_759; lean_object* x_760; +x_749 = lean_ctor_get(x_569, 1); +lean_inc(x_749); +x_750 = lean_ctor_get(x_569, 2); +lean_inc(x_750); +if (lean_is_exclusive(x_569)) { + lean_ctor_release(x_569, 0); + lean_ctor_release(x_569, 1); + lean_ctor_release(x_569, 2); + lean_ctor_release(x_569, 3); + x_751 = x_569; +} else { + lean_dec_ref(x_569); + x_751 = lean_box(0); +} +x_752 = lean_ctor_get(x_741, 0); +lean_inc(x_752); +x_753 = lean_ctor_get(x_741, 1); +lean_inc(x_753); +x_754 = lean_ctor_get(x_741, 2); +lean_inc(x_754); +x_755 = lean_ctor_get(x_741, 3); +lean_inc(x_755); +if (lean_is_exclusive(x_741)) { + lean_ctor_release(x_741, 0); + lean_ctor_release(x_741, 1); + lean_ctor_release(x_741, 2); + lean_ctor_release(x_741, 3); + x_756 = x_741; +} else { + lean_dec_ref(x_741); + x_756 = lean_box(0); +} +if (lean_is_scalar(x_756)) { + x_757 = lean_alloc_ctor(1, 4, 1); +} else { + x_757 = x_756; +} +lean_ctor_set(x_757, 0, x_740); +lean_ctor_set(x_757, 1, x_749); +lean_ctor_set(x_757, 2, x_750); +lean_ctor_set(x_757, 3, x_752); +lean_ctor_set_uint8(x_757, sizeof(void*)*4, x_570); +if (lean_is_scalar(x_751)) { + x_758 = lean_alloc_ctor(1, 4, 1); +} else { + x_758 = x_751; +} +lean_ctor_set(x_758, 0, x_755); +lean_ctor_set(x_758, 1, x_561); +lean_ctor_set(x_758, 2, x_562); +lean_ctor_set(x_758, 3, x_565); +lean_ctor_set_uint8(x_758, sizeof(void*)*4, x_570); +x_759 = 0; +lean_ctor_set(x_1, 3, x_758); +lean_ctor_set(x_1, 2, x_754); +lean_ctor_set(x_1, 1, x_753); +lean_ctor_set(x_1, 0, x_757); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_759); +x_760 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_760, 0, x_1); +lean_ctor_set(x_760, 1, x_566); +lean_ctor_set(x_760, 2, x_567); +lean_ctor_set(x_760, 3, x_547); +lean_ctor_set_uint8(x_760, sizeof(void*)*4, x_759); +return x_760; +} +else +{ +lean_object* x_761; lean_object* x_762; lean_object* x_763; uint8_t x_764; lean_object* x_765; +lean_free_object(x_1); +if (lean_is_exclusive(x_741)) { + lean_ctor_release(x_741, 0); + lean_ctor_release(x_741, 1); + lean_ctor_release(x_741, 2); + lean_ctor_release(x_741, 3); + x_761 = x_741; +} else { + lean_dec_ref(x_741); + x_761 = lean_box(0); +} +lean_inc(x_569); +if (lean_is_scalar(x_761)) { + x_762 = lean_alloc_ctor(1, 4, 1); +} else { + x_762 = x_761; +} +lean_ctor_set(x_762, 0, x_569); +lean_ctor_set(x_762, 1, x_561); +lean_ctor_set(x_762, 2, x_562); +lean_ctor_set(x_762, 3, x_565); +if (lean_is_exclusive(x_569)) { + lean_ctor_release(x_569, 0); + lean_ctor_release(x_569, 1); + lean_ctor_release(x_569, 2); + lean_ctor_release(x_569, 3); + x_763 = x_569; +} else { + lean_dec_ref(x_569); + x_763 = lean_box(0); +} +lean_ctor_set_uint8(x_762, sizeof(void*)*4, x_570); +x_764 = 0; +if (lean_is_scalar(x_763)) { + x_765 = lean_alloc_ctor(1, 4, 1); +} else { + x_765 = x_763; +} +lean_ctor_set(x_765, 0, x_762); +lean_ctor_set(x_765, 1, x_566); +lean_ctor_set(x_765, 2, x_567); +lean_ctor_set(x_765, 3, x_547); +lean_ctor_set_uint8(x_765, sizeof(void*)*4, x_764); +return x_765; +} +} +} +else +{ +uint8_t x_766; +x_766 = lean_ctor_get_uint8(x_740, sizeof(void*)*4); +if (x_766 == 0) +{ +lean_object* x_767; lean_object* x_768; lean_object* x_769; lean_object* x_770; lean_object* x_771; lean_object* x_772; lean_object* x_773; lean_object* x_774; lean_object* x_775; lean_object* x_776; lean_object* x_777; uint8_t x_778; lean_object* x_779; +x_767 = lean_ctor_get(x_569, 1); +lean_inc(x_767); +x_768 = lean_ctor_get(x_569, 2); +lean_inc(x_768); +x_769 = lean_ctor_get(x_569, 3); +lean_inc(x_769); +if (lean_is_exclusive(x_569)) { + lean_ctor_release(x_569, 0); + lean_ctor_release(x_569, 1); + lean_ctor_release(x_569, 2); + lean_ctor_release(x_569, 3); + x_770 = x_569; +} else { + lean_dec_ref(x_569); + x_770 = lean_box(0); +} +x_771 = lean_ctor_get(x_740, 0); +lean_inc(x_771); +x_772 = lean_ctor_get(x_740, 1); +lean_inc(x_772); +x_773 = lean_ctor_get(x_740, 2); +lean_inc(x_773); +x_774 = lean_ctor_get(x_740, 3); +lean_inc(x_774); +if (lean_is_exclusive(x_740)) { + lean_ctor_release(x_740, 0); + lean_ctor_release(x_740, 1); + lean_ctor_release(x_740, 2); + lean_ctor_release(x_740, 3); + x_775 = x_740; +} else { + lean_dec_ref(x_740); + x_775 = lean_box(0); +} +if (lean_is_scalar(x_775)) { + x_776 = lean_alloc_ctor(1, 4, 1); +} else { + x_776 = x_775; +} +lean_ctor_set(x_776, 0, x_771); +lean_ctor_set(x_776, 1, x_772); +lean_ctor_set(x_776, 2, x_773); +lean_ctor_set(x_776, 3, x_774); +lean_ctor_set_uint8(x_776, sizeof(void*)*4, x_570); +if (lean_is_scalar(x_770)) { + x_777 = lean_alloc_ctor(1, 4, 1); +} else { + x_777 = x_770; +} +lean_ctor_set(x_777, 0, x_769); +lean_ctor_set(x_777, 1, x_561); +lean_ctor_set(x_777, 2, x_562); +lean_ctor_set(x_777, 3, x_565); +lean_ctor_set_uint8(x_777, sizeof(void*)*4, x_570); +x_778 = 0; +lean_ctor_set(x_1, 3, x_777); +lean_ctor_set(x_1, 2, x_768); +lean_ctor_set(x_1, 1, x_767); +lean_ctor_set(x_1, 0, x_776); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_778); +x_779 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_779, 0, x_1); +lean_ctor_set(x_779, 1, x_566); +lean_ctor_set(x_779, 2, x_567); +lean_ctor_set(x_779, 3, x_547); +lean_ctor_set_uint8(x_779, sizeof(void*)*4, x_778); +return x_779; +} +else +{ +lean_object* x_780; +x_780 = lean_ctor_get(x_569, 3); +lean_inc(x_780); +if (lean_obj_tag(x_780) == 0) +{ +lean_object* x_781; lean_object* x_782; lean_object* x_783; uint8_t x_784; lean_object* x_785; +lean_free_object(x_1); +if (lean_is_exclusive(x_740)) { + lean_ctor_release(x_740, 0); + lean_ctor_release(x_740, 1); + lean_ctor_release(x_740, 2); + lean_ctor_release(x_740, 3); + x_781 = x_740; +} else { + lean_dec_ref(x_740); + x_781 = lean_box(0); +} +lean_inc(x_569); +if (lean_is_scalar(x_781)) { + x_782 = lean_alloc_ctor(1, 4, 1); +} else { + x_782 = x_781; +} +lean_ctor_set(x_782, 0, x_569); +lean_ctor_set(x_782, 1, x_561); +lean_ctor_set(x_782, 2, x_562); +lean_ctor_set(x_782, 3, x_565); +if (lean_is_exclusive(x_569)) { + lean_ctor_release(x_569, 0); + lean_ctor_release(x_569, 1); + lean_ctor_release(x_569, 2); + lean_ctor_release(x_569, 3); + x_783 = x_569; +} else { + lean_dec_ref(x_569); + x_783 = lean_box(0); +} +lean_ctor_set_uint8(x_782, sizeof(void*)*4, x_570); +x_784 = 0; +if (lean_is_scalar(x_783)) { + x_785 = lean_alloc_ctor(1, 4, 1); +} else { + x_785 = x_783; +} +lean_ctor_set(x_785, 0, x_782); +lean_ctor_set(x_785, 1, x_566); +lean_ctor_set(x_785, 2, x_567); +lean_ctor_set(x_785, 3, x_547); +lean_ctor_set_uint8(x_785, sizeof(void*)*4, x_784); +return x_785; +} +else +{ +uint8_t x_786; +x_786 = lean_ctor_get_uint8(x_780, sizeof(void*)*4); +if (x_786 == 0) +{ +lean_object* x_787; lean_object* x_788; lean_object* x_789; lean_object* x_790; lean_object* x_791; lean_object* x_792; lean_object* x_793; lean_object* x_794; lean_object* x_795; lean_object* x_796; lean_object* x_797; uint8_t x_798; lean_object* x_799; +x_787 = lean_ctor_get(x_569, 1); +lean_inc(x_787); +x_788 = lean_ctor_get(x_569, 2); +lean_inc(x_788); +if (lean_is_exclusive(x_569)) { + lean_ctor_release(x_569, 0); + lean_ctor_release(x_569, 1); + lean_ctor_release(x_569, 2); + lean_ctor_release(x_569, 3); + x_789 = x_569; +} else { + lean_dec_ref(x_569); + x_789 = lean_box(0); +} +x_790 = lean_ctor_get(x_780, 0); +lean_inc(x_790); +x_791 = lean_ctor_get(x_780, 1); +lean_inc(x_791); +x_792 = lean_ctor_get(x_780, 2); +lean_inc(x_792); +x_793 = lean_ctor_get(x_780, 3); +lean_inc(x_793); +if (lean_is_exclusive(x_780)) { + lean_ctor_release(x_780, 0); + lean_ctor_release(x_780, 1); + lean_ctor_release(x_780, 2); + lean_ctor_release(x_780, 3); + x_794 = x_780; +} else { + lean_dec_ref(x_780); + x_794 = lean_box(0); +} +lean_inc(x_740); +if (lean_is_scalar(x_794)) { + x_795 = lean_alloc_ctor(1, 4, 1); +} else { + x_795 = x_794; +} +lean_ctor_set(x_795, 0, x_740); +lean_ctor_set(x_795, 1, x_787); +lean_ctor_set(x_795, 2, x_788); +lean_ctor_set(x_795, 3, x_790); +if (lean_is_exclusive(x_740)) { + lean_ctor_release(x_740, 0); + lean_ctor_release(x_740, 1); + lean_ctor_release(x_740, 2); + lean_ctor_release(x_740, 3); + x_796 = x_740; +} else { + lean_dec_ref(x_740); + x_796 = lean_box(0); +} +lean_ctor_set_uint8(x_795, sizeof(void*)*4, x_570); +if (lean_is_scalar(x_796)) { + x_797 = lean_alloc_ctor(1, 4, 1); +} else { + x_797 = x_796; +} +lean_ctor_set(x_797, 0, x_793); +lean_ctor_set(x_797, 1, x_561); +lean_ctor_set(x_797, 2, x_562); +lean_ctor_set(x_797, 3, x_565); +lean_ctor_set_uint8(x_797, sizeof(void*)*4, x_570); +x_798 = 0; +if (lean_is_scalar(x_789)) { + x_799 = lean_alloc_ctor(1, 4, 1); +} else { + x_799 = x_789; +} +lean_ctor_set(x_799, 0, x_795); +lean_ctor_set(x_799, 1, x_791); +lean_ctor_set(x_799, 2, x_792); +lean_ctor_set(x_799, 3, x_797); +lean_ctor_set_uint8(x_799, sizeof(void*)*4, x_798); +lean_ctor_set(x_1, 2, x_567); +lean_ctor_set(x_1, 1, x_566); +lean_ctor_set(x_1, 0, x_799); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_798); +return x_1; +} +else +{ +lean_object* x_800; lean_object* x_801; lean_object* x_802; lean_object* x_803; lean_object* x_804; lean_object* x_805; lean_object* x_806; lean_object* x_807; lean_object* x_808; lean_object* x_809; uint8_t x_810; lean_object* x_811; +x_800 = lean_ctor_get(x_569, 1); +lean_inc(x_800); +x_801 = lean_ctor_get(x_569, 2); +lean_inc(x_801); +if (lean_is_exclusive(x_569)) { + lean_ctor_release(x_569, 0); + lean_ctor_release(x_569, 1); + lean_ctor_release(x_569, 2); + lean_ctor_release(x_569, 3); + x_802 = x_569; +} else { + lean_dec_ref(x_569); + x_802 = lean_box(0); +} +x_803 = lean_ctor_get(x_740, 0); +lean_inc(x_803); +x_804 = lean_ctor_get(x_740, 1); +lean_inc(x_804); +x_805 = lean_ctor_get(x_740, 2); +lean_inc(x_805); +x_806 = lean_ctor_get(x_740, 3); +lean_inc(x_806); +if (lean_is_exclusive(x_740)) { + lean_ctor_release(x_740, 0); + lean_ctor_release(x_740, 1); + lean_ctor_release(x_740, 2); + lean_ctor_release(x_740, 3); + x_807 = x_740; +} else { + lean_dec_ref(x_740); + x_807 = lean_box(0); +} +if (lean_is_scalar(x_807)) { + x_808 = lean_alloc_ctor(1, 4, 1); +} else { + x_808 = x_807; +} +lean_ctor_set(x_808, 0, x_803); +lean_ctor_set(x_808, 1, x_804); +lean_ctor_set(x_808, 2, x_805); +lean_ctor_set(x_808, 3, x_806); +lean_ctor_set_uint8(x_808, sizeof(void*)*4, x_786); +if (lean_is_scalar(x_802)) { + x_809 = lean_alloc_ctor(1, 4, 1); +} else { + x_809 = x_802; +} +lean_ctor_set(x_809, 0, x_808); +lean_ctor_set(x_809, 1, x_800); +lean_ctor_set(x_809, 2, x_801); +lean_ctor_set(x_809, 3, x_780); +lean_ctor_set_uint8(x_809, sizeof(void*)*4, x_739); +lean_ctor_set(x_1, 3, x_565); +lean_ctor_set(x_1, 0, x_809); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_570); +x_810 = 0; +x_811 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_811, 0, x_1); +lean_ctor_set(x_811, 1, x_566); +lean_ctor_set(x_811, 2, x_567); +lean_ctor_set(x_811, 3, x_547); +lean_ctor_set_uint8(x_811, sizeof(void*)*4, x_810); +return x_811; +} +} +} +} +} +else +{ +uint8_t x_812; lean_object* x_813; +lean_ctor_set(x_1, 3, x_565); +lean_ctor_set(x_1, 0, x_569); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_570); +x_812 = 0; +x_813 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_813, 0, x_1); +lean_ctor_set(x_813, 1, x_566); +lean_ctor_set(x_813, 2, x_567); +lean_ctor_set(x_813, 3, x_547); +lean_ctor_set_uint8(x_813, sizeof(void*)*4, x_812); +return x_813; +} +} +} +} +else +{ +lean_object* x_814; lean_object* x_815; lean_object* x_816; lean_object* x_817; lean_object* x_818; uint8_t x_819; lean_object* x_820; lean_object* x_821; +x_814 = lean_ctor_get(x_547, 0); +x_815 = lean_ctor_get(x_547, 1); +x_816 = lean_ctor_get(x_547, 2); +x_817 = lean_ctor_get(x_547, 3); +lean_inc(x_817); +lean_inc(x_816); +lean_inc(x_815); +lean_inc(x_814); +lean_dec(x_547); +x_818 = l_Lean_RBNode_setRed___rarg(x_560); +x_819 = 1; +lean_inc(x_4); +x_820 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_820, 0, x_817); +lean_ctor_set(x_820, 1, x_2); +lean_ctor_set(x_820, 2, x_3); +lean_ctor_set(x_820, 3, x_4); +if (lean_is_exclusive(x_4)) { + lean_ctor_release(x_4, 0); + lean_ctor_release(x_4, 1); + lean_ctor_release(x_4, 2); + lean_ctor_release(x_4, 3); + x_821 = x_4; +} else { + lean_dec_ref(x_4); + x_821 = lean_box(0); +} +lean_ctor_set_uint8(x_820, sizeof(void*)*4, x_819); +if (lean_obj_tag(x_818) == 0) +{ +uint8_t x_822; lean_object* x_823; +lean_ctor_set(x_1, 3, x_814); +lean_ctor_set(x_1, 0, x_818); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_819); +x_822 = 0; +if (lean_is_scalar(x_821)) { + x_823 = lean_alloc_ctor(1, 4, 1); +} else { + x_823 = x_821; +} +lean_ctor_set(x_823, 0, x_1); +lean_ctor_set(x_823, 1, x_815); +lean_ctor_set(x_823, 2, x_816); +lean_ctor_set(x_823, 3, x_820); +lean_ctor_set_uint8(x_823, sizeof(void*)*4, x_822); +return x_823; +} +else +{ +uint8_t x_824; +x_824 = lean_ctor_get_uint8(x_818, sizeof(void*)*4); +if (x_824 == 0) +{ +lean_object* x_825; +x_825 = lean_ctor_get(x_818, 0); +lean_inc(x_825); +if (lean_obj_tag(x_825) == 0) +{ +lean_object* x_826; +x_826 = lean_ctor_get(x_818, 3); +lean_inc(x_826); +if (lean_obj_tag(x_826) == 0) +{ +lean_object* x_827; lean_object* x_828; lean_object* x_829; lean_object* x_830; uint8_t x_831; lean_object* x_832; +x_827 = lean_ctor_get(x_818, 1); +lean_inc(x_827); +x_828 = lean_ctor_get(x_818, 2); +lean_inc(x_828); +if (lean_is_exclusive(x_818)) { + lean_ctor_release(x_818, 0); + lean_ctor_release(x_818, 1); + lean_ctor_release(x_818, 2); + lean_ctor_release(x_818, 3); + x_829 = x_818; +} else { + lean_dec_ref(x_818); + x_829 = lean_box(0); +} +if (lean_is_scalar(x_829)) { + x_830 = lean_alloc_ctor(1, 4, 1); +} else { + x_830 = x_829; +} +lean_ctor_set(x_830, 0, x_826); +lean_ctor_set(x_830, 1, x_827); +lean_ctor_set(x_830, 2, x_828); +lean_ctor_set(x_830, 3, x_826); +lean_ctor_set_uint8(x_830, sizeof(void*)*4, x_824); +lean_ctor_set(x_1, 3, x_814); +lean_ctor_set(x_1, 0, x_830); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_819); +x_831 = 0; +if (lean_is_scalar(x_821)) { + x_832 = lean_alloc_ctor(1, 4, 1); +} else { + x_832 = x_821; +} +lean_ctor_set(x_832, 0, x_1); +lean_ctor_set(x_832, 1, x_815); +lean_ctor_set(x_832, 2, x_816); +lean_ctor_set(x_832, 3, x_820); +lean_ctor_set_uint8(x_832, sizeof(void*)*4, x_831); +return x_832; +} +else +{ +uint8_t x_833; +x_833 = lean_ctor_get_uint8(x_826, sizeof(void*)*4); +if (x_833 == 0) +{ +lean_object* x_834; lean_object* x_835; lean_object* x_836; lean_object* x_837; lean_object* x_838; lean_object* x_839; lean_object* x_840; lean_object* x_841; lean_object* x_842; lean_object* x_843; uint8_t x_844; lean_object* x_845; +x_834 = lean_ctor_get(x_818, 1); +lean_inc(x_834); +x_835 = lean_ctor_get(x_818, 2); +lean_inc(x_835); +if (lean_is_exclusive(x_818)) { + lean_ctor_release(x_818, 0); + lean_ctor_release(x_818, 1); + lean_ctor_release(x_818, 2); + lean_ctor_release(x_818, 3); + x_836 = x_818; +} else { + lean_dec_ref(x_818); + x_836 = lean_box(0); +} +x_837 = lean_ctor_get(x_826, 0); +lean_inc(x_837); +x_838 = lean_ctor_get(x_826, 1); +lean_inc(x_838); +x_839 = lean_ctor_get(x_826, 2); +lean_inc(x_839); +x_840 = lean_ctor_get(x_826, 3); +lean_inc(x_840); +if (lean_is_exclusive(x_826)) { + lean_ctor_release(x_826, 0); + lean_ctor_release(x_826, 1); + lean_ctor_release(x_826, 2); + lean_ctor_release(x_826, 3); + x_841 = x_826; +} else { + lean_dec_ref(x_826); + x_841 = lean_box(0); +} +if (lean_is_scalar(x_841)) { + x_842 = lean_alloc_ctor(1, 4, 1); +} else { + x_842 = x_841; +} +lean_ctor_set(x_842, 0, x_825); +lean_ctor_set(x_842, 1, x_834); +lean_ctor_set(x_842, 2, x_835); +lean_ctor_set(x_842, 3, x_837); +lean_ctor_set_uint8(x_842, sizeof(void*)*4, x_819); +if (lean_is_scalar(x_836)) { + x_843 = lean_alloc_ctor(1, 4, 1); +} else { + x_843 = x_836; +} +lean_ctor_set(x_843, 0, x_840); +lean_ctor_set(x_843, 1, x_561); +lean_ctor_set(x_843, 2, x_562); +lean_ctor_set(x_843, 3, x_814); +lean_ctor_set_uint8(x_843, sizeof(void*)*4, x_819); +x_844 = 0; +lean_ctor_set(x_1, 3, x_843); +lean_ctor_set(x_1, 2, x_839); +lean_ctor_set(x_1, 1, x_838); +lean_ctor_set(x_1, 0, x_842); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_844); +if (lean_is_scalar(x_821)) { + x_845 = lean_alloc_ctor(1, 4, 1); +} else { + x_845 = x_821; +} +lean_ctor_set(x_845, 0, x_1); +lean_ctor_set(x_845, 1, x_815); +lean_ctor_set(x_845, 2, x_816); +lean_ctor_set(x_845, 3, x_820); +lean_ctor_set_uint8(x_845, sizeof(void*)*4, x_844); +return x_845; +} +else +{ +lean_object* x_846; lean_object* x_847; lean_object* x_848; uint8_t x_849; lean_object* x_850; +lean_dec(x_821); +lean_free_object(x_1); +if (lean_is_exclusive(x_826)) { + lean_ctor_release(x_826, 0); + lean_ctor_release(x_826, 1); + lean_ctor_release(x_826, 2); + lean_ctor_release(x_826, 3); + x_846 = x_826; +} else { + lean_dec_ref(x_826); + x_846 = lean_box(0); +} +lean_inc(x_818); +if (lean_is_scalar(x_846)) { + x_847 = lean_alloc_ctor(1, 4, 1); +} else { + x_847 = x_846; +} +lean_ctor_set(x_847, 0, x_818); +lean_ctor_set(x_847, 1, x_561); +lean_ctor_set(x_847, 2, x_562); +lean_ctor_set(x_847, 3, x_814); +if (lean_is_exclusive(x_818)) { + lean_ctor_release(x_818, 0); + lean_ctor_release(x_818, 1); + lean_ctor_release(x_818, 2); + lean_ctor_release(x_818, 3); + x_848 = x_818; +} else { + lean_dec_ref(x_818); + x_848 = lean_box(0); +} +lean_ctor_set_uint8(x_847, sizeof(void*)*4, x_819); +x_849 = 0; +if (lean_is_scalar(x_848)) { + x_850 = lean_alloc_ctor(1, 4, 1); +} else { + x_850 = x_848; +} +lean_ctor_set(x_850, 0, x_847); +lean_ctor_set(x_850, 1, x_815); +lean_ctor_set(x_850, 2, x_816); +lean_ctor_set(x_850, 3, x_820); +lean_ctor_set_uint8(x_850, sizeof(void*)*4, x_849); +return x_850; +} +} +} +else +{ +uint8_t x_851; +x_851 = lean_ctor_get_uint8(x_825, sizeof(void*)*4); +if (x_851 == 0) +{ +lean_object* x_852; lean_object* x_853; lean_object* x_854; lean_object* x_855; lean_object* x_856; lean_object* x_857; lean_object* x_858; lean_object* x_859; lean_object* x_860; lean_object* x_861; lean_object* x_862; uint8_t x_863; lean_object* x_864; +x_852 = lean_ctor_get(x_818, 1); +lean_inc(x_852); +x_853 = lean_ctor_get(x_818, 2); +lean_inc(x_853); +x_854 = lean_ctor_get(x_818, 3); +lean_inc(x_854); +if (lean_is_exclusive(x_818)) { + lean_ctor_release(x_818, 0); + lean_ctor_release(x_818, 1); + lean_ctor_release(x_818, 2); + lean_ctor_release(x_818, 3); + x_855 = x_818; +} else { + lean_dec_ref(x_818); + x_855 = lean_box(0); +} +x_856 = lean_ctor_get(x_825, 0); +lean_inc(x_856); +x_857 = lean_ctor_get(x_825, 1); +lean_inc(x_857); +x_858 = lean_ctor_get(x_825, 2); +lean_inc(x_858); +x_859 = lean_ctor_get(x_825, 3); +lean_inc(x_859); +if (lean_is_exclusive(x_825)) { + lean_ctor_release(x_825, 0); + lean_ctor_release(x_825, 1); + lean_ctor_release(x_825, 2); + lean_ctor_release(x_825, 3); + x_860 = x_825; +} else { + lean_dec_ref(x_825); + x_860 = lean_box(0); +} +if (lean_is_scalar(x_860)) { + x_861 = lean_alloc_ctor(1, 4, 1); +} else { + x_861 = x_860; +} +lean_ctor_set(x_861, 0, x_856); +lean_ctor_set(x_861, 1, x_857); +lean_ctor_set(x_861, 2, x_858); +lean_ctor_set(x_861, 3, x_859); +lean_ctor_set_uint8(x_861, sizeof(void*)*4, x_819); +if (lean_is_scalar(x_855)) { + x_862 = lean_alloc_ctor(1, 4, 1); +} else { + x_862 = x_855; +} +lean_ctor_set(x_862, 0, x_854); +lean_ctor_set(x_862, 1, x_561); +lean_ctor_set(x_862, 2, x_562); +lean_ctor_set(x_862, 3, x_814); +lean_ctor_set_uint8(x_862, sizeof(void*)*4, x_819); +x_863 = 0; +lean_ctor_set(x_1, 3, x_862); +lean_ctor_set(x_1, 2, x_853); +lean_ctor_set(x_1, 1, x_852); +lean_ctor_set(x_1, 0, x_861); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_863); +if (lean_is_scalar(x_821)) { + x_864 = lean_alloc_ctor(1, 4, 1); +} else { + x_864 = x_821; +} +lean_ctor_set(x_864, 0, x_1); +lean_ctor_set(x_864, 1, x_815); +lean_ctor_set(x_864, 2, x_816); +lean_ctor_set(x_864, 3, x_820); +lean_ctor_set_uint8(x_864, sizeof(void*)*4, x_863); +return x_864; +} +else +{ +lean_object* x_865; +x_865 = lean_ctor_get(x_818, 3); +lean_inc(x_865); +if (lean_obj_tag(x_865) == 0) +{ +lean_object* x_866; lean_object* x_867; lean_object* x_868; uint8_t x_869; lean_object* x_870; +lean_dec(x_821); +lean_free_object(x_1); +if (lean_is_exclusive(x_825)) { + lean_ctor_release(x_825, 0); + lean_ctor_release(x_825, 1); + lean_ctor_release(x_825, 2); + lean_ctor_release(x_825, 3); + x_866 = x_825; +} else { + lean_dec_ref(x_825); + x_866 = lean_box(0); +} +lean_inc(x_818); +if (lean_is_scalar(x_866)) { + x_867 = lean_alloc_ctor(1, 4, 1); +} else { + x_867 = x_866; +} +lean_ctor_set(x_867, 0, x_818); +lean_ctor_set(x_867, 1, x_561); +lean_ctor_set(x_867, 2, x_562); +lean_ctor_set(x_867, 3, x_814); +if (lean_is_exclusive(x_818)) { + lean_ctor_release(x_818, 0); + lean_ctor_release(x_818, 1); + lean_ctor_release(x_818, 2); + lean_ctor_release(x_818, 3); + x_868 = x_818; +} else { + lean_dec_ref(x_818); + x_868 = lean_box(0); +} +lean_ctor_set_uint8(x_867, sizeof(void*)*4, x_819); +x_869 = 0; +if (lean_is_scalar(x_868)) { + x_870 = lean_alloc_ctor(1, 4, 1); +} else { + x_870 = x_868; +} +lean_ctor_set(x_870, 0, x_867); +lean_ctor_set(x_870, 1, x_815); +lean_ctor_set(x_870, 2, x_816); +lean_ctor_set(x_870, 3, x_820); +lean_ctor_set_uint8(x_870, sizeof(void*)*4, x_869); +return x_870; +} +else +{ +uint8_t x_871; +x_871 = lean_ctor_get_uint8(x_865, sizeof(void*)*4); +if (x_871 == 0) +{ +lean_object* x_872; lean_object* x_873; lean_object* x_874; lean_object* x_875; lean_object* x_876; lean_object* x_877; lean_object* x_878; lean_object* x_879; lean_object* x_880; lean_object* x_881; lean_object* x_882; uint8_t x_883; lean_object* x_884; +lean_dec(x_821); +x_872 = lean_ctor_get(x_818, 1); +lean_inc(x_872); +x_873 = lean_ctor_get(x_818, 2); +lean_inc(x_873); +if (lean_is_exclusive(x_818)) { + lean_ctor_release(x_818, 0); + lean_ctor_release(x_818, 1); + lean_ctor_release(x_818, 2); + lean_ctor_release(x_818, 3); + x_874 = x_818; +} else { + lean_dec_ref(x_818); + x_874 = lean_box(0); +} +x_875 = lean_ctor_get(x_865, 0); +lean_inc(x_875); +x_876 = lean_ctor_get(x_865, 1); +lean_inc(x_876); +x_877 = lean_ctor_get(x_865, 2); +lean_inc(x_877); +x_878 = lean_ctor_get(x_865, 3); +lean_inc(x_878); +if (lean_is_exclusive(x_865)) { + lean_ctor_release(x_865, 0); + lean_ctor_release(x_865, 1); + lean_ctor_release(x_865, 2); + lean_ctor_release(x_865, 3); + x_879 = x_865; +} else { + lean_dec_ref(x_865); + x_879 = lean_box(0); +} +lean_inc(x_825); +if (lean_is_scalar(x_879)) { + x_880 = lean_alloc_ctor(1, 4, 1); +} else { + x_880 = x_879; +} +lean_ctor_set(x_880, 0, x_825); +lean_ctor_set(x_880, 1, x_872); +lean_ctor_set(x_880, 2, x_873); +lean_ctor_set(x_880, 3, x_875); +if (lean_is_exclusive(x_825)) { + lean_ctor_release(x_825, 0); + lean_ctor_release(x_825, 1); + lean_ctor_release(x_825, 2); + lean_ctor_release(x_825, 3); + x_881 = x_825; +} else { + lean_dec_ref(x_825); + x_881 = lean_box(0); +} +lean_ctor_set_uint8(x_880, sizeof(void*)*4, x_819); +if (lean_is_scalar(x_881)) { + x_882 = lean_alloc_ctor(1, 4, 1); +} else { + x_882 = x_881; +} +lean_ctor_set(x_882, 0, x_878); +lean_ctor_set(x_882, 1, x_561); +lean_ctor_set(x_882, 2, x_562); +lean_ctor_set(x_882, 3, x_814); +lean_ctor_set_uint8(x_882, sizeof(void*)*4, x_819); +x_883 = 0; +if (lean_is_scalar(x_874)) { + x_884 = lean_alloc_ctor(1, 4, 1); +} else { + x_884 = x_874; +} +lean_ctor_set(x_884, 0, x_880); +lean_ctor_set(x_884, 1, x_876); +lean_ctor_set(x_884, 2, x_877); +lean_ctor_set(x_884, 3, x_882); +lean_ctor_set_uint8(x_884, sizeof(void*)*4, x_883); +lean_ctor_set(x_1, 3, x_820); +lean_ctor_set(x_1, 2, x_816); +lean_ctor_set(x_1, 1, x_815); +lean_ctor_set(x_1, 0, x_884); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_883); +return x_1; +} +else +{ +lean_object* x_885; lean_object* x_886; lean_object* x_887; lean_object* x_888; lean_object* x_889; lean_object* x_890; lean_object* x_891; lean_object* x_892; lean_object* x_893; lean_object* x_894; uint8_t x_895; lean_object* x_896; +x_885 = lean_ctor_get(x_818, 1); +lean_inc(x_885); +x_886 = lean_ctor_get(x_818, 2); +lean_inc(x_886); +if (lean_is_exclusive(x_818)) { + lean_ctor_release(x_818, 0); + lean_ctor_release(x_818, 1); + lean_ctor_release(x_818, 2); + lean_ctor_release(x_818, 3); + x_887 = x_818; +} else { + lean_dec_ref(x_818); + x_887 = lean_box(0); +} +x_888 = lean_ctor_get(x_825, 0); +lean_inc(x_888); +x_889 = lean_ctor_get(x_825, 1); +lean_inc(x_889); +x_890 = lean_ctor_get(x_825, 2); +lean_inc(x_890); +x_891 = lean_ctor_get(x_825, 3); +lean_inc(x_891); +if (lean_is_exclusive(x_825)) { + lean_ctor_release(x_825, 0); + lean_ctor_release(x_825, 1); + lean_ctor_release(x_825, 2); + lean_ctor_release(x_825, 3); + x_892 = x_825; +} else { + lean_dec_ref(x_825); + x_892 = lean_box(0); +} +if (lean_is_scalar(x_892)) { + x_893 = lean_alloc_ctor(1, 4, 1); +} else { + x_893 = x_892; +} +lean_ctor_set(x_893, 0, x_888); +lean_ctor_set(x_893, 1, x_889); +lean_ctor_set(x_893, 2, x_890); +lean_ctor_set(x_893, 3, x_891); +lean_ctor_set_uint8(x_893, sizeof(void*)*4, x_871); +if (lean_is_scalar(x_887)) { + x_894 = lean_alloc_ctor(1, 4, 1); +} else { + x_894 = x_887; +} +lean_ctor_set(x_894, 0, x_893); +lean_ctor_set(x_894, 1, x_885); +lean_ctor_set(x_894, 2, x_886); +lean_ctor_set(x_894, 3, x_865); +lean_ctor_set_uint8(x_894, sizeof(void*)*4, x_824); +lean_ctor_set(x_1, 3, x_814); +lean_ctor_set(x_1, 0, x_894); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_819); +x_895 = 0; +if (lean_is_scalar(x_821)) { + x_896 = lean_alloc_ctor(1, 4, 1); +} else { + x_896 = x_821; +} +lean_ctor_set(x_896, 0, x_1); +lean_ctor_set(x_896, 1, x_815); +lean_ctor_set(x_896, 2, x_816); +lean_ctor_set(x_896, 3, x_820); +lean_ctor_set_uint8(x_896, sizeof(void*)*4, x_895); +return x_896; +} +} +} +} +} +else +{ +uint8_t x_897; lean_object* x_898; +lean_ctor_set(x_1, 3, x_814); +lean_ctor_set(x_1, 0, x_818); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_819); +x_897 = 0; +if (lean_is_scalar(x_821)) { + x_898 = lean_alloc_ctor(1, 4, 1); +} else { + x_898 = x_821; +} +lean_ctor_set(x_898, 0, x_1); +lean_ctor_set(x_898, 1, x_815); +lean_ctor_set(x_898, 2, x_816); +lean_ctor_set(x_898, 3, x_820); +lean_ctor_set_uint8(x_898, sizeof(void*)*4, x_897); +return x_898; +} +} +} +} +else +{ +lean_object* x_899; lean_object* x_900; lean_object* x_901; lean_object* x_902; lean_object* x_903; lean_object* x_904; lean_object* x_905; lean_object* x_906; lean_object* x_907; uint8_t x_908; lean_object* x_909; lean_object* x_910; +x_899 = lean_ctor_get(x_1, 0); +x_900 = lean_ctor_get(x_1, 1); +x_901 = lean_ctor_get(x_1, 2); +lean_inc(x_901); +lean_inc(x_900); +lean_inc(x_899); lean_dec(x_1); -x_139 = 0; -x_140 = lean_alloc_ctor(1, 4, 1); -lean_ctor_set(x_140, 0, x_135); -lean_ctor_set(x_140, 1, x_136); -lean_ctor_set(x_140, 2, x_137); -lean_ctor_set(x_140, 3, x_138); -lean_ctor_set_uint8(x_140, sizeof(void*)*4, x_139); -x_141 = l_Lean_RBNode_balance_u2083___rarg(x_140, x_2, x_3, x_4); -return x_141; +x_902 = lean_ctor_get(x_547, 0); +lean_inc(x_902); +x_903 = lean_ctor_get(x_547, 1); +lean_inc(x_903); +x_904 = lean_ctor_get(x_547, 2); +lean_inc(x_904); +x_905 = lean_ctor_get(x_547, 3); +lean_inc(x_905); +if (lean_is_exclusive(x_547)) { + lean_ctor_release(x_547, 0); + lean_ctor_release(x_547, 1); + lean_ctor_release(x_547, 2); + lean_ctor_release(x_547, 3); + x_906 = x_547; +} else { + lean_dec_ref(x_547); + x_906 = lean_box(0); +} +x_907 = l_Lean_RBNode_setRed___rarg(x_899); +x_908 = 1; +lean_inc(x_4); +if (lean_is_scalar(x_906)) { + x_909 = lean_alloc_ctor(1, 4, 1); +} else { + x_909 = x_906; +} +lean_ctor_set(x_909, 0, x_905); +lean_ctor_set(x_909, 1, x_2); +lean_ctor_set(x_909, 2, x_3); +lean_ctor_set(x_909, 3, x_4); +if (lean_is_exclusive(x_4)) { + lean_ctor_release(x_4, 0); + lean_ctor_release(x_4, 1); + lean_ctor_release(x_4, 2); + lean_ctor_release(x_4, 3); + x_910 = x_4; +} else { + lean_dec_ref(x_4); + x_910 = lean_box(0); +} +lean_ctor_set_uint8(x_909, sizeof(void*)*4, x_908); +if (lean_obj_tag(x_907) == 0) +{ +lean_object* x_911; uint8_t x_912; lean_object* x_913; +x_911 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_911, 0, x_907); +lean_ctor_set(x_911, 1, x_900); +lean_ctor_set(x_911, 2, x_901); +lean_ctor_set(x_911, 3, x_902); +lean_ctor_set_uint8(x_911, sizeof(void*)*4, x_908); +x_912 = 0; +if (lean_is_scalar(x_910)) { + x_913 = lean_alloc_ctor(1, 4, 1); +} else { + x_913 = x_910; +} +lean_ctor_set(x_913, 0, x_911); +lean_ctor_set(x_913, 1, x_903); +lean_ctor_set(x_913, 2, x_904); +lean_ctor_set(x_913, 3, x_909); +lean_ctor_set_uint8(x_913, sizeof(void*)*4, x_912); +return x_913; +} +else +{ +uint8_t x_914; +x_914 = lean_ctor_get_uint8(x_907, sizeof(void*)*4); +if (x_914 == 0) +{ +lean_object* x_915; +x_915 = lean_ctor_get(x_907, 0); +lean_inc(x_915); +if (lean_obj_tag(x_915) == 0) +{ +lean_object* x_916; +x_916 = lean_ctor_get(x_907, 3); +lean_inc(x_916); +if (lean_obj_tag(x_916) == 0) +{ +lean_object* x_917; lean_object* x_918; lean_object* x_919; lean_object* x_920; lean_object* x_921; uint8_t x_922; lean_object* x_923; +x_917 = lean_ctor_get(x_907, 1); +lean_inc(x_917); +x_918 = lean_ctor_get(x_907, 2); +lean_inc(x_918); +if (lean_is_exclusive(x_907)) { + lean_ctor_release(x_907, 0); + lean_ctor_release(x_907, 1); + lean_ctor_release(x_907, 2); + lean_ctor_release(x_907, 3); + x_919 = x_907; +} else { + lean_dec_ref(x_907); + x_919 = lean_box(0); +} +if (lean_is_scalar(x_919)) { + x_920 = lean_alloc_ctor(1, 4, 1); +} else { + x_920 = x_919; +} +lean_ctor_set(x_920, 0, x_916); +lean_ctor_set(x_920, 1, x_917); +lean_ctor_set(x_920, 2, x_918); +lean_ctor_set(x_920, 3, x_916); +lean_ctor_set_uint8(x_920, sizeof(void*)*4, x_914); +x_921 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_921, 0, x_920); +lean_ctor_set(x_921, 1, x_900); +lean_ctor_set(x_921, 2, x_901); +lean_ctor_set(x_921, 3, x_902); +lean_ctor_set_uint8(x_921, sizeof(void*)*4, x_908); +x_922 = 0; +if (lean_is_scalar(x_910)) { + x_923 = lean_alloc_ctor(1, 4, 1); +} else { + x_923 = x_910; +} +lean_ctor_set(x_923, 0, x_921); +lean_ctor_set(x_923, 1, x_903); +lean_ctor_set(x_923, 2, x_904); +lean_ctor_set(x_923, 3, x_909); +lean_ctor_set_uint8(x_923, sizeof(void*)*4, x_922); +return x_923; +} +else +{ +uint8_t x_924; +x_924 = lean_ctor_get_uint8(x_916, sizeof(void*)*4); +if (x_924 == 0) +{ +lean_object* x_925; lean_object* x_926; lean_object* x_927; lean_object* x_928; lean_object* x_929; lean_object* x_930; lean_object* x_931; lean_object* x_932; lean_object* x_933; lean_object* x_934; uint8_t x_935; lean_object* x_936; lean_object* x_937; +x_925 = lean_ctor_get(x_907, 1); +lean_inc(x_925); +x_926 = lean_ctor_get(x_907, 2); +lean_inc(x_926); +if (lean_is_exclusive(x_907)) { + lean_ctor_release(x_907, 0); + lean_ctor_release(x_907, 1); + lean_ctor_release(x_907, 2); + lean_ctor_release(x_907, 3); + x_927 = x_907; +} else { + lean_dec_ref(x_907); + x_927 = lean_box(0); +} +x_928 = lean_ctor_get(x_916, 0); +lean_inc(x_928); +x_929 = lean_ctor_get(x_916, 1); +lean_inc(x_929); +x_930 = lean_ctor_get(x_916, 2); +lean_inc(x_930); +x_931 = lean_ctor_get(x_916, 3); +lean_inc(x_931); +if (lean_is_exclusive(x_916)) { + lean_ctor_release(x_916, 0); + lean_ctor_release(x_916, 1); + lean_ctor_release(x_916, 2); + lean_ctor_release(x_916, 3); + x_932 = x_916; +} else { + lean_dec_ref(x_916); + x_932 = lean_box(0); +} +if (lean_is_scalar(x_932)) { + x_933 = lean_alloc_ctor(1, 4, 1); +} else { + x_933 = x_932; +} +lean_ctor_set(x_933, 0, x_915); +lean_ctor_set(x_933, 1, x_925); +lean_ctor_set(x_933, 2, x_926); +lean_ctor_set(x_933, 3, x_928); +lean_ctor_set_uint8(x_933, sizeof(void*)*4, x_908); +if (lean_is_scalar(x_927)) { + x_934 = lean_alloc_ctor(1, 4, 1); +} else { + x_934 = x_927; +} +lean_ctor_set(x_934, 0, x_931); +lean_ctor_set(x_934, 1, x_900); +lean_ctor_set(x_934, 2, x_901); +lean_ctor_set(x_934, 3, x_902); +lean_ctor_set_uint8(x_934, sizeof(void*)*4, x_908); +x_935 = 0; +x_936 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_936, 0, x_933); +lean_ctor_set(x_936, 1, x_929); +lean_ctor_set(x_936, 2, x_930); +lean_ctor_set(x_936, 3, x_934); +lean_ctor_set_uint8(x_936, sizeof(void*)*4, x_935); +if (lean_is_scalar(x_910)) { + x_937 = lean_alloc_ctor(1, 4, 1); +} else { + x_937 = x_910; +} +lean_ctor_set(x_937, 0, x_936); +lean_ctor_set(x_937, 1, x_903); +lean_ctor_set(x_937, 2, x_904); +lean_ctor_set(x_937, 3, x_909); +lean_ctor_set_uint8(x_937, sizeof(void*)*4, x_935); +return x_937; +} +else +{ +lean_object* x_938; lean_object* x_939; lean_object* x_940; uint8_t x_941; lean_object* x_942; +lean_dec(x_910); +if (lean_is_exclusive(x_916)) { + lean_ctor_release(x_916, 0); + lean_ctor_release(x_916, 1); + lean_ctor_release(x_916, 2); + lean_ctor_release(x_916, 3); + x_938 = x_916; +} else { + lean_dec_ref(x_916); + x_938 = lean_box(0); +} +lean_inc(x_907); +if (lean_is_scalar(x_938)) { + x_939 = lean_alloc_ctor(1, 4, 1); +} else { + x_939 = x_938; +} +lean_ctor_set(x_939, 0, x_907); +lean_ctor_set(x_939, 1, x_900); +lean_ctor_set(x_939, 2, x_901); +lean_ctor_set(x_939, 3, x_902); +if (lean_is_exclusive(x_907)) { + lean_ctor_release(x_907, 0); + lean_ctor_release(x_907, 1); + lean_ctor_release(x_907, 2); + lean_ctor_release(x_907, 3); + x_940 = x_907; +} else { + lean_dec_ref(x_907); + x_940 = lean_box(0); +} +lean_ctor_set_uint8(x_939, sizeof(void*)*4, x_908); +x_941 = 0; +if (lean_is_scalar(x_940)) { + x_942 = lean_alloc_ctor(1, 4, 1); +} else { + x_942 = x_940; +} +lean_ctor_set(x_942, 0, x_939); +lean_ctor_set(x_942, 1, x_903); +lean_ctor_set(x_942, 2, x_904); +lean_ctor_set(x_942, 3, x_909); +lean_ctor_set_uint8(x_942, sizeof(void*)*4, x_941); +return x_942; +} +} +} +else +{ +uint8_t x_943; +x_943 = lean_ctor_get_uint8(x_915, sizeof(void*)*4); +if (x_943 == 0) +{ +lean_object* x_944; lean_object* x_945; lean_object* x_946; lean_object* x_947; lean_object* x_948; lean_object* x_949; lean_object* x_950; lean_object* x_951; lean_object* x_952; lean_object* x_953; lean_object* x_954; uint8_t x_955; lean_object* x_956; lean_object* x_957; +x_944 = lean_ctor_get(x_907, 1); +lean_inc(x_944); +x_945 = lean_ctor_get(x_907, 2); +lean_inc(x_945); +x_946 = lean_ctor_get(x_907, 3); +lean_inc(x_946); +if (lean_is_exclusive(x_907)) { + lean_ctor_release(x_907, 0); + lean_ctor_release(x_907, 1); + lean_ctor_release(x_907, 2); + lean_ctor_release(x_907, 3); + x_947 = x_907; +} else { + lean_dec_ref(x_907); + x_947 = lean_box(0); +} +x_948 = lean_ctor_get(x_915, 0); +lean_inc(x_948); +x_949 = lean_ctor_get(x_915, 1); +lean_inc(x_949); +x_950 = lean_ctor_get(x_915, 2); +lean_inc(x_950); +x_951 = lean_ctor_get(x_915, 3); +lean_inc(x_951); +if (lean_is_exclusive(x_915)) { + lean_ctor_release(x_915, 0); + lean_ctor_release(x_915, 1); + lean_ctor_release(x_915, 2); + lean_ctor_release(x_915, 3); + x_952 = x_915; +} else { + lean_dec_ref(x_915); + x_952 = lean_box(0); +} +if (lean_is_scalar(x_952)) { + x_953 = lean_alloc_ctor(1, 4, 1); +} else { + x_953 = x_952; +} +lean_ctor_set(x_953, 0, x_948); +lean_ctor_set(x_953, 1, x_949); +lean_ctor_set(x_953, 2, x_950); +lean_ctor_set(x_953, 3, x_951); +lean_ctor_set_uint8(x_953, sizeof(void*)*4, x_908); +if (lean_is_scalar(x_947)) { + x_954 = lean_alloc_ctor(1, 4, 1); +} else { + x_954 = x_947; +} +lean_ctor_set(x_954, 0, x_946); +lean_ctor_set(x_954, 1, x_900); +lean_ctor_set(x_954, 2, x_901); +lean_ctor_set(x_954, 3, x_902); +lean_ctor_set_uint8(x_954, sizeof(void*)*4, x_908); +x_955 = 0; +x_956 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_956, 0, x_953); +lean_ctor_set(x_956, 1, x_944); +lean_ctor_set(x_956, 2, x_945); +lean_ctor_set(x_956, 3, x_954); +lean_ctor_set_uint8(x_956, sizeof(void*)*4, x_955); +if (lean_is_scalar(x_910)) { + x_957 = lean_alloc_ctor(1, 4, 1); +} else { + x_957 = x_910; +} +lean_ctor_set(x_957, 0, x_956); +lean_ctor_set(x_957, 1, x_903); +lean_ctor_set(x_957, 2, x_904); +lean_ctor_set(x_957, 3, x_909); +lean_ctor_set_uint8(x_957, sizeof(void*)*4, x_955); +return x_957; +} +else +{ +lean_object* x_958; +x_958 = lean_ctor_get(x_907, 3); +lean_inc(x_958); +if (lean_obj_tag(x_958) == 0) +{ +lean_object* x_959; lean_object* x_960; lean_object* x_961; uint8_t x_962; lean_object* x_963; +lean_dec(x_910); +if (lean_is_exclusive(x_915)) { + lean_ctor_release(x_915, 0); + lean_ctor_release(x_915, 1); + lean_ctor_release(x_915, 2); + lean_ctor_release(x_915, 3); + x_959 = x_915; +} else { + lean_dec_ref(x_915); + x_959 = lean_box(0); +} +lean_inc(x_907); +if (lean_is_scalar(x_959)) { + x_960 = lean_alloc_ctor(1, 4, 1); +} else { + x_960 = x_959; +} +lean_ctor_set(x_960, 0, x_907); +lean_ctor_set(x_960, 1, x_900); +lean_ctor_set(x_960, 2, x_901); +lean_ctor_set(x_960, 3, x_902); +if (lean_is_exclusive(x_907)) { + lean_ctor_release(x_907, 0); + lean_ctor_release(x_907, 1); + lean_ctor_release(x_907, 2); + lean_ctor_release(x_907, 3); + x_961 = x_907; +} else { + lean_dec_ref(x_907); + x_961 = lean_box(0); +} +lean_ctor_set_uint8(x_960, sizeof(void*)*4, x_908); +x_962 = 0; +if (lean_is_scalar(x_961)) { + x_963 = lean_alloc_ctor(1, 4, 1); +} else { + x_963 = x_961; +} +lean_ctor_set(x_963, 0, x_960); +lean_ctor_set(x_963, 1, x_903); +lean_ctor_set(x_963, 2, x_904); +lean_ctor_set(x_963, 3, x_909); +lean_ctor_set_uint8(x_963, sizeof(void*)*4, x_962); +return x_963; +} +else +{ +uint8_t x_964; +x_964 = lean_ctor_get_uint8(x_958, sizeof(void*)*4); +if (x_964 == 0) +{ +lean_object* x_965; lean_object* x_966; lean_object* x_967; lean_object* x_968; lean_object* x_969; lean_object* x_970; lean_object* x_971; lean_object* x_972; lean_object* x_973; lean_object* x_974; lean_object* x_975; uint8_t x_976; lean_object* x_977; lean_object* x_978; +lean_dec(x_910); +x_965 = lean_ctor_get(x_907, 1); +lean_inc(x_965); +x_966 = lean_ctor_get(x_907, 2); +lean_inc(x_966); +if (lean_is_exclusive(x_907)) { + lean_ctor_release(x_907, 0); + lean_ctor_release(x_907, 1); + lean_ctor_release(x_907, 2); + lean_ctor_release(x_907, 3); + x_967 = x_907; +} else { + lean_dec_ref(x_907); + x_967 = lean_box(0); +} +x_968 = lean_ctor_get(x_958, 0); +lean_inc(x_968); +x_969 = lean_ctor_get(x_958, 1); +lean_inc(x_969); +x_970 = lean_ctor_get(x_958, 2); +lean_inc(x_970); +x_971 = lean_ctor_get(x_958, 3); +lean_inc(x_971); +if (lean_is_exclusive(x_958)) { + lean_ctor_release(x_958, 0); + lean_ctor_release(x_958, 1); + lean_ctor_release(x_958, 2); + lean_ctor_release(x_958, 3); + x_972 = x_958; +} else { + lean_dec_ref(x_958); + x_972 = lean_box(0); +} +lean_inc(x_915); +if (lean_is_scalar(x_972)) { + x_973 = lean_alloc_ctor(1, 4, 1); +} else { + x_973 = x_972; +} +lean_ctor_set(x_973, 0, x_915); +lean_ctor_set(x_973, 1, x_965); +lean_ctor_set(x_973, 2, x_966); +lean_ctor_set(x_973, 3, x_968); +if (lean_is_exclusive(x_915)) { + lean_ctor_release(x_915, 0); + lean_ctor_release(x_915, 1); + lean_ctor_release(x_915, 2); + lean_ctor_release(x_915, 3); + x_974 = x_915; +} else { + lean_dec_ref(x_915); + x_974 = lean_box(0); +} +lean_ctor_set_uint8(x_973, sizeof(void*)*4, x_908); +if (lean_is_scalar(x_974)) { + x_975 = lean_alloc_ctor(1, 4, 1); +} else { + x_975 = x_974; +} +lean_ctor_set(x_975, 0, x_971); +lean_ctor_set(x_975, 1, x_900); +lean_ctor_set(x_975, 2, x_901); +lean_ctor_set(x_975, 3, x_902); +lean_ctor_set_uint8(x_975, sizeof(void*)*4, x_908); +x_976 = 0; +if (lean_is_scalar(x_967)) { + x_977 = lean_alloc_ctor(1, 4, 1); +} else { + x_977 = x_967; +} +lean_ctor_set(x_977, 0, x_973); +lean_ctor_set(x_977, 1, x_969); +lean_ctor_set(x_977, 2, x_970); +lean_ctor_set(x_977, 3, x_975); +lean_ctor_set_uint8(x_977, sizeof(void*)*4, x_976); +x_978 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_978, 0, x_977); +lean_ctor_set(x_978, 1, x_903); +lean_ctor_set(x_978, 2, x_904); +lean_ctor_set(x_978, 3, x_909); +lean_ctor_set_uint8(x_978, sizeof(void*)*4, x_976); +return x_978; +} +else +{ +lean_object* x_979; lean_object* x_980; lean_object* x_981; lean_object* x_982; lean_object* x_983; lean_object* x_984; lean_object* x_985; lean_object* x_986; lean_object* x_987; lean_object* x_988; lean_object* x_989; uint8_t x_990; lean_object* x_991; +x_979 = lean_ctor_get(x_907, 1); +lean_inc(x_979); +x_980 = lean_ctor_get(x_907, 2); +lean_inc(x_980); +if (lean_is_exclusive(x_907)) { + lean_ctor_release(x_907, 0); + lean_ctor_release(x_907, 1); + lean_ctor_release(x_907, 2); + lean_ctor_release(x_907, 3); + x_981 = x_907; +} else { + lean_dec_ref(x_907); + x_981 = lean_box(0); +} +x_982 = lean_ctor_get(x_915, 0); +lean_inc(x_982); +x_983 = lean_ctor_get(x_915, 1); +lean_inc(x_983); +x_984 = lean_ctor_get(x_915, 2); +lean_inc(x_984); +x_985 = lean_ctor_get(x_915, 3); +lean_inc(x_985); +if (lean_is_exclusive(x_915)) { + lean_ctor_release(x_915, 0); + lean_ctor_release(x_915, 1); + lean_ctor_release(x_915, 2); + lean_ctor_release(x_915, 3); + x_986 = x_915; +} else { + lean_dec_ref(x_915); + x_986 = lean_box(0); +} +if (lean_is_scalar(x_986)) { + x_987 = lean_alloc_ctor(1, 4, 1); +} else { + x_987 = x_986; +} +lean_ctor_set(x_987, 0, x_982); +lean_ctor_set(x_987, 1, x_983); +lean_ctor_set(x_987, 2, x_984); +lean_ctor_set(x_987, 3, x_985); +lean_ctor_set_uint8(x_987, sizeof(void*)*4, x_964); +if (lean_is_scalar(x_981)) { + x_988 = lean_alloc_ctor(1, 4, 1); +} else { + x_988 = x_981; +} +lean_ctor_set(x_988, 0, x_987); +lean_ctor_set(x_988, 1, x_979); +lean_ctor_set(x_988, 2, x_980); +lean_ctor_set(x_988, 3, x_958); +lean_ctor_set_uint8(x_988, sizeof(void*)*4, x_914); +x_989 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_989, 0, x_988); +lean_ctor_set(x_989, 1, x_900); +lean_ctor_set(x_989, 2, x_901); +lean_ctor_set(x_989, 3, x_902); +lean_ctor_set_uint8(x_989, sizeof(void*)*4, x_908); +x_990 = 0; +if (lean_is_scalar(x_910)) { + x_991 = lean_alloc_ctor(1, 4, 1); +} else { + x_991 = x_910; +} +lean_ctor_set(x_991, 0, x_989); +lean_ctor_set(x_991, 1, x_903); +lean_ctor_set(x_991, 2, x_904); +lean_ctor_set(x_991, 3, x_909); +lean_ctor_set_uint8(x_991, sizeof(void*)*4, x_990); +return x_991; +} +} +} +} +} +else +{ +lean_object* x_992; uint8_t x_993; lean_object* x_994; +x_992 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_992, 0, x_907); +lean_ctor_set(x_992, 1, x_900); +lean_ctor_set(x_992, 2, x_901); +lean_ctor_set(x_992, 3, x_902); +lean_ctor_set_uint8(x_992, sizeof(void*)*4, x_908); +x_993 = 0; +if (lean_is_scalar(x_910)) { + x_994 = lean_alloc_ctor(1, 4, 1); +} else { + x_994 = x_910; +} +lean_ctor_set(x_994, 0, x_992); +lean_ctor_set(x_994, 1, x_903); +lean_ctor_set(x_994, 2, x_904); +lean_ctor_set(x_994, 3, x_909); +lean_ctor_set_uint8(x_994, sizeof(void*)*4, x_993); +return x_994; +} +} +} +} +} +} +else +{ +uint8_t x_995; +x_995 = !lean_is_exclusive(x_1); +if (x_995 == 0) +{ +lean_object* x_996; lean_object* x_997; lean_object* x_998; lean_object* x_999; uint8_t x_1000; +x_996 = lean_ctor_get(x_1, 0); +x_997 = lean_ctor_get(x_1, 1); +x_998 = lean_ctor_get(x_1, 2); +x_999 = lean_ctor_get(x_1, 3); +x_1000 = 0; +lean_inc(x_999); +lean_inc(x_998); +lean_inc(x_997); +lean_inc(x_996); +lean_ctor_set_uint8(x_1, sizeof(void*)*4, x_1000); +if (lean_obj_tag(x_996) == 0) +{ +if (lean_obj_tag(x_999) == 0) +{ +lean_object* x_1001; uint8_t x_1002; lean_object* x_1003; +lean_dec(x_1); +x_1001 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1001, 0, x_999); +lean_ctor_set(x_1001, 1, x_997); +lean_ctor_set(x_1001, 2, x_998); +lean_ctor_set(x_1001, 3, x_999); +lean_ctor_set_uint8(x_1001, sizeof(void*)*4, x_1000); +x_1002 = 1; +x_1003 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1003, 0, x_1001); +lean_ctor_set(x_1003, 1, x_2); +lean_ctor_set(x_1003, 2, x_3); +lean_ctor_set(x_1003, 3, x_4); +lean_ctor_set_uint8(x_1003, sizeof(void*)*4, x_1002); +return x_1003; +} +else +{ +uint8_t x_1004; +x_1004 = lean_ctor_get_uint8(x_999, sizeof(void*)*4); +if (x_1004 == 0) +{ +uint8_t x_1005; +lean_dec(x_1); +x_1005 = !lean_is_exclusive(x_999); +if (x_1005 == 0) +{ +lean_object* x_1006; lean_object* x_1007; lean_object* x_1008; lean_object* x_1009; uint8_t x_1010; lean_object* x_1011; lean_object* x_1012; +x_1006 = lean_ctor_get(x_999, 0); +x_1007 = lean_ctor_get(x_999, 1); +x_1008 = lean_ctor_get(x_999, 2); +x_1009 = lean_ctor_get(x_999, 3); +x_1010 = 1; +lean_ctor_set(x_999, 3, x_1006); +lean_ctor_set(x_999, 2, x_998); +lean_ctor_set(x_999, 1, x_997); +lean_ctor_set(x_999, 0, x_996); +lean_ctor_set_uint8(x_999, sizeof(void*)*4, x_1010); +x_1011 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1011, 0, x_1009); +lean_ctor_set(x_1011, 1, x_2); +lean_ctor_set(x_1011, 2, x_3); +lean_ctor_set(x_1011, 3, x_4); +lean_ctor_set_uint8(x_1011, sizeof(void*)*4, x_1010); +x_1012 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1012, 0, x_999); +lean_ctor_set(x_1012, 1, x_1007); +lean_ctor_set(x_1012, 2, x_1008); +lean_ctor_set(x_1012, 3, x_1011); +lean_ctor_set_uint8(x_1012, sizeof(void*)*4, x_1000); +return x_1012; +} +else +{ +lean_object* x_1013; lean_object* x_1014; lean_object* x_1015; lean_object* x_1016; uint8_t x_1017; lean_object* x_1018; lean_object* x_1019; lean_object* x_1020; +x_1013 = lean_ctor_get(x_999, 0); +x_1014 = lean_ctor_get(x_999, 1); +x_1015 = lean_ctor_get(x_999, 2); +x_1016 = lean_ctor_get(x_999, 3); +lean_inc(x_1016); +lean_inc(x_1015); +lean_inc(x_1014); +lean_inc(x_1013); +lean_dec(x_999); +x_1017 = 1; +x_1018 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1018, 0, x_996); +lean_ctor_set(x_1018, 1, x_997); +lean_ctor_set(x_1018, 2, x_998); +lean_ctor_set(x_1018, 3, x_1013); +lean_ctor_set_uint8(x_1018, sizeof(void*)*4, x_1017); +x_1019 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1019, 0, x_1016); +lean_ctor_set(x_1019, 1, x_2); +lean_ctor_set(x_1019, 2, x_3); +lean_ctor_set(x_1019, 3, x_4); +lean_ctor_set_uint8(x_1019, sizeof(void*)*4, x_1017); +x_1020 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1020, 0, x_1018); +lean_ctor_set(x_1020, 1, x_1014); +lean_ctor_set(x_1020, 2, x_1015); +lean_ctor_set(x_1020, 3, x_1019); +lean_ctor_set_uint8(x_1020, sizeof(void*)*4, x_1000); +return x_1020; +} +} +else +{ +uint8_t x_1021; +lean_dec(x_998); +lean_dec(x_997); +x_1021 = !lean_is_exclusive(x_999); +if (x_1021 == 0) +{ +lean_object* x_1022; lean_object* x_1023; lean_object* x_1024; lean_object* x_1025; uint8_t x_1026; +x_1022 = lean_ctor_get(x_999, 3); +lean_dec(x_1022); +x_1023 = lean_ctor_get(x_999, 2); +lean_dec(x_1023); +x_1024 = lean_ctor_get(x_999, 1); +lean_dec(x_1024); +x_1025 = lean_ctor_get(x_999, 0); +lean_dec(x_1025); +x_1026 = 1; +lean_ctor_set(x_999, 3, x_4); +lean_ctor_set(x_999, 2, x_3); +lean_ctor_set(x_999, 1, x_2); +lean_ctor_set(x_999, 0, x_1); +lean_ctor_set_uint8(x_999, sizeof(void*)*4, x_1026); +return x_999; +} +else +{ +uint8_t x_1027; lean_object* x_1028; +lean_dec(x_999); +x_1027 = 1; +x_1028 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1028, 0, x_1); +lean_ctor_set(x_1028, 1, x_2); +lean_ctor_set(x_1028, 2, x_3); +lean_ctor_set(x_1028, 3, x_4); +lean_ctor_set_uint8(x_1028, sizeof(void*)*4, x_1027); +return x_1028; +} +} +} +} +else +{ +uint8_t x_1029; +x_1029 = lean_ctor_get_uint8(x_996, sizeof(void*)*4); +if (x_1029 == 0) +{ +uint8_t x_1030; +lean_dec(x_1); +x_1030 = !lean_is_exclusive(x_996); +if (x_1030 == 0) +{ +uint8_t x_1031; lean_object* x_1032; lean_object* x_1033; +x_1031 = 1; +lean_ctor_set_uint8(x_996, sizeof(void*)*4, x_1031); +x_1032 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1032, 0, x_999); +lean_ctor_set(x_1032, 1, x_2); +lean_ctor_set(x_1032, 2, x_3); +lean_ctor_set(x_1032, 3, x_4); +lean_ctor_set_uint8(x_1032, sizeof(void*)*4, x_1031); +x_1033 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1033, 0, x_996); +lean_ctor_set(x_1033, 1, x_997); +lean_ctor_set(x_1033, 2, x_998); +lean_ctor_set(x_1033, 3, x_1032); +lean_ctor_set_uint8(x_1033, sizeof(void*)*4, x_1000); +return x_1033; +} +else +{ +lean_object* x_1034; lean_object* x_1035; lean_object* x_1036; lean_object* x_1037; uint8_t x_1038; lean_object* x_1039; lean_object* x_1040; lean_object* x_1041; +x_1034 = lean_ctor_get(x_996, 0); +x_1035 = lean_ctor_get(x_996, 1); +x_1036 = lean_ctor_get(x_996, 2); +x_1037 = lean_ctor_get(x_996, 3); +lean_inc(x_1037); +lean_inc(x_1036); +lean_inc(x_1035); +lean_inc(x_1034); +lean_dec(x_996); +x_1038 = 1; +x_1039 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1039, 0, x_1034); +lean_ctor_set(x_1039, 1, x_1035); +lean_ctor_set(x_1039, 2, x_1036); +lean_ctor_set(x_1039, 3, x_1037); +lean_ctor_set_uint8(x_1039, sizeof(void*)*4, x_1038); +x_1040 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1040, 0, x_999); +lean_ctor_set(x_1040, 1, x_2); +lean_ctor_set(x_1040, 2, x_3); +lean_ctor_set(x_1040, 3, x_4); +lean_ctor_set_uint8(x_1040, sizeof(void*)*4, x_1038); +x_1041 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1041, 0, x_1039); +lean_ctor_set(x_1041, 1, x_997); +lean_ctor_set(x_1041, 2, x_998); +lean_ctor_set(x_1041, 3, x_1040); +lean_ctor_set_uint8(x_1041, sizeof(void*)*4, x_1000); +return x_1041; +} +} +else +{ +if (lean_obj_tag(x_999) == 0) +{ +uint8_t x_1042; +lean_dec(x_998); +lean_dec(x_997); +x_1042 = !lean_is_exclusive(x_996); +if (x_1042 == 0) +{ +lean_object* x_1043; lean_object* x_1044; lean_object* x_1045; lean_object* x_1046; uint8_t x_1047; +x_1043 = lean_ctor_get(x_996, 3); +lean_dec(x_1043); +x_1044 = lean_ctor_get(x_996, 2); +lean_dec(x_1044); +x_1045 = lean_ctor_get(x_996, 1); +lean_dec(x_1045); +x_1046 = lean_ctor_get(x_996, 0); +lean_dec(x_1046); +x_1047 = 1; +lean_ctor_set(x_996, 3, x_4); +lean_ctor_set(x_996, 2, x_3); +lean_ctor_set(x_996, 1, x_2); +lean_ctor_set(x_996, 0, x_1); +lean_ctor_set_uint8(x_996, sizeof(void*)*4, x_1047); +return x_996; +} +else +{ +uint8_t x_1048; lean_object* x_1049; +lean_dec(x_996); +x_1048 = 1; +x_1049 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1049, 0, x_1); +lean_ctor_set(x_1049, 1, x_2); +lean_ctor_set(x_1049, 2, x_3); +lean_ctor_set(x_1049, 3, x_4); +lean_ctor_set_uint8(x_1049, sizeof(void*)*4, x_1048); +return x_1049; +} +} +else +{ +uint8_t x_1050; +lean_dec(x_1); +x_1050 = lean_ctor_get_uint8(x_999, sizeof(void*)*4); +if (x_1050 == 0) +{ +uint8_t x_1051; +x_1051 = !lean_is_exclusive(x_999); +if (x_1051 == 0) +{ +lean_object* x_1052; lean_object* x_1053; lean_object* x_1054; lean_object* x_1055; uint8_t x_1056; uint8_t x_1057; +x_1052 = lean_ctor_get(x_999, 0); +x_1053 = lean_ctor_get(x_999, 1); +x_1054 = lean_ctor_get(x_999, 2); +x_1055 = lean_ctor_get(x_999, 3); +x_1056 = 1; +lean_inc(x_996); +lean_ctor_set(x_999, 3, x_1052); +lean_ctor_set(x_999, 2, x_998); +lean_ctor_set(x_999, 1, x_997); +lean_ctor_set(x_999, 0, x_996); +x_1057 = !lean_is_exclusive(x_996); +if (x_1057 == 0) +{ +lean_object* x_1058; lean_object* x_1059; lean_object* x_1060; lean_object* x_1061; uint8_t x_1062; +x_1058 = lean_ctor_get(x_996, 3); +lean_dec(x_1058); +x_1059 = lean_ctor_get(x_996, 2); +lean_dec(x_1059); +x_1060 = lean_ctor_get(x_996, 1); +lean_dec(x_1060); +x_1061 = lean_ctor_get(x_996, 0); +lean_dec(x_1061); +lean_ctor_set_uint8(x_999, sizeof(void*)*4, x_1056); +lean_inc(x_4); +lean_ctor_set(x_996, 3, x_4); +lean_ctor_set(x_996, 2, x_3); +lean_ctor_set(x_996, 1, x_2); +lean_ctor_set(x_996, 0, x_1055); +x_1062 = !lean_is_exclusive(x_4); +if (x_1062 == 0) +{ +lean_object* x_1063; lean_object* x_1064; lean_object* x_1065; lean_object* x_1066; +x_1063 = lean_ctor_get(x_4, 3); +lean_dec(x_1063); +x_1064 = lean_ctor_get(x_4, 2); +lean_dec(x_1064); +x_1065 = lean_ctor_get(x_4, 1); +lean_dec(x_1065); +x_1066 = lean_ctor_get(x_4, 0); +lean_dec(x_1066); +lean_ctor_set_uint8(x_996, sizeof(void*)*4, x_1056); +lean_ctor_set(x_4, 3, x_996); +lean_ctor_set(x_4, 2, x_1054); +lean_ctor_set(x_4, 1, x_1053); +lean_ctor_set(x_4, 0, x_999); +lean_ctor_set_uint8(x_4, sizeof(void*)*4, x_1000); +return x_4; +} +else +{ +lean_object* x_1067; +lean_dec(x_4); +lean_ctor_set_uint8(x_996, sizeof(void*)*4, x_1056); +x_1067 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1067, 0, x_999); +lean_ctor_set(x_1067, 1, x_1053); +lean_ctor_set(x_1067, 2, x_1054); +lean_ctor_set(x_1067, 3, x_996); +lean_ctor_set_uint8(x_1067, sizeof(void*)*4, x_1000); +return x_1067; +} +} +else +{ +lean_object* x_1068; lean_object* x_1069; lean_object* x_1070; +lean_dec(x_996); +lean_ctor_set_uint8(x_999, sizeof(void*)*4, x_1056); +lean_inc(x_4); +x_1068 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1068, 0, x_1055); +lean_ctor_set(x_1068, 1, x_2); +lean_ctor_set(x_1068, 2, x_3); +lean_ctor_set(x_1068, 3, x_4); +if (lean_is_exclusive(x_4)) { + lean_ctor_release(x_4, 0); + lean_ctor_release(x_4, 1); + lean_ctor_release(x_4, 2); + lean_ctor_release(x_4, 3); + x_1069 = x_4; +} else { + lean_dec_ref(x_4); + x_1069 = lean_box(0); +} +lean_ctor_set_uint8(x_1068, sizeof(void*)*4, x_1056); +if (lean_is_scalar(x_1069)) { + x_1070 = lean_alloc_ctor(1, 4, 1); +} else { + x_1070 = x_1069; +} +lean_ctor_set(x_1070, 0, x_999); +lean_ctor_set(x_1070, 1, x_1053); +lean_ctor_set(x_1070, 2, x_1054); +lean_ctor_set(x_1070, 3, x_1068); +lean_ctor_set_uint8(x_1070, sizeof(void*)*4, x_1000); +return x_1070; +} +} +else +{ +lean_object* x_1071; lean_object* x_1072; lean_object* x_1073; lean_object* x_1074; uint8_t x_1075; lean_object* x_1076; lean_object* x_1077; lean_object* x_1078; lean_object* x_1079; lean_object* x_1080; +x_1071 = lean_ctor_get(x_999, 0); +x_1072 = lean_ctor_get(x_999, 1); +x_1073 = lean_ctor_get(x_999, 2); +x_1074 = lean_ctor_get(x_999, 3); +lean_inc(x_1074); +lean_inc(x_1073); +lean_inc(x_1072); +lean_inc(x_1071); +lean_dec(x_999); +x_1075 = 1; +lean_inc(x_996); +x_1076 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1076, 0, x_996); +lean_ctor_set(x_1076, 1, x_997); +lean_ctor_set(x_1076, 2, x_998); +lean_ctor_set(x_1076, 3, x_1071); +if (lean_is_exclusive(x_996)) { + lean_ctor_release(x_996, 0); + lean_ctor_release(x_996, 1); + lean_ctor_release(x_996, 2); + lean_ctor_release(x_996, 3); + x_1077 = x_996; +} else { + lean_dec_ref(x_996); + x_1077 = lean_box(0); +} +lean_ctor_set_uint8(x_1076, sizeof(void*)*4, x_1075); +lean_inc(x_4); +if (lean_is_scalar(x_1077)) { + x_1078 = lean_alloc_ctor(1, 4, 1); +} else { + x_1078 = x_1077; +} +lean_ctor_set(x_1078, 0, x_1074); +lean_ctor_set(x_1078, 1, x_2); +lean_ctor_set(x_1078, 2, x_3); +lean_ctor_set(x_1078, 3, x_4); +if (lean_is_exclusive(x_4)) { + lean_ctor_release(x_4, 0); + lean_ctor_release(x_4, 1); + lean_ctor_release(x_4, 2); + lean_ctor_release(x_4, 3); + x_1079 = x_4; +} else { + lean_dec_ref(x_4); + x_1079 = lean_box(0); +} +lean_ctor_set_uint8(x_1078, sizeof(void*)*4, x_1075); +if (lean_is_scalar(x_1079)) { + x_1080 = lean_alloc_ctor(1, 4, 1); +} else { + x_1080 = x_1079; +} +lean_ctor_set(x_1080, 0, x_1076); +lean_ctor_set(x_1080, 1, x_1072); +lean_ctor_set(x_1080, 2, x_1073); +lean_ctor_set(x_1080, 3, x_1078); +lean_ctor_set_uint8(x_1080, sizeof(void*)*4, x_1000); +return x_1080; +} +} +else +{ +uint8_t x_1081; +x_1081 = !lean_is_exclusive(x_996); +if (x_1081 == 0) +{ +lean_object* x_1082; uint8_t x_1083; lean_object* x_1084; +lean_ctor_set_uint8(x_996, sizeof(void*)*4, x_1050); +x_1082 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1082, 0, x_996); +lean_ctor_set(x_1082, 1, x_997); +lean_ctor_set(x_1082, 2, x_998); +lean_ctor_set(x_1082, 3, x_999); +lean_ctor_set_uint8(x_1082, sizeof(void*)*4, x_1000); +x_1083 = 1; +x_1084 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1084, 0, x_1082); +lean_ctor_set(x_1084, 1, x_2); +lean_ctor_set(x_1084, 2, x_3); +lean_ctor_set(x_1084, 3, x_4); +lean_ctor_set_uint8(x_1084, sizeof(void*)*4, x_1083); +return x_1084; +} +else +{ +lean_object* x_1085; lean_object* x_1086; lean_object* x_1087; lean_object* x_1088; lean_object* x_1089; lean_object* x_1090; uint8_t x_1091; lean_object* x_1092; +x_1085 = lean_ctor_get(x_996, 0); +x_1086 = lean_ctor_get(x_996, 1); +x_1087 = lean_ctor_get(x_996, 2); +x_1088 = lean_ctor_get(x_996, 3); +lean_inc(x_1088); +lean_inc(x_1087); +lean_inc(x_1086); +lean_inc(x_1085); +lean_dec(x_996); +x_1089 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1089, 0, x_1085); +lean_ctor_set(x_1089, 1, x_1086); +lean_ctor_set(x_1089, 2, x_1087); +lean_ctor_set(x_1089, 3, x_1088); +lean_ctor_set_uint8(x_1089, sizeof(void*)*4, x_1050); +x_1090 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1090, 0, x_1089); +lean_ctor_set(x_1090, 1, x_997); +lean_ctor_set(x_1090, 2, x_998); +lean_ctor_set(x_1090, 3, x_999); +lean_ctor_set_uint8(x_1090, sizeof(void*)*4, x_1000); +x_1091 = 1; +x_1092 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1092, 0, x_1090); +lean_ctor_set(x_1092, 1, x_2); +lean_ctor_set(x_1092, 2, x_3); +lean_ctor_set(x_1092, 3, x_4); +lean_ctor_set_uint8(x_1092, sizeof(void*)*4, x_1091); +return x_1092; +} +} +} +} +} +} +else +{ +lean_object* x_1093; lean_object* x_1094; lean_object* x_1095; lean_object* x_1096; uint8_t x_1097; lean_object* x_1098; +x_1093 = lean_ctor_get(x_1, 0); +x_1094 = lean_ctor_get(x_1, 1); +x_1095 = lean_ctor_get(x_1, 2); +x_1096 = lean_ctor_get(x_1, 3); +lean_inc(x_1096); +lean_inc(x_1095); +lean_inc(x_1094); +lean_inc(x_1093); +lean_dec(x_1); +x_1097 = 0; +lean_inc(x_1096); +lean_inc(x_1095); +lean_inc(x_1094); +lean_inc(x_1093); +x_1098 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1098, 0, x_1093); +lean_ctor_set(x_1098, 1, x_1094); +lean_ctor_set(x_1098, 2, x_1095); +lean_ctor_set(x_1098, 3, x_1096); +lean_ctor_set_uint8(x_1098, sizeof(void*)*4, x_1097); +if (lean_obj_tag(x_1093) == 0) +{ +if (lean_obj_tag(x_1096) == 0) +{ +lean_object* x_1099; uint8_t x_1100; lean_object* x_1101; +lean_dec(x_1098); +x_1099 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1099, 0, x_1096); +lean_ctor_set(x_1099, 1, x_1094); +lean_ctor_set(x_1099, 2, x_1095); +lean_ctor_set(x_1099, 3, x_1096); +lean_ctor_set_uint8(x_1099, sizeof(void*)*4, x_1097); +x_1100 = 1; +x_1101 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1101, 0, x_1099); +lean_ctor_set(x_1101, 1, x_2); +lean_ctor_set(x_1101, 2, x_3); +lean_ctor_set(x_1101, 3, x_4); +lean_ctor_set_uint8(x_1101, sizeof(void*)*4, x_1100); +return x_1101; +} +else +{ +uint8_t x_1102; +x_1102 = lean_ctor_get_uint8(x_1096, sizeof(void*)*4); +if (x_1102 == 0) +{ +lean_object* x_1103; lean_object* x_1104; lean_object* x_1105; lean_object* x_1106; lean_object* x_1107; uint8_t x_1108; lean_object* x_1109; lean_object* x_1110; lean_object* x_1111; +lean_dec(x_1098); +x_1103 = lean_ctor_get(x_1096, 0); +lean_inc(x_1103); +x_1104 = lean_ctor_get(x_1096, 1); +lean_inc(x_1104); +x_1105 = lean_ctor_get(x_1096, 2); +lean_inc(x_1105); +x_1106 = lean_ctor_get(x_1096, 3); +lean_inc(x_1106); +if (lean_is_exclusive(x_1096)) { + lean_ctor_release(x_1096, 0); + lean_ctor_release(x_1096, 1); + lean_ctor_release(x_1096, 2); + lean_ctor_release(x_1096, 3); + x_1107 = x_1096; +} else { + lean_dec_ref(x_1096); + x_1107 = lean_box(0); +} +x_1108 = 1; +if (lean_is_scalar(x_1107)) { + x_1109 = lean_alloc_ctor(1, 4, 1); +} else { + x_1109 = x_1107; +} +lean_ctor_set(x_1109, 0, x_1093); +lean_ctor_set(x_1109, 1, x_1094); +lean_ctor_set(x_1109, 2, x_1095); +lean_ctor_set(x_1109, 3, x_1103); +lean_ctor_set_uint8(x_1109, sizeof(void*)*4, x_1108); +x_1110 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1110, 0, x_1106); +lean_ctor_set(x_1110, 1, x_2); +lean_ctor_set(x_1110, 2, x_3); +lean_ctor_set(x_1110, 3, x_4); +lean_ctor_set_uint8(x_1110, sizeof(void*)*4, x_1108); +x_1111 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1111, 0, x_1109); +lean_ctor_set(x_1111, 1, x_1104); +lean_ctor_set(x_1111, 2, x_1105); +lean_ctor_set(x_1111, 3, x_1110); +lean_ctor_set_uint8(x_1111, sizeof(void*)*4, x_1097); +return x_1111; +} +else +{ +lean_object* x_1112; uint8_t x_1113; lean_object* x_1114; +lean_dec(x_1095); +lean_dec(x_1094); +if (lean_is_exclusive(x_1096)) { + lean_ctor_release(x_1096, 0); + lean_ctor_release(x_1096, 1); + lean_ctor_release(x_1096, 2); + lean_ctor_release(x_1096, 3); + x_1112 = x_1096; +} else { + lean_dec_ref(x_1096); + x_1112 = lean_box(0); +} +x_1113 = 1; +if (lean_is_scalar(x_1112)) { + x_1114 = lean_alloc_ctor(1, 4, 1); +} else { + x_1114 = x_1112; +} +lean_ctor_set(x_1114, 0, x_1098); +lean_ctor_set(x_1114, 1, x_2); +lean_ctor_set(x_1114, 2, x_3); +lean_ctor_set(x_1114, 3, x_4); +lean_ctor_set_uint8(x_1114, sizeof(void*)*4, x_1113); +return x_1114; +} +} +} +else +{ +uint8_t x_1115; +x_1115 = lean_ctor_get_uint8(x_1093, sizeof(void*)*4); +if (x_1115 == 0) +{ +lean_object* x_1116; lean_object* x_1117; lean_object* x_1118; lean_object* x_1119; lean_object* x_1120; uint8_t x_1121; lean_object* x_1122; lean_object* x_1123; lean_object* x_1124; +lean_dec(x_1098); +x_1116 = lean_ctor_get(x_1093, 0); +lean_inc(x_1116); +x_1117 = lean_ctor_get(x_1093, 1); +lean_inc(x_1117); +x_1118 = lean_ctor_get(x_1093, 2); +lean_inc(x_1118); +x_1119 = lean_ctor_get(x_1093, 3); +lean_inc(x_1119); +if (lean_is_exclusive(x_1093)) { + lean_ctor_release(x_1093, 0); + lean_ctor_release(x_1093, 1); + lean_ctor_release(x_1093, 2); + lean_ctor_release(x_1093, 3); + x_1120 = x_1093; +} else { + lean_dec_ref(x_1093); + x_1120 = lean_box(0); +} +x_1121 = 1; +if (lean_is_scalar(x_1120)) { + x_1122 = lean_alloc_ctor(1, 4, 1); +} else { + x_1122 = x_1120; +} +lean_ctor_set(x_1122, 0, x_1116); +lean_ctor_set(x_1122, 1, x_1117); +lean_ctor_set(x_1122, 2, x_1118); +lean_ctor_set(x_1122, 3, x_1119); +lean_ctor_set_uint8(x_1122, sizeof(void*)*4, x_1121); +x_1123 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1123, 0, x_1096); +lean_ctor_set(x_1123, 1, x_2); +lean_ctor_set(x_1123, 2, x_3); +lean_ctor_set(x_1123, 3, x_4); +lean_ctor_set_uint8(x_1123, sizeof(void*)*4, x_1121); +x_1124 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1124, 0, x_1122); +lean_ctor_set(x_1124, 1, x_1094); +lean_ctor_set(x_1124, 2, x_1095); +lean_ctor_set(x_1124, 3, x_1123); +lean_ctor_set_uint8(x_1124, sizeof(void*)*4, x_1097); +return x_1124; +} +else +{ +if (lean_obj_tag(x_1096) == 0) +{ +lean_object* x_1125; uint8_t x_1126; lean_object* x_1127; +lean_dec(x_1095); +lean_dec(x_1094); +if (lean_is_exclusive(x_1093)) { + lean_ctor_release(x_1093, 0); + lean_ctor_release(x_1093, 1); + lean_ctor_release(x_1093, 2); + lean_ctor_release(x_1093, 3); + x_1125 = x_1093; +} else { + lean_dec_ref(x_1093); + x_1125 = lean_box(0); +} +x_1126 = 1; +if (lean_is_scalar(x_1125)) { + x_1127 = lean_alloc_ctor(1, 4, 1); +} else { + x_1127 = x_1125; +} +lean_ctor_set(x_1127, 0, x_1098); +lean_ctor_set(x_1127, 1, x_2); +lean_ctor_set(x_1127, 2, x_3); +lean_ctor_set(x_1127, 3, x_4); +lean_ctor_set_uint8(x_1127, sizeof(void*)*4, x_1126); +return x_1127; +} +else +{ +uint8_t x_1128; +lean_dec(x_1098); +x_1128 = lean_ctor_get_uint8(x_1096, sizeof(void*)*4); +if (x_1128 == 0) +{ +lean_object* x_1129; lean_object* x_1130; lean_object* x_1131; lean_object* x_1132; lean_object* x_1133; uint8_t x_1134; lean_object* x_1135; lean_object* x_1136; lean_object* x_1137; lean_object* x_1138; lean_object* x_1139; +x_1129 = lean_ctor_get(x_1096, 0); +lean_inc(x_1129); +x_1130 = lean_ctor_get(x_1096, 1); +lean_inc(x_1130); +x_1131 = lean_ctor_get(x_1096, 2); +lean_inc(x_1131); +x_1132 = lean_ctor_get(x_1096, 3); +lean_inc(x_1132); +if (lean_is_exclusive(x_1096)) { + lean_ctor_release(x_1096, 0); + lean_ctor_release(x_1096, 1); + lean_ctor_release(x_1096, 2); + lean_ctor_release(x_1096, 3); + x_1133 = x_1096; +} else { + lean_dec_ref(x_1096); + x_1133 = lean_box(0); +} +x_1134 = 1; +lean_inc(x_1093); +if (lean_is_scalar(x_1133)) { + x_1135 = lean_alloc_ctor(1, 4, 1); +} else { + x_1135 = x_1133; +} +lean_ctor_set(x_1135, 0, x_1093); +lean_ctor_set(x_1135, 1, x_1094); +lean_ctor_set(x_1135, 2, x_1095); +lean_ctor_set(x_1135, 3, x_1129); +if (lean_is_exclusive(x_1093)) { + lean_ctor_release(x_1093, 0); + lean_ctor_release(x_1093, 1); + lean_ctor_release(x_1093, 2); + lean_ctor_release(x_1093, 3); + x_1136 = x_1093; +} else { + lean_dec_ref(x_1093); + x_1136 = lean_box(0); +} +lean_ctor_set_uint8(x_1135, sizeof(void*)*4, x_1134); +lean_inc(x_4); +if (lean_is_scalar(x_1136)) { + x_1137 = lean_alloc_ctor(1, 4, 1); +} else { + x_1137 = x_1136; +} +lean_ctor_set(x_1137, 0, x_1132); +lean_ctor_set(x_1137, 1, x_2); +lean_ctor_set(x_1137, 2, x_3); +lean_ctor_set(x_1137, 3, x_4); +if (lean_is_exclusive(x_4)) { + lean_ctor_release(x_4, 0); + lean_ctor_release(x_4, 1); + lean_ctor_release(x_4, 2); + lean_ctor_release(x_4, 3); + x_1138 = x_4; +} else { + lean_dec_ref(x_4); + x_1138 = lean_box(0); +} +lean_ctor_set_uint8(x_1137, sizeof(void*)*4, x_1134); +if (lean_is_scalar(x_1138)) { + x_1139 = lean_alloc_ctor(1, 4, 1); +} else { + x_1139 = x_1138; +} +lean_ctor_set(x_1139, 0, x_1135); +lean_ctor_set(x_1139, 1, x_1130); +lean_ctor_set(x_1139, 2, x_1131); +lean_ctor_set(x_1139, 3, x_1137); +lean_ctor_set_uint8(x_1139, sizeof(void*)*4, x_1097); +return x_1139; +} +else +{ +lean_object* x_1140; lean_object* x_1141; lean_object* x_1142; lean_object* x_1143; lean_object* x_1144; lean_object* x_1145; lean_object* x_1146; uint8_t x_1147; lean_object* x_1148; +x_1140 = lean_ctor_get(x_1093, 0); +lean_inc(x_1140); +x_1141 = lean_ctor_get(x_1093, 1); +lean_inc(x_1141); +x_1142 = lean_ctor_get(x_1093, 2); +lean_inc(x_1142); +x_1143 = lean_ctor_get(x_1093, 3); +lean_inc(x_1143); +if (lean_is_exclusive(x_1093)) { + lean_ctor_release(x_1093, 0); + lean_ctor_release(x_1093, 1); + lean_ctor_release(x_1093, 2); + lean_ctor_release(x_1093, 3); + x_1144 = x_1093; +} else { + lean_dec_ref(x_1093); + x_1144 = lean_box(0); +} +if (lean_is_scalar(x_1144)) { + x_1145 = lean_alloc_ctor(1, 4, 1); +} else { + x_1145 = x_1144; +} +lean_ctor_set(x_1145, 0, x_1140); +lean_ctor_set(x_1145, 1, x_1141); +lean_ctor_set(x_1145, 2, x_1142); +lean_ctor_set(x_1145, 3, x_1143); +lean_ctor_set_uint8(x_1145, sizeof(void*)*4, x_1128); +x_1146 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1146, 0, x_1145); +lean_ctor_set(x_1146, 1, x_1094); +lean_ctor_set(x_1146, 2, x_1095); +lean_ctor_set(x_1146, 3, x_1096); +lean_ctor_set_uint8(x_1146, sizeof(void*)*4, x_1097); +x_1147 = 1; +x_1148 = lean_alloc_ctor(1, 4, 1); +lean_ctor_set(x_1148, 0, x_1146); +lean_ctor_set(x_1148, 1, x_2); +lean_ctor_set(x_1148, 2, x_3); +lean_ctor_set(x_1148, 3, x_4); +lean_ctor_set_uint8(x_1148, sizeof(void*)*4, x_1147); +return x_1148; +} +} +} +} } } } @@ -16246,6 +18611,94 @@ x_3 = lean_alloc_closure((void*)(l_Lean_RBNode_balRight___rarg), 4, 0); return x_3; } } +LEAN_EXPORT lean_object* l_Lean_RBNode_size___rarg(lean_object* x_1) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_2; +x_2 = lean_unsigned_to_nat(0u); +return x_2; +} +else +{ +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; +x_3 = lean_ctor_get(x_1, 0); +x_4 = lean_ctor_get(x_1, 3); +x_5 = l_Lean_RBNode_size___rarg(x_3); +x_6 = l_Lean_RBNode_size___rarg(x_4); +x_7 = lean_nat_add(x_5, x_6); +lean_dec(x_6); +lean_dec(x_5); +x_8 = lean_unsigned_to_nat(1u); +x_9 = lean_nat_add(x_7, x_8); +lean_dec(x_7); +return x_9; +} +} +} +LEAN_EXPORT lean_object* l_Lean_RBNode_size(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_RBNode_size___rarg___boxed), 1, 0); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_RBNode_size___rarg___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Lean_RBNode_size___rarg(x_1); +lean_dec(x_1); +return x_2; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Data_RBMap_0__Lean_RBNode_depth_match__1_splitter___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_dec(x_3); +lean_inc(x_2); +return x_2; +} +else +{ +uint8_t 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; +x_4 = lean_ctor_get_uint8(x_1, sizeof(void*)*4); +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 2); +lean_inc(x_7); +x_8 = lean_ctor_get(x_1, 3); +lean_inc(x_8); +lean_dec(x_1); +x_9 = lean_box(x_4); +x_10 = lean_apply_5(x_3, x_9, x_5, x_6, x_7, x_8); +return x_10; +} +} +} +LEAN_EXPORT lean_object* l___private_Lean_Data_RBMap_0__Lean_RBNode_depth_match__1_splitter(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = lean_alloc_closure((void*)(l___private_Lean_Data_RBMap_0__Lean_RBNode_depth_match__1_splitter___rarg___boxed), 3, 0); +return x_4; +} +} +LEAN_EXPORT lean_object* l___private_Lean_Data_RBMap_0__Lean_RBNode_depth_match__1_splitter___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l___private_Lean_Data_RBMap_0__Lean_RBNode_depth_match__1_splitter___rarg(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} LEAN_EXPORT lean_object* l_Lean_RBNode_appendTrees___rarg(lean_object* x_1, lean_object* x_2) { _start: { @@ -19546,7 +21999,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_RBMap_min_x21___rarg___closed__1; x_2 = l_Lean_RBMap_min_x21___rarg___closed__2; -x_3 = lean_unsigned_to_nat(367u); +x_3 = lean_unsigned_to_nat(362u); x_4 = lean_unsigned_to_nat(14u); x_5 = l_Lean_RBMap_min_x21___rarg___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -19636,7 +22089,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_RBMap_min_x21___rarg___closed__1; x_2 = l_Lean_RBMap_max_x21___rarg___closed__1; -x_3 = lean_unsigned_to_nat(372u); +x_3 = lean_unsigned_to_nat(367u); x_4 = lean_unsigned_to_nat(14u); x_5 = l_Lean_RBMap_min_x21___rarg___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -19715,7 +22168,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_RBMap_min_x21___rarg___closed__1; x_2 = l_Lean_RBMap_find_x21___rarg___closed__1; -x_3 = lean_unsigned_to_nat(378u); +x_3 = lean_unsigned_to_nat(373u); x_4 = lean_unsigned_to_nat(14u); x_5 = l_Lean_RBMap_find_x21___rarg___closed__2; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); diff --git a/stage0/stdlib/Lean/Elab/Deriving/Repr.c b/stage0/stdlib/Lean/Elab/Deriving/Repr.c index 8cc487806c..4e33954b23 100644 --- a/stage0/stdlib/Lean/Elab/Deriving/Repr.c +++ b/stage0/stdlib/Lean/Elab/Deriving/Repr.c @@ -2196,7 +2196,7 @@ x_27 = lean_nat_add(x_2, x_10); x_28 = lean_array_get_size(x_4); x_29 = lean_nat_dec_lt(x_27, x_28); lean_dec(x_28); -x_30 = lean_nat_dec_lt(x_2, x_10); +x_30 = lean_nat_dec_eq(x_10, x_22); if (x_26 == 0) { lean_object* x_106; lean_object* x_107; @@ -2241,8 +2241,79 @@ block_101: { if (x_30 == 0) { -lean_object* x_37; lean_object* x_38; -x_37 = lean_box(0); +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; +lean_inc(x_18); +x_37 = l_Lean_MonadRef_mkInfoFromRefPos___at_Lean_Elab_Term_exprToSyntax___spec__1___rarg(x_18, x_19, x_20); +x_38 = lean_ctor_get(x_37, 0); +lean_inc(x_38); +x_39 = lean_ctor_get(x_37, 1); +lean_inc(x_39); +lean_dec(x_37); +x_40 = lean_ctor_get(x_18, 10); +lean_inc(x_40); +x_41 = lean_st_ref_get(x_19, x_39); +x_42 = lean_ctor_get(x_41, 0); +lean_inc(x_42); +x_43 = lean_ctor_get(x_41, 1); +lean_inc(x_43); +lean_dec(x_41); +x_44 = lean_ctor_get(x_42, 0); +lean_inc(x_44); +lean_dec(x_42); +x_45 = lean_environment_main_module(x_44); +x_46 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___lambda__1___closed__5; +lean_inc(x_38); +x_47 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_47, 0, x_38); +lean_ctor_set(x_47, 1, x_46); +x_48 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___closed__1; +lean_inc(x_38); +x_49 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_49, 0, x_38); +lean_ctor_set(x_49, 1, x_48); +x_50 = l_Array_mkArray1___rarg(x_49); +x_51 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___lambda__1___closed__7; +lean_inc(x_38); +x_52 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_52, 0, x_38); +lean_ctor_set(x_52, 1, x_51); +lean_ctor_set(x_52, 2, x_50); +lean_inc(x_47); +x_53 = l_Array_mkArray3___rarg(x_13, x_47, x_52); +x_54 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___lambda__1___closed__4; +lean_inc(x_38); +x_55 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_55, 0, x_38); +lean_ctor_set(x_55, 1, x_54); +lean_ctor_set(x_55, 2, x_53); +x_56 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___closed__5; +x_57 = l_Lean_addMacroScope(x_45, x_56, x_40); +x_58 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___closed__6; +lean_inc(x_6); +x_59 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_59, 0, x_58); +lean_ctor_set(x_59, 1, x_6); +x_60 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___closed__7; +lean_inc(x_7); +x_61 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_61, 0, x_60); +lean_ctor_set(x_61, 1, x_7); +x_62 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_62, 0, x_59); +lean_ctor_set(x_62, 1, x_61); +x_63 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___closed__3; +lean_inc(x_38); +x_64 = lean_alloc_ctor(3, 4, 0); +lean_ctor_set(x_64, 0, x_38); +lean_ctor_set(x_64, 1, x_63); +lean_ctor_set(x_64, 2, x_57); +lean_ctor_set(x_64, 3, x_62); +x_65 = l_Array_mkArray3___rarg(x_55, x_47, x_64); +x_66 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_66, 0, x_38); +lean_ctor_set(x_66, 1, x_54); +lean_ctor_set(x_66, 2, x_65); +x_67 = lean_box(0); lean_inc(x_19); lean_inc(x_18); lean_inc(x_17); @@ -2250,16 +2321,16 @@ lean_inc(x_16); lean_inc(x_3); lean_inc(x_7); lean_inc(x_6); -x_38 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___lambda__1(x_33, x_35, x_6, x_7, x_31, x_3, x_36, x_13, x_37, x_14, x_15, x_16, x_17, x_18, x_19, x_20); +x_68 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___lambda__1(x_33, x_35, x_6, x_7, x_31, x_3, x_36, x_66, x_67, x_14, x_15, x_16, x_17, x_18, x_19, x_43); lean_dec(x_33); -if (lean_obj_tag(x_38) == 0) +if (lean_obj_tag(x_68) == 0) { -lean_object* x_39; -x_39 = lean_ctor_get(x_38, 0); -lean_inc(x_39); -if (lean_obj_tag(x_39) == 0) +lean_object* x_69; +x_69 = lean_ctor_get(x_68, 0); +lean_inc(x_69); +if (lean_obj_tag(x_69) == 0) { -uint8_t x_40; +uint8_t x_70; lean_dec(x_25); lean_dec(x_19); lean_dec(x_18); @@ -2269,54 +2340,54 @@ lean_dec(x_10); lean_dec(x_7); lean_dec(x_6); lean_dec(x_3); -x_40 = !lean_is_exclusive(x_38); -if (x_40 == 0) +x_70 = !lean_is_exclusive(x_68); +if (x_70 == 0) { -lean_object* x_41; lean_object* x_42; -x_41 = lean_ctor_get(x_38, 0); -lean_dec(x_41); -x_42 = lean_ctor_get(x_39, 0); -lean_inc(x_42); -lean_dec(x_39); -lean_ctor_set(x_38, 0, x_42); -return x_38; +lean_object* x_71; lean_object* x_72; +x_71 = lean_ctor_get(x_68, 0); +lean_dec(x_71); +x_72 = lean_ctor_get(x_69, 0); +lean_inc(x_72); +lean_dec(x_69); +lean_ctor_set(x_68, 0, x_72); +return x_68; } else { -lean_object* x_43; lean_object* x_44; lean_object* x_45; -x_43 = lean_ctor_get(x_38, 1); -lean_inc(x_43); -lean_dec(x_38); -x_44 = lean_ctor_get(x_39, 0); -lean_inc(x_44); -lean_dec(x_39); -x_45 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_45, 0, x_44); -lean_ctor_set(x_45, 1, x_43); -return x_45; +lean_object* x_73; lean_object* x_74; lean_object* x_75; +x_73 = lean_ctor_get(x_68, 1); +lean_inc(x_73); +lean_dec(x_68); +x_74 = lean_ctor_get(x_69, 0); +lean_inc(x_74); +lean_dec(x_69); +x_75 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_75, 0, x_74); +lean_ctor_set(x_75, 1, x_73); +return x_75; } } else { -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_38, 1); -lean_inc(x_46); -lean_dec(x_38); -x_47 = lean_ctor_get(x_39, 0); -lean_inc(x_47); -lean_dec(x_39); -x_48 = lean_nat_add(x_10, x_12); +lean_object* x_76; lean_object* x_77; lean_object* x_78; +x_76 = lean_ctor_get(x_68, 1); +lean_inc(x_76); +lean_dec(x_68); +x_77 = lean_ctor_get(x_69, 0); +lean_inc(x_77); +lean_dec(x_69); +x_78 = lean_nat_add(x_10, x_12); lean_dec(x_10); x_9 = x_25; -x_10 = x_48; -x_13 = x_47; -x_20 = x_46; +x_10 = x_78; +x_13 = x_77; +x_20 = x_76; goto _start; } } else { -uint8_t x_50; +uint8_t x_80; lean_dec(x_25); lean_dec(x_19); lean_dec(x_18); @@ -2326,100 +2397,29 @@ lean_dec(x_10); lean_dec(x_7); lean_dec(x_6); lean_dec(x_3); -x_50 = !lean_is_exclusive(x_38); -if (x_50 == 0) +x_80 = !lean_is_exclusive(x_68); +if (x_80 == 0) { -return x_38; +return x_68; } else { -lean_object* x_51; lean_object* x_52; lean_object* x_53; -x_51 = lean_ctor_get(x_38, 0); -x_52 = lean_ctor_get(x_38, 1); -lean_inc(x_52); -lean_inc(x_51); -lean_dec(x_38); -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_object* x_81; lean_object* x_82; lean_object* x_83; +x_81 = lean_ctor_get(x_68, 0); +x_82 = lean_ctor_get(x_68, 1); +lean_inc(x_82); +lean_inc(x_81); +lean_dec(x_68); +x_83 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_83, 0, x_81); +lean_ctor_set(x_83, 1, x_82); +return x_83; } } } else { -lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; -lean_inc(x_18); -x_54 = l_Lean_MonadRef_mkInfoFromRefPos___at_Lean_Elab_Term_exprToSyntax___spec__1___rarg(x_18, x_19, x_20); -x_55 = lean_ctor_get(x_54, 0); -lean_inc(x_55); -x_56 = lean_ctor_get(x_54, 1); -lean_inc(x_56); -lean_dec(x_54); -x_57 = lean_ctor_get(x_18, 10); -lean_inc(x_57); -x_58 = lean_st_ref_get(x_19, x_56); -x_59 = lean_ctor_get(x_58, 0); -lean_inc(x_59); -x_60 = lean_ctor_get(x_58, 1); -lean_inc(x_60); -lean_dec(x_58); -x_61 = lean_ctor_get(x_59, 0); -lean_inc(x_61); -lean_dec(x_59); -x_62 = lean_environment_main_module(x_61); -x_63 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___lambda__1___closed__5; -lean_inc(x_55); -x_64 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_64, 0, x_55); -lean_ctor_set(x_64, 1, x_63); -x_65 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___closed__1; -lean_inc(x_55); -x_66 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_66, 0, x_55); -lean_ctor_set(x_66, 1, x_65); -x_67 = l_Array_mkArray1___rarg(x_66); -x_68 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___lambda__1___closed__7; -lean_inc(x_55); -x_69 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_69, 0, x_55); -lean_ctor_set(x_69, 1, x_68); -lean_ctor_set(x_69, 2, x_67); -lean_inc(x_64); -x_70 = l_Array_mkArray3___rarg(x_13, x_64, x_69); -x_71 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___lambda__1___closed__4; -lean_inc(x_55); -x_72 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_72, 0, x_55); -lean_ctor_set(x_72, 1, x_71); -lean_ctor_set(x_72, 2, x_70); -x_73 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___closed__5; -x_74 = l_Lean_addMacroScope(x_62, x_73, x_57); -x_75 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___closed__6; -lean_inc(x_6); -x_76 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_76, 0, x_75); -lean_ctor_set(x_76, 1, x_6); -x_77 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___closed__7; -lean_inc(x_7); -x_78 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_78, 0, x_77); -lean_ctor_set(x_78, 1, x_7); -x_79 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_79, 0, x_76); -lean_ctor_set(x_79, 1, x_78); -x_80 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___closed__3; -lean_inc(x_55); -x_81 = lean_alloc_ctor(3, 4, 0); -lean_ctor_set(x_81, 0, x_55); -lean_ctor_set(x_81, 1, x_80); -lean_ctor_set(x_81, 2, x_74); -lean_ctor_set(x_81, 3, x_79); -x_82 = l_Array_mkArray3___rarg(x_72, x_64, x_81); -x_83 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_83, 0, x_55); -lean_ctor_set(x_83, 1, x_71); -lean_ctor_set(x_83, 2, x_82); +lean_object* x_84; lean_object* x_85; x_84 = lean_box(0); lean_inc(x_19); lean_inc(x_18); @@ -2428,7 +2428,7 @@ lean_inc(x_16); lean_inc(x_3); lean_inc(x_7); lean_inc(x_6); -x_85 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___lambda__1(x_33, x_35, x_6, x_7, x_31, x_3, x_36, x_83, x_84, x_14, x_15, x_16, x_17, x_18, x_19, x_60); +x_85 = l_Std_Range_forIn_loop___at_Lean_Elab_Deriving_Repr_mkBodyForStruct___spec__3___lambda__1(x_33, x_35, x_6, x_7, x_31, x_3, x_36, x_13, x_84, x_14, x_15, x_16, x_17, x_18, x_19, x_20); lean_dec(x_33); if (lean_obj_tag(x_85) == 0) { diff --git a/stage0/stdlib/Lean/Elab/PreDefinition/WF/Main.c b/stage0/stdlib/Lean/Elab/PreDefinition/WF/Main.c index 75ef663df9..77bb01b020 100644 --- a/stage0/stdlib/Lean/Elab/PreDefinition/WF/Main.c +++ b/stage0/stdlib/Lean/Elab/PreDefinition/WF/Main.c @@ -23,6 +23,7 @@ static lean_object* l_Lean_setEnv___at_Lean_Elab_wfRecursion___spec__1___closed_ lean_object* l_Lean_stringToMessageData(lean_object*); lean_object* l_Lean_Elab_addAsAxiom(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_mk_empty_array_with_capacity(lean_object*); +lean_object* l_Lean_Meta_whnfForall(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_usize_dec_eq(size_t, size_t); lean_object* lean_array_uget(lean_object*, size_t); lean_object* l_List_mapTRAux___at_Lean_Elab_addAndCompileUnsafe___spec__2(lean_object*, lean_object*); @@ -35,7 +36,6 @@ static lean_object* l_Std_Range_forIn_loop___at___private_Lean_Elab_PreDefinitio static lean_object* l___private_Lean_Elab_PreDefinition_WF_Main_0__Lean_Elab_isOnlyOneUnaryDef___closed__3; static lean_object* l_Lean_Elab_wfRecursion___closed__6; static lean_object* l_Lean_Expr_withAppAux___at___private_Lean_Elab_PreDefinition_WF_Main_0__Lean_Elab_addNonRecPreDefs_mkSum___spec__1___closed__11; -LEAN_EXPORT lean_object* l_Lean_Elab_wfRecursion___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*, lean_object*, lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_getFixedPrefix___spec__3___lambda__3(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*); static lean_object* l___private_Lean_Elab_PreDefinition_WF_Main_0__Lean_Elab_isOnlyOneUnaryDef___closed__1; @@ -119,7 +119,7 @@ lean_object* lean_st_mk_ref(lean_object*, lean_object*); lean_object* l_instMonadControlReaderT___lambda__3___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Elab_wfRecursion___lambda__3(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*, lean_object*); extern lean_object* l_Lean_Expr_instHashableExpr; -LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_PreDefinition_WF_Main___hyg_2374_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_PreDefinition_WF_Main___hyg_2389_(lean_object*); static lean_object* l_Lean_Expr_withAppAux___at___private_Lean_Elab_PreDefinition_WF_Main_0__Lean_Elab_addNonRecPreDefs_mkSum___spec__1___closed__10; lean_object* l_Lean_Expr_sort___override(lean_object*); static lean_object* l_Lean_Elab_wfRecursion___closed__5; @@ -5436,19 +5436,69 @@ return x_30; LEAN_EXPORT lean_object* l_Lean_Elab_wfRecursion___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, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13, lean_object* x_14, lean_object* x_15) { _start: { -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_16 = l_Lean_Expr_bindingDomain_x21(x_8); -x_17 = lean_ctor_get(x_1, 3); +lean_object* x_16; +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +x_16 = l_Lean_Meta_whnfForall(x_8, x_11, x_12, x_13, x_14, x_15); +if (lean_obj_tag(x_16) == 0) +{ +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_17 = lean_ctor_get(x_16, 0); lean_inc(x_17); -lean_inc(x_17); -x_18 = lean_alloc_closure((void*)(l_Lean_Elab_wfRecursion___lambda__2), 13, 5); -lean_closure_set(x_18, 0, x_1); -lean_closure_set(x_18, 1, x_7); -lean_closure_set(x_18, 2, x_2); -lean_closure_set(x_18, 3, x_17); -lean_closure_set(x_18, 4, x_3); -x_19 = l_Lean_Elab_WF_elabWFRel___rarg(x_4, x_17, x_5, x_16, x_6, x_18, x_9, x_10, x_11, x_12, x_13, x_14, x_15); -return x_19; +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = l_Lean_Expr_bindingDomain_x21(x_17); +lean_dec(x_17); +x_20 = lean_ctor_get(x_1, 3); +lean_inc(x_20); +lean_inc(x_20); +x_21 = lean_alloc_closure((void*)(l_Lean_Elab_wfRecursion___lambda__2), 13, 5); +lean_closure_set(x_21, 0, x_1); +lean_closure_set(x_21, 1, x_7); +lean_closure_set(x_21, 2, x_2); +lean_closure_set(x_21, 3, x_20); +lean_closure_set(x_21, 4, x_3); +x_22 = l_Lean_Elab_WF_elabWFRel___rarg(x_4, x_20, x_5, x_19, x_6, x_21, x_9, x_10, x_11, x_12, x_13, x_14, x_18); +return x_22; +} +else +{ +uint8_t x_23; +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +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_23 = !lean_is_exclusive(x_16); +if (x_23 == 0) +{ +return x_16; +} +else +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_24 = lean_ctor_get(x_16, 0); +x_25 = lean_ctor_get(x_16, 1); +lean_inc(x_25); +lean_inc(x_24); +lean_dec(x_16); +x_26 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_26, 0, x_24); +lean_ctor_set(x_26, 1, x_25); +return x_26; +} +} } } LEAN_EXPORT lean_object* l_Lean_Elab_wfRecursion___lambda__4(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) { @@ -6163,7 +6213,7 @@ lean_ctor_set(x_16, 0, x_14); lean_inc(x_14); lean_inc(x_1); lean_inc(x_15); -x_17 = lean_alloc_closure((void*)(l_Lean_Elab_wfRecursion___lambda__3___boxed), 15, 6); +x_17 = lean_alloc_closure((void*)(l_Lean_Elab_wfRecursion___lambda__3), 15, 6); lean_closure_set(x_17, 0, x_13); lean_closure_set(x_17, 1, x_3); lean_closure_set(x_17, 2, x_15); @@ -6342,15 +6392,6 @@ lean_dec(x_7); return x_15; } } -LEAN_EXPORT lean_object* l_Lean_Elab_wfRecursion___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, lean_object* x_13, lean_object* x_14, lean_object* x_15) { -_start: -{ -lean_object* x_16; -x_16 = l_Lean_Elab_wfRecursion___lambda__3(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15); -lean_dec(x_8); -return x_16; -} -} LEAN_EXPORT lean_object* l_Lean_Elab_wfRecursion___lambda__4___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) { _start: { @@ -6375,7 +6416,7 @@ lean_dec(x_5); return x_15; } } -LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_PreDefinition_WF_Main___hyg_2374_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_PreDefinition_WF_Main___hyg_2389_(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; lean_object* x_4; @@ -6560,7 +6601,7 @@ l_Lean_Elab_wfRecursion___closed__5 = _init_l_Lean_Elab_wfRecursion___closed__5( lean_mark_persistent(l_Lean_Elab_wfRecursion___closed__5); l_Lean_Elab_wfRecursion___closed__6 = _init_l_Lean_Elab_wfRecursion___closed__6(); lean_mark_persistent(l_Lean_Elab_wfRecursion___closed__6); -res = l_Lean_Elab_initFn____x40_Lean_Elab_PreDefinition_WF_Main___hyg_2374_(lean_io_mk_world()); +res = l_Lean_Elab_initFn____x40_Lean_Elab_PreDefinition_WF_Main___hyg_2389_(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)); diff --git a/stage0/stdlib/Lean/Elab/Tactic/ElabTerm.c b/stage0/stdlib/Lean/Elab/Tactic/ElabTerm.c index 6f62e9a48c..fc8b2cde19 100644 --- a/stage0/stdlib/Lean/Elab/Tactic/ElabTerm.c +++ b/stage0/stdlib/Lean/Elab/Tactic/ElabTerm.c @@ -29,18 +29,20 @@ lean_object* l_Lean_Elab_Tactic_getMainTag(lean_object*, lean_object*, lean_obje static lean_object* l_Lean_Elab_Tactic_elabAsFVar___lambda__1___closed__2; LEAN_EXPORT lean_object* l___regBuiltin_Lean_Elab_Tactic_evalSpecialize_declRange(lean_object*); lean_object* l_Lean_stringToMessageData(lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__5(lean_object*, 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_refineCore___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*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalConstructor_declRange___closed__2; lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); +lean_object* lean_nat_div(lean_object*, lean_object*); static lean_object* l_Lean_Elab_Tactic_elabAsFVar___lambda__1___closed__1; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalRename_declRange___closed__1; +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdsByIndex___rarg___lambda__1(lean_object*, lean_object*); lean_object* l_Lean_LocalDecl_userName(lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalDecide___closed__2; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithUnfoldingAll___closed__4; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalApply_declRange___closed__6; lean_object* l_Lean_Elab_Tactic_SavedState_restore(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__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*); uint8_t lean_usize_dec_eq(size_t, size_t); lean_object* l_Lean_MVarId_assert(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l___regBuiltin_Lean_Elab_Tactic_evalExact(lean_object*); @@ -50,7 +52,9 @@ static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithUnfoldingAll_declRan LEAN_EXPORT lean_object* l___regBuiltin_Lean_Elab_Tactic_evalDecide_declRange(lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalNativeDecide_declRange___closed__5; LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalWithReducible(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_Lean_Name_quickLt(lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithReducible___closed__3; +LEAN_EXPORT uint8_t l_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1___lambda__1(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_zetaReduce___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalRefine_declRange___closed__7; LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_closeMainGoalUsing___lambda__1(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -69,9 +73,10 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_refineCore___lambda__4___boxed(lean_ static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalRefine_x27_declRange___closed__3; LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_closeMainGoalUsing(lean_object*, uint8_t, 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_evalRename_declRange___closed__4; -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__1(lean_object*, 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_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalRefine___closed__3; LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_elabTermForApply___boxed(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_Lean_Elab_Tactic_sortMVarIdsByIndex___rarg(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Elab_Tactic_elabTermForApply___closed__1; LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_ElabTerm_0__Lean_Elab_Tactic_preprocessPropToDecide___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); @@ -91,7 +96,6 @@ lean_object* l_Lean_compileDecl(lean_object*, lean_object*, lean_object*, lean_o static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalExact_declRange___closed__3; LEAN_EXPORT lean_object* l_Array_findSomeRevM_x3f_find___at_Lean_Elab_Tactic_evalRename___spec__5(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_EXPORT lean_object* l_Lean_Elab_Tactic_evalConstructor___rarg___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_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__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*); lean_object* lean_array_push(lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithUnfoldingAll_declRange___closed__1; lean_object* lean_array_get_size(lean_object*); @@ -101,8 +105,10 @@ static lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Tactic_eva static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalRefine_x27_declRange___closed__6; LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalDecide___rarg___lambda__2(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_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_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalRefine___closed__2; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalDecide_declRange___closed__3; +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdArrayByIndex___rarg___lambda__1(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalNativeDecide___boxed(lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_filterOldMVars___spec__1(lean_object*, lean_object*, lean_object*, size_t, size_t, lean_object*); LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_elabAsFVar___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*); @@ -112,18 +118,20 @@ static lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Tactic_eva lean_object* l_Lean_Elab_Term_mkAuxName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalDecide___closed__5; static lean_object* l_Lean_Elab_Tactic_evalDecide___rarg___lambda__1___closed__4; +lean_object* l_Array_qpartition_loop___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalRename___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* l_Lean_Expr_appArg_x21(lean_object*); lean_object* l_Lean_Elab_Term_synthesizeSyntheticMVars(uint8_t, uint8_t, 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*); LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalRefine(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_usize_dec_lt(size_t, size_t); +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdsByIndex___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__1(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_evalConstructor_declRange___closed__4; lean_object* l_Lean_Meta_zetaReduce___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalConstructor___closed__1; LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Tactic_getFVarId___spec__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_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__2(lean_object*, 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_Lean_Elab_Tactic_evalDecide___rarg___lambda__1___closed__3; +lean_object* lean_nat_add(lean_object*, lean_object*); static lean_object* l_Lean_Elab_Tactic_evalDecide___rarg___lambda__1___closed__5; lean_object* l_Lean_Meta_mkDecide(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalConstructor___closed__5; @@ -133,6 +141,7 @@ lean_object* l_Lean_Meta_mkEqRefl(lean_object*, lean_object*, lean_object*, lean LEAN_EXPORT lean_object* l_Lean_throwError___at_Lean_Elab_Tactic_getFVarId___spec__1___boxed(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_withoutModifyingState___at_Lean_Elab_Tactic_evalRename___spec__8___at_Lean_Elab_Tactic_evalRename___spec__9___lambda__1___closed__4; LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_elabTerm___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_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__6(lean_object*, 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_Array_findSomeRevM_x3f_find___at_Lean_Elab_Tactic_evalRename___spec__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*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalDecide_declRange___closed__5; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalExact_declRange___closed__7; @@ -146,6 +155,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalRename___lambda__1(lean_object*, static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithReducible_declRange___closed__4; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalRefine_declRange___closed__1; lean_object* l_Lean_Meta_intro1Core(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_qsort_sort___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithUnfoldingAll_declRange___closed__2; static lean_object* l_Lean_Elab_Tactic_evalNativeDecide___rarg___lambda__1___closed__7; static lean_object* l_Lean_withoutModifyingState___at_Lean_Elab_Tactic_evalRename___spec__8___at_Lean_Elab_Tactic_evalRename___spec__9___lambda__1___closed__1; @@ -166,6 +176,8 @@ lean_object* lean_nat_sub(lean_object*, lean_object*); static lean_object* l_Lean_Elab_Tactic_evalExact___closed__2; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalApply_declRange___closed__4; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalRefine_x27_declRange___closed__2; +lean_object* lean_array_swap(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdArrayByIndex(lean_object*); static lean_object* l_Lean_Elab_Tactic_evalDecide___rarg___lambda__2___closed__1; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalSpecialize_declRange___closed__3; lean_object* l_Lean_Meta_transform___at_Lean_Meta_zetaReduce___spec__1(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -181,8 +193,10 @@ LEAN_EXPORT lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Tacti lean_object* l_Lean_Elab_Term_elabTerm(lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Elab_Tactic_evalExact___closed__4; LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalConstructor___boxed(lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__6___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_Lean_MVarId_getKind(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_replaceRef(lean_object*, lean_object*); +lean_object* lean_array_get(lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithReducibleAndInstances___closed__2; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithReducibleAndInstances_declRange___closed__6; LEAN_EXPORT lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithReducible(lean_object*); @@ -191,6 +205,7 @@ extern lean_object* l_Lean_Elab_abortTacticExceptionId; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalDecide_declRange___closed__7; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithReducible___closed__1; lean_object* l_Lean_Elab_Tactic_getMainTarget(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_qsort_sort___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Elab_Tactic_evalExact___closed__1; static lean_object* l_Lean_withoutModifyingState___at_Lean_Elab_Tactic_evalRename___spec__8___at_Lean_Elab_Tactic_evalRename___spec__9___lambda__1___closed__2; static lean_object* l_Lean_Elab_Tactic_evalDecide___rarg___lambda__1___closed__6; @@ -200,8 +215,10 @@ lean_object* l_Lean_MVarId_assign___at_Lean_Elab_Tactic_closeMainGoal___spec__1( static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithReducibleAndInstances___closed__1; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalSpecialize_declRange___closed__4; static lean_object* l_Lean_Elab_Tactic_evalSpecialize___lambda__1___closed__1; +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdsByIndex___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__1___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_Elab_Tactic_logUnassignedAndAbort___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___regBuiltin_Lean_Elab_Tactic_evalRefine_declRange(lean_object*); +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___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*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_elabTermForApply___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* l_Lean_Syntax_getId(lean_object*); LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_elabTerm_go___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -218,6 +235,7 @@ lean_object* l_Lean_MVarId_rename(lean_object*, lean_object*, lean_object*, lean lean_object* lean_array_to_list(lean_object*, lean_object*); lean_object* l_Lean_MVarId_apply(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalExact___closed__3; +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdsByIndex(lean_object*); LEAN_EXPORT lean_object* l_Lean_Elab_throwAbortTactic___at_Lean_Elab_Tactic_logUnassignedAndAbort___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Elab_Tactic_evalRefine___closed__3; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalRename___closed__1; @@ -229,7 +247,6 @@ lean_object* l_Lean_Elab_Term_resolveId_x3f(lean_object*, lean_object*, uint8_t, static lean_object* l_Lean_Elab_Tactic_evalRefine_x27___closed__1; static lean_object* l_Lean_Elab_Tactic_evalNativeDecide___rarg___lambda__1___closed__8; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalConstructor_declRange___closed__7; -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__3(lean_object*, 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_evalRename_declRange___closed__5; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalRename_declRange___closed__7; uint8_t l_Lean_Expr_isConstOf(lean_object*, lean_object*); @@ -247,6 +264,7 @@ lean_object* l_Lean_addDecl(lean_object*, lean_object*, lean_object*, lean_objec LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_elabTermEnsuringType___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*); static lean_object* l_Lean_Elab_Tactic_evalNativeDecide___rarg___lambda__1___closed__6; LEAN_EXPORT lean_object* l_Array_findSomeRevM_x3f_find___at_Lean_Elab_Tactic_evalRename___spec__6___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_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdArrayByIndex___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_of_nat(lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalNativeDecide_declRange___closed__7; extern lean_object* l_Lean_Elab_Tactic_tacticElabAttribute; @@ -279,11 +297,13 @@ static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithReducibleAndInstance static lean_object* l_Lean_Elab_Tactic_evalRefine___closed__1; static lean_object* l_Lean_Elab_throwAbortTactic___at_Lean_Elab_Tactic_logUnassignedAndAbort___spec__1___rarg___closed__1; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithReducible_declRange___closed__6; +lean_object* l_List_redLength___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_elabTerm___lambda__1(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* l_Lean_Meta_getMVars(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_getFVarIds___boxed__const__1; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithReducible_declRange___closed__3; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithUnfoldingAll___closed__3; +extern lean_object* l_Lean_instInhabitedMVarId; static lean_object* l_Lean_Elab_Tactic_filterOldMVars___closed__1; lean_object* l_Lean_Expr_const___override(lean_object*, lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalExact___closed__1; @@ -317,6 +337,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalNativeDecide___rarg(lean_object* LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_elabTermForApply(lean_object*, uint8_t, 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_evalWithUnfoldingAll___boxed(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_Elab_Tactic_evalRefine_x27___closed__2; +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__4___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*); static lean_object* l_Lean_Elab_throwAbortTactic___at_Lean_Elab_Tactic_logUnassignedAndAbort___spec__1___rarg___closed__2; 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*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalSpecialize_declRange___closed__6; @@ -339,6 +360,7 @@ static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithReducibleAndInstance uint8_t l_Lean_Expr_isFVar(lean_object*); LEAN_EXPORT lean_object* l_Lean_PersistentArray_findSomeRevMAux___at_Lean_Elab_Tactic_evalRename___spec__4___boxed(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_evalApply___closed__1; +uint8_t lean_nat_dec_eq(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalRefine_x27(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_evalRefine_x27___closed__2; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalDecide_declRange___closed__1; @@ -351,6 +373,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_elabTerm(lean_object*, lean_object*, LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_withCollectingNewGoalsFrom___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*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalNativeDecide___closed__5; static lean_object* l_Lean_Elab_Tactic_evalApply___closed__2; +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*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalConstructor___closed__2; LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_filterOldMVars___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -372,6 +395,7 @@ lean_object* l_Lean_Elab_Term_throwTypeMismatchError___rarg(lean_object*, lean_o LEAN_EXPORT lean_object* l_Lean_PersistentArray_findSomeRevM_x3f___at_Lean_Elab_Tactic_evalRename___spec__2___boxed(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_evalExact_declRange___closed__5; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalDecide_declRange___closed__4; +LEAN_EXPORT lean_object* l_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1___lambda__1___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l___private_Lean_Elab_Tactic_ElabTerm_0__Lean_Elab_Tactic_preprocessPropToDecide___closed__3; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalConstructor_declRange___closed__1; LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_elabTerm_go(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -384,6 +408,7 @@ LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalSpecialize___lambda__1(lean_obje static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalRefine_declRange___closed__6; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalWithReducibleAndInstances_declRange___closed__4; lean_object* l_Lean_Elab_Tactic_withoutRecover___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_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__4(lean_object*, 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_evalRefine___closed__1; lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_LocalContext_findDeclRevM_x3f___at_Lean_Elab_Tactic_evalRename___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*); @@ -409,13 +434,14 @@ static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalConstructor_declRange___ LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_elabTermWithHoles___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_EXPORT lean_object* l_Lean_Elab_Tactic_logUnassignedAndAbort(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_evalRefine_declRange___closed__3; +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdArrayByIndex___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_mkStr4(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Elab_Tactic_getFVarId___closed__1; LEAN_EXPORT lean_object* l_Lean_Elab_Term_withoutErrToSorry___at_Lean_Elab_Tactic_elabTerm___spec__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_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___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*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalDecide___rarg___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_EXPORT lean_object* l___regBuiltin_Lean_Elab_Tactic_evalApply_declRange(lean_object*); static lean_object* l_Lean_Elab_Tactic_evalSpecialize___lambda__1___closed__2; +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdArrayByIndex___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__2___boxed(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_evalNativeDecide___closed__1; LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_refineCore___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*); static lean_object* l_Lean_Elab_Tactic_refineCore___lambda__4___closed__3; @@ -2130,7 +2156,946 @@ x_4 = l_Lean_addBuiltinDeclarationRanges(x_2, x_3, x_1); return x_4; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__1(lean_object* x_1, size_t x_2, size_t 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_object* x_13) { +LEAN_EXPORT uint8_t l_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; +lean_inc(x_2); +lean_inc(x_1); +x_4 = l_Lean_MetavarContext_getDecl(x_1, x_2); +lean_inc(x_3); +x_5 = l_Lean_MetavarContext_getDecl(x_1, x_3); +x_6 = lean_ctor_get(x_4, 6); +lean_inc(x_6); +lean_dec(x_4); +x_7 = lean_ctor_get(x_5, 6); +lean_inc(x_7); +lean_dec(x_5); +x_8 = lean_nat_dec_eq(x_6, x_7); +if (x_8 == 0) +{ +uint8_t x_9; +lean_dec(x_3); +lean_dec(x_2); +x_9 = lean_nat_dec_lt(x_6, x_7); +lean_dec(x_7); +lean_dec(x_6); +return x_9; +} +else +{ +uint8_t x_10; +lean_dec(x_7); +lean_dec(x_6); +x_10 = l_Lean_Name_quickLt(x_2, x_3); +lean_dec(x_3); +lean_dec(x_2); +return x_10; +} +} +} +LEAN_EXPORT lean_object* l_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; lean_object* x_7; uint8_t x_16; +lean_inc(x_1); +x_6 = lean_alloc_closure((void*)(l_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1___lambda__1___boxed), 3, 1); +lean_closure_set(x_6, 0, x_1); +x_16 = lean_nat_dec_lt(x_4, x_5); +if (x_16 == 0) +{ +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_3; +} +else +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; uint8_t x_79; +x_17 = lean_nat_add(x_4, x_5); +x_18 = lean_unsigned_to_nat(2u); +x_19 = lean_nat_div(x_17, x_18); +lean_dec(x_17); +lean_inc(x_2); +x_73 = lean_array_get(x_2, x_3, x_19); +lean_inc(x_2); +x_74 = lean_array_get(x_2, x_3, x_4); +lean_inc(x_73); +lean_inc(x_1); +x_75 = l_Lean_MetavarContext_getDecl(x_1, x_73); +lean_inc(x_74); +lean_inc(x_1); +x_76 = l_Lean_MetavarContext_getDecl(x_1, x_74); +x_77 = lean_ctor_get(x_75, 6); +lean_inc(x_77); +lean_dec(x_75); +x_78 = lean_ctor_get(x_76, 6); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_nat_dec_eq(x_77, x_78); +if (x_79 == 0) +{ +uint8_t x_80; +lean_dec(x_74); +lean_dec(x_73); +x_80 = lean_nat_dec_lt(x_77, x_78); +lean_dec(x_78); +lean_dec(x_77); +if (x_80 == 0) +{ +x_20 = x_3; +goto block_72; +} +else +{ +lean_object* x_81; +x_81 = lean_array_swap(x_3, x_4, x_19); +x_20 = x_81; +goto block_72; +} +} +else +{ +uint8_t x_82; +lean_dec(x_78); +lean_dec(x_77); +x_82 = l_Lean_Name_quickLt(x_73, x_74); +lean_dec(x_74); +lean_dec(x_73); +if (x_82 == 0) +{ +x_20 = x_3; +goto block_72; +} +else +{ +lean_object* x_83; +x_83 = lean_array_swap(x_3, x_4, x_19); +x_20 = x_83; +goto block_72; +} +} +block_72: +{ +lean_object* x_21; lean_object* x_41; lean_object* x_42; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; +lean_inc(x_2); +x_41 = lean_array_get(x_2, x_20, x_5); +lean_inc(x_2); +x_60 = lean_array_get(x_2, x_20, x_4); +lean_inc(x_41); +lean_inc(x_1); +x_61 = l_Lean_MetavarContext_getDecl(x_1, x_41); +lean_inc(x_60); +lean_inc(x_1); +x_62 = l_Lean_MetavarContext_getDecl(x_1, x_60); +x_63 = lean_ctor_get(x_61, 6); +lean_inc(x_63); +lean_dec(x_61); +x_64 = lean_ctor_get(x_62, 6); +lean_inc(x_64); +lean_dec(x_62); +x_65 = lean_nat_dec_eq(x_63, x_64); +if (x_65 == 0) +{ +uint8_t x_66; +lean_dec(x_60); +x_66 = lean_nat_dec_lt(x_63, x_64); +lean_dec(x_64); +lean_dec(x_63); +if (x_66 == 0) +{ +lean_object* x_67; +x_67 = lean_box(0); +x_42 = x_67; +goto block_59; +} +else +{ +lean_object* x_68; +lean_dec(x_41); +x_68 = lean_box(0); +x_21 = x_68; +goto block_40; +} +} +else +{ +uint8_t x_69; +lean_dec(x_64); +lean_dec(x_63); +x_69 = l_Lean_Name_quickLt(x_41, x_60); +lean_dec(x_60); +if (x_69 == 0) +{ +lean_object* x_70; +x_70 = lean_box(0); +x_42 = x_70; +goto block_59; +} +else +{ +lean_object* x_71; +lean_dec(x_41); +x_71 = lean_box(0); +x_21 = x_71; +goto block_40; +} +} +block_40: +{ +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; uint8_t x_29; +lean_dec(x_21); +x_22 = lean_array_swap(x_20, x_4, x_5); +lean_inc(x_2); +x_23 = lean_array_get(x_2, x_22, x_19); +lean_inc(x_2); +x_24 = lean_array_get(x_2, x_22, x_5); +lean_inc(x_23); +lean_inc(x_1); +x_25 = l_Lean_MetavarContext_getDecl(x_1, x_23); +lean_inc(x_24); +lean_inc(x_1); +x_26 = l_Lean_MetavarContext_getDecl(x_1, x_24); +x_27 = lean_ctor_get(x_25, 6); +lean_inc(x_27); +lean_dec(x_25); +x_28 = lean_ctor_get(x_26, 6); +lean_inc(x_28); +lean_dec(x_26); +x_29 = lean_nat_dec_eq(x_27, x_28); +if (x_29 == 0) +{ +uint8_t x_30; +lean_dec(x_23); +x_30 = lean_nat_dec_lt(x_27, x_28); +lean_dec(x_28); +lean_dec(x_27); +if (x_30 == 0) +{ +lean_object* x_31; +lean_dec(x_19); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_31 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_24, x_22, x_4, x_4); +x_7 = x_31; +goto block_15; +} +else +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; +lean_dec(x_24); +x_32 = lean_array_swap(x_22, x_19, x_5); +lean_dec(x_19); +lean_inc(x_2); +x_33 = lean_array_get(x_2, x_32, x_5); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_34 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_33, x_32, x_4, x_4); +x_7 = x_34; +goto block_15; +} +} +else +{ +uint8_t x_35; +lean_dec(x_28); +lean_dec(x_27); +x_35 = l_Lean_Name_quickLt(x_23, x_24); +lean_dec(x_23); +if (x_35 == 0) +{ +lean_object* x_36; +lean_dec(x_19); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_36 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_24, x_22, x_4, x_4); +x_7 = x_36; +goto block_15; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +lean_dec(x_24); +x_37 = lean_array_swap(x_22, x_19, x_5); +lean_dec(x_19); +lean_inc(x_2); +x_38 = lean_array_get(x_2, x_37, x_5); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_39 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_38, x_37, x_4, x_4); +x_7 = x_39; +goto block_15; +} +} +} +block_59: +{ +lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; uint8_t x_48; +lean_dec(x_42); +lean_inc(x_2); +x_43 = lean_array_get(x_2, x_20, x_19); +lean_inc(x_43); +lean_inc(x_1); +x_44 = l_Lean_MetavarContext_getDecl(x_1, x_43); +lean_inc(x_41); +lean_inc(x_1); +x_45 = l_Lean_MetavarContext_getDecl(x_1, x_41); +x_46 = lean_ctor_get(x_44, 6); +lean_inc(x_46); +lean_dec(x_44); +x_47 = lean_ctor_get(x_45, 6); +lean_inc(x_47); +lean_dec(x_45); +x_48 = lean_nat_dec_eq(x_46, x_47); +if (x_48 == 0) +{ +uint8_t x_49; +lean_dec(x_43); +x_49 = lean_nat_dec_lt(x_46, x_47); +lean_dec(x_47); +lean_dec(x_46); +if (x_49 == 0) +{ +lean_object* x_50; +lean_dec(x_19); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_50 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_41, x_20, x_4, x_4); +x_7 = x_50; +goto block_15; +} +else +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; +lean_dec(x_41); +x_51 = lean_array_swap(x_20, x_19, x_5); +lean_dec(x_19); +lean_inc(x_2); +x_52 = lean_array_get(x_2, x_51, x_5); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_53 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_52, x_51, x_4, x_4); +x_7 = x_53; +goto block_15; +} +} +else +{ +uint8_t x_54; +lean_dec(x_47); +lean_dec(x_46); +x_54 = l_Lean_Name_quickLt(x_43, x_41); +lean_dec(x_43); +if (x_54 == 0) +{ +lean_object* x_55; +lean_dec(x_19); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_55 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_41, x_20, x_4, x_4); +x_7 = x_55; +goto block_15; +} +else +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; +lean_dec(x_41); +x_56 = lean_array_swap(x_20, x_19, x_5); +lean_dec(x_19); +lean_inc(x_2); +x_57 = lean_array_get(x_2, x_56, x_5); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_58 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_57, x_56, x_4, x_4); +x_7 = x_58; +goto block_15; +} +} +} +} +} +block_15: +{ +lean_object* x_8; lean_object* x_9; uint8_t x_10; +x_8 = lean_ctor_get(x_7, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_7, 1); +lean_inc(x_9); +lean_dec(x_7); +x_10 = lean_nat_dec_le(x_5, x_8); +if (x_10 == 0) +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_inc(x_2); +lean_inc(x_1); +x_11 = l_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1(x_1, x_2, x_9, x_4, x_8); +x_12 = lean_unsigned_to_nat(1u); +x_13 = lean_nat_add(x_8, x_12); +lean_dec(x_8); +x_3 = x_11; +x_4 = x_13; +goto _start; +} +else +{ +lean_dec(x_8); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_9; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdArrayByIndex___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_ctor_get(x_4, 1); +lean_inc(x_5); +lean_dec(x_4); +x_6 = lean_array_get_size(x_2); +x_7 = lean_unsigned_to_nat(1u); +x_8 = lean_nat_sub(x_6, x_7); +lean_dec(x_6); +x_9 = l_Lean_instInhabitedMVarId; +x_10 = lean_unsigned_to_nat(0u); +x_11 = l_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1(x_3, x_9, x_2, x_10, x_8); +lean_dec(x_8); +x_12 = lean_apply_2(x_5, lean_box(0), x_11); +return x_12; +} +} +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdArrayByIndex___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_4 = lean_ctor_get(x_2, 1); +lean_inc(x_4); +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +lean_dec(x_1); +x_6 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_sortMVarIdArrayByIndex___rarg___lambda__1), 3, 2); +lean_closure_set(x_6, 0, x_2); +lean_closure_set(x_6, 1, x_3); +x_7 = lean_apply_4(x_4, lean_box(0), lean_box(0), x_5, x_6); +return x_7; +} +} +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdArrayByIndex(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_sortMVarIdArrayByIndex___rarg), 3, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +uint8_t x_4; lean_object* x_5; +x_4 = l_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1___lambda__1(x_1, x_2, x_3); +x_5 = lean_box(x_4); +return x_5; +} +} +LEAN_EXPORT lean_object* l_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +x_6 = l_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_5); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdsByIndex___rarg___lambda__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +lean_dec(x_1); +x_4 = lean_ctor_get(x_3, 1); +lean_inc(x_4); +lean_dec(x_3); +x_5 = lean_array_to_list(lean_box(0), x_2); +x_6 = lean_apply_2(x_4, lean_box(0), x_5); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdsByIndex___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_4 = lean_ctor_get(x_2, 1); +lean_inc(x_4); +x_5 = l_List_redLength___rarg(x_3); +x_6 = lean_mk_empty_array_with_capacity(x_5); +lean_dec(x_5); +x_7 = l_List_toArrayAux___rarg(x_3, x_6); +lean_inc(x_2); +x_8 = l_Lean_Elab_Tactic_sortMVarIdArrayByIndex___rarg(x_1, x_2, x_7); +x_9 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_sortMVarIdsByIndex___rarg___lambda__1), 2, 1); +lean_closure_set(x_9, 0, x_2); +x_10 = lean_apply_4(x_4, lean_box(0), lean_box(0), x_8, x_9); +return x_10; +} +} +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdsByIndex(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_sortMVarIdsByIndex___rarg), 3, 0); +return x_2; +} +} +LEAN_EXPORT lean_object* l_Array_qsort_sort___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; lean_object* x_7; uint8_t x_16; +lean_inc(x_1); +x_6 = lean_alloc_closure((void*)(l_Array_qsort_sort___at_Lean_Elab_Tactic_sortMVarIdArrayByIndex___spec__1___lambda__1___boxed), 3, 1); +lean_closure_set(x_6, 0, x_1); +x_16 = lean_nat_dec_lt(x_4, x_5); +if (x_16 == 0) +{ +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_3; +} +else +{ +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; uint8_t x_79; +x_17 = lean_nat_add(x_4, x_5); +x_18 = lean_unsigned_to_nat(2u); +x_19 = lean_nat_div(x_17, x_18); +lean_dec(x_17); +lean_inc(x_2); +x_73 = lean_array_get(x_2, x_3, x_19); +lean_inc(x_2); +x_74 = lean_array_get(x_2, x_3, x_4); +lean_inc(x_73); +lean_inc(x_1); +x_75 = l_Lean_MetavarContext_getDecl(x_1, x_73); +lean_inc(x_74); +lean_inc(x_1); +x_76 = l_Lean_MetavarContext_getDecl(x_1, x_74); +x_77 = lean_ctor_get(x_75, 6); +lean_inc(x_77); +lean_dec(x_75); +x_78 = lean_ctor_get(x_76, 6); +lean_inc(x_78); +lean_dec(x_76); +x_79 = lean_nat_dec_eq(x_77, x_78); +if (x_79 == 0) +{ +uint8_t x_80; +lean_dec(x_74); +lean_dec(x_73); +x_80 = lean_nat_dec_lt(x_77, x_78); +lean_dec(x_78); +lean_dec(x_77); +if (x_80 == 0) +{ +x_20 = x_3; +goto block_72; +} +else +{ +lean_object* x_81; +x_81 = lean_array_swap(x_3, x_4, x_19); +x_20 = x_81; +goto block_72; +} +} +else +{ +uint8_t x_82; +lean_dec(x_78); +lean_dec(x_77); +x_82 = l_Lean_Name_quickLt(x_73, x_74); +lean_dec(x_74); +lean_dec(x_73); +if (x_82 == 0) +{ +x_20 = x_3; +goto block_72; +} +else +{ +lean_object* x_83; +x_83 = lean_array_swap(x_3, x_4, x_19); +x_20 = x_83; +goto block_72; +} +} +block_72: +{ +lean_object* x_21; lean_object* x_41; lean_object* x_42; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; +lean_inc(x_2); +x_41 = lean_array_get(x_2, x_20, x_5); +lean_inc(x_2); +x_60 = lean_array_get(x_2, x_20, x_4); +lean_inc(x_41); +lean_inc(x_1); +x_61 = l_Lean_MetavarContext_getDecl(x_1, x_41); +lean_inc(x_60); +lean_inc(x_1); +x_62 = l_Lean_MetavarContext_getDecl(x_1, x_60); +x_63 = lean_ctor_get(x_61, 6); +lean_inc(x_63); +lean_dec(x_61); +x_64 = lean_ctor_get(x_62, 6); +lean_inc(x_64); +lean_dec(x_62); +x_65 = lean_nat_dec_eq(x_63, x_64); +if (x_65 == 0) +{ +uint8_t x_66; +lean_dec(x_60); +x_66 = lean_nat_dec_lt(x_63, x_64); +lean_dec(x_64); +lean_dec(x_63); +if (x_66 == 0) +{ +lean_object* x_67; +x_67 = lean_box(0); +x_42 = x_67; +goto block_59; +} +else +{ +lean_object* x_68; +lean_dec(x_41); +x_68 = lean_box(0); +x_21 = x_68; +goto block_40; +} +} +else +{ +uint8_t x_69; +lean_dec(x_64); +lean_dec(x_63); +x_69 = l_Lean_Name_quickLt(x_41, x_60); +lean_dec(x_60); +if (x_69 == 0) +{ +lean_object* x_70; +x_70 = lean_box(0); +x_42 = x_70; +goto block_59; +} +else +{ +lean_object* x_71; +lean_dec(x_41); +x_71 = lean_box(0); +x_21 = x_71; +goto block_40; +} +} +block_40: +{ +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; uint8_t x_29; +lean_dec(x_21); +x_22 = lean_array_swap(x_20, x_4, x_5); +lean_inc(x_2); +x_23 = lean_array_get(x_2, x_22, x_19); +lean_inc(x_2); +x_24 = lean_array_get(x_2, x_22, x_5); +lean_inc(x_23); +lean_inc(x_1); +x_25 = l_Lean_MetavarContext_getDecl(x_1, x_23); +lean_inc(x_24); +lean_inc(x_1); +x_26 = l_Lean_MetavarContext_getDecl(x_1, x_24); +x_27 = lean_ctor_get(x_25, 6); +lean_inc(x_27); +lean_dec(x_25); +x_28 = lean_ctor_get(x_26, 6); +lean_inc(x_28); +lean_dec(x_26); +x_29 = lean_nat_dec_eq(x_27, x_28); +if (x_29 == 0) +{ +uint8_t x_30; +lean_dec(x_23); +x_30 = lean_nat_dec_lt(x_27, x_28); +lean_dec(x_28); +lean_dec(x_27); +if (x_30 == 0) +{ +lean_object* x_31; +lean_dec(x_19); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_31 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_24, x_22, x_4, x_4); +x_7 = x_31; +goto block_15; +} +else +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; +lean_dec(x_24); +x_32 = lean_array_swap(x_22, x_19, x_5); +lean_dec(x_19); +lean_inc(x_2); +x_33 = lean_array_get(x_2, x_32, x_5); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_34 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_33, x_32, x_4, x_4); +x_7 = x_34; +goto block_15; +} +} +else +{ +uint8_t x_35; +lean_dec(x_28); +lean_dec(x_27); +x_35 = l_Lean_Name_quickLt(x_23, x_24); +lean_dec(x_23); +if (x_35 == 0) +{ +lean_object* x_36; +lean_dec(x_19); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_36 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_24, x_22, x_4, x_4); +x_7 = x_36; +goto block_15; +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; +lean_dec(x_24); +x_37 = lean_array_swap(x_22, x_19, x_5); +lean_dec(x_19); +lean_inc(x_2); +x_38 = lean_array_get(x_2, x_37, x_5); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_39 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_38, x_37, x_4, x_4); +x_7 = x_39; +goto block_15; +} +} +} +block_59: +{ +lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; uint8_t x_48; +lean_dec(x_42); +lean_inc(x_2); +x_43 = lean_array_get(x_2, x_20, x_19); +lean_inc(x_43); +lean_inc(x_1); +x_44 = l_Lean_MetavarContext_getDecl(x_1, x_43); +lean_inc(x_41); +lean_inc(x_1); +x_45 = l_Lean_MetavarContext_getDecl(x_1, x_41); +x_46 = lean_ctor_get(x_44, 6); +lean_inc(x_46); +lean_dec(x_44); +x_47 = lean_ctor_get(x_45, 6); +lean_inc(x_47); +lean_dec(x_45); +x_48 = lean_nat_dec_eq(x_46, x_47); +if (x_48 == 0) +{ +uint8_t x_49; +lean_dec(x_43); +x_49 = lean_nat_dec_lt(x_46, x_47); +lean_dec(x_47); +lean_dec(x_46); +if (x_49 == 0) +{ +lean_object* x_50; +lean_dec(x_19); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_50 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_41, x_20, x_4, x_4); +x_7 = x_50; +goto block_15; +} +else +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; +lean_dec(x_41); +x_51 = lean_array_swap(x_20, x_19, x_5); +lean_dec(x_19); +lean_inc(x_2); +x_52 = lean_array_get(x_2, x_51, x_5); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_53 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_52, x_51, x_4, x_4); +x_7 = x_53; +goto block_15; +} +} +else +{ +uint8_t x_54; +lean_dec(x_47); +lean_dec(x_46); +x_54 = l_Lean_Name_quickLt(x_43, x_41); +lean_dec(x_43); +if (x_54 == 0) +{ +lean_object* x_55; +lean_dec(x_19); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_55 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_41, x_20, x_4, x_4); +x_7 = x_55; +goto block_15; +} +else +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; +lean_dec(x_41); +x_56 = lean_array_swap(x_20, x_19, x_5); +lean_dec(x_19); +lean_inc(x_2); +x_57 = lean_array_get(x_2, x_56, x_5); +lean_inc_n(x_4, 2); +lean_inc(x_2); +x_58 = l_Array_qpartition_loop___rarg(x_2, x_6, x_5, x_57, x_56, x_4, x_4); +x_7 = x_58; +goto block_15; +} +} +} +} +} +block_15: +{ +lean_object* x_8; lean_object* x_9; uint8_t x_10; +x_8 = lean_ctor_get(x_7, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_7, 1); +lean_inc(x_9); +lean_dec(x_7); +x_10 = lean_nat_dec_le(x_5, x_8); +if (x_10 == 0) +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_inc(x_2); +lean_inc(x_1); +x_11 = l_Array_qsort_sort___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__3(x_1, x_2, x_9, x_4, x_8); +x_12 = lean_unsigned_to_nat(1u); +x_13 = lean_nat_add(x_8, x_12); +lean_dec(x_8); +x_3 = x_11; +x_4 = x_13; +goto _start; +} +else +{ +lean_dec(x_8); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +return x_9; +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdArrayByIndex___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__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; lean_object* x_12; lean_object* x_13; uint8_t x_14; +x_11 = lean_st_ref_get(x_9, x_10); +x_12 = lean_ctor_get(x_11, 1); +lean_inc(x_12); +lean_dec(x_11); +x_13 = lean_st_ref_get(x_7, x_12); +x_14 = !lean_is_exclusive(x_13); +if (x_14 == 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; lean_object* x_22; +x_15 = lean_ctor_get(x_13, 0); +x_16 = lean_ctor_get(x_15, 0); +lean_inc(x_16); +lean_dec(x_15); +x_17 = lean_array_get_size(x_1); +x_18 = lean_unsigned_to_nat(1u); +x_19 = lean_nat_sub(x_17, x_18); +lean_dec(x_17); +x_20 = l_Lean_instInhabitedMVarId; +x_21 = lean_unsigned_to_nat(0u); +x_22 = l_Array_qsort_sort___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__3(x_16, x_20, x_1, x_21, x_19); +lean_dec(x_19); +lean_ctor_set(x_13, 0, x_22); +return x_13; +} +else +{ +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; lean_object* x_32; +x_23 = lean_ctor_get(x_13, 0); +x_24 = lean_ctor_get(x_13, 1); +lean_inc(x_24); +lean_inc(x_23); +lean_dec(x_13); +x_25 = lean_ctor_get(x_23, 0); +lean_inc(x_25); +lean_dec(x_23); +x_26 = lean_array_get_size(x_1); +x_27 = lean_unsigned_to_nat(1u); +x_28 = lean_nat_sub(x_26, x_27); +lean_dec(x_26); +x_29 = l_Lean_instInhabitedMVarId; +x_30 = lean_unsigned_to_nat(0u); +x_31 = l_Array_qsort_sort___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__3(x_25, x_29, x_1, x_30, x_28); +lean_dec(x_28); +x_32 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_32, 0, x_31); +lean_ctor_set(x_32, 1, x_24); +return x_32; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdsByIndex___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__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_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_11 = l_List_redLength___rarg(x_1); +x_12 = lean_mk_empty_array_with_capacity(x_11); +lean_dec(x_11); +x_13 = l_List_toArrayAux___rarg(x_1, x_12); +x_14 = l_Lean_Elab_Tactic_sortMVarIdArrayByIndex___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__2(x_13, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +x_15 = !lean_is_exclusive(x_14); +if (x_15 == 0) +{ +lean_object* x_16; lean_object* x_17; +x_16 = lean_ctor_get(x_14, 0); +x_17 = lean_array_to_list(lean_box(0), x_16); +lean_ctor_set(x_14, 0, x_17); +return x_14; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_18 = lean_ctor_get(x_14, 0); +x_19 = lean_ctor_get(x_14, 1); +lean_inc(x_19); +lean_inc(x_18); +lean_dec(x_14); +x_20 = lean_array_to_list(lean_box(0), x_18); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_19); +return x_21; +} +} +} +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__4(lean_object* x_1, size_t x_2, size_t 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_object* x_13) { _start: { uint8_t x_14; @@ -2209,7 +3174,7 @@ return x_32; } } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__2(lean_object* x_1, size_t x_2, size_t 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_object* x_13) { +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__5(lean_object* x_1, size_t x_2, size_t 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_object* x_13) { _start: { uint8_t x_14; @@ -2288,7 +3253,7 @@ return x_32; } } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__3(lean_object* x_1, size_t x_2, size_t 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_object* x_13) { +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__6(lean_object* x_1, size_t x_2, size_t 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_object* x_13) { _start: { uint8_t x_14; @@ -2356,7 +3321,13 @@ return x_28; LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_withCollectingNewGoalsFrom___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_object* x_11, lean_object* x_12) { _start: { -lean_object* x_13; +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_13 = l_Lean_Elab_Tactic_sortMVarIdsByIndex___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__1(x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +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); lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); @@ -2365,17 +3336,17 @@ lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -x_13 = l_Lean_Elab_Tactic_getMainTag(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) +x_16 = l_Lean_Elab_Tactic_getMainTag(x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_15); +if (lean_obj_tag(x_16) == 0) { -lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_14 = lean_ctor_get(x_13, 0); +lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); lean_inc(x_14); -x_15 = lean_ctor_get(x_13, 1); -lean_inc(x_15); -lean_dec(x_13); -lean_inc(x_3); -x_16 = l_Lean_Elab_Tactic_tagUntaggedGoals(x_14, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_15); +x_19 = l_Lean_Elab_Tactic_tagUntaggedGoals(x_17, x_1, x_14, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_18); lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); @@ -2384,64 +3355,64 @@ lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); -x_17 = !lean_is_exclusive(x_16); -if (x_17 == 0) +x_20 = !lean_is_exclusive(x_19); +if (x_20 == 0) +{ +lean_object* x_21; lean_object* x_22; +x_21 = lean_ctor_get(x_19, 0); +lean_dec(x_21); +x_22 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_22, 0, x_2); +lean_ctor_set(x_22, 1, x_14); +lean_ctor_set(x_19, 0, x_22); +return x_19; +} +else +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_19, 1); +lean_inc(x_23); +lean_dec(x_19); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_2); +lean_ctor_set(x_24, 1, x_14); +x_25 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_25, 0, x_24); +lean_ctor_set(x_25, 1, x_23); +return x_25; +} +} +else +{ +uint8_t x_26; +lean_dec(x_14); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +lean_dec(x_1); +x_26 = !lean_is_exclusive(x_16); +if (x_26 == 0) { -lean_object* x_18; lean_object* x_19; -x_18 = lean_ctor_get(x_16, 0); -lean_dec(x_18); -x_19 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_19, 0, x_2); -lean_ctor_set(x_19, 1, x_3); -lean_ctor_set(x_16, 0, x_19); return x_16; } else { -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_16, 1); -lean_inc(x_20); +lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_27 = lean_ctor_get(x_16, 0); +x_28 = lean_ctor_get(x_16, 1); +lean_inc(x_28); +lean_inc(x_27); lean_dec(x_16); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_2); -lean_ctor_set(x_21, 1, x_3); -x_22 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_22, 0, x_21); -lean_ctor_set(x_22, 1, x_20); -return x_22; -} -} -else -{ -uint8_t x_23; -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -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_23 = !lean_is_exclusive(x_13); -if (x_23 == 0) -{ -return x_13; -} -else -{ -lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_24 = lean_ctor_get(x_13, 0); -x_25 = lean_ctor_get(x_13, 1); -lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_13); -x_26 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_26, 0, x_24); -lean_ctor_set(x_26, 1, x_25); -return x_26; +x_29 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_29, 0, x_27); +lean_ctor_set(x_29, 1, x_28); +return x_29; } } } @@ -2543,7 +3514,7 @@ lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); -x_102 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__3(x_24, x_99, x_100, x_101, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_25); +x_102 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__6(x_24, x_99, x_100, x_101, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_25); lean_dec(x_24); x_103 = lean_ctor_get(x_102, 0); lean_inc(x_103); @@ -2588,7 +3559,7 @@ size_t x_83; size_t x_84; lean_object* x_85; lean_object* x_86; x_83 = 0; x_84 = lean_usize_of_nat(x_31); x_85 = l_Lean_Elab_Tactic_filterOldMVars___closed__1; -x_86 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__2(x_29, x_83, x_84, x_85, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_30); +x_86 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__5(x_29, x_83, x_84, x_85, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_30); if (lean_obj_tag(x_86) == 0) { lean_object* x_87; lean_object* x_88; @@ -2777,7 +3748,7 @@ x_58 = 0; x_59 = lean_usize_of_nat(x_31); lean_dec(x_31); x_60 = l_Lean_Elab_Tactic_filterOldMVars___closed__1; -x_61 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__1(x_29, x_58, x_59, x_60, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_34); +x_61 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__4(x_29, x_58, x_59, x_60, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_34); lean_dec(x_29); if (lean_obj_tag(x_61) == 0) { @@ -2928,7 +3899,48 @@ return x_108; } } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__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_object* x_13) { +LEAN_EXPORT lean_object* l_Array_qsort_sort___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +x_6 = l_Array_qsort_sort___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__3(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_5); +return x_6; +} +} +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdArrayByIndex___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__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) { +_start: +{ +lean_object* x_11; +x_11 = l_Lean_Elab_Tactic_sortMVarIdArrayByIndex___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_9); +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); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_sortMVarIdsByIndex___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__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) { +_start: +{ +lean_object* x_11; +x_11 = l_Lean_Elab_Tactic_sortMVarIdsByIndex___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_9); +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); +return x_11; +} +} +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__4___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_object* x_13) { _start: { size_t x_14; size_t x_15; lean_object* x_16; @@ -2936,7 +3948,7 @@ x_14 = lean_unbox_usize(x_2); lean_dec(x_2); x_15 = lean_unbox_usize(x_3); lean_dec(x_3); -x_16 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__1(x_1, x_14, x_15, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +x_16 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__4(x_1, x_14, x_15, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); @@ -2949,7 +3961,7 @@ lean_dec(x_1); return x_16; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__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_object* x_13) { +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__5___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_object* x_13) { _start: { size_t x_14; size_t x_15; lean_object* x_16; @@ -2957,7 +3969,7 @@ x_14 = lean_unbox_usize(x_2); lean_dec(x_2); x_15 = lean_unbox_usize(x_3); lean_dec(x_3); -x_16 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__2(x_1, x_14, x_15, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +x_16 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__5(x_1, x_14, x_15, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); @@ -2970,7 +3982,7 @@ lean_dec(x_1); return x_16; } } -LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__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, lean_object* x_13) { +LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__6___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_object* x_13) { _start: { size_t x_14; size_t x_15; lean_object* x_16; @@ -2978,7 +3990,7 @@ x_14 = lean_unbox_usize(x_2); lean_dec(x_2); x_15 = lean_unbox_usize(x_3); lean_dec(x_3); -x_16 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__3(x_1, x_14, x_15, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +x_16 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_withCollectingNewGoalsFrom___spec__6(x_1, x_14, x_15, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); lean_dec(x_6); lean_dec(x_5); lean_dec(x_1); @@ -3525,7 +4537,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalRefine_declRange__ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(108u); +x_1 = lean_unsigned_to_nat(128u); x_2 = lean_unsigned_to_nat(26u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -3537,7 +4549,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalRefine_declRange__ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(111u); +x_1 = lean_unsigned_to_nat(131u); x_2 = lean_unsigned_to_nat(50u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -3565,7 +4577,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalRefine_declRange__ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(108u); +x_1 = lean_unsigned_to_nat(128u); x_2 = lean_unsigned_to_nat(30u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -3577,7 +4589,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalRefine_declRange__ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(108u); +x_1 = lean_unsigned_to_nat(128u); x_2 = lean_unsigned_to_nat(40u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -3732,7 +4744,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalRefine_x27_declRan _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(113u); +x_1 = lean_unsigned_to_nat(133u); x_2 = lean_unsigned_to_nat(27u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -3744,7 +4756,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalRefine_x27_declRan _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(116u); +x_1 = lean_unsigned_to_nat(136u); x_2 = lean_unsigned_to_nat(51u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -3772,7 +4784,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalRefine_x27_declRan _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(113u); +x_1 = lean_unsigned_to_nat(133u); x_2 = lean_unsigned_to_nat(31u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -3784,7 +4796,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalRefine_x27_declRan _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(113u); +x_1 = lean_unsigned_to_nat(133u); x_2 = lean_unsigned_to_nat(42u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -4341,7 +5353,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalSpecialize_declRan _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(118u); +x_1 = lean_unsigned_to_nat(138u); x_2 = lean_unsigned_to_nat(30u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -4353,7 +5365,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalSpecialize_declRan _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(131u); +x_1 = lean_unsigned_to_nat(151u); x_2 = lean_unsigned_to_nat(31u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -4381,7 +5393,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalSpecialize_declRan _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(118u); +x_1 = lean_unsigned_to_nat(138u); x_2 = lean_unsigned_to_nat(34u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -4393,7 +5405,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalSpecialize_declRan _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(118u); +x_1 = lean_unsigned_to_nat(138u); x_2 = lean_unsigned_to_nat(48u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -5413,7 +6425,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalApply_declRange___ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(209u); +x_1 = lean_unsigned_to_nat(229u); x_2 = lean_unsigned_to_nat(42u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -5425,7 +6437,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalApply_declRange___ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(212u); +x_1 = lean_unsigned_to_nat(232u); x_2 = lean_unsigned_to_nat(31u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -5453,7 +6465,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalApply_declRange___ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(209u); +x_1 = lean_unsigned_to_nat(229u); x_2 = lean_unsigned_to_nat(46u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -5465,7 +6477,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalApply_declRange___ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(209u); +x_1 = lean_unsigned_to_nat(229u); x_2 = lean_unsigned_to_nat(55u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -5756,7 +6768,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalConstructor_declRa _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(214u); +x_1 = lean_unsigned_to_nat(234u); x_2 = lean_unsigned_to_nat(48u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -5768,7 +6780,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalConstructor_declRa _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(218u); +x_1 = lean_unsigned_to_nat(238u); x_2 = lean_unsigned_to_nat(28u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -5796,7 +6808,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalConstructor_declRa _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(214u); +x_1 = lean_unsigned_to_nat(234u); x_2 = lean_unsigned_to_nat(52u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -5808,7 +6820,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalConstructor_declRa _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(214u); +x_1 = lean_unsigned_to_nat(234u); x_2 = lean_unsigned_to_nat(67u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -6189,7 +7201,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalWithReducible_decl _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(220u); +x_1 = lean_unsigned_to_nat(240u); x_2 = lean_unsigned_to_nat(50u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -6201,7 +7213,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalWithReducible_decl _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(221u); +x_1 = lean_unsigned_to_nat(241u); x_2 = lean_unsigned_to_nat(36u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -6229,7 +7241,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalWithReducible_decl _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(220u); +x_1 = lean_unsigned_to_nat(240u); x_2 = lean_unsigned_to_nat(54u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -6241,7 +7253,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalWithReducible_decl _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(220u); +x_1 = lean_unsigned_to_nat(240u); x_2 = lean_unsigned_to_nat(71u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -6622,7 +7634,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalWithReducibleAndIn _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(223u); +x_1 = lean_unsigned_to_nat(243u); x_2 = lean_unsigned_to_nat(62u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -6634,7 +7646,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalWithReducibleAndIn _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(224u); +x_1 = lean_unsigned_to_nat(244u); x_2 = lean_unsigned_to_nat(48u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -6662,7 +7674,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalWithReducibleAndIn _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(223u); +x_1 = lean_unsigned_to_nat(243u); x_2 = lean_unsigned_to_nat(66u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -6674,7 +7686,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalWithReducibleAndIn _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(223u); +x_1 = lean_unsigned_to_nat(243u); x_2 = lean_unsigned_to_nat(95u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -7055,7 +8067,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalWithUnfoldingAll_d _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(226u); +x_1 = lean_unsigned_to_nat(246u); x_2 = lean_unsigned_to_nat(53u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -7067,7 +8079,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalWithUnfoldingAll_d _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(227u); +x_1 = lean_unsigned_to_nat(247u); x_2 = lean_unsigned_to_nat(60u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -7095,7 +8107,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalWithUnfoldingAll_d _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(226u); +x_1 = lean_unsigned_to_nat(246u); x_2 = lean_unsigned_to_nat(57u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -7107,7 +8119,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalWithUnfoldingAll_d _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(226u); +x_1 = lean_unsigned_to_nat(246u); x_2 = lean_unsigned_to_nat(77u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -9315,7 +10327,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalRename_declRange__ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(250u); +x_1 = lean_unsigned_to_nat(270u); x_2 = lean_unsigned_to_nat(43u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -9327,7 +10339,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalRename_declRange__ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(265u); +x_1 = lean_unsigned_to_nat(285u); x_2 = lean_unsigned_to_nat(31u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -9355,7 +10367,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalRename_declRange__ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(250u); +x_1 = lean_unsigned_to_nat(270u); x_2 = lean_unsigned_to_nat(47u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -9367,7 +10379,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalRename_declRange__ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(250u); +x_1 = lean_unsigned_to_nat(270u); x_2 = lean_unsigned_to_nat(57u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -10271,7 +11283,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalDecide_declRange__ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(279u); +x_1 = lean_unsigned_to_nat(299u); x_2 = lean_unsigned_to_nat(43u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -10283,7 +11295,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalDecide_declRange__ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(289u); +x_1 = lean_unsigned_to_nat(309u); x_2 = lean_unsigned_to_nat(74u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -10311,7 +11323,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalDecide_declRange__ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(279u); +x_1 = lean_unsigned_to_nat(299u); x_2 = lean_unsigned_to_nat(47u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -10323,7 +11335,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalDecide_declRange__ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(279u); +x_1 = lean_unsigned_to_nat(299u); x_2 = lean_unsigned_to_nat(57u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -10909,7 +11921,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalNativeDecide_declR _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(302u); +x_1 = lean_unsigned_to_nat(322u); x_2 = lean_unsigned_to_nat(49u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -10921,7 +11933,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalNativeDecide_declR _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(309u); +x_1 = lean_unsigned_to_nat(329u); x_2 = lean_unsigned_to_nat(160u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -10949,7 +11961,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalNativeDecide_declR _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(302u); +x_1 = lean_unsigned_to_nat(322u); x_2 = lean_unsigned_to_nat(53u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); @@ -10961,7 +11973,7 @@ static lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_evalNativeDecide_declR _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_unsigned_to_nat(302u); +x_1 = lean_unsigned_to_nat(322u); x_2 = lean_unsigned_to_nat(69u); x_3 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_3, 0, x_1); diff --git a/stage0/stdlib/Lean/Elab/Tactic/Simp.c b/stage0/stdlib/Lean/Elab/Tactic/Simp.c index ebcb8e533e..952693f4f9 100644 --- a/stage0/stdlib/Lean/Elab/Tactic/Simp.c +++ b/stage0/stdlib/Lean/Elab/Tactic/Simp.c @@ -224,7 +224,6 @@ lean_object* l_Lean_Elab_Tactic_expandOptLocation(lean_object*); LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_addSimpTheorem___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Meta_SimpTheorems_isLemma(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_elabSimpConfigCore___spec__9___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_Name_components_x27(lean_object*); LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_dsimpLocation___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*); extern lean_object* l_Lean_Meta_simpExtension; static lean_object* l_Lean_Elab_Tactic_mkSimpContext___lambda__3___closed__1; @@ -526,6 +525,7 @@ static lean_object* l_Lean_Elab_Tactic_tacticToDischarge___closed__1; LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_instBEqSimpKind; static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalDSimp___closed__1; LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_mkSimpContext(lean_object*, uint8_t, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Name_componentsRev(lean_object*); static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalSimp_declRange___closed__2; static lean_object* l_Lean_Elab_Tactic_SimpKind_noConfusion___rarg___closed__1; static lean_object* l_Lean_resolveGlobalConst___at_Lean_Elab_Tactic_elabSimpArgs___spec__5___closed__2; @@ -11106,7 +11106,7 @@ LEAN_EXPORT lean_object* l_Lean_unresolveNameGlobal_unresolveNameCore___at_Lean_ _start: { lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; -x_8 = l_Lean_Name_components_x27(x_2); +x_8 = l_Lean_Name_componentsRev(x_2); x_9 = lean_unsigned_to_nat(0u); x_10 = l_List_lengthTRAux___rarg(x_8, x_9); x_11 = lean_box(0); diff --git a/stage0/stdlib/Lean/PrettyPrinter/Delaborator/Builtins.c b/stage0/stdlib/Lean/PrettyPrinter/Delaborator/Builtins.c index f139a8bb40..89be548ac7 100644 --- a/stage0/stdlib/Lean/PrettyPrinter/Delaborator/Builtins.c +++ b/stage0/stdlib/Lean/PrettyPrinter/Delaborator/Builtins.c @@ -406,7 +406,6 @@ static lean_object* l_Lean_PrettyPrinter_Delaborator_delabMData___closed__1; static lean_object* l_Lean_PrettyPrinter_Delaborator_delabDoElems___lambda__3___closed__5; static lean_object* l_Lean_PrettyPrinter_Delaborator_delabAppImplicit___lambda__2___closed__1; 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*); -lean_object* l_Lean_Name_components_x27(lean_object*); static lean_object* l_Lean_PrettyPrinter_Delaborator_delabSort___closed__5; static lean_object* l_Lean_PrettyPrinter_Delaborator_delabDo___closed__1; static lean_object* l_Lean_PrettyPrinter_Delaborator_delabAppExplicit___lambda__4___closed__9; @@ -985,6 +984,7 @@ LEAN_EXPORT lean_object* l_ReaderT_bind___at_Lean_PrettyPrinter_Delaborator_dela LEAN_EXPORT lean_object* l_Lean_PrettyPrinter_Delaborator_delabProj(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_PrettyPrinter_Delaborator_delabForall___lambda__2___closed__2; uint8_t l_Lean_getPPPiBinderTypes(lean_object*); +lean_object* l_Lean_Name_componentsRev(lean_object*); LEAN_EXPORT lean_object* l_Lean_PrettyPrinter_Delaborator_SubExpr_withProj___at_Lean_PrettyPrinter_Delaborator_delabProj___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_bindingBody_x21(lean_object*); static lean_object* l_Lean_PrettyPrinter_Delaborator_delabAppExplicit___closed__1; @@ -3038,7 +3038,7 @@ LEAN_EXPORT lean_object* l_Lean_unresolveNameGlobal_unresolveNameCore___at_Lean_ _start: { lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_10 = l_Lean_Name_components_x27(x_2); +x_10 = l_Lean_Name_componentsRev(x_2); x_11 = lean_unsigned_to_nat(0u); x_12 = l_List_lengthTRAux___rarg(x_10, x_11); x_13 = lean_box(0); diff --git a/stage0/stdlib/Lean/ResolveName.c b/stage0/stdlib/Lean/ResolveName.c index 0bab84ecb3..e42c9790cf 100644 --- a/stage0/stdlib/Lean/ResolveName.c +++ b/stage0/stdlib/Lean/ResolveName.c @@ -123,7 +123,6 @@ static lean_object* l_Std_Range_forIn_loop___at_Lean_unresolveNameGlobal_unresol LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_initFn____x40_Lean_ResolveName___hyg_68____spec__3(lean_object*, size_t, size_t, lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_mkHashMap___at_Lean_initFn____x40_Lean_ResolveName___hyg_68____spec__1(lean_object*); -lean_object* l_Lean_Name_components_x27(lean_object*); static lean_object* l_Lean_resolveUniqueNamespace___rarg___lambda__1___closed__2; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_unresolveNameGlobal___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, size_t, size_t, lean_object*); LEAN_EXPORT lean_object* l_Std_Range_forIn_loop___at_Lean_unresolveNameGlobal_unresolveNameCore___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -268,6 +267,7 @@ lean_object* lean_usize_to_nat(size_t); static lean_object* l_Lean_resolveNamespace___rarg___closed__3; LEAN_EXPORT lean_object* l_List_toString___at_Lean_resolveGlobalConstNoOverloadCore___spec__2(lean_object*); LEAN_EXPORT lean_object* l_Lean_resolveGlobalConstNoOverload___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Name_componentsRev(lean_object*); static size_t l_Lean_PersistentHashMap_findAux___at_Lean_addAliasEntry___spec__3___closed__1; LEAN_EXPORT lean_object* l___private_Lean_ResolveName_0__Lean_ResolveName_resolveExact(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_resolveNamespaceCore___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t); @@ -5567,7 +5567,7 @@ LEAN_EXPORT lean_object* l_Lean_unresolveNameGlobal_unresolveNameCore___rarg(lea _start: { lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_6 = l_Lean_Name_components_x27(x_5); +x_6 = l_Lean_Name_componentsRev(x_5); x_7 = lean_ctor_get(x_1, 1); lean_inc(x_7); x_8 = lean_unsigned_to_nat(0u); diff --git a/stage0/stdlib/Lean/Server/FileWorker/RequestHandling.c b/stage0/stdlib/Lean/Server/FileWorker/RequestHandling.c index 7d09ebfde6..89a7630019 100644 --- a/stage0/stdlib/Lean/Server/FileWorker/RequestHandling.c +++ b/stage0/stdlib/Lean/Server/FileWorker/RequestHandling.c @@ -17,118 +17,113 @@ lean_object* l_List_reverse___rarg(lean_object*); lean_object* l_Lean_initializing(lean_object*); LEAN_EXPORT lean_object* l_ReaderT_pure___at_Lean_Server_FileWorker_handleCompletion___spec__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_String_csize(uint32_t); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__7; LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_handleDocumentHighlight___spec__1(size_t, size_t, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__2; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__30___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleFoldingRange_isImport___closed__4; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleWaitForDiagnostics___lambda__1___boxed(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__8(lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3___closed__1; +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__25(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Server_FileWorker_handleSemanticTokens___spec__1___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_add(size_t, size_t); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__5; static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__7; -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__33___boxed(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__19; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleHover___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_mvarId_x21(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokensRange(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__1(lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__20(lean_object*, lean_object*, lean_object*); static lean_object* l_List_findSomeM_x3f___at_Lean_Server_FileWorker_handleHover___spec__1___closed__3; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Server_FileWorker_handleDocumentHighlight___spec__3___lambda__1___boxed(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3___closed__2; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__6; lean_object* lean_mk_empty_array_with_capacity(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokens___lambda__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Name_str___override(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__33(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_go___closed__3; -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__5(lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3___closed__2; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__4___closed__1; LEAN_EXPORT uint8_t l_Lean_Server_FileWorker_handleHover___lambda__2(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__2(lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3___closed__2; lean_object* l___private_Lean_Data_Lsp_Basic_0__Lean_Lsp_fromJsonTextDocumentPositionParams____x40_Lean_Data_Lsp_Basic___hyg_4507_(lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3___closed__1; LEAN_EXPORT uint8_t l_Lean_Server_FileWorker_getInteractiveGoals___lambda__1(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__25(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__19; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__1(lean_object*); static lean_object* l_Lean_Server_FileWorker_handleFoldingRange_isImport___closed__1; static lean_object* l_Lean_Server_FileWorker_handleFoldingRange_isImport___closed__2; uint8_t l_Lean_LocalDecl_isAuxDecl(lean_object*); lean_object* l_Lean_Syntax_getOptional_x3f(lean_object*); uint8_t lean_usize_dec_eq(size_t, size_t); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__22; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_uget(lean_object*, size_t); LEAN_EXPORT lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5___lambda__2(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_io_error_to_string(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_getInteractiveTermGoal___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Data_Lsp_LanguageFeatures_0__Lean_Lsp_fromJsonHoverParams____x40_Lean_Data_Lsp_LanguageFeatures___hyg_2338_(lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__7; lean_object* l___private_Lean_Data_Lsp_Extra_0__Lean_Lsp_fromJsonPlainGoalParams____x40_Lean_Data_Lsp_Extra___hyg_647_(lean_object*); lean_object* l_Array_append___rarg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handlePlainTermGoal(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__2; -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; extern lean_object* l_Std_Format_defWidth; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_isImport___boxed(lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__7; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleHover___closed__1; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__1(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__3; -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__18; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleHover___lambda__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__15; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_List_foldr___at_Lean_Server_FileWorker_NamespaceEntry_finish___spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_uset(lean_object*, size_t, lean_object*); static lean_object* l_Lean_Server_FileWorker_handlePlainGoal___closed__2; -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__17(size_t, size_t, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; static lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5___closed__4; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__9___boxed(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__2(lean_object*); lean_object* l_ReaderT_pure___at_Lean_Elab_CompletionInfo_format___spec__2___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Lsp_SemanticTokenType_toCtorIdx(uint8_t); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__26(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__10; -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__3; LEAN_EXPORT lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5___boxed__const__1; lean_object* l_Lean_Server_RequestError_ofIoError(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__1(lean_object*); static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__11; LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_handleDocumentHighlight___spec__4___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__2; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__10___closed__1; static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__1; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Server_Completion_find_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__2(lean_object*); LEAN_EXPORT lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__26; static lean_object* l_Lean_Server_FileWorker_handleFoldingRange_isImport___closed__3; -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3___closed__1; static lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_addToken___closed__1; lean_object* l_Lean_HashMap_ofList___at_Lean_Server_ModuleRefs_instCoeModuleRefsModuleRefs___spec__5(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__24; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addRange___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__36___boxed(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__12; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__2; uint8_t lean_name_eq(lean_object*, lean_object*); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__16; +static lean_object* l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__5; static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__8; -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__19(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27(lean_object*, lean_object*, lean_object*); static lean_object* l_List_findSomeM_x3f___at_Lean_Server_FileWorker_handleHover___spec__1___closed__4; static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__1; -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__10; -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__22(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__2; static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__4; +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3___closed__1; +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3___closed__1; static lean_object* l_Lean_Server_FileWorker_handlePlainGoal___closed__1; -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__20; static lean_object* l_Lean_Server_FileWorker_handlePlainTermGoal___closed__2; lean_object* lean_array_push(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); @@ -139,131 +134,135 @@ static lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_go___closed__6 static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__17; static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__1; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, size_t, size_t, lean_object*); -static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__1; -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__17___boxed(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3___closed__1; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__2___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_addToken___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__5___closed__1; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange___rarg(lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__8; lean_object* l_Lean_FileMap_lspPosToUtf8Pos(lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__1; +static lean_object* l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__3; static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__4; static lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__11; lean_object* l_IO_sleep(uint32_t, lean_object*); -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__13___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_withPPShowLetValues___at_Lean_Server_FileWorker_getInteractiveGoals___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleWaitForDiagnostics___lambda__2___closed__1; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__2(lean_object*); static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__9; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleCompletion___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__26___boxed(lean_object*, lean_object*, lean_object*); +lean_object* lean_string_utf8_byte_size(lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__6(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleFoldingRange_isImport___closed__5; LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_handleWaitForDiagnostics___spec__1(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol___rarg___lambda__1___boxed(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644_(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__5___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_Server_FileWorker_locationLinksOfInfo___lambda__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_usize_dec_lt(size_t, size_t); static lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_go___closed__5; +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__3___closed__1; static lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__3; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addRangeFromSyntax(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3___closed__2; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addRanges_popRanges(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleWaitForDiagnostics___lambda__1___closed__1; +static lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; LEAN_EXPORT lean_object* l_Lean_Meta_withPPForTacticGoal___at_Lean_Server_FileWorker_getInteractiveGoals___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, size_t, size_t, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3___closed__2; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol___boxed(lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__4; static lean_object* l_Lean_Server_FileWorker_handlePlainTermGoal___closed__3; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__1(lean_object*); uint8_t l_String_Range_includes(lean_object*, lean_object*); lean_object* l_Lean_FileMap_utf8PosToLspPos(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__36(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleWaitForDiagnostics___lambda__1(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__2(lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__24; +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; lean_object* l___private_Lean_Data_Lsp_Extra_0__Lean_Lsp_toJsonPlainTermGoal____x40_Lean_Data_Lsp_Extra___hyg_1217_(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__1(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__28(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_InfoTree_deepestNodes___rarg(lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at_Lean_Server_FileWorker_handleSemanticTokens_go___spec__2(lean_object*, lean_object*, size_t, size_t); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight___lambda__2___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__8(lean_object*); lean_object* l_Lean_Widget_InteractiveGoal_pretty(lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__4___closed__1; static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__5; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__4___closed__1; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleWaitForDiagnostics_waitLoop(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__11(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__2___closed__1; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_panic___at_Lean_FileMap_toPosition_loop___spec__1(lean_object*); static lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__2___closed__2; +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__15(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight___lambda__2(lean_object*, size_t, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3___closed__2; LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Server_FileWorker_handleSemanticTokens_highlightId___spec__1___lambda__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_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__23(lean_object*, lean_object*, lean_object*); lean_object* l_Except_map___rarg(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__1(lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__29(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Data_Lsp_LanguageFeatures_0__Lean_Lsp_toJsonHover____x40_Lean_Data_Lsp_LanguageFeatures___hyg_2194_(lean_object*); lean_object* l___private_Lean_Data_Lsp_Extra_0__Lean_Lsp_fromJsonWaitForDiagnosticsParams____x40_Lean_Data_Lsp_Extra___hyg_24_(lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__3; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDefinition___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3___closed__1; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__10; uint8_t l_Lean_PersistentHashMap_contains___at_Lean_Server_registerLspRequestHandler___spec__6(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__6(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_InfoTree_goalsAt_x3f(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_InfoTree_findInfo_x3f(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handlePlainTermGoal___closed__1; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Syntax_matchesNull(lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3___closed__1; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_handlePlainGoal___spec__1___boxed(lean_object*, lean_object*, lean_object*); uint8_t l_String_Range_contains(lean_object*, lean_object*, uint8_t); lean_object* l_Lean_Json_compress(lean_object*); lean_object* lean_st_ref_take(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__2___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_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__2; static lean_object* l_Lean_Server_FileWorker_handleWaitForDiagnostics___closed__1; -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__9(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__1(lean_object*); lean_object* l___private_Lean_Data_Lsp_Basic_0__Lean_Lsp_toJsonLocationLink____x40_Lean_Data_Lsp_Basic___hyg_1253_(lean_object*); lean_object* l_Array_mapMUnsafe_map___at_Lean_Lsp_instToJsonDocumentSymbol_go___spec__3(size_t, size_t, lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__1___boxed(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3___closed__1; +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__1(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_getInteractiveTermGoal___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__2___closed__1; -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__20___boxed(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3___closed__2; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4(lean_object*, lean_object*, lean_object*); lean_object* l_String_Range_toLspRange(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleCompletion___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addRanges(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__3___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5___closed__7; -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__6___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_findStack_x3f(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__16; lean_object* l_Lean_HashMap_toList___at_Lean_Server_ModuleRefs_instCoeModuleRefsModuleRefs___spec__1(lean_object*); lean_object* l___private_Lean_Data_Lsp_LanguageFeatures_0__Lean_Lsp_toJsonSemanticTokens____x40_Lean_Data_Lsp_LanguageFeatures___hyg_6685_(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_toString(lean_object*, uint8_t); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_handlePlainGoal___spec__2(size_t, size_t, lean_object*); -static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__3; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___lambda__1___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3___closed__2; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__1(lean_object*); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__12; +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__16___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__11(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__32(lean_object*); lean_object* l_Lean_Meta_withPPShowLetValuesImp___rarg(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__4___closed__1; lean_object* l_Lean_Widget_InteractiveTermGoal_toInteractiveGoal(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Data_Lsp_LanguageFeatures_0__Lean_Lsp_fromJsonFoldingRangeParams____x40_Lean_Data_Lsp_LanguageFeatures___hyg_6729_(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__16(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__14; lean_object* l_IO_AsyncList_waitAll___rarg(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Server_documentUriFromModule(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_highlightKeyword(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -273,227 +272,239 @@ LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight___lamb static lean_object* l_Lean_Server_FileWorker_handleSemanticTokensFull___rarg___closed__1; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__3(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Data_Lsp_LanguageFeatures_0__Lean_Lsp_fromJsonSemanticTokensRangeParams____x40_Lean_Data_Lsp_LanguageFeatures___hyg_6423_(lean_object*); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__11; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokensFull(lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__5; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_highlightId___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__3___closed__1; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31(lean_object*, lean_object*, lean_object*); lean_object* lean_task_map(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__20(lean_object*, lean_object*, lean_object*); static lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_handlePlainGoal___spec__2___closed__2; -static lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3___closed__2; +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__7; LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_handleWaitForDiagnostics___spec__1___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__13(size_t, size_t, lean_object*); lean_object* l_Lean_Syntax_getId(lean_object*); LEAN_EXPORT lean_object* l_List_mapTRAux___at_Lean_Server_FileWorker_handleDocumentHighlight___spec__2___boxed(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Server_requestHandlers; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__16___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_format_pretty(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__1(lean_object*); lean_object* l_Lean_Server_RequestM_bindTask___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__2(lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; lean_object* l_Lean_Server_RequestM_readDoc___at_Lean_Server_RequestM_withWaitFindSnapAtPos___spec__1(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_getInteractiveGoals(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__1(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__12(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_highlightId(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__12___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__12; +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3___closed__1; LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_handlePlainGoal___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_array_to_list(lean_object*, lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3___closed__2; static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__3; lean_object* l___private_Lean_Data_Lsp_LanguageFeatures_0__Lean_Lsp_fromJsonSemanticTokensParams____x40_Lean_Data_Lsp_LanguageFeatures___hyg_6314_(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handlePlainGoal(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__26; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Environment_contains(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__23___boxed(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__4___closed__1; lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_RefInfo_instCoeRefInfoRefInfo___spec__1(size_t, size_t, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDefinition___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Server_RequestM_mapTask___rarg(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_getInteractiveGoals___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint32_t lean_string_utf8_get(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_handleDocumentHighlight___spec__4(size_t, size_t, lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; +lean_object* l_Lean_Name_getNumParts(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_handleDocumentHighlight___spec__1___boxed(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__3; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__3___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_handlePlainGoal___spec__2___closed__1; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__6___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_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__9; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__2(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleCompletion(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Data_Lsp_Extra_0__Lean_Lsp_toJsonPlainGoal____x40_Lean_Data_Lsp_Extra___hyg_907_(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__4___boxed(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_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__12(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__3(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Data_Lsp_LanguageFeatures_0__Lean_Lsp_fromJsonDocumentSymbolParams____x40_Lean_Data_Lsp_LanguageFeatures___hyg_3593_(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_getInteractiveTermGoal___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Data_Lsp_LanguageFeatures_0__Lean_Lsp_toJsonDocumentHighlight____x40_Lean_Data_Lsp_LanguageFeatures___hyg_3545_(lean_object*); lean_object* l_Lean_LocalContext_pop(lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__18; static lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5___closed__5; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleCompletion___closed__1; LEAN_EXPORT uint8_t l_Lean_Server_FileWorker_handleDocumentSymbol___rarg___lambda__1(lean_object*); lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleCompletion___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__17(size_t, size_t, lean_object*); uint8_t l_Array_isEmpty___rarg(lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3___closed__2; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokensFull___rarg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange___boxed(lean_object*); -extern lean_object* l_Lean_instInhabitedSyntax; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__2(lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3___closed__2; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol___rarg___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Info_stx(lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__2; lean_object* l_Lean_Elab_Info_toElabInfo_x3f(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__1(lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__15; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___spec__2___boxed(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_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2___closed__2; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__1(lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__9; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__2(lean_object*); lean_object* l___private_Lean_Data_Lsp_LanguageFeatures_0__Lean_Lsp_fromJsonCompletionParams____x40_Lean_Data_Lsp_LanguageFeatures___hyg_2033_(lean_object*); extern lean_object* l_Task_Priority_default; lean_object* l_Lean_Elab_Info_range_x3f(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__1(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__2(lean_object*); size_t lean_usize_of_nat(lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__30(size_t, size_t, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleHover___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__11; static lean_object* l_Lean_Server_FileWorker_handleCompletion___closed__2; -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3___closed__1; static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__15; static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__18; static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__3; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleCompletion___lambda__1___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__13___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__28(lean_object*); LEAN_EXPORT uint8_t l_Lean_Server_FileWorker_handleCompletion___lambda__1(lean_object*, lean_object*); uint8_t l_Char_isAlpha(uint32_t); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_getInteractiveTermGoal___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__5; lean_object* l___private_Lean_Data_Lsp_LanguageFeatures_0__Lean_Lsp_toJsonCompletionList____x40_Lean_Data_Lsp_LanguageFeatures___hyg_1982_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_PersistentHashMap_mkEmptyEntriesArray(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__4___closed__1; +static lean_object* l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__6; static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__4; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__6(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__7; LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Server_FileWorker_handleSemanticTokens_go___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__5(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_drop___rarg(lean_object*, lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__4___closed__1; +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__3___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_highlightId___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleCompletion___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_isIdOrAtom_x3f(lean_object*); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__19; static lean_object* l_Lean_Server_FileWorker_handleCompletion___lambda__1___closed__1; +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3___closed__1; static lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__6___closed__1; static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__14; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleHover___lambda__3___boxed(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols_popStack___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handlePlainGoal___closed__3; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5___closed__6; lean_object* l_Lean_Syntax_getPos_x3f(lean_object*, uint8_t); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__3___closed__1; LEAN_EXPORT lean_object* l_List_foldl___at_Lean_Server_FileWorker_getInteractiveGoals___spec__6(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleHover(lean_object*, lean_object*, lean_object*); uint8_t lean_uint32_dec_eq(uint32_t, uint32_t); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3___closed__1; +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__35(lean_object*); static lean_object* l_Lean_Server_FileWorker_handleHover___lambda__6___closed__1; lean_object* l_String_intercalate(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_redLength___rarg(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDefinition___lambda__1(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__2(lean_object*); static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__10; +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__26___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__10; -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__9; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__1(lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_withPPInaccessibleNames___at_Lean_Server_FileWorker_getInteractiveGoals___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Server_FileWorker_handleSemanticTokens_highlightId___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Server_findModuleRefs(lean_object*, lean_object*, uint8_t, uint8_t); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3___closed__2; +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__5(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokensFull___boxed(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__12___boxed(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3___closed__2; static lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__2___closed__4; lean_object* l_Lean_Lsp_ModuleRefs_findAt(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__26(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__25; uint8_t l_Lean_Syntax_hasArgs(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDefinition(uint8_t, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleHover___lambda__1___boxed(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__29(lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_le(lean_object*, lean_object*); -static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__10; -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3___closed__1; -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__2; +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__4___closed__1; +static lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; LEAN_EXPORT uint8_t l_Lean_Server_FileWorker_handleHover___lambda__3(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokens___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_withPPInaccessibleNames___at_Lean_Server_FileWorker_getInteractiveGoals___spec__2(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Widget_diffInteractiveGoals(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__22(lean_object*); lean_object* l_Lean_HashMapImp_find_x3f___at_Lean_Server_References_updateWorkerRefs___spec__3(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_getArgs(lean_object*); +lean_object* l_Lean_Name_append(lean_object*, lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__4___closed__1; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_getRange_x3f(lean_object*, uint8_t); lean_object* l_Lean_Syntax_getKind(lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__4; lean_object* l_Lean_findDocString_x3f(lean_object*, lean_object*, uint8_t, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3___closed__1; +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__6; +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__19(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__7(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__1(lean_object*); LEAN_EXPORT lean_object* l_List_findSomeM_x3f___at_Lean_Server_FileWorker_handleHover___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__2(lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__2; static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__16; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_panic___at_Lean_Elab_InfoTree_hoverableInfoAt_x3f___spec__2(lean_object*); lean_object* l_Lean_Meta_withPPInaccessibleNamesImp___rarg(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__4___closed__1; static lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5___closed__3; -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2___closed__1; -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__4; -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__2(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__30(size_t, size_t, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__2(lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3___closed__1; lean_object* l_Lean_Elab_Info_fmtHover_x3f(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Json_mkObj(lean_object*); lean_object* l_Lean_Elab_InfoTree_hoverableInfoAt_x3f(lean_object*, lean_object*, uint8_t, uint8_t); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_nat_shiftl(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__11(lean_object*); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__17; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__8; +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__2___closed__1; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__2___boxed(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_highlightKeyword___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Array_contains___at_Lean_Server_FileWorker_handleSemanticTokens_go___spec__1(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__23; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addRanges___closed__1; -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__6; lean_object* l_Lean_Server_Snapshots_Snapshot_endPos(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_addToken(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__2(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__36___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_List_foldl___at_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___spec__1(lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_eq(lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_go___closed__2; static lean_object* l_Lean_Server_FileWorker_handlePlainGoal___lambda__1___closed__2; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__1(lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__21; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addRanges___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__6; -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__13(size_t, size_t, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_constName_x3f(lean_object*); lean_object* l_List_toArrayAux___rarg(lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__13; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___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*); uint8_t l_Lean_Syntax_isNone(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__1(lean_object*); lean_object* lean_infer_type(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol(lean_object*); lean_object* l_Lean_instantiateMVars___at___private_Lean_Meta_Basic_0__Lean_Meta_mkLeveErrorMessageCore___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__3___closed__1; lean_object* l___private_Lean_Meta_Basic_0__Lean_Meta_mkFreshExprMVarImpl(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__9(lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addRanges___closed__2; @@ -503,149 +514,152 @@ LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange___rarg___la LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_getInteractiveGoals___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Server_FileWorker_handleSemanticTokens_highlightId___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__7; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addRange(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_noHighlightKinds; lean_object* l_Lean_Server_RequestM_withWaitFindSnap___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__4___closed__1; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleHover___lambda__2___boxed(lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__3___closed__1; -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__32(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__23___boxed(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__9; +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2___closed__2; +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__9___boxed(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Syntax_isOfKind(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addRanges_popRanges___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__13; lean_object* l_Lean_Syntax_getTailPos_x3f(lean_object*, uint8_t); static lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__6; static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__3___closed__1; +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__20; LEAN_EXPORT lean_object* l_Array_contains___at_Lean_Server_FileWorker_handleSemanticTokens_go___spec__1___boxed(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at_Lean_Server_FileWorker_handleSemanticTokens_go___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__4___closed__1; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleWaitForDiagnostics___lambda__2___boxed(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__16(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__9; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_getInteractiveGoals___lambda__1___boxed(lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__4___closed__1; -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__15(lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__9___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__1(lean_object*); lean_object* l_Lean_Server_locationLinksFromDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__5; -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__30___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokens(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleWaitForDiagnostics(lean_object*, lean_object*, lean_object*); lean_object* lean_string_length(lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__1; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__2; +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_NamespaceEntry_finish(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handlePlainTermGoal___lambda__1___boxed(lean_object*); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__1; -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__21; -lean_object* l_List_getLast_x21___rarg(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__6___boxed(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_ReaderT_pure___at_Lean_Server_FileWorker_handleCompletion___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3___closed__2; +lean_object* l_List_lengthTRAux___rarg(lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Lean_Server_FileWorker_handleHover___lambda__1(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2___closed__1; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange(lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_handlePlainGoal___spec__1(size_t, size_t, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Server_FileWorker_handleSemanticTokens_highlightId___spec__1___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_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__23(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__8(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_noHighlightKinds___closed__6; -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__23; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handlePlainTermGoal___lambda__1(lean_object*); LEAN_EXPORT uint8_t l_Lean_Server_FileWorker_handleFoldingRange_isImport(lean_object*); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__13; lean_object* l_Lean_Server_RequestM_asTask___rarg(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleSemanticTokens___lambda__2___closed__1; +lean_object* l_List_take___rarg(lean_object*, lean_object*); lean_object* l_Lean_Elab_Info_pos_x3f(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_NamespaceEntry_finish___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__29___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_getAppFn(lean_object*); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__14; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__1(lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__29___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Server_FileWorker_handleDocumentHighlight___spec__3(lean_object*, lean_object*, size_t, size_t, lean_object*); LEAN_EXPORT lean_object* l_ReaderT_pure___at_Lean_Server_FileWorker_handleCompletion___spec__1(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol___rarg(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_spanAux___at_Lean_Server_FileWorker_handleFoldingRange_addRanges___spec__1(lean_object*, lean_object*); LEAN_EXPORT uint8_t l_Lean_Server_FileWorker_handleSemanticTokens___lambda__1(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__17___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__36(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Data_Lsp_LanguageFeatures_0__Lean_Lsp_toJsonFoldingRange____x40_Lean_Data_Lsp_LanguageFeatures___hyg_6879_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__8; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34(lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__2; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__3(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol___rarg___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleWaitForDiagnostics_waitLoop___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_local_ctx_find(lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__4; lean_object* l_Lean_PersistentHashMap_insert___at_Lean_Server_registerLspRequestHandler___spec__2(lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__8; static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__2; +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__17; lean_object* l_Lean_Elab_Info_lctx(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handlePlainGoal___lambda__1(lean_object*); lean_object* l_Lean_Name_mkStr4(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Server_FileWorker_handleSemanticTokens___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_go___closed__4; LEAN_EXPORT lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5___lambda__1(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Server_FileWorker_handleSemanticTokens_go___spec__3(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_getInteractiveGoals___spec__4(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handlePlainGoal___lambda__1___closed__3; lean_object* l_Lean_Elab_ContextInfo_runMetaM___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__4; +static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__1(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__4___closed__1; static lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5___closed__2; -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__22; +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__9(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Name_componentsRev(lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_getInteractiveTermGoal(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__4(uint8_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_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__5; static lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__2; static lean_object* l_Lean_Server_FileWorker_handleSemanticTokens_go___closed__1; +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___boxed(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_mapTRAux___at_Lean_Server_FileWorker_handleDocumentHighlight___spec__2(size_t, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_mapTRAux___at_Lean_Server_FileWorker_handleDocumentSymbol___spec__1(lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__1; static lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__1; static lean_object* l_List_forIn_loop___at_Lean_Server_FileWorker_handleSemanticTokens___spec__1___lambda__1___closed__1; lean_object* l_IO_AsyncList_getFinishedPrefix___rarg(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleHover___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addRangeFromSyntax___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); static lean_object* l_List_findSomeM_x3f___at_Lean_Server_FileWorker_handleHover___spec__1___closed__1; LEAN_EXPORT lean_object* l_List_forIn_loop___at_Lean_Server_FileWorker_handleSemanticTokens___spec__1___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2___boxed(lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2(lean_object*); lean_object* l_Lean_Server_Snapshots_Snapshot_env(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__1(lean_object*); LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_getInteractiveGoals___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Meta_withPPShowLetValues___at_Lean_Server_FileWorker_getInteractiveGoals___spec__3(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -static lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3___closed__2; LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Server_FileWorker_handleDocumentHighlight___spec__3___lambda__1(lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleWaitForDiagnostics___lambda__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_reprint(lean_object*); static lean_object* l_List_findSomeM_x3f___at_Lean_Server_FileWorker_handleHover___spec__1___closed__2; static lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol___rarg___closed__1; +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__1; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__10(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_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_List_foldr___at_Lean_Server_FileWorker_NamespaceEntry_finish___spec__1___boxed(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_getLastD___rarg(lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_List_foldl___at_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___spec__1___boxed(lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__33___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_List_mapM_loop___at_Lean_Server_FileWorker_getInteractiveGoals___spec__5___closed__1; -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__2(lean_object*); -static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__25; +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Widget_goalToInteractive(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); LEAN_EXPORT lean_object* l_List_findSomeM_x3f___at_Lean_Server_FileWorker_handleHover___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__33(lean_object*, lean_object*, lean_object*); uint8_t lean_string_dec_eq(lean_object*, lean_object*); LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___lambda__1(lean_object*); +static lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__8; uint8_t lean_nat_dec_lt(lean_object*, lean_object*); -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__35(lean_object*); LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Server_FileWorker_handleDocumentHighlight___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Data_Lsp_LanguageFeatures_0__Lean_Lsp_fromJsonDocumentHighlightParams____x40_Lean_Data_Lsp_LanguageFeatures___hyg_3353_(lean_object*); +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols_popStack(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__20___boxed(lean_object*, lean_object*, lean_object*); static lean_object* l_Lean_Server_FileWorker_locationLinksOfInfo___lambda__2___closed__3; static lean_object* l_Lean_Server_FileWorker_handlePlainGoal___lambda__1___closed__1; LEAN_EXPORT lean_object* l_ReaderT_pure___at_Lean_Server_FileWorker_handleCompletion___spec__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -8807,14 +8821,345 @@ lean_dec(x_4); return x_9; } } -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_List_foldr___at_Lean_Server_FileWorker_NamespaceEntry_finish___spec__1(lean_object* x_1, lean_object* x_2) { _start: { -lean_object* x_4; -x_4 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_4, 0, x_1); -lean_ctor_set(x_4, 1, x_2); -return x_4; +if (lean_obj_tag(x_2) == 0) +{ +lean_inc(x_1); +return x_1; +} +else +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; +x_3 = lean_ctor_get(x_2, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_2, 1); +lean_inc(x_4); +lean_dec(x_2); +x_5 = l_List_foldr___at_Lean_Server_FileWorker_NamespaceEntry_finish___spec__1(x_1, x_4); +x_6 = l_Lean_Name_append(x_5, x_3); +lean_dec(x_5); +return x_6; +} +} +} +static lean_object* _init_l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("", 0); +return x_1; +} +} +static lean_object* _init_l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; +x_3 = l_Lean_Name_str___override(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("
", 9); +return x_1; +} +} +static lean_object* _init_l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(2u); +x_2 = lean_mk_empty_array_with_capacity(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string_from_bytes("null", 4); +return x_1; +} +} +static lean_object* _init_l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__5; +x_3 = l_Lean_Name_str___override(x_1, x_2); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_NamespaceEntry_finish(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +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; uint8_t x_12; lean_object* x_13; uint8_t x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_5 = lean_ctor_get(x_4, 0); +lean_inc(x_5); +x_6 = lean_ctor_get(x_4, 1); +lean_inc(x_6); +x_7 = lean_ctor_get(x_4, 2); +lean_inc(x_7); +x_8 = lean_ctor_get(x_4, 3); +lean_inc(x_8); +lean_dec(x_4); +x_9 = lean_box(0); +x_10 = l_List_foldr___at_Lean_Server_FileWorker_NamespaceEntry_finish___spec__1(x_9, x_5); +x_11 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__2; +x_12 = lean_name_eq(x_10, x_11); +x_13 = lean_box(0); +x_14 = 0; +x_15 = l_Lean_Syntax_getRange_x3f(x_7, x_14); +x_16 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_16, 0, x_2); +if (lean_obj_tag(x_3) == 0) +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_44 = l_Lean_Syntax_getRange_x3f(x_6, x_14); +x_45 = lean_ctor_get(x_1, 0); +x_46 = lean_string_utf8_byte_size(x_45); +if (lean_obj_tag(x_44) == 0) +{ +lean_object* x_47; lean_object* x_48; uint8_t x_49; +x_47 = l_List_findSomeM_x3f___at_Lean_Server_FileWorker_handleHover___spec__1___closed__4; +x_48 = l_panic___at_Lean_Elab_InfoTree_hoverableInfoAt_x3f___spec__2(x_47); +x_49 = !lean_is_exclusive(x_48); +if (x_49 == 0) +{ +lean_object* x_50; +x_50 = lean_ctor_get(x_48, 1); +lean_dec(x_50); +lean_ctor_set(x_48, 1, x_46); +x_17 = x_48; +goto block_43; +} +else +{ +lean_object* x_51; lean_object* x_52; +x_51 = lean_ctor_get(x_48, 0); +lean_inc(x_51); +lean_dec(x_48); +x_52 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_52, 0, x_51); +lean_ctor_set(x_52, 1, x_46); +x_17 = x_52; +goto block_43; +} +} +else +{ +lean_object* x_53; uint8_t x_54; +x_53 = lean_ctor_get(x_44, 0); +lean_inc(x_53); +lean_dec(x_44); +x_54 = !lean_is_exclusive(x_53); +if (x_54 == 0) +{ +lean_object* x_55; +x_55 = lean_ctor_get(x_53, 1); +lean_dec(x_55); +lean_ctor_set(x_53, 1, x_46); +x_17 = x_53; +goto block_43; +} +else +{ +lean_object* x_56; lean_object* x_57; +x_56 = lean_ctor_get(x_53, 0); +lean_inc(x_56); +lean_dec(x_53); +x_57 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_57, 0, x_56); +lean_ctor_set(x_57, 1, x_46); +x_17 = x_57; +goto block_43; +} +} +} +else +{ +lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; +x_58 = lean_ctor_get(x_3, 0); +lean_inc(x_58); +lean_dec(x_3); +x_59 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__4; +x_60 = lean_array_push(x_59, x_6); +x_61 = lean_array_push(x_60, x_58); +x_62 = lean_box(2); +x_63 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__6; +x_64 = lean_alloc_ctor(1, 3, 0); +lean_ctor_set(x_64, 0, x_62); +lean_ctor_set(x_64, 1, x_63); +lean_ctor_set(x_64, 2, x_61); +x_65 = l_Lean_Syntax_getRange_x3f(x_64, x_14); +if (lean_obj_tag(x_65) == 0) +{ +lean_object* x_66; lean_object* x_67; +x_66 = l_List_findSomeM_x3f___at_Lean_Server_FileWorker_handleHover___spec__1___closed__4; +x_67 = l_panic___at_Lean_Elab_InfoTree_hoverableInfoAt_x3f___spec__2(x_66); +x_17 = x_67; +goto block_43; +} +else +{ +lean_object* x_68; +x_68 = lean_ctor_get(x_65, 0); +lean_inc(x_68); +lean_dec(x_65); +x_17 = x_68; +goto block_43; +} +} +block_43: +{ +lean_object* x_18; +x_18 = l_String_Range_toLspRange(x_1, x_17); +lean_dec(x_17); +if (x_12 == 0) +{ +uint8_t x_19; lean_object* x_20; +x_19 = 1; +x_20 = l_Lean_Name_toString(x_10, x_19); +if (lean_obj_tag(x_15) == 0) +{ +uint8_t x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_21 = 2; +lean_inc(x_18); +x_22 = lean_alloc_ctor(0, 5, 1); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_13); +lean_ctor_set(x_22, 2, x_18); +lean_ctor_set(x_22, 3, x_18); +lean_ctor_set(x_22, 4, x_16); +lean_ctor_set_uint8(x_22, sizeof(void*)*5, x_21); +x_23 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_23, 0, x_22); +x_24 = lean_array_push(x_8, x_23); +return x_24; +} +else +{ +lean_object* x_25; lean_object* x_26; uint8_t x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_25 = lean_ctor_get(x_15, 0); +lean_inc(x_25); +lean_dec(x_15); +x_26 = l_String_Range_toLspRange(x_1, x_25); +lean_dec(x_25); +x_27 = 2; +x_28 = lean_alloc_ctor(0, 5, 1); +lean_ctor_set(x_28, 0, x_20); +lean_ctor_set(x_28, 1, x_13); +lean_ctor_set(x_28, 2, x_18); +lean_ctor_set(x_28, 3, x_26); +lean_ctor_set(x_28, 4, x_16); +lean_ctor_set_uint8(x_28, sizeof(void*)*5, x_27); +x_29 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_29, 0, x_28); +x_30 = lean_array_push(x_8, x_29); +return x_30; +} +} +else +{ +lean_dec(x_10); +if (lean_obj_tag(x_15) == 0) +{ +lean_object* x_31; uint8_t x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_31 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__3; +x_32 = 2; +lean_inc(x_18); +x_33 = lean_alloc_ctor(0, 5, 1); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_13); +lean_ctor_set(x_33, 2, x_18); +lean_ctor_set(x_33, 3, x_18); +lean_ctor_set(x_33, 4, x_16); +lean_ctor_set_uint8(x_33, sizeof(void*)*5, x_32); +x_34 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_34, 0, x_33); +x_35 = lean_array_push(x_8, x_34); +return x_35; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; uint8_t x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; +x_36 = lean_ctor_get(x_15, 0); +lean_inc(x_36); +lean_dec(x_15); +x_37 = l_String_Range_toLspRange(x_1, x_36); +lean_dec(x_36); +x_38 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__3; +x_39 = 2; +x_40 = lean_alloc_ctor(0, 5, 1); +lean_ctor_set(x_40, 0, x_38); +lean_ctor_set(x_40, 1, x_13); +lean_ctor_set(x_40, 2, x_18); +lean_ctor_set(x_40, 3, x_37); +lean_ctor_set(x_40, 4, x_16); +lean_ctor_set_uint8(x_40, sizeof(void*)*5, x_39); +x_41 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_41, 0, x_40); +x_42 = lean_array_push(x_8, x_41); +return x_42; +} +} +} +} +} +LEAN_EXPORT lean_object* l_List_foldr___at_Lean_Server_FileWorker_NamespaceEntry_finish___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l_List_foldr___at_Lean_Server_FileWorker_NamespaceEntry_finish___spec__1(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_NamespaceEntry_finish___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; +x_5 = l_Lean_Server_FileWorker_NamespaceEntry_finish(x_1, x_2, x_3, x_4); +lean_dec(x_1); +return x_5; +} +} +LEAN_EXPORT lean_object* l_List_foldl___at_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_3) == 0) +{ +return x_2; +} +else +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_4 = lean_ctor_get(x_3, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_3, 1); +lean_inc(x_5); +lean_dec(x_3); +x_6 = lean_box(0); +x_7 = l_Lean_Server_FileWorker_NamespaceEntry_finish(x_1, x_2, x_6, x_4); +x_2 = x_7; +x_3 = x_5; +goto _start; +} +} +} +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +x_6 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_2, x_3, x_4); +return x_6; } } LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { @@ -8897,27 +9242,19 @@ return x_1; static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8() { _start: { -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("", 0); -return x_1; +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__7; +x_2 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; +x_3 = lean_string_append(x_1, x_2); +return x_3; } } static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__9() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__7; -x_2 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; -x_3 = lean_string_append(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__10() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__9; -x_2 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_1 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_2 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_3 = lean_string_append(x_1, x_2); return x_3; } @@ -9288,7 +9625,7 @@ x_109 = l_Lean_Syntax_reprint(x_7); if (lean_obj_tag(x_109) == 0) { lean_object* x_110; lean_object* x_111; -x_110 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__10; +x_110 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__9; x_111 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_111, 0, x_110); lean_ctor_set(x_111, 1, x_7); @@ -9303,7 +9640,7 @@ lean_dec(x_109); x_113 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__7; x_114 = lean_string_append(x_113, x_112); lean_dec(x_112); -x_115 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_115 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_116 = lean_string_append(x_114, x_115); x_117 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_117, 0, x_116); @@ -9850,1728 +10187,1714 @@ x_5 = l_Lean_Name_mkStr4(x_1, x_2, x_3, x_4); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6(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_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6(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_7; lean_object* x_8; -x_7 = 0; -lean_inc(x_3); -x_8 = l_Lean_Syntax_getRange_x3f(x_3, x_7); -if (lean_obj_tag(x_8) == 0) -{ -lean_object* x_9; -lean_dec(x_5); -lean_dec(x_3); -x_9 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_9, 0, x_1); -lean_ctor_set(x_9, 1, x_2); -return x_9; -} -else -{ -uint8_t x_10; -x_10 = !lean_is_exclusive(x_8); -if (x_10 == 0) -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_26; uint8_t x_27; -x_11 = lean_ctor_get(x_8, 0); -x_26 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__2; +uint8_t x_8; lean_object* x_9; +x_8 = 0; lean_inc(x_5); -x_27 = l_Lean_Syntax_isOfKind(x_5, x_26); -if (x_27 == 0) +x_9 = l_Lean_Syntax_getRange_x3f(x_5, x_8); +if (lean_obj_tag(x_9) == 0) { -lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; +lean_object* x_10; +lean_dec(x_6); lean_dec(x_5); -x_28 = lean_unsigned_to_nat(1u); -x_29 = l_Lean_Syntax_getArg(x_3, x_28); -lean_dec(x_3); -x_30 = l_Lean_Syntax_getArg(x_29, x_28); -x_31 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; -lean_inc(x_30); -x_32 = l_Lean_Syntax_isOfKind(x_30, x_31); -if (x_32 == 0) -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; -lean_dec(x_30); -lean_free_object(x_8); -x_33 = lean_unsigned_to_nat(0u); -x_34 = l_Lean_Syntax_getArg(x_29, x_33); -lean_dec(x_29); -x_35 = l_Lean_Syntax_isIdOrAtom_x3f(x_34); -if (lean_obj_tag(x_35) == 0) -{ -lean_object* x_36; -x_36 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_12 = x_36; -x_13 = x_34; -goto block_25; +x_10 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_2, x_3, x_4); +return x_10; } else { +uint8_t x_11; +x_11 = !lean_is_exclusive(x_9); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_27; uint8_t x_28; +x_12 = lean_ctor_get(x_9, 0); +x_27 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__2; +lean_inc(x_6); +x_28 = l_Lean_Syntax_isOfKind(x_6, x_27); +if (x_28 == 0) +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; uint8_t x_33; +lean_dec(x_6); +x_29 = lean_unsigned_to_nat(1u); +x_30 = l_Lean_Syntax_getArg(x_5, x_29); +lean_dec(x_5); +x_31 = l_Lean_Syntax_getArg(x_30, x_29); +x_32 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; +lean_inc(x_31); +x_33 = l_Lean_Syntax_isOfKind(x_31, x_32); +if (x_33 == 0) +{ +lean_object* x_34; lean_object* x_35; lean_object* x_36; +lean_dec(x_31); +lean_free_object(x_9); +x_34 = lean_unsigned_to_nat(0u); +x_35 = l_Lean_Syntax_getArg(x_30, x_34); +lean_dec(x_30); +x_36 = l_Lean_Syntax_isIdOrAtom_x3f(x_35); +if (lean_obj_tag(x_36) == 0) +{ lean_object* x_37; -x_37 = lean_ctor_get(x_35, 0); -lean_inc(x_37); -lean_dec(x_35); -x_12 = x_37; -x_13 = x_34; -goto block_25; +x_37 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_13 = x_37; +x_14 = x_35; +goto block_26; +} +else +{ +lean_object* x_38; +x_38 = lean_ctor_get(x_36, 0); +lean_inc(x_38); +lean_dec(x_36); +x_13 = x_38; +x_14 = x_35; +goto block_26; } } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; -x_38 = lean_unsigned_to_nat(0u); -x_39 = l_Lean_Syntax_getArg(x_30, x_38); -x_40 = l_Lean_Syntax_getArg(x_30, x_28); -lean_dec(x_30); -x_41 = l_Lean_Syntax_isNone(x_40); -if (x_41 == 0) +lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; +x_39 = lean_unsigned_to_nat(0u); +x_40 = l_Lean_Syntax_getArg(x_31, x_39); +x_41 = l_Lean_Syntax_getArg(x_31, x_29); +lean_dec(x_31); +x_42 = l_Lean_Syntax_isNone(x_41); +if (x_42 == 0) { -lean_object* x_42; uint8_t x_43; -x_42 = lean_unsigned_to_nat(3u); -lean_inc(x_40); -x_43 = l_Lean_Syntax_matchesNull(x_40, x_42); -if (x_43 == 0) +lean_object* x_43; uint8_t x_44; +x_43 = lean_unsigned_to_nat(3u); +lean_inc(x_41); +x_44 = l_Lean_Syntax_matchesNull(x_41, x_43); +if (x_44 == 0) { -lean_object* x_44; lean_object* x_45; +lean_object* x_45; lean_object* x_46; +lean_dec(x_41); lean_dec(x_40); -lean_dec(x_39); -lean_free_object(x_8); -x_44 = l_Lean_Syntax_getArg(x_29, x_38); -lean_dec(x_29); -x_45 = l_Lean_Syntax_isIdOrAtom_x3f(x_44); -if (lean_obj_tag(x_45) == 0) -{ -lean_object* x_46; -x_46 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_12 = x_46; -x_13 = x_44; -goto block_25; -} -else +lean_free_object(x_9); +x_45 = l_Lean_Syntax_getArg(x_30, x_39); +lean_dec(x_30); +x_46 = l_Lean_Syntax_isIdOrAtom_x3f(x_45); +if (lean_obj_tag(x_46) == 0) { lean_object* x_47; -x_47 = lean_ctor_get(x_45, 0); -lean_inc(x_47); -lean_dec(x_45); -x_12 = x_47; -x_13 = x_44; -goto block_25; +x_47 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_13 = x_47; +x_14 = x_45; +goto block_26; +} +else +{ +lean_object* x_48; +x_48 = lean_ctor_get(x_46, 0); +lean_inc(x_48); +lean_dec(x_46); +x_13 = x_48; +x_14 = x_45; +goto block_26; } } else { -lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; -lean_dec(x_29); -x_48 = l_Lean_Syntax_getArg(x_40, x_28); -lean_dec(x_40); -x_49 = l_Lean_Syntax_getArgs(x_48); -lean_dec(x_48); -lean_ctor_set(x_8, 0, x_49); -x_50 = lean_box(0); -x_51 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_39, x_50, x_8); -lean_dec(x_8); -x_52 = lean_ctor_get(x_51, 0); -lean_inc(x_52); -x_53 = lean_ctor_get(x_51, 1); +lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; +lean_dec(x_30); +x_49 = l_Lean_Syntax_getArg(x_41, x_29); +lean_dec(x_41); +x_50 = l_Lean_Syntax_getArgs(x_49); +lean_dec(x_49); +lean_ctor_set(x_9, 0, x_50); +x_51 = lean_box(0); +x_52 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_40, x_51, x_9); +lean_dec(x_9); +x_53 = lean_ctor_get(x_52, 0); lean_inc(x_53); -lean_dec(x_51); -x_12 = x_52; +x_54 = lean_ctor_get(x_52, 1); +lean_inc(x_54); +lean_dec(x_52); x_13 = x_53; -goto block_25; +x_14 = x_54; +goto block_26; } } else { -lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; -lean_dec(x_40); -lean_dec(x_29); -lean_free_object(x_8); -x_54 = lean_box(0); +lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; +lean_dec(x_41); +lean_dec(x_30); +lean_free_object(x_9); x_55 = lean_box(0); -x_56 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_39, x_55, x_54); -x_57 = lean_ctor_get(x_56, 0); -lean_inc(x_57); -x_58 = lean_ctor_get(x_56, 1); +x_56 = lean_box(0); +x_57 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_40, x_56, x_55); +x_58 = lean_ctor_get(x_57, 0); lean_inc(x_58); -lean_dec(x_56); -x_12 = x_57; +x_59 = lean_ctor_get(x_57, 1); +lean_inc(x_59); +lean_dec(x_57); x_13 = x_58; -goto block_25; +x_14 = x_59; +goto block_26; } } } else { -lean_object* x_59; lean_object* x_60; lean_object* x_61; uint8_t x_62; -x_59 = lean_unsigned_to_nat(0u); -x_60 = l_Lean_Syntax_getArg(x_5, x_59); -x_61 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__4; -x_62 = l_Lean_Syntax_isOfKind(x_60, x_61); -if (x_62 == 0) +lean_object* x_60; lean_object* x_61; lean_object* x_62; uint8_t x_63; +x_60 = lean_unsigned_to_nat(0u); +x_61 = l_Lean_Syntax_getArg(x_6, x_60); +x_62 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__4; +x_63 = l_Lean_Syntax_isOfKind(x_61, x_62); +if (x_63 == 0) { -lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; uint8_t x_67; +lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; uint8_t x_68; +lean_dec(x_6); +x_64 = lean_unsigned_to_nat(1u); +x_65 = l_Lean_Syntax_getArg(x_5, x_64); lean_dec(x_5); -x_63 = lean_unsigned_to_nat(1u); -x_64 = l_Lean_Syntax_getArg(x_3, x_63); -lean_dec(x_3); -x_65 = l_Lean_Syntax_getArg(x_64, x_63); -x_66 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; -lean_inc(x_65); -x_67 = l_Lean_Syntax_isOfKind(x_65, x_66); -if (x_67 == 0) +x_66 = l_Lean_Syntax_getArg(x_65, x_64); +x_67 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; +lean_inc(x_66); +x_68 = l_Lean_Syntax_isOfKind(x_66, x_67); +if (x_68 == 0) { -lean_object* x_68; lean_object* x_69; +lean_object* x_69; lean_object* x_70; +lean_dec(x_66); +lean_free_object(x_9); +x_69 = l_Lean_Syntax_getArg(x_65, x_60); lean_dec(x_65); -lean_free_object(x_8); -x_68 = l_Lean_Syntax_getArg(x_64, x_59); -lean_dec(x_64); -x_69 = l_Lean_Syntax_isIdOrAtom_x3f(x_68); -if (lean_obj_tag(x_69) == 0) -{ -lean_object* x_70; -x_70 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_12 = x_70; -x_13 = x_68; -goto block_25; -} -else +x_70 = l_Lean_Syntax_isIdOrAtom_x3f(x_69); +if (lean_obj_tag(x_70) == 0) { lean_object* x_71; -x_71 = lean_ctor_get(x_69, 0); -lean_inc(x_71); -lean_dec(x_69); -x_12 = x_71; -x_13 = x_68; -goto block_25; +x_71 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_13 = x_71; +x_14 = x_69; +goto block_26; +} +else +{ +lean_object* x_72; +x_72 = lean_ctor_get(x_70, 0); +lean_inc(x_72); +lean_dec(x_70); +x_13 = x_72; +x_14 = x_69; +goto block_26; } } else { -lean_object* x_72; lean_object* x_73; uint8_t x_74; -x_72 = l_Lean_Syntax_getArg(x_65, x_59); -x_73 = l_Lean_Syntax_getArg(x_65, x_63); -lean_dec(x_65); -x_74 = l_Lean_Syntax_isNone(x_73); -if (x_74 == 0) +lean_object* x_73; lean_object* x_74; uint8_t x_75; +x_73 = l_Lean_Syntax_getArg(x_66, x_60); +x_74 = l_Lean_Syntax_getArg(x_66, x_64); +lean_dec(x_66); +x_75 = l_Lean_Syntax_isNone(x_74); +if (x_75 == 0) { -lean_object* x_75; uint8_t x_76; -x_75 = lean_unsigned_to_nat(3u); -lean_inc(x_73); -x_76 = l_Lean_Syntax_matchesNull(x_73, x_75); -if (x_76 == 0) +lean_object* x_76; uint8_t x_77; +x_76 = lean_unsigned_to_nat(3u); +lean_inc(x_74); +x_77 = l_Lean_Syntax_matchesNull(x_74, x_76); +if (x_77 == 0) { -lean_object* x_77; lean_object* x_78; +lean_object* x_78; lean_object* x_79; +lean_dec(x_74); lean_dec(x_73); -lean_dec(x_72); -lean_free_object(x_8); -x_77 = l_Lean_Syntax_getArg(x_64, x_59); -lean_dec(x_64); -x_78 = l_Lean_Syntax_isIdOrAtom_x3f(x_77); -if (lean_obj_tag(x_78) == 0) -{ -lean_object* x_79; -x_79 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_12 = x_79; -x_13 = x_77; -goto block_25; -} -else +lean_free_object(x_9); +x_78 = l_Lean_Syntax_getArg(x_65, x_60); +lean_dec(x_65); +x_79 = l_Lean_Syntax_isIdOrAtom_x3f(x_78); +if (lean_obj_tag(x_79) == 0) { lean_object* x_80; -x_80 = lean_ctor_get(x_78, 0); -lean_inc(x_80); -lean_dec(x_78); -x_12 = x_80; -x_13 = x_77; -goto block_25; +x_80 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_13 = x_80; +x_14 = x_78; +goto block_26; +} +else +{ +lean_object* x_81; +x_81 = lean_ctor_get(x_79, 0); +lean_inc(x_81); +lean_dec(x_79); +x_13 = x_81; +x_14 = x_78; +goto block_26; } } else { -lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; -lean_dec(x_64); -x_81 = l_Lean_Syntax_getArg(x_73, x_63); -lean_dec(x_73); -x_82 = l_Lean_Syntax_getArgs(x_81); -lean_dec(x_81); -lean_ctor_set(x_8, 0, x_82); -x_83 = lean_box(0); -x_84 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_72, x_83, x_8); -lean_dec(x_8); -x_85 = lean_ctor_get(x_84, 0); -lean_inc(x_85); -x_86 = lean_ctor_get(x_84, 1); +lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; +lean_dec(x_65); +x_82 = l_Lean_Syntax_getArg(x_74, x_64); +lean_dec(x_74); +x_83 = l_Lean_Syntax_getArgs(x_82); +lean_dec(x_82); +lean_ctor_set(x_9, 0, x_83); +x_84 = lean_box(0); +x_85 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_73, x_84, x_9); +lean_dec(x_9); +x_86 = lean_ctor_get(x_85, 0); lean_inc(x_86); -lean_dec(x_84); -x_12 = x_85; +x_87 = lean_ctor_get(x_85, 1); +lean_inc(x_87); +lean_dec(x_85); x_13 = x_86; -goto block_25; +x_14 = x_87; +goto block_26; } } else { -lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; -lean_dec(x_73); -lean_dec(x_64); -lean_free_object(x_8); -x_87 = lean_box(0); +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; +lean_dec(x_74); +lean_dec(x_65); +lean_free_object(x_9); x_88 = lean_box(0); -x_89 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_72, x_88, x_87); -x_90 = lean_ctor_get(x_89, 0); -lean_inc(x_90); -x_91 = lean_ctor_get(x_89, 1); +x_89 = lean_box(0); +x_90 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_73, x_89, x_88); +x_91 = lean_ctor_get(x_90, 0); lean_inc(x_91); -lean_dec(x_89); -x_12 = x_90; +x_92 = lean_ctor_get(x_90, 1); +lean_inc(x_92); +lean_dec(x_90); x_13 = x_91; -goto block_25; +x_14 = x_92; +goto block_26; } } } else { -lean_object* x_92; lean_object* x_93; lean_object* x_94; uint8_t x_95; -x_92 = lean_unsigned_to_nat(1u); -x_93 = l_Lean_Syntax_getArg(x_5, x_92); +lean_object* x_93; lean_object* x_94; lean_object* x_95; uint8_t x_96; +x_93 = lean_unsigned_to_nat(1u); +x_94 = l_Lean_Syntax_getArg(x_6, x_93); +lean_dec(x_6); +x_95 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__6; +lean_inc(x_94); +x_96 = l_Lean_Syntax_isOfKind(x_94, x_95); +if (x_96 == 0) +{ +lean_object* x_97; lean_object* x_98; lean_object* x_99; uint8_t x_100; +lean_dec(x_94); +x_97 = l_Lean_Syntax_getArg(x_5, x_93); lean_dec(x_5); -x_94 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__6; -lean_inc(x_93); -x_95 = l_Lean_Syntax_isOfKind(x_93, x_94); -if (x_95 == 0) +x_98 = l_Lean_Syntax_getArg(x_97, x_93); +x_99 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; +lean_inc(x_98); +x_100 = l_Lean_Syntax_isOfKind(x_98, x_99); +if (x_100 == 0) { -lean_object* x_96; lean_object* x_97; lean_object* x_98; uint8_t x_99; -lean_dec(x_93); -x_96 = l_Lean_Syntax_getArg(x_3, x_92); -lean_dec(x_3); -x_97 = l_Lean_Syntax_getArg(x_96, x_92); -x_98 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; -lean_inc(x_97); -x_99 = l_Lean_Syntax_isOfKind(x_97, x_98); -if (x_99 == 0) -{ -lean_object* x_100; lean_object* x_101; +lean_object* x_101; lean_object* x_102; +lean_dec(x_98); +lean_free_object(x_9); +x_101 = l_Lean_Syntax_getArg(x_97, x_60); lean_dec(x_97); -lean_free_object(x_8); -x_100 = l_Lean_Syntax_getArg(x_96, x_59); -lean_dec(x_96); -x_101 = l_Lean_Syntax_isIdOrAtom_x3f(x_100); -if (lean_obj_tag(x_101) == 0) -{ -lean_object* x_102; -x_102 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_12 = x_102; -x_13 = x_100; -goto block_25; -} -else +x_102 = l_Lean_Syntax_isIdOrAtom_x3f(x_101); +if (lean_obj_tag(x_102) == 0) { lean_object* x_103; -x_103 = lean_ctor_get(x_101, 0); -lean_inc(x_103); -lean_dec(x_101); -x_12 = x_103; -x_13 = x_100; -goto block_25; +x_103 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_13 = x_103; +x_14 = x_101; +goto block_26; +} +else +{ +lean_object* x_104; +x_104 = lean_ctor_get(x_102, 0); +lean_inc(x_104); +lean_dec(x_102); +x_13 = x_104; +x_14 = x_101; +goto block_26; } } else { -lean_object* x_104; lean_object* x_105; uint8_t x_106; -x_104 = l_Lean_Syntax_getArg(x_97, x_59); -x_105 = l_Lean_Syntax_getArg(x_97, x_92); -lean_dec(x_97); -x_106 = l_Lean_Syntax_isNone(x_105); -if (x_106 == 0) +lean_object* x_105; lean_object* x_106; uint8_t x_107; +x_105 = l_Lean_Syntax_getArg(x_98, x_60); +x_106 = l_Lean_Syntax_getArg(x_98, x_93); +lean_dec(x_98); +x_107 = l_Lean_Syntax_isNone(x_106); +if (x_107 == 0) { -lean_object* x_107; uint8_t x_108; -x_107 = lean_unsigned_to_nat(3u); -lean_inc(x_105); -x_108 = l_Lean_Syntax_matchesNull(x_105, x_107); -if (x_108 == 0) +lean_object* x_108; uint8_t x_109; +x_108 = lean_unsigned_to_nat(3u); +lean_inc(x_106); +x_109 = l_Lean_Syntax_matchesNull(x_106, x_108); +if (x_109 == 0) { -lean_object* x_109; lean_object* x_110; +lean_object* x_110; lean_object* x_111; +lean_dec(x_106); lean_dec(x_105); -lean_dec(x_104); -lean_free_object(x_8); -x_109 = l_Lean_Syntax_getArg(x_96, x_59); -lean_dec(x_96); -x_110 = l_Lean_Syntax_isIdOrAtom_x3f(x_109); -if (lean_obj_tag(x_110) == 0) -{ -lean_object* x_111; -x_111 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_12 = x_111; -x_13 = x_109; -goto block_25; -} -else +lean_free_object(x_9); +x_110 = l_Lean_Syntax_getArg(x_97, x_60); +lean_dec(x_97); +x_111 = l_Lean_Syntax_isIdOrAtom_x3f(x_110); +if (lean_obj_tag(x_111) == 0) { lean_object* x_112; -x_112 = lean_ctor_get(x_110, 0); -lean_inc(x_112); -lean_dec(x_110); -x_12 = x_112; -x_13 = x_109; -goto block_25; +x_112 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_13 = x_112; +x_14 = x_110; +goto block_26; +} +else +{ +lean_object* x_113; +x_113 = lean_ctor_get(x_111, 0); +lean_inc(x_113); +lean_dec(x_111); +x_13 = x_113; +x_14 = x_110; +goto block_26; } } else { -lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; -lean_dec(x_96); -x_113 = l_Lean_Syntax_getArg(x_105, x_92); -lean_dec(x_105); -x_114 = l_Lean_Syntax_getArgs(x_113); -lean_dec(x_113); -lean_ctor_set(x_8, 0, x_114); -x_115 = lean_box(0); -x_116 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_104, x_115, x_8); -lean_dec(x_8); -x_117 = lean_ctor_get(x_116, 0); -lean_inc(x_117); -x_118 = lean_ctor_get(x_116, 1); +lean_object* x_114; lean_object* x_115; lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; +lean_dec(x_97); +x_114 = l_Lean_Syntax_getArg(x_106, x_93); +lean_dec(x_106); +x_115 = l_Lean_Syntax_getArgs(x_114); +lean_dec(x_114); +lean_ctor_set(x_9, 0, x_115); +x_116 = lean_box(0); +x_117 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_105, x_116, x_9); +lean_dec(x_9); +x_118 = lean_ctor_get(x_117, 0); lean_inc(x_118); -lean_dec(x_116); -x_12 = x_117; +x_119 = lean_ctor_get(x_117, 1); +lean_inc(x_119); +lean_dec(x_117); x_13 = x_118; -goto block_25; +x_14 = x_119; +goto block_26; } } else { -lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; -lean_dec(x_105); -lean_dec(x_96); -lean_free_object(x_8); -x_119 = lean_box(0); +lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; +lean_dec(x_106); +lean_dec(x_97); +lean_free_object(x_9); x_120 = lean_box(0); -x_121 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_104, x_120, x_119); -x_122 = lean_ctor_get(x_121, 0); -lean_inc(x_122); -x_123 = lean_ctor_get(x_121, 1); +x_121 = lean_box(0); +x_122 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_105, x_121, x_120); +x_123 = lean_ctor_get(x_122, 0); lean_inc(x_123); -lean_dec(x_121); -x_12 = x_122; +x_124 = lean_ctor_get(x_122, 1); +lean_inc(x_124); +lean_dec(x_122); x_13 = x_123; -goto block_25; +x_14 = x_124; +goto block_26; } } } else { -lean_object* x_124; lean_object* x_125; uint8_t x_126; -x_124 = l_Lean_Syntax_getArg(x_93, x_59); -x_125 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__8; -x_126 = l_Lean_Syntax_isOfKind(x_124, x_125); -if (x_126 == 0) +lean_object* x_125; lean_object* x_126; uint8_t x_127; +x_125 = l_Lean_Syntax_getArg(x_94, x_60); +x_126 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__8; +x_127 = l_Lean_Syntax_isOfKind(x_125, x_126); +if (x_127 == 0) { -lean_object* x_127; lean_object* x_128; lean_object* x_129; uint8_t x_130; -lean_dec(x_93); -x_127 = l_Lean_Syntax_getArg(x_3, x_92); -lean_dec(x_3); -x_128 = l_Lean_Syntax_getArg(x_127, x_92); -x_129 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; -lean_inc(x_128); -x_130 = l_Lean_Syntax_isOfKind(x_128, x_129); -if (x_130 == 0) +lean_object* x_128; lean_object* x_129; lean_object* x_130; uint8_t x_131; +lean_dec(x_94); +x_128 = l_Lean_Syntax_getArg(x_5, x_93); +lean_dec(x_5); +x_129 = l_Lean_Syntax_getArg(x_128, x_93); +x_130 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; +lean_inc(x_129); +x_131 = l_Lean_Syntax_isOfKind(x_129, x_130); +if (x_131 == 0) { -lean_object* x_131; lean_object* x_132; +lean_object* x_132; lean_object* x_133; +lean_dec(x_129); +lean_free_object(x_9); +x_132 = l_Lean_Syntax_getArg(x_128, x_60); lean_dec(x_128); -lean_free_object(x_8); -x_131 = l_Lean_Syntax_getArg(x_127, x_59); -lean_dec(x_127); -x_132 = l_Lean_Syntax_isIdOrAtom_x3f(x_131); -if (lean_obj_tag(x_132) == 0) -{ -lean_object* x_133; -x_133 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_12 = x_133; -x_13 = x_131; -goto block_25; -} -else +x_133 = l_Lean_Syntax_isIdOrAtom_x3f(x_132); +if (lean_obj_tag(x_133) == 0) { lean_object* x_134; -x_134 = lean_ctor_get(x_132, 0); -lean_inc(x_134); -lean_dec(x_132); -x_12 = x_134; -x_13 = x_131; -goto block_25; +x_134 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_13 = x_134; +x_14 = x_132; +goto block_26; +} +else +{ +lean_object* x_135; +x_135 = lean_ctor_get(x_133, 0); +lean_inc(x_135); +lean_dec(x_133); +x_13 = x_135; +x_14 = x_132; +goto block_26; } } else { -lean_object* x_135; lean_object* x_136; uint8_t x_137; -x_135 = l_Lean_Syntax_getArg(x_128, x_59); -x_136 = l_Lean_Syntax_getArg(x_128, x_92); -lean_dec(x_128); -x_137 = l_Lean_Syntax_isNone(x_136); -if (x_137 == 0) +lean_object* x_136; lean_object* x_137; uint8_t x_138; +x_136 = l_Lean_Syntax_getArg(x_129, x_60); +x_137 = l_Lean_Syntax_getArg(x_129, x_93); +lean_dec(x_129); +x_138 = l_Lean_Syntax_isNone(x_137); +if (x_138 == 0) { -lean_object* x_138; uint8_t x_139; -x_138 = lean_unsigned_to_nat(3u); -lean_inc(x_136); -x_139 = l_Lean_Syntax_matchesNull(x_136, x_138); -if (x_139 == 0) +lean_object* x_139; uint8_t x_140; +x_139 = lean_unsigned_to_nat(3u); +lean_inc(x_137); +x_140 = l_Lean_Syntax_matchesNull(x_137, x_139); +if (x_140 == 0) { -lean_object* x_140; lean_object* x_141; +lean_object* x_141; lean_object* x_142; +lean_dec(x_137); lean_dec(x_136); -lean_dec(x_135); -lean_free_object(x_8); -x_140 = l_Lean_Syntax_getArg(x_127, x_59); -lean_dec(x_127); -x_141 = l_Lean_Syntax_isIdOrAtom_x3f(x_140); -if (lean_obj_tag(x_141) == 0) -{ -lean_object* x_142; -x_142 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_12 = x_142; -x_13 = x_140; -goto block_25; -} -else +lean_free_object(x_9); +x_141 = l_Lean_Syntax_getArg(x_128, x_60); +lean_dec(x_128); +x_142 = l_Lean_Syntax_isIdOrAtom_x3f(x_141); +if (lean_obj_tag(x_142) == 0) { lean_object* x_143; -x_143 = lean_ctor_get(x_141, 0); -lean_inc(x_143); -lean_dec(x_141); -x_12 = x_143; -x_13 = x_140; -goto block_25; +x_143 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_13 = x_143; +x_14 = x_141; +goto block_26; +} +else +{ +lean_object* x_144; +x_144 = lean_ctor_get(x_142, 0); +lean_inc(x_144); +lean_dec(x_142); +x_13 = x_144; +x_14 = x_141; +goto block_26; } } else { -lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; -lean_dec(x_127); -x_144 = l_Lean_Syntax_getArg(x_136, x_92); -lean_dec(x_136); -x_145 = l_Lean_Syntax_getArgs(x_144); -lean_dec(x_144); -lean_ctor_set(x_8, 0, x_145); -x_146 = lean_box(0); -x_147 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_135, x_146, x_8); -lean_dec(x_8); -x_148 = lean_ctor_get(x_147, 0); -lean_inc(x_148); -x_149 = lean_ctor_get(x_147, 1); +lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; +lean_dec(x_128); +x_145 = l_Lean_Syntax_getArg(x_137, x_93); +lean_dec(x_137); +x_146 = l_Lean_Syntax_getArgs(x_145); +lean_dec(x_145); +lean_ctor_set(x_9, 0, x_146); +x_147 = lean_box(0); +x_148 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_136, x_147, x_9); +lean_dec(x_9); +x_149 = lean_ctor_get(x_148, 0); lean_inc(x_149); -lean_dec(x_147); -x_12 = x_148; +x_150 = lean_ctor_get(x_148, 1); +lean_inc(x_150); +lean_dec(x_148); x_13 = x_149; -goto block_25; +x_14 = x_150; +goto block_26; } } else { -lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; -lean_dec(x_136); -lean_dec(x_127); -lean_free_object(x_8); -x_150 = lean_box(0); +lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; lean_object* x_155; +lean_dec(x_137); +lean_dec(x_128); +lean_free_object(x_9); x_151 = lean_box(0); -x_152 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_135, x_151, x_150); -x_153 = lean_ctor_get(x_152, 0); -lean_inc(x_153); -x_154 = lean_ctor_get(x_152, 1); +x_152 = lean_box(0); +x_153 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_136, x_152, x_151); +x_154 = lean_ctor_get(x_153, 0); lean_inc(x_154); -lean_dec(x_152); -x_12 = x_153; +x_155 = lean_ctor_get(x_153, 1); +lean_inc(x_155); +lean_dec(x_153); x_13 = x_154; -goto block_25; +x_14 = x_155; +goto block_26; } } } else { -lean_object* x_155; lean_object* x_156; uint8_t x_157; -x_155 = lean_unsigned_to_nat(2u); -x_156 = l_Lean_Syntax_getArg(x_93, x_155); -x_157 = l_Lean_Syntax_isNone(x_156); -if (x_157 == 0) -{ -uint8_t x_158; -lean_inc(x_156); -x_158 = l_Lean_Syntax_matchesNull(x_156, x_92); +lean_object* x_156; lean_object* x_157; uint8_t x_158; +x_156 = lean_unsigned_to_nat(2u); +x_157 = l_Lean_Syntax_getArg(x_94, x_156); +x_158 = l_Lean_Syntax_isNone(x_157); if (x_158 == 0) { -lean_object* x_159; lean_object* x_160; lean_object* x_161; uint8_t x_162; -lean_dec(x_156); -lean_dec(x_93); -x_159 = l_Lean_Syntax_getArg(x_3, x_92); -lean_dec(x_3); -x_160 = l_Lean_Syntax_getArg(x_159, x_92); -x_161 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; -lean_inc(x_160); -x_162 = l_Lean_Syntax_isOfKind(x_160, x_161); -if (x_162 == 0) +uint8_t x_159; +lean_inc(x_157); +x_159 = l_Lean_Syntax_matchesNull(x_157, x_93); +if (x_159 == 0) { -lean_object* x_163; lean_object* x_164; +lean_object* x_160; lean_object* x_161; lean_object* x_162; uint8_t x_163; +lean_dec(x_157); +lean_dec(x_94); +x_160 = l_Lean_Syntax_getArg(x_5, x_93); +lean_dec(x_5); +x_161 = l_Lean_Syntax_getArg(x_160, x_93); +x_162 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; +lean_inc(x_161); +x_163 = l_Lean_Syntax_isOfKind(x_161, x_162); +if (x_163 == 0) +{ +lean_object* x_164; lean_object* x_165; +lean_dec(x_161); +lean_free_object(x_9); +x_164 = l_Lean_Syntax_getArg(x_160, x_60); lean_dec(x_160); -lean_free_object(x_8); -x_163 = l_Lean_Syntax_getArg(x_159, x_59); -lean_dec(x_159); -x_164 = l_Lean_Syntax_isIdOrAtom_x3f(x_163); -if (lean_obj_tag(x_164) == 0) -{ -lean_object* x_165; -x_165 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_12 = x_165; -x_13 = x_163; -goto block_25; -} -else +x_165 = l_Lean_Syntax_isIdOrAtom_x3f(x_164); +if (lean_obj_tag(x_165) == 0) { lean_object* x_166; -x_166 = lean_ctor_get(x_164, 0); -lean_inc(x_166); -lean_dec(x_164); -x_12 = x_166; -x_13 = x_163; -goto block_25; +x_166 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_13 = x_166; +x_14 = x_164; +goto block_26; +} +else +{ +lean_object* x_167; +x_167 = lean_ctor_get(x_165, 0); +lean_inc(x_167); +lean_dec(x_165); +x_13 = x_167; +x_14 = x_164; +goto block_26; } } else { -lean_object* x_167; lean_object* x_168; uint8_t x_169; -x_167 = l_Lean_Syntax_getArg(x_160, x_59); -x_168 = l_Lean_Syntax_getArg(x_160, x_92); -lean_dec(x_160); -x_169 = l_Lean_Syntax_isNone(x_168); -if (x_169 == 0) +lean_object* x_168; lean_object* x_169; uint8_t x_170; +x_168 = l_Lean_Syntax_getArg(x_161, x_60); +x_169 = l_Lean_Syntax_getArg(x_161, x_93); +lean_dec(x_161); +x_170 = l_Lean_Syntax_isNone(x_169); +if (x_170 == 0) { -lean_object* x_170; uint8_t x_171; -x_170 = lean_unsigned_to_nat(3u); -lean_inc(x_168); -x_171 = l_Lean_Syntax_matchesNull(x_168, x_170); -if (x_171 == 0) +lean_object* x_171; uint8_t x_172; +x_171 = lean_unsigned_to_nat(3u); +lean_inc(x_169); +x_172 = l_Lean_Syntax_matchesNull(x_169, x_171); +if (x_172 == 0) { -lean_object* x_172; lean_object* x_173; +lean_object* x_173; lean_object* x_174; +lean_dec(x_169); lean_dec(x_168); -lean_dec(x_167); -lean_free_object(x_8); -x_172 = l_Lean_Syntax_getArg(x_159, x_59); -lean_dec(x_159); -x_173 = l_Lean_Syntax_isIdOrAtom_x3f(x_172); -if (lean_obj_tag(x_173) == 0) -{ -lean_object* x_174; -x_174 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_12 = x_174; -x_13 = x_172; -goto block_25; -} -else +lean_free_object(x_9); +x_173 = l_Lean_Syntax_getArg(x_160, x_60); +lean_dec(x_160); +x_174 = l_Lean_Syntax_isIdOrAtom_x3f(x_173); +if (lean_obj_tag(x_174) == 0) { lean_object* x_175; -x_175 = lean_ctor_get(x_173, 0); -lean_inc(x_175); -lean_dec(x_173); -x_12 = x_175; -x_13 = x_172; -goto block_25; +x_175 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_13 = x_175; +x_14 = x_173; +goto block_26; +} +else +{ +lean_object* x_176; +x_176 = lean_ctor_get(x_174, 0); +lean_inc(x_176); +lean_dec(x_174); +x_13 = x_176; +x_14 = x_173; +goto block_26; } } else { -lean_object* x_176; lean_object* x_177; lean_object* x_178; lean_object* x_179; lean_object* x_180; lean_object* x_181; -lean_dec(x_159); -x_176 = l_Lean_Syntax_getArg(x_168, x_92); -lean_dec(x_168); -x_177 = l_Lean_Syntax_getArgs(x_176); -lean_dec(x_176); -lean_ctor_set(x_8, 0, x_177); -x_178 = lean_box(0); -x_179 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_167, x_178, x_8); -lean_dec(x_8); -x_180 = lean_ctor_get(x_179, 0); -lean_inc(x_180); -x_181 = lean_ctor_get(x_179, 1); +lean_object* x_177; lean_object* x_178; lean_object* x_179; lean_object* x_180; lean_object* x_181; lean_object* x_182; +lean_dec(x_160); +x_177 = l_Lean_Syntax_getArg(x_169, x_93); +lean_dec(x_169); +x_178 = l_Lean_Syntax_getArgs(x_177); +lean_dec(x_177); +lean_ctor_set(x_9, 0, x_178); +x_179 = lean_box(0); +x_180 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_168, x_179, x_9); +lean_dec(x_9); +x_181 = lean_ctor_get(x_180, 0); lean_inc(x_181); -lean_dec(x_179); -x_12 = x_180; +x_182 = lean_ctor_get(x_180, 1); +lean_inc(x_182); +lean_dec(x_180); x_13 = x_181; -goto block_25; +x_14 = x_182; +goto block_26; } } else { -lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; -lean_dec(x_168); -lean_dec(x_159); -lean_free_object(x_8); -x_182 = lean_box(0); +lean_object* x_183; lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; +lean_dec(x_169); +lean_dec(x_160); +lean_free_object(x_9); x_183 = lean_box(0); -x_184 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_167, x_183, x_182); -x_185 = lean_ctor_get(x_184, 0); -lean_inc(x_185); -x_186 = lean_ctor_get(x_184, 1); +x_184 = lean_box(0); +x_185 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_168, x_184, x_183); +x_186 = lean_ctor_get(x_185, 0); lean_inc(x_186); -lean_dec(x_184); -x_12 = x_185; -x_13 = x_186; -goto block_25; -} -} -} -else -{ -lean_object* x_187; lean_object* x_188; uint8_t x_189; -x_187 = l_Lean_Syntax_getArg(x_156, x_59); -lean_dec(x_156); -x_188 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__10; +x_187 = lean_ctor_get(x_185, 1); lean_inc(x_187); -x_189 = l_Lean_Syntax_isOfKind(x_187, x_188); -if (x_189 == 0) -{ -lean_object* x_190; lean_object* x_191; lean_object* x_192; uint8_t x_193; -lean_dec(x_187); -lean_dec(x_93); -x_190 = l_Lean_Syntax_getArg(x_3, x_92); -lean_dec(x_3); -x_191 = l_Lean_Syntax_getArg(x_190, x_92); -x_192 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; -lean_inc(x_191); -x_193 = l_Lean_Syntax_isOfKind(x_191, x_192); -if (x_193 == 0) -{ -lean_object* x_194; lean_object* x_195; -lean_dec(x_191); -lean_free_object(x_8); -x_194 = l_Lean_Syntax_getArg(x_190, x_59); -lean_dec(x_190); -x_195 = l_Lean_Syntax_isIdOrAtom_x3f(x_194); -if (lean_obj_tag(x_195) == 0) -{ -lean_object* x_196; -x_196 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_12 = x_196; -x_13 = x_194; -goto block_25; +lean_dec(x_185); +x_13 = x_186; +x_14 = x_187; +goto block_26; +} +} } else { +lean_object* x_188; lean_object* x_189; uint8_t x_190; +x_188 = l_Lean_Syntax_getArg(x_157, x_60); +lean_dec(x_157); +x_189 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__10; +lean_inc(x_188); +x_190 = l_Lean_Syntax_isOfKind(x_188, x_189); +if (x_190 == 0) +{ +lean_object* x_191; lean_object* x_192; lean_object* x_193; uint8_t x_194; +lean_dec(x_188); +lean_dec(x_94); +x_191 = l_Lean_Syntax_getArg(x_5, x_93); +lean_dec(x_5); +x_192 = l_Lean_Syntax_getArg(x_191, x_93); +x_193 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; +lean_inc(x_192); +x_194 = l_Lean_Syntax_isOfKind(x_192, x_193); +if (x_194 == 0) +{ +lean_object* x_195; lean_object* x_196; +lean_dec(x_192); +lean_free_object(x_9); +x_195 = l_Lean_Syntax_getArg(x_191, x_60); +lean_dec(x_191); +x_196 = l_Lean_Syntax_isIdOrAtom_x3f(x_195); +if (lean_obj_tag(x_196) == 0) +{ lean_object* x_197; -x_197 = lean_ctor_get(x_195, 0); -lean_inc(x_197); -lean_dec(x_195); -x_12 = x_197; -x_13 = x_194; -goto block_25; +x_197 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_13 = x_197; +x_14 = x_195; +goto block_26; +} +else +{ +lean_object* x_198; +x_198 = lean_ctor_get(x_196, 0); +lean_inc(x_198); +lean_dec(x_196); +x_13 = x_198; +x_14 = x_195; +goto block_26; } } else { -lean_object* x_198; lean_object* x_199; uint8_t x_200; -x_198 = l_Lean_Syntax_getArg(x_191, x_59); -x_199 = l_Lean_Syntax_getArg(x_191, x_92); -lean_dec(x_191); -x_200 = l_Lean_Syntax_isNone(x_199); -if (x_200 == 0) +lean_object* x_199; lean_object* x_200; uint8_t x_201; +x_199 = l_Lean_Syntax_getArg(x_192, x_60); +x_200 = l_Lean_Syntax_getArg(x_192, x_93); +lean_dec(x_192); +x_201 = l_Lean_Syntax_isNone(x_200); +if (x_201 == 0) { -lean_object* x_201; uint8_t x_202; -x_201 = lean_unsigned_to_nat(3u); -lean_inc(x_199); -x_202 = l_Lean_Syntax_matchesNull(x_199, x_201); -if (x_202 == 0) +lean_object* x_202; uint8_t x_203; +x_202 = lean_unsigned_to_nat(3u); +lean_inc(x_200); +x_203 = l_Lean_Syntax_matchesNull(x_200, x_202); +if (x_203 == 0) { -lean_object* x_203; lean_object* x_204; +lean_object* x_204; lean_object* x_205; +lean_dec(x_200); lean_dec(x_199); -lean_dec(x_198); -lean_free_object(x_8); -x_203 = l_Lean_Syntax_getArg(x_190, x_59); -lean_dec(x_190); -x_204 = l_Lean_Syntax_isIdOrAtom_x3f(x_203); -if (lean_obj_tag(x_204) == 0) -{ -lean_object* x_205; -x_205 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_12 = x_205; -x_13 = x_203; -goto block_25; -} -else +lean_free_object(x_9); +x_204 = l_Lean_Syntax_getArg(x_191, x_60); +lean_dec(x_191); +x_205 = l_Lean_Syntax_isIdOrAtom_x3f(x_204); +if (lean_obj_tag(x_205) == 0) { lean_object* x_206; -x_206 = lean_ctor_get(x_204, 0); -lean_inc(x_206); -lean_dec(x_204); -x_12 = x_206; -x_13 = x_203; -goto block_25; +x_206 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_13 = x_206; +x_14 = x_204; +goto block_26; +} +else +{ +lean_object* x_207; +x_207 = lean_ctor_get(x_205, 0); +lean_inc(x_207); +lean_dec(x_205); +x_13 = x_207; +x_14 = x_204; +goto block_26; } } else { -lean_object* x_207; lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; -lean_dec(x_190); -x_207 = l_Lean_Syntax_getArg(x_199, x_92); -lean_dec(x_199); -x_208 = l_Lean_Syntax_getArgs(x_207); -lean_dec(x_207); -lean_ctor_set(x_8, 0, x_208); -x_209 = lean_box(0); -x_210 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_198, x_209, x_8); -lean_dec(x_8); -x_211 = lean_ctor_get(x_210, 0); -lean_inc(x_211); -x_212 = lean_ctor_get(x_210, 1); +lean_object* x_208; lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; +lean_dec(x_191); +x_208 = l_Lean_Syntax_getArg(x_200, x_93); +lean_dec(x_200); +x_209 = l_Lean_Syntax_getArgs(x_208); +lean_dec(x_208); +lean_ctor_set(x_9, 0, x_209); +x_210 = lean_box(0); +x_211 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_199, x_210, x_9); +lean_dec(x_9); +x_212 = lean_ctor_get(x_211, 0); lean_inc(x_212); -lean_dec(x_210); -x_12 = x_211; +x_213 = lean_ctor_get(x_211, 1); +lean_inc(x_213); +lean_dec(x_211); x_13 = x_212; -goto block_25; +x_14 = x_213; +goto block_26; } } else { -lean_object* x_213; lean_object* x_214; lean_object* x_215; lean_object* x_216; lean_object* x_217; -lean_dec(x_199); -lean_dec(x_190); -lean_free_object(x_8); -x_213 = lean_box(0); +lean_object* x_214; lean_object* x_215; lean_object* x_216; lean_object* x_217; lean_object* x_218; +lean_dec(x_200); +lean_dec(x_191); +lean_free_object(x_9); x_214 = lean_box(0); -x_215 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_198, x_214, x_213); -x_216 = lean_ctor_get(x_215, 0); -lean_inc(x_216); -x_217 = lean_ctor_get(x_215, 1); +x_215 = lean_box(0); +x_216 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_199, x_215, x_214); +x_217 = lean_ctor_get(x_216, 0); lean_inc(x_217); -lean_dec(x_215); -x_12 = x_216; +x_218 = lean_ctor_get(x_216, 1); +lean_inc(x_218); +lean_dec(x_216); x_13 = x_217; -goto block_25; +x_14 = x_218; +goto block_26; } } } else { -lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; -lean_ctor_set(x_8, 0, x_187); -x_218 = lean_box(0); -x_219 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__5(x_93, x_3, x_218, x_8); -x_220 = lean_ctor_get(x_219, 0); -lean_inc(x_220); -x_221 = lean_ctor_get(x_219, 1); +lean_object* x_219; lean_object* x_220; lean_object* x_221; lean_object* x_222; +lean_ctor_set(x_9, 0, x_188); +x_219 = lean_box(0); +x_220 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__5(x_94, x_5, x_219, x_9); +x_221 = lean_ctor_get(x_220, 0); lean_inc(x_221); -lean_dec(x_219); -x_12 = x_220; +x_222 = lean_ctor_get(x_220, 1); +lean_inc(x_222); +lean_dec(x_220); x_13 = x_221; -goto block_25; +x_14 = x_222; +goto block_26; } } } else { -lean_object* x_222; lean_object* x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; -lean_dec(x_156); -lean_free_object(x_8); -x_222 = lean_box(0); +lean_object* x_223; lean_object* x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; +lean_dec(x_157); +lean_free_object(x_9); x_223 = lean_box(0); -x_224 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__5(x_93, x_3, x_223, x_222); -x_225 = lean_ctor_get(x_224, 0); -lean_inc(x_225); -x_226 = lean_ctor_get(x_224, 1); +x_224 = lean_box(0); +x_225 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__5(x_94, x_5, x_224, x_223); +x_226 = lean_ctor_get(x_225, 0); lean_inc(x_226); -lean_dec(x_224); -x_12 = x_225; +x_227 = lean_ctor_get(x_225, 1); +lean_inc(x_227); +lean_dec(x_225); x_13 = x_226; -goto block_25; +x_14 = x_227; +goto block_26; } } } } } -block_25: -{ -lean_object* x_14; -x_14 = l_Lean_Syntax_getRange_x3f(x_13, x_7); -if (lean_obj_tag(x_14) == 0) +block_26: { lean_object* x_15; +x_15 = l_Lean_Syntax_getRange_x3f(x_14, x_8); +if (lean_obj_tag(x_15) == 0) +{ +lean_object* x_16; +lean_dec(x_13); lean_dec(x_12); -lean_dec(x_11); -x_15 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_15, 0, x_1); -lean_ctor_set(x_15, 1, x_2); -return x_15; +x_16 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_2, x_3, x_4); +return x_16; } else { -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_16 = lean_ctor_get(x_14, 0); -lean_inc(x_16); -lean_dec(x_14); -x_17 = lean_box(0); -x_18 = l_String_Range_toLspRange(x_4, x_11); -lean_dec(x_11); -x_19 = l_String_Range_toLspRange(x_4, x_16); -lean_dec(x_16); -x_20 = 5; -x_21 = lean_alloc_ctor(0, 5, 1); -lean_ctor_set(x_21, 0, x_12); -lean_ctor_set(x_21, 1, x_17); -lean_ctor_set(x_21, 2, x_18); -lean_ctor_set(x_21, 3, x_19); -lean_ctor_set(x_21, 4, x_17); -lean_ctor_set_uint8(x_21, sizeof(void*)*5, x_20); -x_22 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_22, 0, x_21); -x_23 = lean_alloc_ctor(1, 2, 0); +lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_17 = lean_ctor_get(x_15, 0); +lean_inc(x_17); +lean_dec(x_15); +x_18 = lean_box(0); +x_19 = l_String_Range_toLspRange(x_1, x_12); +lean_dec(x_12); +x_20 = l_String_Range_toLspRange(x_1, x_17); +lean_dec(x_17); +x_21 = 5; +x_22 = lean_alloc_ctor(0, 5, 1); +lean_ctor_set(x_22, 0, x_13); +lean_ctor_set(x_22, 1, x_18); +lean_ctor_set(x_22, 2, x_19); +lean_ctor_set(x_22, 3, x_20); +lean_ctor_set(x_22, 4, x_18); +lean_ctor_set_uint8(x_22, sizeof(void*)*5, x_21); +x_23 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_23, 0, x_22); -lean_ctor_set(x_23, 1, x_1); -x_24 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_24, 0, x_23); -lean_ctor_set(x_24, 1, x_2); -return x_24; +x_24 = lean_array_push(x_3, x_23); +x_25 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_2, x_24, x_4); +return x_25; } } } else { -lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_242; uint8_t x_243; -x_227 = lean_ctor_get(x_8, 0); -lean_inc(x_227); -lean_dec(x_8); -x_242 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__2; -lean_inc(x_5); -x_243 = l_Lean_Syntax_isOfKind(x_5, x_242); -if (x_243 == 0) +lean_object* x_228; lean_object* x_229; lean_object* x_230; lean_object* x_243; uint8_t x_244; +x_228 = lean_ctor_get(x_9, 0); +lean_inc(x_228); +lean_dec(x_9); +x_243 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__2; +lean_inc(x_6); +x_244 = l_Lean_Syntax_isOfKind(x_6, x_243); +if (x_244 == 0) { -lean_object* x_244; lean_object* x_245; lean_object* x_246; lean_object* x_247; uint8_t x_248; +lean_object* x_245; lean_object* x_246; lean_object* x_247; lean_object* x_248; uint8_t x_249; +lean_dec(x_6); +x_245 = lean_unsigned_to_nat(1u); +x_246 = l_Lean_Syntax_getArg(x_5, x_245); lean_dec(x_5); -x_244 = lean_unsigned_to_nat(1u); -x_245 = l_Lean_Syntax_getArg(x_3, x_244); -lean_dec(x_3); -x_246 = l_Lean_Syntax_getArg(x_245, x_244); -x_247 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; -lean_inc(x_246); -x_248 = l_Lean_Syntax_isOfKind(x_246, x_247); -if (x_248 == 0) +x_247 = l_Lean_Syntax_getArg(x_246, x_245); +x_248 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; +lean_inc(x_247); +x_249 = l_Lean_Syntax_isOfKind(x_247, x_248); +if (x_249 == 0) { -lean_object* x_249; lean_object* x_250; lean_object* x_251; +lean_object* x_250; lean_object* x_251; lean_object* x_252; +lean_dec(x_247); +x_250 = lean_unsigned_to_nat(0u); +x_251 = l_Lean_Syntax_getArg(x_246, x_250); lean_dec(x_246); -x_249 = lean_unsigned_to_nat(0u); -x_250 = l_Lean_Syntax_getArg(x_245, x_249); -lean_dec(x_245); -x_251 = l_Lean_Syntax_isIdOrAtom_x3f(x_250); -if (lean_obj_tag(x_251) == 0) -{ -lean_object* x_252; -x_252 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_228 = x_252; -x_229 = x_250; -goto block_241; -} -else +x_252 = l_Lean_Syntax_isIdOrAtom_x3f(x_251); +if (lean_obj_tag(x_252) == 0) { lean_object* x_253; -x_253 = lean_ctor_get(x_251, 0); -lean_inc(x_253); -lean_dec(x_251); -x_228 = x_253; -x_229 = x_250; -goto block_241; +x_253 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_229 = x_253; +x_230 = x_251; +goto block_242; +} +else +{ +lean_object* x_254; +x_254 = lean_ctor_get(x_252, 0); +lean_inc(x_254); +lean_dec(x_252); +x_229 = x_254; +x_230 = x_251; +goto block_242; } } else { -lean_object* x_254; lean_object* x_255; lean_object* x_256; uint8_t x_257; -x_254 = lean_unsigned_to_nat(0u); -x_255 = l_Lean_Syntax_getArg(x_246, x_254); -x_256 = l_Lean_Syntax_getArg(x_246, x_244); -lean_dec(x_246); -x_257 = l_Lean_Syntax_isNone(x_256); -if (x_257 == 0) +lean_object* x_255; lean_object* x_256; lean_object* x_257; uint8_t x_258; +x_255 = lean_unsigned_to_nat(0u); +x_256 = l_Lean_Syntax_getArg(x_247, x_255); +x_257 = l_Lean_Syntax_getArg(x_247, x_245); +lean_dec(x_247); +x_258 = l_Lean_Syntax_isNone(x_257); +if (x_258 == 0) { -lean_object* x_258; uint8_t x_259; -x_258 = lean_unsigned_to_nat(3u); -lean_inc(x_256); -x_259 = l_Lean_Syntax_matchesNull(x_256, x_258); -if (x_259 == 0) +lean_object* x_259; uint8_t x_260; +x_259 = lean_unsigned_to_nat(3u); +lean_inc(x_257); +x_260 = l_Lean_Syntax_matchesNull(x_257, x_259); +if (x_260 == 0) { -lean_object* x_260; lean_object* x_261; +lean_object* x_261; lean_object* x_262; +lean_dec(x_257); lean_dec(x_256); -lean_dec(x_255); -x_260 = l_Lean_Syntax_getArg(x_245, x_254); -lean_dec(x_245); -x_261 = l_Lean_Syntax_isIdOrAtom_x3f(x_260); -if (lean_obj_tag(x_261) == 0) -{ -lean_object* x_262; -x_262 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_228 = x_262; -x_229 = x_260; -goto block_241; -} -else +x_261 = l_Lean_Syntax_getArg(x_246, x_255); +lean_dec(x_246); +x_262 = l_Lean_Syntax_isIdOrAtom_x3f(x_261); +if (lean_obj_tag(x_262) == 0) { lean_object* x_263; -x_263 = lean_ctor_get(x_261, 0); -lean_inc(x_263); -lean_dec(x_261); -x_228 = x_263; -x_229 = x_260; -goto block_241; +x_263 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_229 = x_263; +x_230 = x_261; +goto block_242; +} +else +{ +lean_object* x_264; +x_264 = lean_ctor_get(x_262, 0); +lean_inc(x_264); +lean_dec(x_262); +x_229 = x_264; +x_230 = x_261; +goto block_242; } } else { -lean_object* x_264; lean_object* x_265; lean_object* x_266; lean_object* x_267; lean_object* x_268; lean_object* x_269; lean_object* x_270; -lean_dec(x_245); -x_264 = l_Lean_Syntax_getArg(x_256, x_244); -lean_dec(x_256); -x_265 = l_Lean_Syntax_getArgs(x_264); -lean_dec(x_264); -x_266 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_266, 0, x_265); -x_267 = lean_box(0); -x_268 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_255, x_267, x_266); -lean_dec(x_266); -x_269 = lean_ctor_get(x_268, 0); -lean_inc(x_269); -x_270 = lean_ctor_get(x_268, 1); +lean_object* x_265; lean_object* x_266; lean_object* x_267; lean_object* x_268; lean_object* x_269; lean_object* x_270; lean_object* x_271; +lean_dec(x_246); +x_265 = l_Lean_Syntax_getArg(x_257, x_245); +lean_dec(x_257); +x_266 = l_Lean_Syntax_getArgs(x_265); +lean_dec(x_265); +x_267 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_267, 0, x_266); +x_268 = lean_box(0); +x_269 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_256, x_268, x_267); +lean_dec(x_267); +x_270 = lean_ctor_get(x_269, 0); lean_inc(x_270); -lean_dec(x_268); -x_228 = x_269; +x_271 = lean_ctor_get(x_269, 1); +lean_inc(x_271); +lean_dec(x_269); x_229 = x_270; -goto block_241; +x_230 = x_271; +goto block_242; } } else { -lean_object* x_271; lean_object* x_272; lean_object* x_273; lean_object* x_274; lean_object* x_275; -lean_dec(x_256); -lean_dec(x_245); -x_271 = lean_box(0); +lean_object* x_272; lean_object* x_273; lean_object* x_274; lean_object* x_275; lean_object* x_276; +lean_dec(x_257); +lean_dec(x_246); x_272 = lean_box(0); -x_273 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_255, x_272, x_271); -x_274 = lean_ctor_get(x_273, 0); -lean_inc(x_274); -x_275 = lean_ctor_get(x_273, 1); +x_273 = lean_box(0); +x_274 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_256, x_273, x_272); +x_275 = lean_ctor_get(x_274, 0); lean_inc(x_275); -lean_dec(x_273); -x_228 = x_274; +x_276 = lean_ctor_get(x_274, 1); +lean_inc(x_276); +lean_dec(x_274); x_229 = x_275; -goto block_241; +x_230 = x_276; +goto block_242; } } } else { -lean_object* x_276; lean_object* x_277; lean_object* x_278; uint8_t x_279; -x_276 = lean_unsigned_to_nat(0u); -x_277 = l_Lean_Syntax_getArg(x_5, x_276); -x_278 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__4; -x_279 = l_Lean_Syntax_isOfKind(x_277, x_278); -if (x_279 == 0) +lean_object* x_277; lean_object* x_278; lean_object* x_279; uint8_t x_280; +x_277 = lean_unsigned_to_nat(0u); +x_278 = l_Lean_Syntax_getArg(x_6, x_277); +x_279 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__4; +x_280 = l_Lean_Syntax_isOfKind(x_278, x_279); +if (x_280 == 0) { -lean_object* x_280; lean_object* x_281; lean_object* x_282; lean_object* x_283; uint8_t x_284; +lean_object* x_281; lean_object* x_282; lean_object* x_283; lean_object* x_284; uint8_t x_285; +lean_dec(x_6); +x_281 = lean_unsigned_to_nat(1u); +x_282 = l_Lean_Syntax_getArg(x_5, x_281); lean_dec(x_5); -x_280 = lean_unsigned_to_nat(1u); -x_281 = l_Lean_Syntax_getArg(x_3, x_280); -lean_dec(x_3); -x_282 = l_Lean_Syntax_getArg(x_281, x_280); -x_283 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; -lean_inc(x_282); -x_284 = l_Lean_Syntax_isOfKind(x_282, x_283); -if (x_284 == 0) +x_283 = l_Lean_Syntax_getArg(x_282, x_281); +x_284 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; +lean_inc(x_283); +x_285 = l_Lean_Syntax_isOfKind(x_283, x_284); +if (x_285 == 0) { -lean_object* x_285; lean_object* x_286; +lean_object* x_286; lean_object* x_287; +lean_dec(x_283); +x_286 = l_Lean_Syntax_getArg(x_282, x_277); lean_dec(x_282); -x_285 = l_Lean_Syntax_getArg(x_281, x_276); -lean_dec(x_281); -x_286 = l_Lean_Syntax_isIdOrAtom_x3f(x_285); -if (lean_obj_tag(x_286) == 0) -{ -lean_object* x_287; -x_287 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_228 = x_287; -x_229 = x_285; -goto block_241; -} -else +x_287 = l_Lean_Syntax_isIdOrAtom_x3f(x_286); +if (lean_obj_tag(x_287) == 0) { lean_object* x_288; -x_288 = lean_ctor_get(x_286, 0); -lean_inc(x_288); -lean_dec(x_286); -x_228 = x_288; -x_229 = x_285; -goto block_241; +x_288 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_229 = x_288; +x_230 = x_286; +goto block_242; +} +else +{ +lean_object* x_289; +x_289 = lean_ctor_get(x_287, 0); +lean_inc(x_289); +lean_dec(x_287); +x_229 = x_289; +x_230 = x_286; +goto block_242; } } else { -lean_object* x_289; lean_object* x_290; uint8_t x_291; -x_289 = l_Lean_Syntax_getArg(x_282, x_276); -x_290 = l_Lean_Syntax_getArg(x_282, x_280); -lean_dec(x_282); -x_291 = l_Lean_Syntax_isNone(x_290); -if (x_291 == 0) +lean_object* x_290; lean_object* x_291; uint8_t x_292; +x_290 = l_Lean_Syntax_getArg(x_283, x_277); +x_291 = l_Lean_Syntax_getArg(x_283, x_281); +lean_dec(x_283); +x_292 = l_Lean_Syntax_isNone(x_291); +if (x_292 == 0) { -lean_object* x_292; uint8_t x_293; -x_292 = lean_unsigned_to_nat(3u); -lean_inc(x_290); -x_293 = l_Lean_Syntax_matchesNull(x_290, x_292); -if (x_293 == 0) +lean_object* x_293; uint8_t x_294; +x_293 = lean_unsigned_to_nat(3u); +lean_inc(x_291); +x_294 = l_Lean_Syntax_matchesNull(x_291, x_293); +if (x_294 == 0) { -lean_object* x_294; lean_object* x_295; +lean_object* x_295; lean_object* x_296; +lean_dec(x_291); lean_dec(x_290); -lean_dec(x_289); -x_294 = l_Lean_Syntax_getArg(x_281, x_276); -lean_dec(x_281); -x_295 = l_Lean_Syntax_isIdOrAtom_x3f(x_294); -if (lean_obj_tag(x_295) == 0) -{ -lean_object* x_296; -x_296 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_228 = x_296; -x_229 = x_294; -goto block_241; -} -else +x_295 = l_Lean_Syntax_getArg(x_282, x_277); +lean_dec(x_282); +x_296 = l_Lean_Syntax_isIdOrAtom_x3f(x_295); +if (lean_obj_tag(x_296) == 0) { lean_object* x_297; -x_297 = lean_ctor_get(x_295, 0); -lean_inc(x_297); -lean_dec(x_295); -x_228 = x_297; -x_229 = x_294; -goto block_241; +x_297 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_229 = x_297; +x_230 = x_295; +goto block_242; +} +else +{ +lean_object* x_298; +x_298 = lean_ctor_get(x_296, 0); +lean_inc(x_298); +lean_dec(x_296); +x_229 = x_298; +x_230 = x_295; +goto block_242; } } else { -lean_object* x_298; lean_object* x_299; lean_object* x_300; lean_object* x_301; lean_object* x_302; lean_object* x_303; lean_object* x_304; -lean_dec(x_281); -x_298 = l_Lean_Syntax_getArg(x_290, x_280); -lean_dec(x_290); -x_299 = l_Lean_Syntax_getArgs(x_298); -lean_dec(x_298); -x_300 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_300, 0, x_299); -x_301 = lean_box(0); -x_302 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_289, x_301, x_300); -lean_dec(x_300); -x_303 = lean_ctor_get(x_302, 0); -lean_inc(x_303); -x_304 = lean_ctor_get(x_302, 1); +lean_object* x_299; lean_object* x_300; lean_object* x_301; lean_object* x_302; lean_object* x_303; lean_object* x_304; lean_object* x_305; +lean_dec(x_282); +x_299 = l_Lean_Syntax_getArg(x_291, x_281); +lean_dec(x_291); +x_300 = l_Lean_Syntax_getArgs(x_299); +lean_dec(x_299); +x_301 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_301, 0, x_300); +x_302 = lean_box(0); +x_303 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_290, x_302, x_301); +lean_dec(x_301); +x_304 = lean_ctor_get(x_303, 0); lean_inc(x_304); -lean_dec(x_302); -x_228 = x_303; +x_305 = lean_ctor_get(x_303, 1); +lean_inc(x_305); +lean_dec(x_303); x_229 = x_304; -goto block_241; +x_230 = x_305; +goto block_242; } } else { -lean_object* x_305; lean_object* x_306; lean_object* x_307; lean_object* x_308; lean_object* x_309; -lean_dec(x_290); -lean_dec(x_281); -x_305 = lean_box(0); +lean_object* x_306; lean_object* x_307; lean_object* x_308; lean_object* x_309; lean_object* x_310; +lean_dec(x_291); +lean_dec(x_282); x_306 = lean_box(0); -x_307 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_289, x_306, x_305); -x_308 = lean_ctor_get(x_307, 0); -lean_inc(x_308); -x_309 = lean_ctor_get(x_307, 1); +x_307 = lean_box(0); +x_308 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_290, x_307, x_306); +x_309 = lean_ctor_get(x_308, 0); lean_inc(x_309); -lean_dec(x_307); -x_228 = x_308; +x_310 = lean_ctor_get(x_308, 1); +lean_inc(x_310); +lean_dec(x_308); x_229 = x_309; -goto block_241; +x_230 = x_310; +goto block_242; } } } else { -lean_object* x_310; lean_object* x_311; lean_object* x_312; uint8_t x_313; -x_310 = lean_unsigned_to_nat(1u); -x_311 = l_Lean_Syntax_getArg(x_5, x_310); +lean_object* x_311; lean_object* x_312; lean_object* x_313; uint8_t x_314; +x_311 = lean_unsigned_to_nat(1u); +x_312 = l_Lean_Syntax_getArg(x_6, x_311); +lean_dec(x_6); +x_313 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__6; +lean_inc(x_312); +x_314 = l_Lean_Syntax_isOfKind(x_312, x_313); +if (x_314 == 0) +{ +lean_object* x_315; lean_object* x_316; lean_object* x_317; uint8_t x_318; +lean_dec(x_312); +x_315 = l_Lean_Syntax_getArg(x_5, x_311); lean_dec(x_5); -x_312 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__6; -lean_inc(x_311); -x_313 = l_Lean_Syntax_isOfKind(x_311, x_312); -if (x_313 == 0) +x_316 = l_Lean_Syntax_getArg(x_315, x_311); +x_317 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; +lean_inc(x_316); +x_318 = l_Lean_Syntax_isOfKind(x_316, x_317); +if (x_318 == 0) { -lean_object* x_314; lean_object* x_315; lean_object* x_316; uint8_t x_317; -lean_dec(x_311); -x_314 = l_Lean_Syntax_getArg(x_3, x_310); -lean_dec(x_3); -x_315 = l_Lean_Syntax_getArg(x_314, x_310); -x_316 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; -lean_inc(x_315); -x_317 = l_Lean_Syntax_isOfKind(x_315, x_316); -if (x_317 == 0) -{ -lean_object* x_318; lean_object* x_319; +lean_object* x_319; lean_object* x_320; +lean_dec(x_316); +x_319 = l_Lean_Syntax_getArg(x_315, x_277); lean_dec(x_315); -x_318 = l_Lean_Syntax_getArg(x_314, x_276); -lean_dec(x_314); -x_319 = l_Lean_Syntax_isIdOrAtom_x3f(x_318); -if (lean_obj_tag(x_319) == 0) -{ -lean_object* x_320; -x_320 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_228 = x_320; -x_229 = x_318; -goto block_241; -} -else +x_320 = l_Lean_Syntax_isIdOrAtom_x3f(x_319); +if (lean_obj_tag(x_320) == 0) { lean_object* x_321; -x_321 = lean_ctor_get(x_319, 0); -lean_inc(x_321); -lean_dec(x_319); -x_228 = x_321; -x_229 = x_318; -goto block_241; +x_321 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_229 = x_321; +x_230 = x_319; +goto block_242; +} +else +{ +lean_object* x_322; +x_322 = lean_ctor_get(x_320, 0); +lean_inc(x_322); +lean_dec(x_320); +x_229 = x_322; +x_230 = x_319; +goto block_242; } } else { -lean_object* x_322; lean_object* x_323; uint8_t x_324; -x_322 = l_Lean_Syntax_getArg(x_315, x_276); -x_323 = l_Lean_Syntax_getArg(x_315, x_310); -lean_dec(x_315); -x_324 = l_Lean_Syntax_isNone(x_323); -if (x_324 == 0) +lean_object* x_323; lean_object* x_324; uint8_t x_325; +x_323 = l_Lean_Syntax_getArg(x_316, x_277); +x_324 = l_Lean_Syntax_getArg(x_316, x_311); +lean_dec(x_316); +x_325 = l_Lean_Syntax_isNone(x_324); +if (x_325 == 0) { -lean_object* x_325; uint8_t x_326; -x_325 = lean_unsigned_to_nat(3u); -lean_inc(x_323); -x_326 = l_Lean_Syntax_matchesNull(x_323, x_325); -if (x_326 == 0) +lean_object* x_326; uint8_t x_327; +x_326 = lean_unsigned_to_nat(3u); +lean_inc(x_324); +x_327 = l_Lean_Syntax_matchesNull(x_324, x_326); +if (x_327 == 0) { -lean_object* x_327; lean_object* x_328; +lean_object* x_328; lean_object* x_329; +lean_dec(x_324); lean_dec(x_323); -lean_dec(x_322); -x_327 = l_Lean_Syntax_getArg(x_314, x_276); -lean_dec(x_314); -x_328 = l_Lean_Syntax_isIdOrAtom_x3f(x_327); -if (lean_obj_tag(x_328) == 0) -{ -lean_object* x_329; -x_329 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_228 = x_329; -x_229 = x_327; -goto block_241; -} -else +x_328 = l_Lean_Syntax_getArg(x_315, x_277); +lean_dec(x_315); +x_329 = l_Lean_Syntax_isIdOrAtom_x3f(x_328); +if (lean_obj_tag(x_329) == 0) { lean_object* x_330; -x_330 = lean_ctor_get(x_328, 0); -lean_inc(x_330); -lean_dec(x_328); -x_228 = x_330; -x_229 = x_327; -goto block_241; +x_330 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_229 = x_330; +x_230 = x_328; +goto block_242; +} +else +{ +lean_object* x_331; +x_331 = lean_ctor_get(x_329, 0); +lean_inc(x_331); +lean_dec(x_329); +x_229 = x_331; +x_230 = x_328; +goto block_242; } } else { -lean_object* x_331; lean_object* x_332; lean_object* x_333; lean_object* x_334; lean_object* x_335; lean_object* x_336; lean_object* x_337; -lean_dec(x_314); -x_331 = l_Lean_Syntax_getArg(x_323, x_310); -lean_dec(x_323); -x_332 = l_Lean_Syntax_getArgs(x_331); -lean_dec(x_331); -x_333 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_333, 0, x_332); -x_334 = lean_box(0); -x_335 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_322, x_334, x_333); -lean_dec(x_333); -x_336 = lean_ctor_get(x_335, 0); -lean_inc(x_336); -x_337 = lean_ctor_get(x_335, 1); +lean_object* x_332; lean_object* x_333; lean_object* x_334; lean_object* x_335; lean_object* x_336; lean_object* x_337; lean_object* x_338; +lean_dec(x_315); +x_332 = l_Lean_Syntax_getArg(x_324, x_311); +lean_dec(x_324); +x_333 = l_Lean_Syntax_getArgs(x_332); +lean_dec(x_332); +x_334 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_334, 0, x_333); +x_335 = lean_box(0); +x_336 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_323, x_335, x_334); +lean_dec(x_334); +x_337 = lean_ctor_get(x_336, 0); lean_inc(x_337); -lean_dec(x_335); -x_228 = x_336; +x_338 = lean_ctor_get(x_336, 1); +lean_inc(x_338); +lean_dec(x_336); x_229 = x_337; -goto block_241; +x_230 = x_338; +goto block_242; } } else { -lean_object* x_338; lean_object* x_339; lean_object* x_340; lean_object* x_341; lean_object* x_342; -lean_dec(x_323); -lean_dec(x_314); -x_338 = lean_box(0); +lean_object* x_339; lean_object* x_340; lean_object* x_341; lean_object* x_342; lean_object* x_343; +lean_dec(x_324); +lean_dec(x_315); x_339 = lean_box(0); -x_340 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_322, x_339, x_338); -x_341 = lean_ctor_get(x_340, 0); -lean_inc(x_341); -x_342 = lean_ctor_get(x_340, 1); +x_340 = lean_box(0); +x_341 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_323, x_340, x_339); +x_342 = lean_ctor_get(x_341, 0); lean_inc(x_342); -lean_dec(x_340); -x_228 = x_341; +x_343 = lean_ctor_get(x_341, 1); +lean_inc(x_343); +lean_dec(x_341); x_229 = x_342; -goto block_241; +x_230 = x_343; +goto block_242; } } } else { -lean_object* x_343; lean_object* x_344; uint8_t x_345; -x_343 = l_Lean_Syntax_getArg(x_311, x_276); -x_344 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__8; -x_345 = l_Lean_Syntax_isOfKind(x_343, x_344); -if (x_345 == 0) +lean_object* x_344; lean_object* x_345; uint8_t x_346; +x_344 = l_Lean_Syntax_getArg(x_312, x_277); +x_345 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__8; +x_346 = l_Lean_Syntax_isOfKind(x_344, x_345); +if (x_346 == 0) { -lean_object* x_346; lean_object* x_347; lean_object* x_348; uint8_t x_349; -lean_dec(x_311); -x_346 = l_Lean_Syntax_getArg(x_3, x_310); -lean_dec(x_3); -x_347 = l_Lean_Syntax_getArg(x_346, x_310); -x_348 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; -lean_inc(x_347); -x_349 = l_Lean_Syntax_isOfKind(x_347, x_348); -if (x_349 == 0) +lean_object* x_347; lean_object* x_348; lean_object* x_349; uint8_t x_350; +lean_dec(x_312); +x_347 = l_Lean_Syntax_getArg(x_5, x_311); +lean_dec(x_5); +x_348 = l_Lean_Syntax_getArg(x_347, x_311); +x_349 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; +lean_inc(x_348); +x_350 = l_Lean_Syntax_isOfKind(x_348, x_349); +if (x_350 == 0) { -lean_object* x_350; lean_object* x_351; +lean_object* x_351; lean_object* x_352; +lean_dec(x_348); +x_351 = l_Lean_Syntax_getArg(x_347, x_277); lean_dec(x_347); -x_350 = l_Lean_Syntax_getArg(x_346, x_276); -lean_dec(x_346); -x_351 = l_Lean_Syntax_isIdOrAtom_x3f(x_350); -if (lean_obj_tag(x_351) == 0) -{ -lean_object* x_352; -x_352 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_228 = x_352; -x_229 = x_350; -goto block_241; -} -else +x_352 = l_Lean_Syntax_isIdOrAtom_x3f(x_351); +if (lean_obj_tag(x_352) == 0) { lean_object* x_353; -x_353 = lean_ctor_get(x_351, 0); -lean_inc(x_353); -lean_dec(x_351); -x_228 = x_353; -x_229 = x_350; -goto block_241; +x_353 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_229 = x_353; +x_230 = x_351; +goto block_242; +} +else +{ +lean_object* x_354; +x_354 = lean_ctor_get(x_352, 0); +lean_inc(x_354); +lean_dec(x_352); +x_229 = x_354; +x_230 = x_351; +goto block_242; } } else { -lean_object* x_354; lean_object* x_355; uint8_t x_356; -x_354 = l_Lean_Syntax_getArg(x_347, x_276); -x_355 = l_Lean_Syntax_getArg(x_347, x_310); -lean_dec(x_347); -x_356 = l_Lean_Syntax_isNone(x_355); -if (x_356 == 0) +lean_object* x_355; lean_object* x_356; uint8_t x_357; +x_355 = l_Lean_Syntax_getArg(x_348, x_277); +x_356 = l_Lean_Syntax_getArg(x_348, x_311); +lean_dec(x_348); +x_357 = l_Lean_Syntax_isNone(x_356); +if (x_357 == 0) { -lean_object* x_357; uint8_t x_358; -x_357 = lean_unsigned_to_nat(3u); -lean_inc(x_355); -x_358 = l_Lean_Syntax_matchesNull(x_355, x_357); -if (x_358 == 0) +lean_object* x_358; uint8_t x_359; +x_358 = lean_unsigned_to_nat(3u); +lean_inc(x_356); +x_359 = l_Lean_Syntax_matchesNull(x_356, x_358); +if (x_359 == 0) { -lean_object* x_359; lean_object* x_360; +lean_object* x_360; lean_object* x_361; +lean_dec(x_356); lean_dec(x_355); -lean_dec(x_354); -x_359 = l_Lean_Syntax_getArg(x_346, x_276); -lean_dec(x_346); -x_360 = l_Lean_Syntax_isIdOrAtom_x3f(x_359); -if (lean_obj_tag(x_360) == 0) -{ -lean_object* x_361; -x_361 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_228 = x_361; -x_229 = x_359; -goto block_241; -} -else +x_360 = l_Lean_Syntax_getArg(x_347, x_277); +lean_dec(x_347); +x_361 = l_Lean_Syntax_isIdOrAtom_x3f(x_360); +if (lean_obj_tag(x_361) == 0) { lean_object* x_362; -x_362 = lean_ctor_get(x_360, 0); -lean_inc(x_362); -lean_dec(x_360); -x_228 = x_362; -x_229 = x_359; -goto block_241; +x_362 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_229 = x_362; +x_230 = x_360; +goto block_242; +} +else +{ +lean_object* x_363; +x_363 = lean_ctor_get(x_361, 0); +lean_inc(x_363); +lean_dec(x_361); +x_229 = x_363; +x_230 = x_360; +goto block_242; } } else { -lean_object* x_363; lean_object* x_364; lean_object* x_365; lean_object* x_366; lean_object* x_367; lean_object* x_368; lean_object* x_369; -lean_dec(x_346); -x_363 = l_Lean_Syntax_getArg(x_355, x_310); -lean_dec(x_355); -x_364 = l_Lean_Syntax_getArgs(x_363); -lean_dec(x_363); -x_365 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_365, 0, x_364); -x_366 = lean_box(0); -x_367 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_354, x_366, x_365); -lean_dec(x_365); -x_368 = lean_ctor_get(x_367, 0); -lean_inc(x_368); -x_369 = lean_ctor_get(x_367, 1); +lean_object* x_364; lean_object* x_365; lean_object* x_366; lean_object* x_367; lean_object* x_368; lean_object* x_369; lean_object* x_370; +lean_dec(x_347); +x_364 = l_Lean_Syntax_getArg(x_356, x_311); +lean_dec(x_356); +x_365 = l_Lean_Syntax_getArgs(x_364); +lean_dec(x_364); +x_366 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_366, 0, x_365); +x_367 = lean_box(0); +x_368 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_355, x_367, x_366); +lean_dec(x_366); +x_369 = lean_ctor_get(x_368, 0); lean_inc(x_369); -lean_dec(x_367); -x_228 = x_368; +x_370 = lean_ctor_get(x_368, 1); +lean_inc(x_370); +lean_dec(x_368); x_229 = x_369; -goto block_241; +x_230 = x_370; +goto block_242; } } else { -lean_object* x_370; lean_object* x_371; lean_object* x_372; lean_object* x_373; lean_object* x_374; -lean_dec(x_355); -lean_dec(x_346); -x_370 = lean_box(0); +lean_object* x_371; lean_object* x_372; lean_object* x_373; lean_object* x_374; lean_object* x_375; +lean_dec(x_356); +lean_dec(x_347); x_371 = lean_box(0); -x_372 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_354, x_371, x_370); -x_373 = lean_ctor_get(x_372, 0); -lean_inc(x_373); -x_374 = lean_ctor_get(x_372, 1); +x_372 = lean_box(0); +x_373 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_355, x_372, x_371); +x_374 = lean_ctor_get(x_373, 0); lean_inc(x_374); -lean_dec(x_372); -x_228 = x_373; +x_375 = lean_ctor_get(x_373, 1); +lean_inc(x_375); +lean_dec(x_373); x_229 = x_374; -goto block_241; +x_230 = x_375; +goto block_242; } } } else { -lean_object* x_375; lean_object* x_376; uint8_t x_377; -x_375 = lean_unsigned_to_nat(2u); -x_376 = l_Lean_Syntax_getArg(x_311, x_375); -x_377 = l_Lean_Syntax_isNone(x_376); -if (x_377 == 0) -{ -uint8_t x_378; -lean_inc(x_376); -x_378 = l_Lean_Syntax_matchesNull(x_376, x_310); +lean_object* x_376; lean_object* x_377; uint8_t x_378; +x_376 = lean_unsigned_to_nat(2u); +x_377 = l_Lean_Syntax_getArg(x_312, x_376); +x_378 = l_Lean_Syntax_isNone(x_377); if (x_378 == 0) { -lean_object* x_379; lean_object* x_380; lean_object* x_381; uint8_t x_382; -lean_dec(x_376); -lean_dec(x_311); -x_379 = l_Lean_Syntax_getArg(x_3, x_310); -lean_dec(x_3); -x_380 = l_Lean_Syntax_getArg(x_379, x_310); -x_381 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; -lean_inc(x_380); -x_382 = l_Lean_Syntax_isOfKind(x_380, x_381); -if (x_382 == 0) +uint8_t x_379; +lean_inc(x_377); +x_379 = l_Lean_Syntax_matchesNull(x_377, x_311); +if (x_379 == 0) { -lean_object* x_383; lean_object* x_384; +lean_object* x_380; lean_object* x_381; lean_object* x_382; uint8_t x_383; +lean_dec(x_377); +lean_dec(x_312); +x_380 = l_Lean_Syntax_getArg(x_5, x_311); +lean_dec(x_5); +x_381 = l_Lean_Syntax_getArg(x_380, x_311); +x_382 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; +lean_inc(x_381); +x_383 = l_Lean_Syntax_isOfKind(x_381, x_382); +if (x_383 == 0) +{ +lean_object* x_384; lean_object* x_385; +lean_dec(x_381); +x_384 = l_Lean_Syntax_getArg(x_380, x_277); lean_dec(x_380); -x_383 = l_Lean_Syntax_getArg(x_379, x_276); -lean_dec(x_379); -x_384 = l_Lean_Syntax_isIdOrAtom_x3f(x_383); -if (lean_obj_tag(x_384) == 0) -{ -lean_object* x_385; -x_385 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_228 = x_385; -x_229 = x_383; -goto block_241; -} -else +x_385 = l_Lean_Syntax_isIdOrAtom_x3f(x_384); +if (lean_obj_tag(x_385) == 0) { lean_object* x_386; -x_386 = lean_ctor_get(x_384, 0); -lean_inc(x_386); -lean_dec(x_384); -x_228 = x_386; -x_229 = x_383; -goto block_241; +x_386 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_229 = x_386; +x_230 = x_384; +goto block_242; +} +else +{ +lean_object* x_387; +x_387 = lean_ctor_get(x_385, 0); +lean_inc(x_387); +lean_dec(x_385); +x_229 = x_387; +x_230 = x_384; +goto block_242; } } else { -lean_object* x_387; lean_object* x_388; uint8_t x_389; -x_387 = l_Lean_Syntax_getArg(x_380, x_276); -x_388 = l_Lean_Syntax_getArg(x_380, x_310); -lean_dec(x_380); -x_389 = l_Lean_Syntax_isNone(x_388); -if (x_389 == 0) +lean_object* x_388; lean_object* x_389; uint8_t x_390; +x_388 = l_Lean_Syntax_getArg(x_381, x_277); +x_389 = l_Lean_Syntax_getArg(x_381, x_311); +lean_dec(x_381); +x_390 = l_Lean_Syntax_isNone(x_389); +if (x_390 == 0) { -lean_object* x_390; uint8_t x_391; -x_390 = lean_unsigned_to_nat(3u); -lean_inc(x_388); -x_391 = l_Lean_Syntax_matchesNull(x_388, x_390); -if (x_391 == 0) +lean_object* x_391; uint8_t x_392; +x_391 = lean_unsigned_to_nat(3u); +lean_inc(x_389); +x_392 = l_Lean_Syntax_matchesNull(x_389, x_391); +if (x_392 == 0) { -lean_object* x_392; lean_object* x_393; +lean_object* x_393; lean_object* x_394; +lean_dec(x_389); lean_dec(x_388); -lean_dec(x_387); -x_392 = l_Lean_Syntax_getArg(x_379, x_276); -lean_dec(x_379); -x_393 = l_Lean_Syntax_isIdOrAtom_x3f(x_392); -if (lean_obj_tag(x_393) == 0) -{ -lean_object* x_394; -x_394 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_228 = x_394; -x_229 = x_392; -goto block_241; -} -else +x_393 = l_Lean_Syntax_getArg(x_380, x_277); +lean_dec(x_380); +x_394 = l_Lean_Syntax_isIdOrAtom_x3f(x_393); +if (lean_obj_tag(x_394) == 0) { lean_object* x_395; -x_395 = lean_ctor_get(x_393, 0); -lean_inc(x_395); -lean_dec(x_393); -x_228 = x_395; -x_229 = x_392; -goto block_241; +x_395 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_229 = x_395; +x_230 = x_393; +goto block_242; +} +else +{ +lean_object* x_396; +x_396 = lean_ctor_get(x_394, 0); +lean_inc(x_396); +lean_dec(x_394); +x_229 = x_396; +x_230 = x_393; +goto block_242; } } else { -lean_object* x_396; lean_object* x_397; lean_object* x_398; lean_object* x_399; lean_object* x_400; lean_object* x_401; lean_object* x_402; -lean_dec(x_379); -x_396 = l_Lean_Syntax_getArg(x_388, x_310); -lean_dec(x_388); -x_397 = l_Lean_Syntax_getArgs(x_396); -lean_dec(x_396); -x_398 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_398, 0, x_397); -x_399 = lean_box(0); -x_400 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_387, x_399, x_398); -lean_dec(x_398); -x_401 = lean_ctor_get(x_400, 0); -lean_inc(x_401); -x_402 = lean_ctor_get(x_400, 1); +lean_object* x_397; lean_object* x_398; lean_object* x_399; lean_object* x_400; lean_object* x_401; lean_object* x_402; lean_object* x_403; +lean_dec(x_380); +x_397 = l_Lean_Syntax_getArg(x_389, x_311); +lean_dec(x_389); +x_398 = l_Lean_Syntax_getArgs(x_397); +lean_dec(x_397); +x_399 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_399, 0, x_398); +x_400 = lean_box(0); +x_401 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_388, x_400, x_399); +lean_dec(x_399); +x_402 = lean_ctor_get(x_401, 0); lean_inc(x_402); -lean_dec(x_400); -x_228 = x_401; +x_403 = lean_ctor_get(x_401, 1); +lean_inc(x_403); +lean_dec(x_401); x_229 = x_402; -goto block_241; +x_230 = x_403; +goto block_242; } } else { -lean_object* x_403; lean_object* x_404; lean_object* x_405; lean_object* x_406; lean_object* x_407; -lean_dec(x_388); -lean_dec(x_379); -x_403 = lean_box(0); +lean_object* x_404; lean_object* x_405; lean_object* x_406; lean_object* x_407; lean_object* x_408; +lean_dec(x_389); +lean_dec(x_380); x_404 = lean_box(0); -x_405 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_387, x_404, x_403); -x_406 = lean_ctor_get(x_405, 0); -lean_inc(x_406); -x_407 = lean_ctor_get(x_405, 1); +x_405 = lean_box(0); +x_406 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_388, x_405, x_404); +x_407 = lean_ctor_get(x_406, 0); lean_inc(x_407); -lean_dec(x_405); -x_228 = x_406; -x_229 = x_407; -goto block_241; -} -} -} -else -{ -lean_object* x_408; lean_object* x_409; uint8_t x_410; -x_408 = l_Lean_Syntax_getArg(x_376, x_276); -lean_dec(x_376); -x_409 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__10; +x_408 = lean_ctor_get(x_406, 1); lean_inc(x_408); -x_410 = l_Lean_Syntax_isOfKind(x_408, x_409); -if (x_410 == 0) -{ -lean_object* x_411; lean_object* x_412; lean_object* x_413; uint8_t x_414; -lean_dec(x_408); -lean_dec(x_311); -x_411 = l_Lean_Syntax_getArg(x_3, x_310); -lean_dec(x_3); -x_412 = l_Lean_Syntax_getArg(x_411, x_310); -x_413 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; -lean_inc(x_412); -x_414 = l_Lean_Syntax_isOfKind(x_412, x_413); -if (x_414 == 0) -{ -lean_object* x_415; lean_object* x_416; -lean_dec(x_412); -x_415 = l_Lean_Syntax_getArg(x_411, x_276); -lean_dec(x_411); -x_416 = l_Lean_Syntax_isIdOrAtom_x3f(x_415); -if (lean_obj_tag(x_416) == 0) -{ -lean_object* x_417; -x_417 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_228 = x_417; -x_229 = x_415; -goto block_241; +lean_dec(x_406); +x_229 = x_407; +x_230 = x_408; +goto block_242; +} +} } else { +lean_object* x_409; lean_object* x_410; uint8_t x_411; +x_409 = l_Lean_Syntax_getArg(x_377, x_277); +lean_dec(x_377); +x_410 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__10; +lean_inc(x_409); +x_411 = l_Lean_Syntax_isOfKind(x_409, x_410); +if (x_411 == 0) +{ +lean_object* x_412; lean_object* x_413; lean_object* x_414; uint8_t x_415; +lean_dec(x_409); +lean_dec(x_312); +x_412 = l_Lean_Syntax_getArg(x_5, x_311); +lean_dec(x_5); +x_413 = l_Lean_Syntax_getArg(x_412, x_311); +x_414 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__5; +lean_inc(x_413); +x_415 = l_Lean_Syntax_isOfKind(x_413, x_414); +if (x_415 == 0) +{ +lean_object* x_416; lean_object* x_417; +lean_dec(x_413); +x_416 = l_Lean_Syntax_getArg(x_412, x_277); +lean_dec(x_412); +x_417 = l_Lean_Syntax_isIdOrAtom_x3f(x_416); +if (lean_obj_tag(x_417) == 0) +{ lean_object* x_418; -x_418 = lean_ctor_get(x_416, 0); -lean_inc(x_418); -lean_dec(x_416); -x_228 = x_418; -x_229 = x_415; -goto block_241; +x_418 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_229 = x_418; +x_230 = x_416; +goto block_242; +} +else +{ +lean_object* x_419; +x_419 = lean_ctor_get(x_417, 0); +lean_inc(x_419); +lean_dec(x_417); +x_229 = x_419; +x_230 = x_416; +goto block_242; } } else { -lean_object* x_419; lean_object* x_420; uint8_t x_421; -x_419 = l_Lean_Syntax_getArg(x_412, x_276); -x_420 = l_Lean_Syntax_getArg(x_412, x_310); -lean_dec(x_412); -x_421 = l_Lean_Syntax_isNone(x_420); -if (x_421 == 0) +lean_object* x_420; lean_object* x_421; uint8_t x_422; +x_420 = l_Lean_Syntax_getArg(x_413, x_277); +x_421 = l_Lean_Syntax_getArg(x_413, x_311); +lean_dec(x_413); +x_422 = l_Lean_Syntax_isNone(x_421); +if (x_422 == 0) { -lean_object* x_422; uint8_t x_423; -x_422 = lean_unsigned_to_nat(3u); -lean_inc(x_420); -x_423 = l_Lean_Syntax_matchesNull(x_420, x_422); -if (x_423 == 0) +lean_object* x_423; uint8_t x_424; +x_423 = lean_unsigned_to_nat(3u); +lean_inc(x_421); +x_424 = l_Lean_Syntax_matchesNull(x_421, x_423); +if (x_424 == 0) { -lean_object* x_424; lean_object* x_425; +lean_object* x_425; lean_object* x_426; +lean_dec(x_421); lean_dec(x_420); -lean_dec(x_419); -x_424 = l_Lean_Syntax_getArg(x_411, x_276); -lean_dec(x_411); -x_425 = l_Lean_Syntax_isIdOrAtom_x3f(x_424); -if (lean_obj_tag(x_425) == 0) -{ -lean_object* x_426; -x_426 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; -x_228 = x_426; -x_229 = x_424; -goto block_241; -} -else +x_425 = l_Lean_Syntax_getArg(x_412, x_277); +lean_dec(x_412); +x_426 = l_Lean_Syntax_isIdOrAtom_x3f(x_425); +if (lean_obj_tag(x_426) == 0) { lean_object* x_427; -x_427 = lean_ctor_get(x_425, 0); -lean_inc(x_427); -lean_dec(x_425); -x_228 = x_427; -x_229 = x_424; -goto block_241; +x_427 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__6; +x_229 = x_427; +x_230 = x_425; +goto block_242; +} +else +{ +lean_object* x_428; +x_428 = lean_ctor_get(x_426, 0); +lean_inc(x_428); +lean_dec(x_426); +x_229 = x_428; +x_230 = x_425; +goto block_242; } } else { -lean_object* x_428; lean_object* x_429; lean_object* x_430; lean_object* x_431; lean_object* x_432; lean_object* x_433; lean_object* x_434; -lean_dec(x_411); -x_428 = l_Lean_Syntax_getArg(x_420, x_310); -lean_dec(x_420); -x_429 = l_Lean_Syntax_getArgs(x_428); -lean_dec(x_428); -x_430 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_430, 0, x_429); -x_431 = lean_box(0); -x_432 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_419, x_431, x_430); -lean_dec(x_430); -x_433 = lean_ctor_get(x_432, 0); -lean_inc(x_433); -x_434 = lean_ctor_get(x_432, 1); +lean_object* x_429; lean_object* x_430; lean_object* x_431; lean_object* x_432; lean_object* x_433; lean_object* x_434; lean_object* x_435; +lean_dec(x_412); +x_429 = l_Lean_Syntax_getArg(x_421, x_311); +lean_dec(x_421); +x_430 = l_Lean_Syntax_getArgs(x_429); +lean_dec(x_429); +x_431 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_431, 0, x_430); +x_432 = lean_box(0); +x_433 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_420, x_432, x_431); +lean_dec(x_431); +x_434 = lean_ctor_get(x_433, 0); lean_inc(x_434); -lean_dec(x_432); -x_228 = x_433; +x_435 = lean_ctor_get(x_433, 1); +lean_inc(x_435); +lean_dec(x_433); x_229 = x_434; -goto block_241; +x_230 = x_435; +goto block_242; } } else { -lean_object* x_435; lean_object* x_436; lean_object* x_437; lean_object* x_438; lean_object* x_439; -lean_dec(x_420); -lean_dec(x_411); -x_435 = lean_box(0); +lean_object* x_436; lean_object* x_437; lean_object* x_438; lean_object* x_439; lean_object* x_440; +lean_dec(x_421); +lean_dec(x_412); x_436 = lean_box(0); -x_437 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_419, x_436, x_435); -x_438 = lean_ctor_get(x_437, 0); -lean_inc(x_438); -x_439 = lean_ctor_get(x_437, 1); +x_437 = lean_box(0); +x_438 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2(x_420, x_437, x_436); +x_439 = lean_ctor_get(x_438, 0); lean_inc(x_439); -lean_dec(x_437); -x_228 = x_438; +x_440 = lean_ctor_get(x_438, 1); +lean_inc(x_440); +lean_dec(x_438); x_229 = x_439; -goto block_241; +x_230 = x_440; +goto block_242; } } } else { -lean_object* x_440; lean_object* x_441; lean_object* x_442; lean_object* x_443; lean_object* x_444; -x_440 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_440, 0, x_408); -x_441 = lean_box(0); -x_442 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__5(x_311, x_3, x_441, x_440); -x_443 = lean_ctor_get(x_442, 0); -lean_inc(x_443); -x_444 = lean_ctor_get(x_442, 1); +lean_object* x_441; lean_object* x_442; lean_object* x_443; lean_object* x_444; lean_object* x_445; +x_441 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_441, 0, x_409); +x_442 = lean_box(0); +x_443 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__5(x_312, x_5, x_442, x_441); +x_444 = lean_ctor_get(x_443, 0); lean_inc(x_444); -lean_dec(x_442); -x_228 = x_443; +x_445 = lean_ctor_get(x_443, 1); +lean_inc(x_445); +lean_dec(x_443); x_229 = x_444; -goto block_241; +x_230 = x_445; +goto block_242; } } } else { -lean_object* x_445; lean_object* x_446; lean_object* x_447; lean_object* x_448; lean_object* x_449; -lean_dec(x_376); -x_445 = lean_box(0); +lean_object* x_446; lean_object* x_447; lean_object* x_448; lean_object* x_449; lean_object* x_450; +lean_dec(x_377); x_446 = lean_box(0); -x_447 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__5(x_311, x_3, x_446, x_445); -x_448 = lean_ctor_get(x_447, 0); -lean_inc(x_448); -x_449 = lean_ctor_get(x_447, 1); +x_447 = lean_box(0); +x_448 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__5(x_312, x_5, x_447, x_446); +x_449 = lean_ctor_get(x_448, 0); lean_inc(x_449); -lean_dec(x_447); -x_228 = x_448; +x_450 = lean_ctor_get(x_448, 1); +lean_inc(x_450); +lean_dec(x_448); x_229 = x_449; -goto block_241; +x_230 = x_450; +goto block_242; } } } } } -block_241: -{ -lean_object* x_230; -x_230 = l_Lean_Syntax_getRange_x3f(x_229, x_7); -if (lean_obj_tag(x_230) == 0) +block_242: { lean_object* x_231; +x_231 = l_Lean_Syntax_getRange_x3f(x_230, x_8); +if (lean_obj_tag(x_231) == 0) +{ +lean_object* x_232; +lean_dec(x_229); lean_dec(x_228); -lean_dec(x_227); -x_231 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_231, 0, x_1); -lean_ctor_set(x_231, 1, x_2); -return x_231; +x_232 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_2, x_3, x_4); +return x_232; } else { -lean_object* x_232; lean_object* x_233; lean_object* x_234; lean_object* x_235; uint8_t x_236; lean_object* x_237; lean_object* x_238; lean_object* x_239; lean_object* x_240; -x_232 = lean_ctor_get(x_230, 0); -lean_inc(x_232); -lean_dec(x_230); -x_233 = lean_box(0); -x_234 = l_String_Range_toLspRange(x_4, x_227); -lean_dec(x_227); -x_235 = l_String_Range_toLspRange(x_4, x_232); -lean_dec(x_232); -x_236 = 5; -x_237 = lean_alloc_ctor(0, 5, 1); -lean_ctor_set(x_237, 0, x_228); -lean_ctor_set(x_237, 1, x_233); -lean_ctor_set(x_237, 2, x_234); -lean_ctor_set(x_237, 3, x_235); -lean_ctor_set(x_237, 4, x_233); -lean_ctor_set_uint8(x_237, sizeof(void*)*5, x_236); -x_238 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_238, 0, x_237); -x_239 = lean_alloc_ctor(1, 2, 0); +lean_object* x_233; lean_object* x_234; lean_object* x_235; lean_object* x_236; uint8_t x_237; lean_object* x_238; lean_object* x_239; lean_object* x_240; lean_object* x_241; +x_233 = lean_ctor_get(x_231, 0); +lean_inc(x_233); +lean_dec(x_231); +x_234 = lean_box(0); +x_235 = l_String_Range_toLspRange(x_1, x_228); +lean_dec(x_228); +x_236 = l_String_Range_toLspRange(x_1, x_233); +lean_dec(x_233); +x_237 = 5; +x_238 = lean_alloc_ctor(0, 5, 1); +lean_ctor_set(x_238, 0, x_229); +lean_ctor_set(x_238, 1, x_234); +lean_ctor_set(x_238, 2, x_235); +lean_ctor_set(x_238, 3, x_236); +lean_ctor_set(x_238, 4, x_234); +lean_ctor_set_uint8(x_238, sizeof(void*)*5, x_237); +x_239 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_239, 0, x_238); -lean_ctor_set(x_239, 1, x_1); -x_240 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_240, 0, x_239); -lean_ctor_set(x_240, 1, x_2); -return x_240; +x_240 = lean_array_push(x_3, x_239); +x_241 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_2, x_240, x_4); +return x_241; } } } @@ -11581,35 +11904,24 @@ return x_240; static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__1() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = lean_box(0); -x_2 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_2, 0, x_1); -lean_ctor_set(x_2, 1, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__2() { -_start: -{ lean_object* x_1; x_1 = lean_mk_string_from_bytes("namespace", 9); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__3() { +static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; x_1 = l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__1; x_2 = l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__2; x_3 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__1; -x_4 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__2; +x_4 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__1; x_5 = l_Lean_Name_mkStr4(x_1, x_2, x_3, x_4); return x_5; } } -static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__4() { +static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__3() { _start: { lean_object* x_1; @@ -11617,19 +11929,19 @@ x_1 = lean_mk_string_from_bytes("section", 7); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__5() { +static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__4() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; x_1 = l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__1; x_2 = l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__2; x_3 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__1; -x_4 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__4; +x_4 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__3; x_5 = l_Lean_Name_mkStr4(x_1, x_2, x_3, x_4); return x_5; } } -static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__6() { +static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__5() { _start: { lean_object* x_1; @@ -11637,549 +11949,609 @@ x_1 = lean_mk_string_from_bytes("end", 3); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__7() { +static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__6() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; x_1 = l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__1; x_2 = l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__2; x_3 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__1; -x_4 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__6; +x_4 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__5; x_5 = l_Lean_Name_mkStr4(x_1, x_2, x_3, x_4); return x_5; } } -static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__8() { +static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__7() { _start: { -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("
", 9); -return x_1; +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = lean_box(0); +x_2 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__2; +x_3 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_3, 0, x_2); +lean_ctor_set(x_3, 1, x_1); +return x_3; } } -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(lean_object* x_1, lean_object* x_2) { +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { if (lean_obj_tag(x_2) == 0) { -lean_object* x_3; -lean_dec(x_1); -x_3 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__1; -return x_3; +lean_object* x_5; +x_5 = l_List_foldl___at_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___spec__1(x_1, x_3, x_4); +return x_5; } else { -uint8_t x_4; -x_4 = !lean_is_exclusive(x_2); -if (x_4 == 0) +uint8_t x_6; +x_6 = !lean_is_exclusive(x_2); +if (x_6 == 0) { -lean_object* x_5; lean_object* x_6; lean_object* x_7; uint8_t x_8; -x_5 = lean_ctor_get(x_2, 0); -x_6 = lean_ctor_get(x_2, 1); -x_7 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__3; -lean_inc(x_5); -x_8 = l_Lean_Syntax_isOfKind(x_5, x_7); -if (x_8 == 0) -{ -lean_object* x_9; uint8_t x_10; -x_9 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__5; -lean_inc(x_5); -x_10 = l_Lean_Syntax_isOfKind(x_5, x_9); +lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10; +x_7 = lean_ctor_get(x_2, 0); +x_8 = lean_ctor_get(x_2, 1); +x_9 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__2; +lean_inc(x_7); +x_10 = l_Lean_Syntax_isOfKind(x_7, x_9); if (x_10 == 0) { lean_object* x_11; uint8_t x_12; -x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__7; -lean_inc(x_5); -x_12 = l_Lean_Syntax_isOfKind(x_5, x_11); +x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__4; +lean_inc(x_7); +x_12 = l_Lean_Syntax_isOfKind(x_7, x_11); if (x_12 == 0) { lean_object* x_13; uint8_t x_14; lean_free_object(x_2); -lean_inc(x_1); -x_13 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_6); -x_14 = !lean_is_exclusive(x_13); +x_13 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__6; +lean_inc(x_7); +x_14 = l_Lean_Syntax_isOfKind(x_7, x_13); if (x_14 == 0) { -lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; -x_15 = lean_ctor_get(x_13, 0); -x_16 = lean_ctor_get(x_13, 1); -x_17 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__2; -lean_inc(x_5); -x_18 = l_Lean_Syntax_isOfKind(x_5, x_17); -if (x_18 == 0) +lean_object* x_15; uint8_t x_16; +x_15 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__2; +lean_inc(x_7); +x_16 = l_Lean_Syntax_isOfKind(x_7, x_15); +if (x_16 == 0) { -lean_dec(x_5); -lean_dec(x_1); -return x_13; +lean_dec(x_7); +x_2 = x_8; +goto _start; } else { -lean_object* x_19; lean_object* x_20; -lean_free_object(x_13); -x_19 = lean_box(0); -lean_inc(x_5); -x_20 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6(x_15, x_16, x_5, x_1, x_5, x_19); -lean_dec(x_1); -return x_20; +lean_object* x_18; lean_object* x_19; +x_18 = lean_box(0); +lean_inc(x_7); +x_19 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6(x_1, x_8, x_3, x_4, x_7, x_7, x_18); +return x_19; } } else { -lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; -x_21 = lean_ctor_get(x_13, 0); -x_22 = lean_ctor_get(x_13, 1); -lean_inc(x_22); -lean_inc(x_21); -lean_dec(x_13); -x_23 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__2; -lean_inc(x_5); -x_24 = l_Lean_Syntax_isOfKind(x_5, x_23); -if (x_24 == 0) +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_unsigned_to_nat(1u); +x_21 = l_Lean_Syntax_getArg(x_7, x_20); +x_22 = l_Lean_Syntax_getOptional_x3f(x_21); +lean_dec(x_21); +if (lean_obj_tag(x_22) == 0) { -lean_object* x_25; -lean_dec(x_5); -lean_dec(x_1); -x_25 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_25, 0, x_21); -lean_ctor_set(x_25, 1, x_22); -return x_25; +lean_object* x_23; +x_23 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols_popStack(x_1, x_7, x_8, x_20, x_3, x_4); +return x_23; } else { -lean_object* x_26; lean_object* x_27; -x_26 = lean_box(0); -lean_inc(x_5); -x_27 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6(x_21, x_22, x_5, x_1, x_5, x_26); -lean_dec(x_1); +lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_24 = lean_ctor_get(x_22, 0); +lean_inc(x_24); +lean_dec(x_22); +x_25 = l_Lean_Syntax_getId(x_24); +lean_dec(x_24); +x_26 = l_Lean_Name_getNumParts(x_25); +lean_dec(x_25); +x_27 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols_popStack(x_1, x_7, x_8, x_26, x_3, x_4); return x_27; } } } else { -lean_object* x_28; lean_object* x_29; -lean_dec(x_1); -x_28 = lean_box(0); -x_29 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_29, 0, x_28); -lean_ctor_set(x_29, 1, x_2); -return x_29; +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_unsigned_to_nat(1u); +x_29 = l_Lean_Syntax_getArg(x_7, x_28); +x_30 = l_Lean_Syntax_getOptional_x3f(x_29); +lean_dec(x_29); +if (lean_obj_tag(x_30) == 0) +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_31 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__7; +lean_inc(x_7); +x_32 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_32, 0, x_31); +lean_ctor_set(x_32, 1, x_7); +lean_ctor_set(x_32, 2, x_7); +lean_ctor_set(x_32, 3, x_3); +lean_ctor_set(x_2, 1, x_4); +lean_ctor_set(x_2, 0, x_32); +x_33 = l_Lean_Server_FileWorker_handleCompletion___closed__1; +{ +lean_object* _tmp_1 = x_8; +lean_object* _tmp_2 = x_33; +lean_object* _tmp_3 = x_2; +x_2 = _tmp_1; +x_3 = _tmp_2; +x_4 = _tmp_3; } +goto _start; } else { -lean_object* x_30; lean_object* x_31; lean_object* x_32; -lean_free_object(x_2); -x_30 = lean_unsigned_to_nat(1u); -x_31 = l_Lean_Syntax_getArg(x_5, x_30); -x_32 = l_Lean_Syntax_getOptional_x3f(x_31); -lean_dec(x_31); -if (lean_obj_tag(x_32) == 0) +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_35 = lean_ctor_get(x_30, 0); +lean_inc(x_35); +lean_dec(x_30); +x_36 = l_Lean_Syntax_getId(x_35); +x_37 = l_Lean_Name_componentsRev(x_36); +x_38 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_38, 1, x_7); +lean_ctor_set(x_38, 2, x_35); +lean_ctor_set(x_38, 3, x_3); +lean_ctor_set(x_2, 1, x_4); +lean_ctor_set(x_2, 0, x_38); +x_39 = l_Lean_Server_FileWorker_handleCompletion___closed__1; { -lean_object* x_33; uint8_t x_34; lean_object* x_35; -x_33 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__8; -x_34 = 2; -lean_inc(x_5); -x_35 = l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols(x_1, x_5, x_6, x_33, x_34, x_5); -return x_35; +lean_object* _tmp_1 = x_8; +lean_object* _tmp_2 = x_39; +lean_object* _tmp_3 = x_2; +x_2 = _tmp_1; +x_3 = _tmp_2; +x_4 = _tmp_3; } -else -{ -lean_object* x_36; lean_object* x_37; uint8_t x_38; lean_object* x_39; uint8_t x_40; lean_object* x_41; -x_36 = lean_ctor_get(x_32, 0); -lean_inc(x_36); -lean_dec(x_32); -x_37 = l_Lean_Syntax_getId(x_36); -x_38 = 1; -x_39 = l_Lean_Name_toString(x_37, x_38); -x_40 = 2; -x_41 = l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols(x_1, x_5, x_6, x_39, x_40, x_36); -return x_41; +goto _start; } } } else { -lean_object* x_42; lean_object* x_43; lean_object* x_44; uint8_t x_45; lean_object* x_46; uint8_t x_47; lean_object* x_48; -lean_free_object(x_2); -x_42 = lean_unsigned_to_nat(1u); -x_43 = l_Lean_Syntax_getArg(x_5, x_42); -x_44 = l_Lean_Syntax_getId(x_43); -x_45 = 1; -x_46 = l_Lean_Name_toString(x_44, x_45); -x_47 = 2; -x_48 = l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols(x_1, x_5, x_6, x_46, x_47, x_43); -return x_48; +lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_41 = lean_unsigned_to_nat(1u); +x_42 = l_Lean_Syntax_getArg(x_7, x_41); +x_43 = l_Lean_Syntax_getId(x_42); +x_44 = l_Lean_Name_componentsRev(x_43); +x_45 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_45, 0, x_44); +lean_ctor_set(x_45, 1, x_7); +lean_ctor_set(x_45, 2, x_42); +lean_ctor_set(x_45, 3, x_3); +lean_ctor_set(x_2, 1, x_4); +lean_ctor_set(x_2, 0, x_45); +x_46 = l_Lean_Server_FileWorker_handleCompletion___closed__1; +{ +lean_object* _tmp_1 = x_8; +lean_object* _tmp_2 = x_46; +lean_object* _tmp_3 = x_2; +x_2 = _tmp_1; +x_3 = _tmp_2; +x_4 = _tmp_3; +} +goto _start; } } else { -lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_52; -x_49 = lean_ctor_get(x_2, 0); -x_50 = lean_ctor_get(x_2, 1); -lean_inc(x_50); +lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; +x_48 = lean_ctor_get(x_2, 0); +x_49 = lean_ctor_get(x_2, 1); lean_inc(x_49); +lean_inc(x_48); lean_dec(x_2); -x_51 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__3; -lean_inc(x_49); -x_52 = l_Lean_Syntax_isOfKind(x_49, x_51); -if (x_52 == 0) +x_50 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__2; +lean_inc(x_48); +x_51 = l_Lean_Syntax_isOfKind(x_48, x_50); +if (x_51 == 0) { -lean_object* x_53; uint8_t x_54; -x_53 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__5; -lean_inc(x_49); -x_54 = l_Lean_Syntax_isOfKind(x_49, x_53); -if (x_54 == 0) +lean_object* x_52; uint8_t x_53; +x_52 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__4; +lean_inc(x_48); +x_53 = l_Lean_Syntax_isOfKind(x_48, x_52); +if (x_53 == 0) { -lean_object* x_55; uint8_t x_56; -x_55 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__7; -lean_inc(x_49); -x_56 = l_Lean_Syntax_isOfKind(x_49, x_55); -if (x_56 == 0) +lean_object* x_54; uint8_t x_55; +x_54 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__6; +lean_inc(x_48); +x_55 = l_Lean_Syntax_isOfKind(x_48, x_54); +if (x_55 == 0) { -lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; uint8_t x_62; -lean_inc(x_1); -x_57 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_50); -x_58 = lean_ctor_get(x_57, 0); -lean_inc(x_58); -x_59 = lean_ctor_get(x_57, 1); -lean_inc(x_59); -if (lean_is_exclusive(x_57)) { - lean_ctor_release(x_57, 0); - lean_ctor_release(x_57, 1); - x_60 = x_57; -} else { - lean_dec_ref(x_57); - x_60 = lean_box(0); -} -x_61 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__2; -lean_inc(x_49); -x_62 = l_Lean_Syntax_isOfKind(x_49, x_61); -if (x_62 == 0) +lean_object* x_56; uint8_t x_57; +x_56 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__2; +lean_inc(x_48); +x_57 = l_Lean_Syntax_isOfKind(x_48, x_56); +if (x_57 == 0) { -lean_object* x_63; -lean_dec(x_49); -lean_dec(x_1); -if (lean_is_scalar(x_60)) { - x_63 = lean_alloc_ctor(0, 2, 0); -} else { - x_63 = x_60; -} -lean_ctor_set(x_63, 0, x_58); -lean_ctor_set(x_63, 1, x_59); -return x_63; +lean_dec(x_48); +x_2 = x_49; +goto _start; } else { -lean_object* x_64; lean_object* x_65; -lean_dec(x_60); -x_64 = lean_box(0); -lean_inc(x_49); -x_65 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6(x_58, x_59, x_49, x_1, x_49, x_64); -lean_dec(x_1); -return x_65; +lean_object* x_59; lean_object* x_60; +x_59 = lean_box(0); +lean_inc(x_48); +x_60 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6(x_1, x_49, x_3, x_4, x_48, x_48, x_59); +return x_60; } } else { -lean_object* x_66; lean_object* x_67; lean_object* x_68; -lean_dec(x_1); -x_66 = lean_box(0); -x_67 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_67, 0, x_49); -lean_ctor_set(x_67, 1, x_50); -x_68 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_68, 0, x_66); -lean_ctor_set(x_68, 1, x_67); +lean_object* x_61; lean_object* x_62; lean_object* x_63; +x_61 = lean_unsigned_to_nat(1u); +x_62 = l_Lean_Syntax_getArg(x_48, x_61); +x_63 = l_Lean_Syntax_getOptional_x3f(x_62); +lean_dec(x_62); +if (lean_obj_tag(x_63) == 0) +{ +lean_object* x_64; +x_64 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols_popStack(x_1, x_48, x_49, x_61, x_3, x_4); +return x_64; +} +else +{ +lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; +x_65 = lean_ctor_get(x_63, 0); +lean_inc(x_65); +lean_dec(x_63); +x_66 = l_Lean_Syntax_getId(x_65); +lean_dec(x_65); +x_67 = l_Lean_Name_getNumParts(x_66); +lean_dec(x_66); +x_68 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols_popStack(x_1, x_48, x_49, x_67, x_3, x_4); return x_68; } } +} else { lean_object* x_69; lean_object* x_70; lean_object* x_71; x_69 = lean_unsigned_to_nat(1u); -x_70 = l_Lean_Syntax_getArg(x_49, x_69); +x_70 = l_Lean_Syntax_getArg(x_48, x_69); x_71 = l_Lean_Syntax_getOptional_x3f(x_70); lean_dec(x_70); if (lean_obj_tag(x_71) == 0) { -lean_object* x_72; uint8_t x_73; lean_object* x_74; -x_72 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__8; -x_73 = 2; -lean_inc(x_49); -x_74 = l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols(x_1, x_49, x_50, x_72, x_73, x_49); -return x_74; +lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; +x_72 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__7; +lean_inc(x_48); +x_73 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_73, 0, x_72); +lean_ctor_set(x_73, 1, x_48); +lean_ctor_set(x_73, 2, x_48); +lean_ctor_set(x_73, 3, x_3); +x_74 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_74, 0, x_73); +lean_ctor_set(x_74, 1, x_4); +x_75 = l_Lean_Server_FileWorker_handleCompletion___closed__1; +x_2 = x_49; +x_3 = x_75; +x_4 = x_74; +goto _start; } else { -lean_object* x_75; lean_object* x_76; uint8_t x_77; lean_object* x_78; uint8_t x_79; lean_object* x_80; -x_75 = lean_ctor_get(x_71, 0); -lean_inc(x_75); +lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; +x_77 = lean_ctor_get(x_71, 0); +lean_inc(x_77); lean_dec(x_71); -x_76 = l_Lean_Syntax_getId(x_75); -x_77 = 1; -x_78 = l_Lean_Name_toString(x_76, x_77); -x_79 = 2; -x_80 = l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols(x_1, x_49, x_50, x_78, x_79, x_75); -return x_80; +x_78 = l_Lean_Syntax_getId(x_77); +x_79 = l_Lean_Name_componentsRev(x_78); +x_80 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_80, 0, x_79); +lean_ctor_set(x_80, 1, x_48); +lean_ctor_set(x_80, 2, x_77); +lean_ctor_set(x_80, 3, x_3); +x_81 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_81, 0, x_80); +lean_ctor_set(x_81, 1, x_4); +x_82 = l_Lean_Server_FileWorker_handleCompletion___closed__1; +x_2 = x_49; +x_3 = x_82; +x_4 = x_81; +goto _start; } } } else { -lean_object* x_81; lean_object* x_82; lean_object* x_83; uint8_t x_84; lean_object* x_85; uint8_t x_86; lean_object* x_87; -x_81 = lean_unsigned_to_nat(1u); -x_82 = l_Lean_Syntax_getArg(x_49, x_81); -x_83 = l_Lean_Syntax_getId(x_82); -x_84 = 1; -x_85 = l_Lean_Name_toString(x_83, x_84); -x_86 = 2; -x_87 = l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols(x_1, x_49, x_50, x_85, x_86, x_82); -return x_87; +lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; +x_84 = lean_unsigned_to_nat(1u); +x_85 = l_Lean_Syntax_getArg(x_48, x_84); +x_86 = l_Lean_Syntax_getId(x_85); +x_87 = l_Lean_Name_componentsRev(x_86); +x_88 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_88, 0, x_87); +lean_ctor_set(x_88, 1, x_48); +lean_ctor_set(x_88, 2, x_85); +lean_ctor_set(x_88, 3, x_3); +x_89 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_89, 0, x_88); +lean_ctor_set(x_89, 1, x_4); +x_90 = l_Lean_Server_FileWorker_handleCompletion___closed__1; +x_2 = x_49; +x_3 = x_90; +x_4 = x_89; +goto _start; } } } } } -static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__1() { +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols_popStack(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(2u); -x_2 = lean_mk_empty_array_with_capacity(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__2() { -_start: +if (lean_obj_tag(x_6) == 0) { -lean_object* x_1; -x_1 = lean_mk_string_from_bytes("null", 4); -return x_1; -} -} -static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__2; -x_3 = l_Lean_Name_str___override(x_1, x_2); -return x_3; -} -} -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint8_t x_5, lean_object* x_6) { -_start: -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t 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_inc(x_1); -x_7 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_3); -x_8 = lean_ctor_get(x_7, 0); -lean_inc(x_8); -x_9 = lean_ctor_get(x_7, 1); -lean_inc(x_9); -lean_dec(x_7); -x_10 = lean_unsigned_to_nat(1u); -x_11 = l_List_drop___rarg(x_10, x_9); -lean_inc(x_1); -x_12 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_11); -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -x_14 = lean_ctor_get(x_12, 1); -lean_inc(x_14); -if (lean_is_exclusive(x_12)) { - lean_ctor_release(x_12, 0); - lean_ctor_release(x_12, 1); - x_15 = x_12; -} else { - lean_dec_ref(x_12); - x_15 = lean_box(0); -} -x_16 = l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__1; -lean_inc(x_2); -x_17 = lean_array_push(x_16, x_2); -x_18 = lean_box(0); -x_19 = 0; -x_20 = l_Lean_Syntax_getRange_x3f(x_6, x_19); -x_21 = l_List_redLength___rarg(x_8); -x_22 = lean_mk_empty_array_with_capacity(x_21); -lean_dec(x_21); -x_23 = l_List_toArrayAux___rarg(x_8, x_22); -x_24 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_24, 0, x_23); -if (lean_obj_tag(x_9) == 0) -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_57 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_57, 0, x_2); -lean_ctor_set(x_57, 1, x_9); -x_58 = l_Lean_instInhabitedSyntax; -x_59 = l_List_getLast_x21___rarg(x_58, x_57); -x_25 = x_59; -goto block_56; -} -else -{ -lean_object* x_60; +lean_object* x_7; lean_object* x_8; +lean_dec(x_4); lean_dec(x_2); -x_60 = lean_ctor_get(x_9, 0); -lean_inc(x_60); -lean_dec(x_9); -x_25 = x_60; -goto block_56; -} -block_56: -{ -lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; -x_26 = lean_array_push(x_17, x_25); -x_27 = lean_box(2); -x_28 = l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__3; -x_29 = lean_alloc_ctor(1, 3, 0); -lean_ctor_set(x_29, 0, x_27); -lean_ctor_set(x_29, 1, x_28); -lean_ctor_set(x_29, 2, x_26); -x_30 = l_Lean_Syntax_getRange_x3f(x_29, x_19); -if (lean_obj_tag(x_30) == 0) -{ -lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_31 = l_List_findSomeM_x3f___at_Lean_Server_FileWorker_handleHover___spec__1___closed__4; -x_32 = l_panic___at_Lean_Elab_InfoTree_hoverableInfoAt_x3f___spec__2(x_31); -x_33 = l_String_Range_toLspRange(x_1, x_32); -lean_dec(x_32); -if (lean_obj_tag(x_20) == 0) -{ -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; -lean_dec(x_1); -lean_inc(x_33); -x_34 = lean_alloc_ctor(0, 5, 1); -lean_ctor_set(x_34, 0, x_4); -lean_ctor_set(x_34, 1, x_18); -lean_ctor_set(x_34, 2, x_33); -lean_ctor_set(x_34, 3, x_33); -lean_ctor_set(x_34, 4, x_24); -lean_ctor_set_uint8(x_34, sizeof(void*)*5, x_5); -x_35 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_35, 0, x_34); -x_36 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_36, 0, x_35); -lean_ctor_set(x_36, 1, x_13); -if (lean_is_scalar(x_15)) { - x_37 = lean_alloc_ctor(0, 2, 0); -} else { - x_37 = x_15; -} -lean_ctor_set(x_37, 0, x_36); -lean_ctor_set(x_37, 1, x_14); -return x_37; +x_7 = lean_box(0); +x_8 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_3, x_5, x_7); +return x_8; } else { -lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_38 = lean_ctor_get(x_20, 0); -lean_inc(x_38); -lean_dec(x_20); -x_39 = l_String_Range_toLspRange(x_1, x_38); -lean_dec(x_38); -lean_dec(x_1); -x_40 = lean_alloc_ctor(0, 5, 1); -lean_ctor_set(x_40, 0, x_4); -lean_ctor_set(x_40, 1, x_18); -lean_ctor_set(x_40, 2, x_33); -lean_ctor_set(x_40, 3, x_39); -lean_ctor_set(x_40, 4, x_24); -lean_ctor_set_uint8(x_40, sizeof(void*)*5, x_5); -x_41 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_41, 0, x_40); -x_42 = lean_alloc_ctor(1, 2, 0); +uint8_t x_9; +x_9 = !lean_is_exclusive(x_6); +if (x_9 == 0) +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; uint8_t x_18; +x_10 = lean_ctor_get(x_6, 0); +x_11 = lean_ctor_get(x_6, 1); +x_12 = lean_ctor_get(x_10, 0); +lean_inc(x_12); +x_13 = lean_ctor_get(x_10, 1); +lean_inc(x_13); +x_14 = lean_ctor_get(x_10, 2); +lean_inc(x_14); +x_15 = lean_ctor_get(x_10, 3); +lean_inc(x_15); +x_16 = lean_unsigned_to_nat(0u); +x_17 = l_List_lengthTRAux___rarg(x_12, x_16); +x_18 = lean_nat_dec_eq(x_17, x_4); +if (x_18 == 0) +{ +uint8_t x_19; +x_19 = lean_nat_dec_lt(x_4, x_17); +if (x_19 == 0) +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_free_object(x_6); +lean_inc(x_2); +x_20 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_20, 0, x_2); +x_21 = l_Lean_Server_FileWorker_NamespaceEntry_finish(x_1, x_5, x_20, x_10); +x_22 = lean_nat_sub(x_4, x_17); +lean_dec(x_17); +lean_dec(x_4); +x_4 = x_22; +x_5 = x_21; +x_6 = x_11; +goto _start; +} +else +{ +uint8_t x_24; +lean_dec(x_17); +x_24 = !lean_is_exclusive(x_10); +if (x_24 == 0) +{ +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; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_25 = lean_ctor_get(x_10, 3); +lean_dec(x_25); +x_26 = lean_ctor_get(x_10, 2); +lean_dec(x_26); +x_27 = lean_ctor_get(x_10, 1); +lean_dec(x_27); +x_28 = lean_ctor_get(x_10, 0); +lean_dec(x_28); +x_29 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_29, 0, x_2); +lean_inc(x_12); +x_30 = l_List_take___rarg(x_4, x_12); +x_31 = l_Lean_Server_FileWorker_handleCompletion___closed__1; +lean_inc(x_14); +lean_inc(x_13); +lean_ctor_set(x_10, 3, x_31); +lean_ctor_set(x_10, 0, x_30); +x_32 = l_Lean_Server_FileWorker_NamespaceEntry_finish(x_1, x_5, x_29, x_10); +x_33 = l_List_drop___rarg(x_4, x_12); +lean_dec(x_12); +x_34 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_34, 0, x_33); +lean_ctor_set(x_34, 1, x_13); +lean_ctor_set(x_34, 2, x_14); +lean_ctor_set(x_34, 3, x_15); +lean_ctor_set(x_6, 0, x_34); +x_35 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_3, x_32, x_6); +return x_35; +} +else +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +lean_dec(x_10); +x_36 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_36, 0, x_2); +lean_inc(x_12); +x_37 = l_List_take___rarg(x_4, x_12); +x_38 = l_Lean_Server_FileWorker_handleCompletion___closed__1; +lean_inc(x_14); +lean_inc(x_13); +x_39 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_13); +lean_ctor_set(x_39, 2, x_14); +lean_ctor_set(x_39, 3, x_38); +x_40 = l_Lean_Server_FileWorker_NamespaceEntry_finish(x_1, x_5, x_36, x_39); +x_41 = l_List_drop___rarg(x_4, x_12); +lean_dec(x_12); +x_42 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_42, 0, x_41); lean_ctor_set(x_42, 1, x_13); -if (lean_is_scalar(x_15)) { - x_43 = lean_alloc_ctor(0, 2, 0); -} else { - x_43 = x_15; -} -lean_ctor_set(x_43, 0, x_42); -lean_ctor_set(x_43, 1, x_14); +lean_ctor_set(x_42, 2, x_14); +lean_ctor_set(x_42, 3, x_15); +lean_ctor_set(x_6, 0, x_42); +x_43 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_3, x_40, x_6); return x_43; } } -else -{ -lean_object* x_44; lean_object* x_45; -x_44 = lean_ctor_get(x_30, 0); -lean_inc(x_44); -lean_dec(x_30); -x_45 = l_String_Range_toLspRange(x_1, x_44); -lean_dec(x_44); -if (lean_obj_tag(x_20) == 0) -{ -lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; -lean_dec(x_1); -lean_inc(x_45); -x_46 = lean_alloc_ctor(0, 5, 1); -lean_ctor_set(x_46, 0, x_4); -lean_ctor_set(x_46, 1, x_18); -lean_ctor_set(x_46, 2, x_45); -lean_ctor_set(x_46, 3, x_45); -lean_ctor_set(x_46, 4, x_24); -lean_ctor_set_uint8(x_46, sizeof(void*)*5, x_5); -x_47 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_47, 0, x_46); -x_48 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_48, 0, x_47); -lean_ctor_set(x_48, 1, x_13); -if (lean_is_scalar(x_15)) { - x_49 = lean_alloc_ctor(0, 2, 0); -} else { - x_49 = x_15; -} -lean_ctor_set(x_49, 0, x_48); -lean_ctor_set(x_49, 1, x_14); -return x_49; } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_50 = lean_ctor_get(x_20, 0); +lean_object* x_44; lean_object* x_45; lean_object* x_46; +lean_dec(x_17); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_free_object(x_6); +lean_dec(x_4); +x_44 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_44, 0, x_2); +x_45 = l_Lean_Server_FileWorker_NamespaceEntry_finish(x_1, x_5, x_44, x_10); +x_46 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_3, x_45, x_11); +return x_46; +} +} +else +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; +x_47 = lean_ctor_get(x_6, 0); +x_48 = lean_ctor_get(x_6, 1); +lean_inc(x_48); +lean_inc(x_47); +lean_dec(x_6); +x_49 = lean_ctor_get(x_47, 0); +lean_inc(x_49); +x_50 = lean_ctor_get(x_47, 1); lean_inc(x_50); -lean_dec(x_20); -x_51 = l_String_Range_toLspRange(x_1, x_50); +x_51 = lean_ctor_get(x_47, 2); +lean_inc(x_51); +x_52 = lean_ctor_get(x_47, 3); +lean_inc(x_52); +x_53 = lean_unsigned_to_nat(0u); +x_54 = l_List_lengthTRAux___rarg(x_49, x_53); +x_55 = lean_nat_dec_eq(x_54, x_4); +if (x_55 == 0) +{ +uint8_t x_56; +x_56 = lean_nat_dec_lt(x_4, x_54); +if (x_56 == 0) +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; +lean_dec(x_52); +lean_dec(x_51); lean_dec(x_50); -lean_dec(x_1); -x_52 = lean_alloc_ctor(0, 5, 1); -lean_ctor_set(x_52, 0, x_4); -lean_ctor_set(x_52, 1, x_18); -lean_ctor_set(x_52, 2, x_45); -lean_ctor_set(x_52, 3, x_51); -lean_ctor_set(x_52, 4, x_24); -lean_ctor_set_uint8(x_52, sizeof(void*)*5, x_5); -x_53 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_53, 0, x_52); -x_54 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_54, 0, x_53); -lean_ctor_set(x_54, 1, x_13); -if (lean_is_scalar(x_15)) { - x_55 = lean_alloc_ctor(0, 2, 0); +lean_dec(x_49); +lean_inc(x_2); +x_57 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_57, 0, x_2); +x_58 = l_Lean_Server_FileWorker_NamespaceEntry_finish(x_1, x_5, x_57, x_47); +x_59 = lean_nat_sub(x_4, x_54); +lean_dec(x_54); +lean_dec(x_4); +x_4 = x_59; +x_5 = x_58; +x_6 = x_48; +goto _start; +} +else +{ +lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; +lean_dec(x_54); +if (lean_is_exclusive(x_47)) { + lean_ctor_release(x_47, 0); + lean_ctor_release(x_47, 1); + lean_ctor_release(x_47, 2); + lean_ctor_release(x_47, 3); + x_61 = x_47; } else { - x_55 = x_15; + lean_dec_ref(x_47); + x_61 = lean_box(0); } -lean_ctor_set(x_55, 0, x_54); -lean_ctor_set(x_55, 1, x_14); -return x_55; +x_62 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_62, 0, x_2); +lean_inc(x_49); +x_63 = l_List_take___rarg(x_4, x_49); +x_64 = l_Lean_Server_FileWorker_handleCompletion___closed__1; +lean_inc(x_51); +lean_inc(x_50); +if (lean_is_scalar(x_61)) { + x_65 = lean_alloc_ctor(0, 4, 0); +} else { + x_65 = x_61; +} +lean_ctor_set(x_65, 0, x_63); +lean_ctor_set(x_65, 1, x_50); +lean_ctor_set(x_65, 2, x_51); +lean_ctor_set(x_65, 3, x_64); +x_66 = l_Lean_Server_FileWorker_NamespaceEntry_finish(x_1, x_5, x_62, x_65); +x_67 = l_List_drop___rarg(x_4, x_49); +lean_dec(x_49); +x_68 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_68, 0, x_67); +lean_ctor_set(x_68, 1, x_50); +lean_ctor_set(x_68, 2, x_51); +lean_ctor_set(x_68, 3, x_52); +x_69 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_69, 0, x_68); +lean_ctor_set(x_69, 1, x_48); +x_70 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_3, x_66, x_69); +return x_70; +} +} +else +{ +lean_object* x_71; lean_object* x_72; lean_object* x_73; +lean_dec(x_54); +lean_dec(x_52); +lean_dec(x_51); +lean_dec(x_50); +lean_dec(x_49); +lean_dec(x_4); +x_71 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_71, 0, x_2); +x_72 = l_Lean_Server_FileWorker_NamespaceEntry_finish(x_1, x_5, x_71, x_47); +x_73 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_3, x_72, x_48); +return x_73; } } } } } -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_List_foldl___at_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__1(x_1, x_2, x_3); -lean_dec(x_3); +x_4 = l_List_foldl___at_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___spec__1(x_1, x_2, x_3); +lean_dec(x_1); return x_4; } } +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +lean_object* x_6; +x_6 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__1(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_5); +lean_dec(x_1); +return x_6; +} +} LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { @@ -12209,26 +12581,34 @@ lean_dec(x_3); return x_5; } } -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___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_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___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_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +lean_dec(x_7); +lean_dec(x_1); +return x_8; +} +} +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +lean_object* x_5; +x_5 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_1, x_2, x_3, x_4); +lean_dec(x_1); +return x_5; +} +} +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols_popStack___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) { _start: { lean_object* x_7; -x_7 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_6); -lean_dec(x_4); +x_7 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols_popStack(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_1); return x_7; } } -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___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) { -_start: -{ -uint8_t x_7; lean_object* x_8; -x_7 = lean_unbox(x_5); -lean_dec(x_5); -x_8 = l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols(x_1, x_2, x_3, x_4, x_7, x_6); -return x_8; -} -} LEAN_EXPORT lean_object* l_List_mapTRAux___at_Lean_Server_FileWorker_handleDocumentSymbol___spec__1(lean_object* x_1, lean_object* x_2) { _start: { @@ -12292,30 +12672,20 @@ return x_2; LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleDocumentSymbol___rarg___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { -lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +lean_object* x_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; x_5 = lean_ctor_get(x_2, 0); lean_inc(x_5); lean_dec(x_2); x_6 = lean_box(0); x_7 = l_List_mapTRAux___at_Lean_Server_FileWorker_handleDocumentSymbol___spec__1(x_5, x_6); x_8 = lean_ctor_get(x_1, 0); -lean_inc(x_8); -lean_dec(x_1); x_9 = lean_ctor_get(x_8, 2); -lean_inc(x_9); -lean_dec(x_8); -x_10 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_9, x_7); -x_11 = lean_ctor_get(x_10, 0); -lean_inc(x_11); -lean_dec(x_10); -x_12 = l_List_redLength___rarg(x_11); -x_13 = lean_mk_empty_array_with_capacity(x_12); -lean_dec(x_12); -x_14 = l_List_toArrayAux___rarg(x_11, x_13); -x_15 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_15, 0, x_14); -lean_ctor_set(x_15, 1, x_4); -return x_15; +x_10 = l_Lean_Server_FileWorker_handleCompletion___closed__1; +x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols(x_9, x_7, x_10, x_6); +x_12 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_12, 0, x_11); +lean_ctor_set(x_12, 1, x_4); +return x_12; } } static lean_object* _init_l_Lean_Server_FileWorker_handleDocumentSymbol___rarg___closed__1() { @@ -12370,6 +12740,7 @@ _start: lean_object* x_5; x_5 = l_Lean_Server_FileWorker_handleDocumentSymbol___rarg___lambda__2(x_1, x_2, x_3, x_4); lean_dec(x_3); +lean_dec(x_1); return x_5; } } @@ -15311,8 +15682,10 @@ _start: { if (lean_obj_tag(x_3) == 0) { +if (lean_obj_tag(x_2) == 0) +{ lean_object* x_7; lean_object* x_8; lean_object* x_9; -lean_dec(x_2); +lean_dec(x_5); x_7 = lean_box(0); x_8 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_8, 0, x_7); @@ -15324,232 +15697,234 @@ return x_9; } else { -uint8_t x_10; -x_10 = !lean_is_exclusive(x_3); -if (x_10 == 0) -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_11 = lean_ctor_get(x_3, 0); -x_12 = lean_ctor_get(x_3, 1); -x_13 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__3; +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_10 = lean_ctor_get(x_2, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_2, 1); lean_inc(x_11); -x_14 = l_Lean_Syntax_isOfKind(x_11, x_13); -if (x_14 == 0) -{ -lean_object* x_15; uint8_t x_16; -x_15 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__5; -lean_inc(x_11); -x_16 = l_Lean_Syntax_isOfKind(x_11, x_15); -if (x_16 == 0) -{ -lean_object* x_17; uint8_t x_18; -lean_free_object(x_3); -x_17 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__7; -lean_inc(x_11); -x_18 = l_Lean_Syntax_isOfKind(x_11, x_17); -if (x_18 == 0) -{ -lean_object* x_19; uint8_t x_20; -x_19 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges___closed__2; -lean_inc(x_11); -x_20 = l_Lean_Syntax_isOfKind(x_11, x_19); -if (x_20 == 0) -{ -uint8_t x_21; -lean_inc(x_11); -x_21 = l_Lean_Server_FileWorker_handleFoldingRange_isImport(x_11); -if (x_21 == 0) -{ -lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_22 = l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange(x_1, x_11, x_4, x_5, x_6); -x_23 = lean_ctor_get(x_22, 0); -lean_inc(x_23); -x_24 = lean_ctor_get(x_22, 1); -lean_inc(x_24); -lean_dec(x_22); -x_25 = lean_ctor_get(x_23, 1); -lean_inc(x_25); -lean_dec(x_23); -x_3 = x_12; -x_4 = x_25; -x_6 = x_24; +lean_dec(x_2); +x_12 = lean_ctor_get(x_10, 1); +lean_inc(x_12); +lean_dec(x_10); +x_13 = lean_ctor_get(x_1, 0); +x_14 = lean_string_utf8_byte_size(x_13); +x_15 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_15, 0, x_14); +x_16 = 2; +x_17 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_16, x_12, x_15, x_4, x_5, x_6); +lean_dec(x_12); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_17, 1); +lean_inc(x_19); +lean_dec(x_17); +x_20 = lean_ctor_get(x_18, 1); +lean_inc(x_20); +lean_dec(x_18); +x_21 = lean_box(0); +x_2 = x_11; +x_3 = x_21; +x_4 = x_20; +x_6 = x_19; goto _start; } +} else { -lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; -x_27 = lean_box(0); -x_28 = l_List_spanAux___at_Lean_Server_FileWorker_handleFoldingRange_addRanges___spec__1(x_12, x_27); -x_29 = lean_ctor_get(x_28, 0); -lean_inc(x_29); -x_30 = lean_ctor_get(x_28, 1); -lean_inc(x_30); -lean_dec(x_28); -x_31 = l_List_getLastD___rarg(x_29, x_11); -x_32 = 0; -x_33 = l_Lean_Syntax_getPos_x3f(x_11, x_32); -lean_dec(x_11); -x_34 = l_Lean_Syntax_getTailPos_x3f(x_31, x_32); -x_35 = 1; -x_36 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_35, x_33, x_34, x_4, x_5, x_6); -lean_dec(x_33); -x_37 = lean_ctor_get(x_36, 0); +uint8_t x_23; +x_23 = !lean_is_exclusive(x_3); +if (x_23 == 0) +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; +x_24 = lean_ctor_get(x_3, 0); +x_25 = lean_ctor_get(x_3, 1); +x_26 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__2; +lean_inc(x_24); +x_27 = l_Lean_Syntax_isOfKind(x_24, x_26); +if (x_27 == 0) +{ +lean_object* x_28; uint8_t x_29; +x_28 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__4; +lean_inc(x_24); +x_29 = l_Lean_Syntax_isOfKind(x_24, x_28); +if (x_29 == 0) +{ +lean_object* x_30; uint8_t x_31; +lean_free_object(x_3); +x_30 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__6; +lean_inc(x_24); +x_31 = l_Lean_Syntax_isOfKind(x_24, x_30); +if (x_31 == 0) +{ +lean_object* x_32; uint8_t x_33; +x_32 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges___closed__2; +lean_inc(x_24); +x_33 = l_Lean_Syntax_isOfKind(x_24, x_32); +if (x_33 == 0) +{ +uint8_t x_34; +lean_inc(x_24); +x_34 = l_Lean_Server_FileWorker_handleFoldingRange_isImport(x_24); +if (x_34 == 0) +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_35 = l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange(x_1, x_24, x_4, x_5, x_6); +x_36 = lean_ctor_get(x_35, 0); +lean_inc(x_36); +x_37 = lean_ctor_get(x_35, 1); lean_inc(x_37); +lean_dec(x_35); x_38 = lean_ctor_get(x_36, 1); lean_inc(x_38); lean_dec(x_36); -x_39 = lean_ctor_get(x_37, 1); -lean_inc(x_39); -lean_dec(x_37); -x_3 = x_30; -x_4 = x_39; -x_6 = x_38; +x_3 = x_25; +x_4 = x_38; +x_6 = x_37; goto _start; } -} else { -lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; uint8_t x_46; -x_41 = lean_unsigned_to_nat(1u); -x_42 = l_Lean_Syntax_getArg(x_11, x_41); -x_43 = lean_unsigned_to_nat(3u); -x_44 = l_Lean_Syntax_getArg(x_11, x_43); -x_45 = lean_unsigned_to_nat(0u); -x_46 = l_Lean_Syntax_matchesNull(x_44, x_45); -if (x_46 == 0) -{ -uint8_t x_47; -lean_dec(x_42); -lean_inc(x_11); -x_47 = l_Lean_Server_FileWorker_handleFoldingRange_isImport(x_11); -if (x_47 == 0) -{ -lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_48 = l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange(x_1, x_11, x_4, x_5, x_6); -x_49 = lean_ctor_get(x_48, 0); -lean_inc(x_49); -x_50 = lean_ctor_get(x_48, 1); +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; uint8_t x_45; lean_object* x_46; lean_object* x_47; uint8_t x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_40 = lean_box(0); +x_41 = l_List_spanAux___at_Lean_Server_FileWorker_handleFoldingRange_addRanges___spec__1(x_25, x_40); +x_42 = lean_ctor_get(x_41, 0); +lean_inc(x_42); +x_43 = lean_ctor_get(x_41, 1); +lean_inc(x_43); +lean_dec(x_41); +x_44 = l_List_getLastD___rarg(x_42, x_24); +x_45 = 0; +x_46 = l_Lean_Syntax_getPos_x3f(x_24, x_45); +lean_dec(x_24); +x_47 = l_Lean_Syntax_getTailPos_x3f(x_44, x_45); +x_48 = 1; +x_49 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_48, x_46, x_47, x_4, x_5, x_6); +lean_dec(x_46); +x_50 = lean_ctor_get(x_49, 0); lean_inc(x_50); -lean_dec(x_48); x_51 = lean_ctor_get(x_49, 1); lean_inc(x_51); lean_dec(x_49); -x_3 = x_12; -x_4 = x_51; -x_6 = x_50; +x_52 = lean_ctor_get(x_50, 1); +lean_inc(x_52); +lean_dec(x_50); +x_3 = x_43; +x_4 = x_52; +x_6 = x_51; goto _start; } +} else { -lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; uint8_t x_58; lean_object* x_59; lean_object* x_60; uint8_t x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; -x_53 = lean_box(0); -x_54 = l_List_spanAux___at_Lean_Server_FileWorker_handleFoldingRange_addRanges___spec__1(x_12, x_53); -x_55 = lean_ctor_get(x_54, 0); -lean_inc(x_55); -x_56 = lean_ctor_get(x_54, 1); -lean_inc(x_56); -lean_dec(x_54); -x_57 = l_List_getLastD___rarg(x_55, x_11); -x_58 = 0; -x_59 = l_Lean_Syntax_getPos_x3f(x_11, x_58); -lean_dec(x_11); -x_60 = l_Lean_Syntax_getTailPos_x3f(x_57, x_58); -x_61 = 1; -x_62 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_61, x_59, x_60, x_4, x_5, x_6); -lean_dec(x_59); -x_63 = lean_ctor_get(x_62, 0); +lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; uint8_t x_59; +x_54 = lean_unsigned_to_nat(1u); +x_55 = l_Lean_Syntax_getArg(x_24, x_54); +x_56 = lean_unsigned_to_nat(3u); +x_57 = l_Lean_Syntax_getArg(x_24, x_56); +x_58 = lean_unsigned_to_nat(0u); +x_59 = l_Lean_Syntax_matchesNull(x_57, x_58); +if (x_59 == 0) +{ +uint8_t x_60; +lean_dec(x_55); +lean_inc(x_24); +x_60 = l_Lean_Server_FileWorker_handleFoldingRange_isImport(x_24); +if (x_60 == 0) +{ +lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; +x_61 = l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange(x_1, x_24, x_4, x_5, x_6); +x_62 = lean_ctor_get(x_61, 0); +lean_inc(x_62); +x_63 = lean_ctor_get(x_61, 1); lean_inc(x_63); +lean_dec(x_61); x_64 = lean_ctor_get(x_62, 1); lean_inc(x_64); lean_dec(x_62); -x_65 = lean_ctor_get(x_63, 1); -lean_inc(x_65); -lean_dec(x_63); -x_3 = x_56; -x_4 = x_65; -x_6 = x_64; +x_3 = x_25; +x_4 = x_64; +x_6 = x_63; goto _start; } -} else { -lean_object* x_67; lean_object* x_68; uint8_t x_69; -x_67 = lean_unsigned_to_nat(4u); -x_68 = l_Lean_Syntax_getArg(x_11, x_67); -x_69 = l_Lean_Syntax_matchesNull(x_68, x_45); -if (x_69 == 0) -{ -uint8_t x_70; -lean_dec(x_42); -lean_inc(x_11); -x_70 = l_Lean_Server_FileWorker_handleFoldingRange_isImport(x_11); -if (x_70 == 0) -{ -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; -x_71 = l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange(x_1, x_11, x_4, x_5, x_6); -x_72 = lean_ctor_get(x_71, 0); -lean_inc(x_72); -x_73 = lean_ctor_get(x_71, 1); -lean_inc(x_73); -lean_dec(x_71); -x_74 = lean_ctor_get(x_72, 1); -lean_inc(x_74); +lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; uint8_t x_71; lean_object* x_72; lean_object* x_73; uint8_t x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; +x_66 = lean_box(0); +x_67 = l_List_spanAux___at_Lean_Server_FileWorker_handleFoldingRange_addRanges___spec__1(x_25, x_66); +x_68 = lean_ctor_get(x_67, 0); +lean_inc(x_68); +x_69 = lean_ctor_get(x_67, 1); +lean_inc(x_69); +lean_dec(x_67); +x_70 = l_List_getLastD___rarg(x_68, x_24); +x_71 = 0; +x_72 = l_Lean_Syntax_getPos_x3f(x_24, x_71); +lean_dec(x_24); +x_73 = l_Lean_Syntax_getTailPos_x3f(x_70, x_71); +x_74 = 1; +x_75 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_74, x_72, x_73, x_4, x_5, x_6); lean_dec(x_72); -x_3 = x_12; -x_4 = x_74; -x_6 = x_73; +x_76 = lean_ctor_get(x_75, 0); +lean_inc(x_76); +x_77 = lean_ctor_get(x_75, 1); +lean_inc(x_77); +lean_dec(x_75); +x_78 = lean_ctor_get(x_76, 1); +lean_inc(x_78); +lean_dec(x_76); +x_3 = x_69; +x_4 = x_78; +x_6 = x_77; goto _start; } +} else { -lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; uint8_t x_81; lean_object* x_82; lean_object* x_83; uint8_t x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; -x_76 = lean_box(0); -x_77 = l_List_spanAux___at_Lean_Server_FileWorker_handleFoldingRange_addRanges___spec__1(x_12, x_76); -x_78 = lean_ctor_get(x_77, 0); -lean_inc(x_78); -x_79 = lean_ctor_get(x_77, 1); -lean_inc(x_79); -lean_dec(x_77); -x_80 = l_List_getLastD___rarg(x_78, x_11); -x_81 = 0; -x_82 = l_Lean_Syntax_getPos_x3f(x_11, x_81); -lean_dec(x_11); -x_83 = l_Lean_Syntax_getTailPos_x3f(x_80, x_81); -x_84 = 1; -x_85 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_84, x_82, x_83, x_4, x_5, x_6); -lean_dec(x_82); -x_86 = lean_ctor_get(x_85, 0); +lean_object* x_80; lean_object* x_81; uint8_t x_82; +x_80 = lean_unsigned_to_nat(4u); +x_81 = l_Lean_Syntax_getArg(x_24, x_80); +x_82 = l_Lean_Syntax_matchesNull(x_81, x_58); +if (x_82 == 0) +{ +uint8_t x_83; +lean_dec(x_55); +lean_inc(x_24); +x_83 = l_Lean_Server_FileWorker_handleFoldingRange_isImport(x_24); +if (x_83 == 0) +{ +lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_84 = l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange(x_1, x_24, x_4, x_5, x_6); +x_85 = lean_ctor_get(x_84, 0); +lean_inc(x_85); +x_86 = lean_ctor_get(x_84, 1); lean_inc(x_86); +lean_dec(x_84); x_87 = lean_ctor_get(x_85, 1); lean_inc(x_87); lean_dec(x_85); -x_88 = lean_ctor_get(x_86, 1); -lean_inc(x_88); -lean_dec(x_86); -x_3 = x_79; -x_4 = x_88; -x_6 = x_87; +x_3 = x_25; +x_4 = x_87; +x_6 = x_86; goto _start; } -} else { -lean_object* x_90; uint8_t x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; -x_90 = l_Lean_Syntax_getArgs(x_42); -lean_dec(x_42); -x_91 = 2; -x_92 = l_Lean_Server_FileWorker_handleFoldingRange_addRangeFromSyntax(x_1, x_91, x_11, x_4, x_5, x_6); -x_93 = lean_ctor_get(x_92, 0); -lean_inc(x_93); -x_94 = lean_ctor_get(x_92, 1); -lean_inc(x_94); -lean_dec(x_92); -x_95 = lean_ctor_get(x_93, 1); -lean_inc(x_95); -lean_dec(x_93); -x_96 = lean_box(0); -x_97 = lean_array_to_list(lean_box(0), x_90); -x_98 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges(x_1, x_96, x_97, x_95, x_5, x_94); +lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; uint8_t x_94; lean_object* x_95; lean_object* x_96; uint8_t x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; +x_89 = lean_box(0); +x_90 = l_List_spanAux___at_Lean_Server_FileWorker_handleFoldingRange_addRanges___spec__1(x_25, x_89); +x_91 = lean_ctor_get(x_90, 0); +lean_inc(x_91); +x_92 = lean_ctor_get(x_90, 1); +lean_inc(x_92); +lean_dec(x_90); +x_93 = l_List_getLastD___rarg(x_91, x_24); +x_94 = 0; +x_95 = l_Lean_Syntax_getPos_x3f(x_24, x_94); +lean_dec(x_24); +x_96 = l_Lean_Syntax_getTailPos_x3f(x_93, x_94); +x_97 = 1; +x_98 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_97, x_95, x_96, x_4, x_5, x_6); +lean_dec(x_95); x_99 = lean_ctor_get(x_98, 0); lean_inc(x_99); x_100 = lean_ctor_get(x_98, 1); @@ -15558,340 +15933,334 @@ lean_dec(x_98); x_101 = lean_ctor_get(x_99, 1); lean_inc(x_101); lean_dec(x_99); -x_3 = x_12; +x_3 = x_92; x_4 = x_101; x_6 = x_100; goto _start; } } -} -} else { -if (lean_obj_tag(x_2) == 0) -{ -lean_dec(x_11); -x_3 = x_12; -goto _start; -} -else -{ -lean_object* x_104; lean_object* x_105; uint8_t x_106; lean_object* x_107; uint8_t x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; -x_104 = lean_ctor_get(x_2, 0); -lean_inc(x_104); -x_105 = lean_ctor_get(x_2, 1); -lean_inc(x_105); -lean_dec(x_2); -x_106 = 0; -x_107 = l_Lean_Syntax_getTailPos_x3f(x_11, x_106); -x_108 = 2; -x_109 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_108, x_104, x_107, x_4, x_5, x_6); -lean_dec(x_104); -x_110 = lean_ctor_get(x_109, 0); -lean_inc(x_110); -x_111 = lean_ctor_get(x_109, 1); -lean_inc(x_111); -lean_dec(x_109); -x_112 = lean_ctor_get(x_110, 1); +lean_object* x_103; uint8_t x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; +x_103 = l_Lean_Syntax_getArgs(x_55); +lean_dec(x_55); +x_104 = 2; +x_105 = l_Lean_Server_FileWorker_handleFoldingRange_addRangeFromSyntax(x_1, x_104, x_24, x_4, x_5, x_6); +x_106 = lean_ctor_get(x_105, 0); +lean_inc(x_106); +x_107 = lean_ctor_get(x_105, 1); +lean_inc(x_107); +lean_dec(x_105); +x_108 = lean_ctor_get(x_106, 1); +lean_inc(x_108); +lean_dec(x_106); +x_109 = lean_box(0); +x_110 = lean_array_to_list(lean_box(0), x_103); +lean_inc(x_5); +x_111 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges(x_1, x_109, x_110, x_108, x_5, x_107); +x_112 = lean_ctor_get(x_111, 0); lean_inc(x_112); -lean_dec(x_110); -x_2 = x_105; -x_3 = x_12; -x_4 = x_112; -x_6 = x_111; +x_113 = lean_ctor_get(x_111, 1); +lean_inc(x_113); +lean_dec(x_111); +x_114 = lean_ctor_get(x_112, 1); +lean_inc(x_114); +lean_dec(x_112); +x_3 = x_25; +x_4 = x_114; +x_6 = x_113; goto _start; } } } +} else { -uint8_t x_114; lean_object* x_115; -x_114 = 0; -x_115 = l_Lean_Syntax_getPos_x3f(x_11, x_114); -lean_dec(x_11); +lean_object* x_116; lean_object* x_117; lean_object* x_118; +x_116 = lean_unsigned_to_nat(1u); +x_117 = l_Lean_Syntax_getArg(x_24, x_116); +x_118 = l_Lean_Syntax_getOptional_x3f(x_117); +lean_dec(x_117); +if (lean_obj_tag(x_118) == 0) +{ +lean_object* x_119; +x_119 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges_popRanges(x_1, x_24, x_25, x_116, x_2, x_4, x_5, x_6); +return x_119; +} +else +{ +lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; +x_120 = lean_ctor_get(x_118, 0); +lean_inc(x_120); +lean_dec(x_118); +x_121 = l_Lean_Syntax_getId(x_120); +lean_dec(x_120); +x_122 = l_Lean_Name_getNumParts(x_121); +lean_dec(x_121); +x_123 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges_popRanges(x_1, x_24, x_25, x_122, x_2, x_4, x_5, x_6); +return x_123; +} +} +} +else +{ +lean_object* x_124; lean_object* x_125; lean_object* x_126; uint8_t x_127; lean_object* x_128; +x_124 = lean_unsigned_to_nat(1u); +x_125 = l_Lean_Syntax_getArg(x_24, x_124); +x_126 = l_Lean_Syntax_getOptional_x3f(x_125); +lean_dec(x_125); +x_127 = 0; +x_128 = l_Lean_Syntax_getPos_x3f(x_24, x_127); +lean_dec(x_24); +if (lean_obj_tag(x_126) == 0) +{ +lean_object* x_129; +x_129 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_129, 0, x_124); +lean_ctor_set(x_129, 1, x_128); lean_ctor_set(x_3, 1, x_2); -lean_ctor_set(x_3, 0, x_115); +lean_ctor_set(x_3, 0, x_129); x_2 = x_3; -x_3 = x_12; +x_3 = x_25; goto _start; } -} else { -uint8_t x_117; lean_object* x_118; -x_117 = 0; -x_118 = l_Lean_Syntax_getPos_x3f(x_11, x_117); -lean_dec(x_11); -lean_ctor_set(x_3, 1, x_2); -lean_ctor_set(x_3, 0, x_118); -x_2 = x_3; -x_3 = x_12; -goto _start; -} -} -else -{ -lean_object* x_120; lean_object* x_121; lean_object* x_122; uint8_t x_123; -x_120 = lean_ctor_get(x_3, 0); -x_121 = lean_ctor_get(x_3, 1); -lean_inc(x_121); -lean_inc(x_120); -lean_dec(x_3); -x_122 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__3; -lean_inc(x_120); -x_123 = l_Lean_Syntax_isOfKind(x_120, x_122); -if (x_123 == 0) -{ -lean_object* x_124; uint8_t x_125; -x_124 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__5; -lean_inc(x_120); -x_125 = l_Lean_Syntax_isOfKind(x_120, x_124); -if (x_125 == 0) -{ -lean_object* x_126; uint8_t x_127; -x_126 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__7; -lean_inc(x_120); -x_127 = l_Lean_Syntax_isOfKind(x_120, x_126); -if (x_127 == 0) -{ -lean_object* x_128; uint8_t x_129; -x_128 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges___closed__2; -lean_inc(x_120); -x_129 = l_Lean_Syntax_isOfKind(x_120, x_128); -if (x_129 == 0) -{ -uint8_t x_130; -lean_inc(x_120); -x_130 = l_Lean_Server_FileWorker_handleFoldingRange_isImport(x_120); -if (x_130 == 0) -{ lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; -x_131 = l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange(x_1, x_120, x_4, x_5, x_6); -x_132 = lean_ctor_get(x_131, 0); -lean_inc(x_132); -x_133 = lean_ctor_get(x_131, 1); -lean_inc(x_133); +x_131 = lean_ctor_get(x_126, 0); +lean_inc(x_131); +lean_dec(x_126); +x_132 = l_Lean_Syntax_getId(x_131); lean_dec(x_131); -x_134 = lean_ctor_get(x_132, 1); -lean_inc(x_134); +x_133 = l_Lean_Name_getNumParts(x_132); lean_dec(x_132); -x_3 = x_121; -x_4 = x_134; -x_6 = x_133; +x_134 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_134, 0, x_133); +lean_ctor_set(x_134, 1, x_128); +lean_ctor_set(x_3, 1, x_2); +lean_ctor_set(x_3, 0, x_134); +x_2 = x_3; +x_3 = x_25; goto _start; } +} +} else { -lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; lean_object* x_140; uint8_t x_141; lean_object* x_142; lean_object* x_143; uint8_t x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; -x_136 = lean_box(0); -x_137 = l_List_spanAux___at_Lean_Server_FileWorker_handleFoldingRange_addRanges___spec__1(x_121, x_136); -x_138 = lean_ctor_get(x_137, 0); -lean_inc(x_138); -x_139 = lean_ctor_get(x_137, 1); -lean_inc(x_139); +lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; uint8_t x_140; lean_object* x_141; lean_object* x_142; +x_136 = lean_unsigned_to_nat(1u); +x_137 = l_Lean_Syntax_getArg(x_24, x_136); +x_138 = l_Lean_Syntax_getId(x_137); lean_dec(x_137); -x_140 = l_List_getLastD___rarg(x_138, x_120); -x_141 = 0; -x_142 = l_Lean_Syntax_getPos_x3f(x_120, x_141); -lean_dec(x_120); -x_143 = l_Lean_Syntax_getTailPos_x3f(x_140, x_141); -x_144 = 1; -x_145 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_144, x_142, x_143, x_4, x_5, x_6); -lean_dec(x_142); -x_146 = lean_ctor_get(x_145, 0); -lean_inc(x_146); -x_147 = lean_ctor_get(x_145, 1); -lean_inc(x_147); -lean_dec(x_145); -x_148 = lean_ctor_get(x_146, 1); -lean_inc(x_148); -lean_dec(x_146); -x_3 = x_139; -x_4 = x_148; -x_6 = x_147; +x_139 = l_Lean_Name_getNumParts(x_138); +lean_dec(x_138); +x_140 = 0; +x_141 = l_Lean_Syntax_getPos_x3f(x_24, x_140); +lean_dec(x_24); +x_142 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_142, 0, x_139); +lean_ctor_set(x_142, 1, x_141); +lean_ctor_set(x_3, 1, x_2); +lean_ctor_set(x_3, 0, x_142); +x_2 = x_3; +x_3 = x_25; goto _start; } } else { -lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; uint8_t x_155; -x_150 = lean_unsigned_to_nat(1u); -x_151 = l_Lean_Syntax_getArg(x_120, x_150); -x_152 = lean_unsigned_to_nat(3u); -x_153 = l_Lean_Syntax_getArg(x_120, x_152); -x_154 = lean_unsigned_to_nat(0u); -x_155 = l_Lean_Syntax_matchesNull(x_153, x_154); -if (x_155 == 0) +lean_object* x_144; lean_object* x_145; lean_object* x_146; uint8_t x_147; +x_144 = lean_ctor_get(x_3, 0); +x_145 = lean_ctor_get(x_3, 1); +lean_inc(x_145); +lean_inc(x_144); +lean_dec(x_3); +x_146 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__2; +lean_inc(x_144); +x_147 = l_Lean_Syntax_isOfKind(x_144, x_146); +if (x_147 == 0) { -uint8_t x_156; -lean_dec(x_151); -lean_inc(x_120); -x_156 = l_Lean_Server_FileWorker_handleFoldingRange_isImport(x_120); -if (x_156 == 0) +lean_object* x_148; uint8_t x_149; +x_148 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__4; +lean_inc(x_144); +x_149 = l_Lean_Syntax_isOfKind(x_144, x_148); +if (x_149 == 0) { -lean_object* x_157; lean_object* x_158; lean_object* x_159; lean_object* x_160; -x_157 = l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange(x_1, x_120, x_4, x_5, x_6); -x_158 = lean_ctor_get(x_157, 0); +lean_object* x_150; uint8_t x_151; +x_150 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__6; +lean_inc(x_144); +x_151 = l_Lean_Syntax_isOfKind(x_144, x_150); +if (x_151 == 0) +{ +lean_object* x_152; uint8_t x_153; +x_152 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges___closed__2; +lean_inc(x_144); +x_153 = l_Lean_Syntax_isOfKind(x_144, x_152); +if (x_153 == 0) +{ +uint8_t x_154; +lean_inc(x_144); +x_154 = l_Lean_Server_FileWorker_handleFoldingRange_isImport(x_144); +if (x_154 == 0) +{ +lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; +x_155 = l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange(x_1, x_144, x_4, x_5, x_6); +x_156 = lean_ctor_get(x_155, 0); +lean_inc(x_156); +x_157 = lean_ctor_get(x_155, 1); +lean_inc(x_157); +lean_dec(x_155); +x_158 = lean_ctor_get(x_156, 1); lean_inc(x_158); -x_159 = lean_ctor_get(x_157, 1); -lean_inc(x_159); -lean_dec(x_157); -x_160 = lean_ctor_get(x_158, 1); -lean_inc(x_160); -lean_dec(x_158); -x_3 = x_121; -x_4 = x_160; -x_6 = x_159; +lean_dec(x_156); +x_3 = x_145; +x_4 = x_158; +x_6 = x_157; goto _start; } else { -lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; uint8_t x_167; lean_object* x_168; lean_object* x_169; uint8_t x_170; lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; -x_162 = lean_box(0); -x_163 = l_List_spanAux___at_Lean_Server_FileWorker_handleFoldingRange_addRanges___spec__1(x_121, x_162); -x_164 = lean_ctor_get(x_163, 0); -lean_inc(x_164); -x_165 = lean_ctor_get(x_163, 1); -lean_inc(x_165); -lean_dec(x_163); -x_166 = l_List_getLastD___rarg(x_164, x_120); -x_167 = 0; -x_168 = l_Lean_Syntax_getPos_x3f(x_120, x_167); -lean_dec(x_120); -x_169 = l_Lean_Syntax_getTailPos_x3f(x_166, x_167); -x_170 = 1; -x_171 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_170, x_168, x_169, x_4, x_5, x_6); -lean_dec(x_168); -x_172 = lean_ctor_get(x_171, 0); +lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; uint8_t x_165; lean_object* x_166; lean_object* x_167; uint8_t x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_object* x_172; +x_160 = lean_box(0); +x_161 = l_List_spanAux___at_Lean_Server_FileWorker_handleFoldingRange_addRanges___spec__1(x_145, x_160); +x_162 = lean_ctor_get(x_161, 0); +lean_inc(x_162); +x_163 = lean_ctor_get(x_161, 1); +lean_inc(x_163); +lean_dec(x_161); +x_164 = l_List_getLastD___rarg(x_162, x_144); +x_165 = 0; +x_166 = l_Lean_Syntax_getPos_x3f(x_144, x_165); +lean_dec(x_144); +x_167 = l_Lean_Syntax_getTailPos_x3f(x_164, x_165); +x_168 = 1; +x_169 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_168, x_166, x_167, x_4, x_5, x_6); +lean_dec(x_166); +x_170 = lean_ctor_get(x_169, 0); +lean_inc(x_170); +x_171 = lean_ctor_get(x_169, 1); +lean_inc(x_171); +lean_dec(x_169); +x_172 = lean_ctor_get(x_170, 1); lean_inc(x_172); -x_173 = lean_ctor_get(x_171, 1); -lean_inc(x_173); -lean_dec(x_171); -x_174 = lean_ctor_get(x_172, 1); -lean_inc(x_174); -lean_dec(x_172); -x_3 = x_165; -x_4 = x_174; -x_6 = x_173; +lean_dec(x_170); +x_3 = x_163; +x_4 = x_172; +x_6 = x_171; goto _start; } } else { -lean_object* x_176; lean_object* x_177; uint8_t x_178; -x_176 = lean_unsigned_to_nat(4u); -x_177 = l_Lean_Syntax_getArg(x_120, x_176); -x_178 = l_Lean_Syntax_matchesNull(x_177, x_154); -if (x_178 == 0) -{ -uint8_t x_179; -lean_dec(x_151); -lean_inc(x_120); -x_179 = l_Lean_Server_FileWorker_handleFoldingRange_isImport(x_120); +lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; lean_object* x_178; uint8_t x_179; +x_174 = lean_unsigned_to_nat(1u); +x_175 = l_Lean_Syntax_getArg(x_144, x_174); +x_176 = lean_unsigned_to_nat(3u); +x_177 = l_Lean_Syntax_getArg(x_144, x_176); +x_178 = lean_unsigned_to_nat(0u); +x_179 = l_Lean_Syntax_matchesNull(x_177, x_178); if (x_179 == 0) { -lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; -x_180 = l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange(x_1, x_120, x_4, x_5, x_6); -x_181 = lean_ctor_get(x_180, 0); -lean_inc(x_181); -x_182 = lean_ctor_get(x_180, 1); +uint8_t x_180; +lean_dec(x_175); +lean_inc(x_144); +x_180 = l_Lean_Server_FileWorker_handleFoldingRange_isImport(x_144); +if (x_180 == 0) +{ +lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; +x_181 = l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange(x_1, x_144, x_4, x_5, x_6); +x_182 = lean_ctor_get(x_181, 0); lean_inc(x_182); -lean_dec(x_180); x_183 = lean_ctor_get(x_181, 1); lean_inc(x_183); lean_dec(x_181); -x_3 = x_121; -x_4 = x_183; -x_6 = x_182; +x_184 = lean_ctor_get(x_182, 1); +lean_inc(x_184); +lean_dec(x_182); +x_3 = x_145; +x_4 = x_184; +x_6 = x_183; goto _start; } else { -lean_object* x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; uint8_t x_190; lean_object* x_191; lean_object* x_192; uint8_t x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; -x_185 = lean_box(0); -x_186 = l_List_spanAux___at_Lean_Server_FileWorker_handleFoldingRange_addRanges___spec__1(x_121, x_185); -x_187 = lean_ctor_get(x_186, 0); -lean_inc(x_187); -x_188 = lean_ctor_get(x_186, 1); +lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; uint8_t x_191; lean_object* x_192; lean_object* x_193; uint8_t x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; lean_object* x_198; +x_186 = lean_box(0); +x_187 = l_List_spanAux___at_Lean_Server_FileWorker_handleFoldingRange_addRanges___spec__1(x_145, x_186); +x_188 = lean_ctor_get(x_187, 0); lean_inc(x_188); -lean_dec(x_186); -x_189 = l_List_getLastD___rarg(x_187, x_120); -x_190 = 0; -x_191 = l_Lean_Syntax_getPos_x3f(x_120, x_190); -lean_dec(x_120); -x_192 = l_Lean_Syntax_getTailPos_x3f(x_189, x_190); -x_193 = 1; -x_194 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_193, x_191, x_192, x_4, x_5, x_6); -lean_dec(x_191); -x_195 = lean_ctor_get(x_194, 0); -lean_inc(x_195); -x_196 = lean_ctor_get(x_194, 1); +x_189 = lean_ctor_get(x_187, 1); +lean_inc(x_189); +lean_dec(x_187); +x_190 = l_List_getLastD___rarg(x_188, x_144); +x_191 = 0; +x_192 = l_Lean_Syntax_getPos_x3f(x_144, x_191); +lean_dec(x_144); +x_193 = l_Lean_Syntax_getTailPos_x3f(x_190, x_191); +x_194 = 1; +x_195 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_194, x_192, x_193, x_4, x_5, x_6); +lean_dec(x_192); +x_196 = lean_ctor_get(x_195, 0); lean_inc(x_196); -lean_dec(x_194); x_197 = lean_ctor_get(x_195, 1); lean_inc(x_197); lean_dec(x_195); -x_3 = x_188; -x_4 = x_197; -x_6 = x_196; +x_198 = lean_ctor_get(x_196, 1); +lean_inc(x_198); +lean_dec(x_196); +x_3 = x_189; +x_4 = x_198; +x_6 = x_197; goto _start; } } else { -lean_object* x_199; uint8_t x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_object* x_207; lean_object* x_208; lean_object* x_209; lean_object* x_210; -x_199 = l_Lean_Syntax_getArgs(x_151); -lean_dec(x_151); -x_200 = 2; -x_201 = l_Lean_Server_FileWorker_handleFoldingRange_addRangeFromSyntax(x_1, x_200, x_120, x_4, x_5, x_6); -x_202 = lean_ctor_get(x_201, 0); -lean_inc(x_202); -x_203 = lean_ctor_get(x_201, 1); -lean_inc(x_203); -lean_dec(x_201); -x_204 = lean_ctor_get(x_202, 1); -lean_inc(x_204); -lean_dec(x_202); -x_205 = lean_box(0); -x_206 = lean_array_to_list(lean_box(0), x_199); -x_207 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges(x_1, x_205, x_206, x_204, x_5, x_203); -x_208 = lean_ctor_get(x_207, 0); -lean_inc(x_208); -x_209 = lean_ctor_get(x_207, 1); -lean_inc(x_209); -lean_dec(x_207); -x_210 = lean_ctor_get(x_208, 1); -lean_inc(x_210); -lean_dec(x_208); -x_3 = x_121; -x_4 = x_210; -x_6 = x_209; -goto _start; -} -} -} -} -else +lean_object* x_200; lean_object* x_201; uint8_t x_202; +x_200 = lean_unsigned_to_nat(4u); +x_201 = l_Lean_Syntax_getArg(x_144, x_200); +x_202 = l_Lean_Syntax_matchesNull(x_201, x_178); +if (x_202 == 0) { -if (lean_obj_tag(x_2) == 0) +uint8_t x_203; +lean_dec(x_175); +lean_inc(x_144); +x_203 = l_Lean_Server_FileWorker_handleFoldingRange_isImport(x_144); +if (x_203 == 0) { -lean_dec(x_120); -x_3 = x_121; +lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_object* x_207; +x_204 = l_Lean_Server_FileWorker_handleFoldingRange_addCommandRange(x_1, x_144, x_4, x_5, x_6); +x_205 = lean_ctor_get(x_204, 0); +lean_inc(x_205); +x_206 = lean_ctor_get(x_204, 1); +lean_inc(x_206); +lean_dec(x_204); +x_207 = lean_ctor_get(x_205, 1); +lean_inc(x_207); +lean_dec(x_205); +x_3 = x_145; +x_4 = x_207; +x_6 = x_206; goto _start; } else { -lean_object* x_213; lean_object* x_214; uint8_t x_215; lean_object* x_216; uint8_t x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; -x_213 = lean_ctor_get(x_2, 0); -lean_inc(x_213); -x_214 = lean_ctor_get(x_2, 1); -lean_inc(x_214); -lean_dec(x_2); -x_215 = 0; -x_216 = l_Lean_Syntax_getTailPos_x3f(x_120, x_215); -x_217 = 2; -x_218 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_217, x_213, x_216, x_4, x_5, x_6); -lean_dec(x_213); +lean_object* x_209; lean_object* x_210; lean_object* x_211; lean_object* x_212; lean_object* x_213; uint8_t x_214; lean_object* x_215; lean_object* x_216; uint8_t x_217; lean_object* x_218; lean_object* x_219; lean_object* x_220; lean_object* x_221; +x_209 = lean_box(0); +x_210 = l_List_spanAux___at_Lean_Server_FileWorker_handleFoldingRange_addRanges___spec__1(x_145, x_209); +x_211 = lean_ctor_get(x_210, 0); +lean_inc(x_211); +x_212 = lean_ctor_get(x_210, 1); +lean_inc(x_212); +lean_dec(x_210); +x_213 = l_List_getLastD___rarg(x_211, x_144); +x_214 = 0; +x_215 = l_Lean_Syntax_getPos_x3f(x_144, x_214); +lean_dec(x_144); +x_216 = l_Lean_Syntax_getTailPos_x3f(x_213, x_214); +x_217 = 1; +x_218 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_217, x_215, x_216, x_4, x_5, x_6); +lean_dec(x_215); x_219 = lean_ctor_get(x_218, 0); lean_inc(x_219); x_220 = lean_ctor_get(x_218, 1); @@ -15900,41 +16269,416 @@ lean_dec(x_218); x_221 = lean_ctor_get(x_219, 1); lean_inc(x_221); lean_dec(x_219); -x_2 = x_214; -x_3 = x_121; +x_3 = x_212; x_4 = x_221; x_6 = x_220; goto _start; } } -} else { -uint8_t x_223; lean_object* x_224; lean_object* x_225; -x_223 = 0; -x_224 = l_Lean_Syntax_getPos_x3f(x_120, x_223); -lean_dec(x_120); -x_225 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_225, 0, x_224); -lean_ctor_set(x_225, 1, x_2); -x_2 = x_225; -x_3 = x_121; +lean_object* x_223; uint8_t x_224; lean_object* x_225; lean_object* x_226; lean_object* x_227; lean_object* x_228; lean_object* x_229; lean_object* x_230; lean_object* x_231; lean_object* x_232; lean_object* x_233; lean_object* x_234; +x_223 = l_Lean_Syntax_getArgs(x_175); +lean_dec(x_175); +x_224 = 2; +x_225 = l_Lean_Server_FileWorker_handleFoldingRange_addRangeFromSyntax(x_1, x_224, x_144, x_4, x_5, x_6); +x_226 = lean_ctor_get(x_225, 0); +lean_inc(x_226); +x_227 = lean_ctor_get(x_225, 1); +lean_inc(x_227); +lean_dec(x_225); +x_228 = lean_ctor_get(x_226, 1); +lean_inc(x_228); +lean_dec(x_226); +x_229 = lean_box(0); +x_230 = lean_array_to_list(lean_box(0), x_223); +lean_inc(x_5); +x_231 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges(x_1, x_229, x_230, x_228, x_5, x_227); +x_232 = lean_ctor_get(x_231, 0); +lean_inc(x_232); +x_233 = lean_ctor_get(x_231, 1); +lean_inc(x_233); +lean_dec(x_231); +x_234 = lean_ctor_get(x_232, 1); +lean_inc(x_234); +lean_dec(x_232); +x_3 = x_145; +x_4 = x_234; +x_6 = x_233; goto _start; } } +} +} else { -uint8_t x_227; lean_object* x_228; lean_object* x_229; -x_227 = 0; -x_228 = l_Lean_Syntax_getPos_x3f(x_120, x_227); -lean_dec(x_120); -x_229 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_229, 0, x_228); -lean_ctor_set(x_229, 1, x_2); -x_2 = x_229; -x_3 = x_121; +lean_object* x_236; lean_object* x_237; lean_object* x_238; +x_236 = lean_unsigned_to_nat(1u); +x_237 = l_Lean_Syntax_getArg(x_144, x_236); +x_238 = l_Lean_Syntax_getOptional_x3f(x_237); +lean_dec(x_237); +if (lean_obj_tag(x_238) == 0) +{ +lean_object* x_239; +x_239 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges_popRanges(x_1, x_144, x_145, x_236, x_2, x_4, x_5, x_6); +return x_239; +} +else +{ +lean_object* x_240; lean_object* x_241; lean_object* x_242; lean_object* x_243; +x_240 = lean_ctor_get(x_238, 0); +lean_inc(x_240); +lean_dec(x_238); +x_241 = l_Lean_Syntax_getId(x_240); +lean_dec(x_240); +x_242 = l_Lean_Name_getNumParts(x_241); +lean_dec(x_241); +x_243 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges_popRanges(x_1, x_144, x_145, x_242, x_2, x_4, x_5, x_6); +return x_243; +} +} +} +else +{ +lean_object* x_244; lean_object* x_245; lean_object* x_246; uint8_t x_247; lean_object* x_248; +x_244 = lean_unsigned_to_nat(1u); +x_245 = l_Lean_Syntax_getArg(x_144, x_244); +x_246 = l_Lean_Syntax_getOptional_x3f(x_245); +lean_dec(x_245); +x_247 = 0; +x_248 = l_Lean_Syntax_getPos_x3f(x_144, x_247); +lean_dec(x_144); +if (lean_obj_tag(x_246) == 0) +{ +lean_object* x_249; lean_object* x_250; +x_249 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_249, 0, x_244); +lean_ctor_set(x_249, 1, x_248); +x_250 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_250, 0, x_249); +lean_ctor_set(x_250, 1, x_2); +x_2 = x_250; +x_3 = x_145; goto _start; } +else +{ +lean_object* x_252; lean_object* x_253; lean_object* x_254; lean_object* x_255; lean_object* x_256; +x_252 = lean_ctor_get(x_246, 0); +lean_inc(x_252); +lean_dec(x_246); +x_253 = l_Lean_Syntax_getId(x_252); +lean_dec(x_252); +x_254 = l_Lean_Name_getNumParts(x_253); +lean_dec(x_253); +x_255 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_255, 0, x_254); +lean_ctor_set(x_255, 1, x_248); +x_256 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_256, 0, x_255); +lean_ctor_set(x_256, 1, x_2); +x_2 = x_256; +x_3 = x_145; +goto _start; +} +} +} +else +{ +lean_object* x_258; lean_object* x_259; lean_object* x_260; lean_object* x_261; uint8_t x_262; lean_object* x_263; lean_object* x_264; lean_object* x_265; +x_258 = lean_unsigned_to_nat(1u); +x_259 = l_Lean_Syntax_getArg(x_144, x_258); +x_260 = l_Lean_Syntax_getId(x_259); +lean_dec(x_259); +x_261 = l_Lean_Name_getNumParts(x_260); +lean_dec(x_260); +x_262 = 0; +x_263 = l_Lean_Syntax_getPos_x3f(x_144, x_262); +lean_dec(x_144); +x_264 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_264, 0, x_261); +lean_ctor_set(x_264, 1, x_263); +x_265 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_265, 0, x_264); +lean_ctor_set(x_265, 1, x_2); +x_2 = x_265; +x_3 = x_145; +goto _start; +} +} +} +} +} +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addRanges_popRanges(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: +{ +if (lean_obj_tag(x_5) == 0) +{ +lean_object* x_9; +lean_dec(x_4); +lean_dec(x_2); +x_9 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges(x_1, x_5, x_3, x_6, x_7, x_8); +return x_9; +} +else +{ +uint8_t x_10; +x_10 = !lean_is_exclusive(x_5); +if (x_10 == 0) +{ +lean_object* x_11; uint8_t x_12; +x_11 = lean_ctor_get(x_5, 0); +x_12 = !lean_is_exclusive(x_11); +if (x_12 == 0) +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; +x_13 = lean_ctor_get(x_5, 1); +x_14 = lean_ctor_get(x_11, 0); +x_15 = lean_ctor_get(x_11, 1); +x_16 = lean_nat_dec_eq(x_14, x_4); +if (x_16 == 0) +{ +uint8_t x_17; +x_17 = lean_nat_dec_lt(x_4, x_14); +if (x_17 == 0) +{ +uint8_t x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_free_object(x_11); +lean_free_object(x_5); +x_18 = 0; +lean_inc(x_2); +x_19 = l_Lean_Syntax_getTailPos_x3f(x_2, x_18); +x_20 = 2; +x_21 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_20, x_15, x_19, x_6, x_7, x_8); +lean_dec(x_15); +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_21, 1); +lean_inc(x_23); +lean_dec(x_21); +x_24 = lean_ctor_get(x_22, 1); +lean_inc(x_24); +lean_dec(x_22); +x_25 = lean_nat_sub(x_4, x_14); +lean_dec(x_14); +lean_dec(x_4); +x_4 = x_25; +x_5 = x_13; +x_6 = x_24; +x_8 = x_23; +goto _start; +} +else +{ +lean_object* x_27; lean_object* x_28; +lean_dec(x_2); +x_27 = lean_nat_sub(x_14, x_4); +lean_dec(x_4); +lean_dec(x_14); +lean_ctor_set(x_11, 0, x_27); +x_28 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges(x_1, x_5, x_3, x_6, x_7, x_8); +return x_28; +} +} +else +{ +uint8_t x_29; lean_object* x_30; uint8_t x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; +lean_free_object(x_11); +lean_dec(x_14); +lean_free_object(x_5); +lean_dec(x_4); +x_29 = 0; +x_30 = l_Lean_Syntax_getTailPos_x3f(x_2, x_29); +x_31 = 2; +x_32 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_31, x_15, x_30, x_6, x_7, x_8); +lean_dec(x_15); +x_33 = lean_ctor_get(x_32, 0); +lean_inc(x_33); +x_34 = lean_ctor_get(x_32, 1); +lean_inc(x_34); +lean_dec(x_32); +x_35 = lean_ctor_get(x_33, 1); +lean_inc(x_35); +lean_dec(x_33); +x_36 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges(x_1, x_13, x_3, x_35, x_7, x_34); +return x_36; +} +} +else +{ +lean_object* x_37; lean_object* x_38; lean_object* x_39; uint8_t x_40; +x_37 = lean_ctor_get(x_5, 1); +x_38 = lean_ctor_get(x_11, 0); +x_39 = lean_ctor_get(x_11, 1); +lean_inc(x_39); +lean_inc(x_38); +lean_dec(x_11); +x_40 = lean_nat_dec_eq(x_38, x_4); +if (x_40 == 0) +{ +uint8_t x_41; +x_41 = lean_nat_dec_lt(x_4, x_38); +if (x_41 == 0) +{ +uint8_t x_42; lean_object* x_43; uint8_t x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; +lean_free_object(x_5); +x_42 = 0; +lean_inc(x_2); +x_43 = l_Lean_Syntax_getTailPos_x3f(x_2, x_42); +x_44 = 2; +x_45 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_44, x_39, x_43, x_6, x_7, x_8); +lean_dec(x_39); +x_46 = lean_ctor_get(x_45, 0); +lean_inc(x_46); +x_47 = lean_ctor_get(x_45, 1); +lean_inc(x_47); +lean_dec(x_45); +x_48 = lean_ctor_get(x_46, 1); +lean_inc(x_48); +lean_dec(x_46); +x_49 = lean_nat_sub(x_4, x_38); +lean_dec(x_38); +lean_dec(x_4); +x_4 = x_49; +x_5 = x_37; +x_6 = x_48; +x_8 = x_47; +goto _start; +} +else +{ +lean_object* x_51; lean_object* x_52; lean_object* x_53; +lean_dec(x_2); +x_51 = lean_nat_sub(x_38, x_4); +lean_dec(x_4); +lean_dec(x_38); +x_52 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_52, 0, x_51); +lean_ctor_set(x_52, 1, x_39); +lean_ctor_set(x_5, 0, x_52); +x_53 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges(x_1, x_5, x_3, x_6, x_7, x_8); +return x_53; +} +} +else +{ +uint8_t x_54; lean_object* x_55; uint8_t x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; +lean_dec(x_38); +lean_free_object(x_5); +lean_dec(x_4); +x_54 = 0; +x_55 = l_Lean_Syntax_getTailPos_x3f(x_2, x_54); +x_56 = 2; +x_57 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_56, x_39, x_55, x_6, x_7, x_8); +lean_dec(x_39); +x_58 = lean_ctor_get(x_57, 0); +lean_inc(x_58); +x_59 = lean_ctor_get(x_57, 1); +lean_inc(x_59); +lean_dec(x_57); +x_60 = lean_ctor_get(x_58, 1); +lean_inc(x_60); +lean_dec(x_58); +x_61 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges(x_1, x_37, x_3, x_60, x_7, x_59); +return x_61; +} +} +} +else +{ +lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; uint8_t x_67; +x_62 = lean_ctor_get(x_5, 0); +x_63 = lean_ctor_get(x_5, 1); +lean_inc(x_63); +lean_inc(x_62); +lean_dec(x_5); +x_64 = lean_ctor_get(x_62, 0); +lean_inc(x_64); +x_65 = lean_ctor_get(x_62, 1); +lean_inc(x_65); +if (lean_is_exclusive(x_62)) { + lean_ctor_release(x_62, 0); + lean_ctor_release(x_62, 1); + x_66 = x_62; +} else { + lean_dec_ref(x_62); + x_66 = lean_box(0); +} +x_67 = lean_nat_dec_eq(x_64, x_4); +if (x_67 == 0) +{ +uint8_t x_68; +x_68 = lean_nat_dec_lt(x_4, x_64); +if (x_68 == 0) +{ +uint8_t x_69; lean_object* x_70; uint8_t x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; +lean_dec(x_66); +x_69 = 0; +lean_inc(x_2); +x_70 = l_Lean_Syntax_getTailPos_x3f(x_2, x_69); +x_71 = 2; +x_72 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_71, x_65, x_70, x_6, x_7, x_8); +lean_dec(x_65); +x_73 = lean_ctor_get(x_72, 0); +lean_inc(x_73); +x_74 = lean_ctor_get(x_72, 1); +lean_inc(x_74); +lean_dec(x_72); +x_75 = lean_ctor_get(x_73, 1); +lean_inc(x_75); +lean_dec(x_73); +x_76 = lean_nat_sub(x_4, x_64); +lean_dec(x_64); +lean_dec(x_4); +x_4 = x_76; +x_5 = x_63; +x_6 = x_75; +x_8 = x_74; +goto _start; +} +else +{ +lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; +lean_dec(x_2); +x_78 = lean_nat_sub(x_64, x_4); +lean_dec(x_4); +lean_dec(x_64); +if (lean_is_scalar(x_66)) { + x_79 = lean_alloc_ctor(0, 2, 0); +} else { + x_79 = x_66; +} +lean_ctor_set(x_79, 0, x_78); +lean_ctor_set(x_79, 1, x_65); +x_80 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_80, 0, x_79); +lean_ctor_set(x_80, 1, x_63); +x_81 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges(x_1, x_80, x_3, x_6, x_7, x_8); +return x_81; +} +} +else +{ +uint8_t x_82; lean_object* x_83; uint8_t x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; +lean_dec(x_66); +lean_dec(x_64); +lean_dec(x_4); +x_82 = 0; +x_83 = l_Lean_Syntax_getTailPos_x3f(x_2, x_82); +x_84 = 2; +x_85 = l_Lean_Server_FileWorker_handleFoldingRange_addRange(x_1, x_84, x_65, x_83, x_6, x_7, x_8); +lean_dec(x_65); +x_86 = lean_ctor_get(x_85, 0); +lean_inc(x_86); +x_87 = lean_ctor_get(x_85, 1); +lean_inc(x_87); +lean_dec(x_85); +x_88 = lean_ctor_get(x_86, 1); +lean_inc(x_88); +lean_dec(x_86); +x_89 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges(x_1, x_63, x_3, x_88, x_7, x_87); +return x_89; +} } } } @@ -15944,11 +16688,19 @@ _start: { lean_object* x_7; x_7 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_5); lean_dec(x_1); return x_7; } } +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange_addRanges_popRanges___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) { +_start: +{ +lean_object* x_9; +x_9 = l_Lean_Server_FileWorker_handleFoldingRange_addRanges_popRanges(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_dec(x_1); +return x_9; +} +} LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_handleFoldingRange___rarg___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { @@ -16024,7 +16776,6 @@ _start: { lean_object* x_5; x_5 = l_Lean_Server_FileWorker_handleFoldingRange___rarg___lambda__1(x_1, x_2, x_3, x_4); -lean_dec(x_3); lean_dec(x_1); return x_5; } @@ -16300,7 +17051,7 @@ lean_dec(x_1); return x_4; } } -static lean_object* _init_l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1() { +static lean_object* _init_l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1() { _start: { lean_object* x_1; @@ -16308,7 +17059,7 @@ x_1 = lean_mk_string_from_bytes("Cannot parse request params: ", 29); return x_1; } } -static lean_object* _init_l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2() { +static lean_object* _init_l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2() { _start: { lean_object* x_1; @@ -16316,7 +17067,7 @@ x_1 = lean_mk_string_from_bytes("\n", 1); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2(lean_object* x_1) { _start: { lean_object* x_2; @@ -16330,14 +17081,14 @@ if (x_3 == 0) 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; uint8_t x_13; lean_object* x_14; x_4 = lean_ctor_get(x_2, 0); x_5 = l_Lean_Json_compress(x_1); -x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_7 = lean_string_append(x_6, x_5); lean_dec(x_5); -x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_9 = lean_string_append(x_7, x_8); x_10 = lean_string_append(x_9, x_4); lean_dec(x_4); -x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_11 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = 0; x_14 = lean_alloc_ctor(0, 1, 1); @@ -16353,14 +17104,14 @@ x_15 = lean_ctor_get(x_2, 0); lean_inc(x_15); lean_dec(x_2); x_16 = l_Lean_Json_compress(x_1); -x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_18 = lean_string_append(x_17, x_16); lean_dec(x_16); -x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_20 = lean_string_append(x_18, x_19); x_21 = lean_string_append(x_20, x_15); lean_dec(x_15); -x_22 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_22 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_23 = lean_string_append(x_21, x_22); x_24 = 0; x_25 = lean_alloc_ctor(0, 1, 1); @@ -16393,7 +17144,7 @@ return x_29; } } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -16418,11 +17169,11 @@ return x_7; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2(x_1); +x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2(x_1); if (lean_obj_tag(x_2) == 0) { uint8_t x_3; @@ -16472,7 +17223,7 @@ return x_11; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__2___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__2___closed__1() { _start: { lean_object* x_1; lean_object* x_2; @@ -16481,38 +17232,38 @@ x_2 = l_Lean_Json_mkObj(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__2(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__2(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__2___closed__1; +x_2 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__2___closed__1; return x_2; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__2___boxed), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__2___boxed), 1, 0); return x_1; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3___closed__2() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3___closed__1; +x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3___closed__1; x_2 = lean_alloc_closure((void*)(l_Except_map___rarg), 2, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2(x_2); -x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__3(x_5, x_3, x_4); +x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2(x_2); +x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__3(x_5, x_3, x_4); lean_dec(x_5); if (lean_obj_tag(x_6) == 0) { @@ -16531,7 +17282,7 @@ if (x_10 == 0) { lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; x_11 = lean_ctor_get(x_9, 0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3___closed__2; +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3___closed__2; x_13 = l_Task_Priority_default; x_14 = lean_task_map(x_12, x_11, x_13); lean_ctor_set(x_9, 0, x_14); @@ -16545,7 +17296,7 @@ x_16 = lean_ctor_get(x_9, 1); lean_inc(x_16); lean_inc(x_15); lean_dec(x_9); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3___closed__2; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3___closed__2; x_18 = l_Task_Priority_default; x_19 = lean_task_map(x_17, x_15, x_18); x_20 = lean_alloc_ctor(0, 2, 0); @@ -16603,7 +17354,7 @@ return x_28; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1() { _start: { lean_object* x_1; @@ -16611,28 +17362,28 @@ x_1 = l_Lean_Server_requestHandlers; return x_1; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__2() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__2() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__1), 1, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3), 4, 1); +x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3), 4, 1); lean_closure_set(x_5, 0, x_1); -x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_7 = lean_st_ref_take(x_6, x_4); x_8 = lean_ctor_get(x_7, 0); lean_inc(x_8); x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); -x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__2; +x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__2; x_11 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_11, 0, x_10); lean_ctor_set(x_11, 1, x_5); @@ -16658,7 +17409,7 @@ return x_17; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1() { _start: { lean_object* x_1; @@ -16666,7 +17417,7 @@ x_1 = lean_mk_string_from_bytes("Failed to register LSP request handler for '", return x_1; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2() { _start: { lean_object* x_1; @@ -16674,12 +17425,12 @@ x_1 = lean_mk_string_from_bytes("': already registered", 21); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_dec(x_3); -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_6 = lean_st_ref_get(x_5, x_4); x_7 = !lean_is_exclusive(x_6); if (x_7 == 0) @@ -16694,17 +17445,17 @@ if (x_10 == 0) lean_object* x_11; lean_object* x_12; lean_free_object(x_6); x_11 = lean_box(0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4(x_1, x_2, x_11, x_9); +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4(x_1, x_2, x_11, x_9); return x_12; } else { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_dec(x_1); -x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_14 = lean_string_append(x_13, x_2); lean_dec(x_2); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_16 = lean_string_append(x_14, x_15); x_17 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_17, 0, x_16); @@ -16727,17 +17478,17 @@ if (x_20 == 0) { lean_object* x_21; lean_object* x_22; x_21 = lean_box(0); -x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4(x_1, x_2, x_21, x_19); +x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4(x_1, x_2, x_21, x_19); return x_22; } else { 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_dec(x_1); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_24 = lean_string_append(x_23, x_2); lean_dec(x_2); -x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_26 = lean_string_append(x_24, x_25); x_27 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_27, 0, x_26); @@ -16749,7 +17500,7 @@ return x_28; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1() { _start: { lean_object* x_1; @@ -16757,7 +17508,7 @@ x_1 = lean_mk_string_from_bytes("': only possible during initialization", 38); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; uint8_t x_6; @@ -16776,10 +17527,10 @@ if (x_7 == 0) lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_8 = lean_ctor_get(x_4, 0); lean_dec(x_8); -x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_10 = lean_string_append(x_9, x_1); lean_dec(x_1); -x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_13, 0, x_12); @@ -16793,10 +17544,10 @@ lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean x_14 = lean_ctor_get(x_4, 1); lean_inc(x_14); lean_dec(x_4); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_16 = lean_string_append(x_15, x_1); lean_dec(x_1); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_18 = lean_string_append(x_16, x_17); x_19 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_19, 0, x_18); @@ -16813,12 +17564,12 @@ x_21 = lean_ctor_get(x_4, 1); lean_inc(x_21); lean_dec(x_4); x_22 = lean_box(0); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5(x_2, x_1, x_22, x_21); +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5(x_2, x_1, x_22, x_21); return x_23; } } } -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__5(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__5(lean_object* x_1) { _start: { lean_object* x_2; @@ -16832,14 +17583,14 @@ if (x_3 == 0) 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; uint8_t x_13; lean_object* x_14; x_4 = lean_ctor_get(x_2, 0); x_5 = l_Lean_Json_compress(x_1); -x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_7 = lean_string_append(x_6, x_5); lean_dec(x_5); -x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_9 = lean_string_append(x_7, x_8); x_10 = lean_string_append(x_9, x_4); lean_dec(x_4); -x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_11 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = 0; x_14 = lean_alloc_ctor(0, 1, 1); @@ -16855,14 +17606,14 @@ x_15 = lean_ctor_get(x_2, 0); lean_inc(x_15); lean_dec(x_2); x_16 = l_Lean_Json_compress(x_1); -x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_18 = lean_string_append(x_17, x_16); lean_dec(x_16); -x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_20 = lean_string_append(x_18, x_19); x_21 = lean_string_append(x_20, x_15); lean_dec(x_15); -x_22 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_22 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_23 = lean_string_append(x_21, x_22); x_24 = 0; x_25 = lean_alloc_ctor(0, 1, 1); @@ -16895,7 +17646,7 @@ return x_29; } } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -16920,11 +17671,11 @@ return x_7; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__5(x_1); +x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__5(x_1); if (lean_obj_tag(x_2) == 0) { uint8_t x_3; @@ -16974,7 +17725,7 @@ return x_11; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2___closed__1() { _start: { lean_object* x_1; @@ -16982,22 +17733,22 @@ x_1 = lean_alloc_closure((void*)(l___private_Lean_Data_Lsp_LanguageFeatures_0__L return x_1; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2___closed__2() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2___closed__1; +x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2___closed__1; x_2 = lean_alloc_closure((void*)(l_Except_map___rarg), 2, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__5(x_2); -x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__6(x_5, x_3, x_4); +x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__5(x_2); +x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__6(x_5, x_3, x_4); lean_dec(x_5); if (lean_obj_tag(x_6) == 0) { @@ -17016,7 +17767,7 @@ if (x_10 == 0) { lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; x_11 = lean_ctor_get(x_9, 0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2___closed__2; +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2___closed__2; x_13 = l_Task_Priority_default; x_14 = lean_task_map(x_12, x_11, x_13); lean_ctor_set(x_9, 0, x_14); @@ -17030,7 +17781,7 @@ x_16 = lean_ctor_get(x_9, 1); lean_inc(x_16); lean_inc(x_15); lean_dec(x_9); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2___closed__2; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2___closed__2; x_18 = l_Task_Priority_default; x_19 = lean_task_map(x_17, x_15, x_18); x_20 = lean_alloc_ctor(0, 2, 0); @@ -17088,28 +17839,28 @@ return x_28; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__3___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__3___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__1), 1, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2), 4, 1); +x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2), 4, 1); lean_closure_set(x_5, 0, x_1); -x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_7 = lean_st_ref_take(x_6, x_4); x_8 = lean_ctor_get(x_7, 0); lean_inc(x_8); x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); -x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__3___closed__1; +x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__3___closed__1; x_11 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_11, 0, x_10); lean_ctor_set(x_11, 1, x_5); @@ -17135,12 +17886,12 @@ return x_17; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_dec(x_3); -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_6 = lean_st_ref_get(x_5, x_4); x_7 = !lean_is_exclusive(x_6); if (x_7 == 0) @@ -17155,17 +17906,17 @@ if (x_10 == 0) lean_object* x_11; lean_object* x_12; lean_free_object(x_6); x_11 = lean_box(0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__3(x_1, x_2, x_11, x_9); +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__3(x_1, x_2, x_11, x_9); return x_12; } else { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_dec(x_1); -x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_14 = lean_string_append(x_13, x_2); lean_dec(x_2); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_16 = lean_string_append(x_14, x_15); x_17 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_17, 0, x_16); @@ -17188,17 +17939,17 @@ if (x_20 == 0) { lean_object* x_21; lean_object* x_22; x_21 = lean_box(0); -x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__3(x_1, x_2, x_21, x_19); +x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__3(x_1, x_2, x_21, x_19); return x_22; } else { 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_dec(x_1); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_24 = lean_string_append(x_23, x_2); lean_dec(x_2); -x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_26 = lean_string_append(x_24, x_25); x_27 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_27, 0, x_26); @@ -17210,7 +17961,7 @@ return x_28; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; uint8_t x_6; @@ -17229,10 +17980,10 @@ if (x_7 == 0) lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_8 = lean_ctor_get(x_4, 0); lean_dec(x_8); -x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_10 = lean_string_append(x_9, x_1); lean_dec(x_1); -x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_13, 0, x_12); @@ -17246,10 +17997,10 @@ lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean x_14 = lean_ctor_get(x_4, 1); lean_inc(x_14); lean_dec(x_4); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_16 = lean_string_append(x_15, x_1); lean_dec(x_1); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_18 = lean_string_append(x_16, x_17); x_19 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_19, 0, x_18); @@ -17266,12 +18017,12 @@ x_21 = lean_ctor_get(x_4, 1); lean_inc(x_21); lean_dec(x_4); x_22 = lean_box(0); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__4(x_2, x_1, x_22, x_21); +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__4(x_2, x_1, x_22, x_21); return x_23; } } } -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__8(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__8(lean_object* x_1) { _start: { lean_object* x_2; @@ -17285,14 +18036,14 @@ if (x_3 == 0) 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; uint8_t x_13; lean_object* x_14; x_4 = lean_ctor_get(x_2, 0); x_5 = l_Lean_Json_compress(x_1); -x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_7 = lean_string_append(x_6, x_5); lean_dec(x_5); -x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_9 = lean_string_append(x_7, x_8); x_10 = lean_string_append(x_9, x_4); lean_dec(x_4); -x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_11 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = 0; x_14 = lean_alloc_ctor(0, 1, 1); @@ -17308,14 +18059,14 @@ x_15 = lean_ctor_get(x_2, 0); lean_inc(x_15); lean_dec(x_2); x_16 = l_Lean_Json_compress(x_1); -x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_18 = lean_string_append(x_17, x_16); lean_dec(x_16); -x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_20 = lean_string_append(x_18, x_19); x_21 = lean_string_append(x_20, x_15); lean_dec(x_15); -x_22 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_22 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_23 = lean_string_append(x_21, x_22); x_24 = 0; x_25 = lean_alloc_ctor(0, 1, 1); @@ -17348,7 +18099,7 @@ return x_29; } } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__9(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__9(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -17373,11 +18124,11 @@ return x_7; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__8(x_1); +x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__8(x_1); if (lean_obj_tag(x_2) == 0) { uint8_t x_3; @@ -17427,7 +18178,7 @@ return x_11; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__2(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__2(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -17447,30 +18198,30 @@ return x_4; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__2), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__2), 1, 0); return x_1; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3___closed__2() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3___closed__1; +x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3___closed__1; x_2 = lean_alloc_closure((void*)(l_Except_map___rarg), 2, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__8(x_2); -x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__9(x_5, x_3, x_4); +x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__8(x_2); +x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__9(x_5, x_3, x_4); lean_dec(x_5); if (lean_obj_tag(x_6) == 0) { @@ -17489,7 +18240,7 @@ if (x_10 == 0) { lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; x_11 = lean_ctor_get(x_9, 0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3___closed__2; +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3___closed__2; x_13 = l_Task_Priority_default; x_14 = lean_task_map(x_12, x_11, x_13); lean_ctor_set(x_9, 0, x_14); @@ -17503,7 +18254,7 @@ x_16 = lean_ctor_get(x_9, 1); lean_inc(x_16); lean_inc(x_15); lean_dec(x_9); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3___closed__2; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3___closed__2; x_18 = l_Task_Priority_default; x_19 = lean_task_map(x_17, x_15, x_18); x_20 = lean_alloc_ctor(0, 2, 0); @@ -17561,28 +18312,28 @@ return x_28; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__4___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__4___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__1), 1, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3), 4, 1); +x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3), 4, 1); lean_closure_set(x_5, 0, x_1); -x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_7 = lean_st_ref_take(x_6, x_4); x_8 = lean_ctor_get(x_7, 0); lean_inc(x_8); x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); -x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__4___closed__1; +x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__4___closed__1; x_11 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_11, 0, x_10); lean_ctor_set(x_11, 1, x_5); @@ -17608,12 +18359,12 @@ return x_17; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_dec(x_3); -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_6 = lean_st_ref_get(x_5, x_4); x_7 = !lean_is_exclusive(x_6); if (x_7 == 0) @@ -17628,17 +18379,17 @@ if (x_10 == 0) lean_object* x_11; lean_object* x_12; lean_free_object(x_6); x_11 = lean_box(0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__4(x_1, x_2, x_11, x_9); +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__4(x_1, x_2, x_11, x_9); return x_12; } else { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_dec(x_1); -x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_14 = lean_string_append(x_13, x_2); lean_dec(x_2); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_16 = lean_string_append(x_14, x_15); x_17 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_17, 0, x_16); @@ -17661,17 +18412,17 @@ if (x_20 == 0) { lean_object* x_21; lean_object* x_22; x_21 = lean_box(0); -x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__4(x_1, x_2, x_21, x_19); +x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__4(x_1, x_2, x_21, x_19); return x_22; } else { 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_dec(x_1); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_24 = lean_string_append(x_23, x_2); lean_dec(x_2); -x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_26 = lean_string_append(x_24, x_25); x_27 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_27, 0, x_26); @@ -17683,7 +18434,7 @@ return x_28; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; uint8_t x_6; @@ -17702,10 +18453,10 @@ if (x_7 == 0) lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_8 = lean_ctor_get(x_4, 0); lean_dec(x_8); -x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_10 = lean_string_append(x_9, x_1); lean_dec(x_1); -x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_13, 0, x_12); @@ -17719,10 +18470,10 @@ lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean x_14 = lean_ctor_get(x_4, 1); lean_inc(x_14); lean_dec(x_4); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_16 = lean_string_append(x_15, x_1); lean_dec(x_1); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_18 = lean_string_append(x_16, x_17); x_19 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_19, 0, x_18); @@ -17739,12 +18490,12 @@ x_21 = lean_ctor_get(x_4, 1); lean_inc(x_21); lean_dec(x_4); x_22 = lean_box(0); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__5(x_2, x_1, x_22, x_21); +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__5(x_2, x_1, x_22, x_21); return x_23; } } } -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__11(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__11(lean_object* x_1) { _start: { lean_object* x_2; @@ -17758,14 +18509,14 @@ if (x_3 == 0) 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; uint8_t x_13; lean_object* x_14; x_4 = lean_ctor_get(x_2, 0); x_5 = l_Lean_Json_compress(x_1); -x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_7 = lean_string_append(x_6, x_5); lean_dec(x_5); -x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_9 = lean_string_append(x_7, x_8); x_10 = lean_string_append(x_9, x_4); lean_dec(x_4); -x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_11 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = 0; x_14 = lean_alloc_ctor(0, 1, 1); @@ -17781,14 +18532,14 @@ x_15 = lean_ctor_get(x_2, 0); lean_inc(x_15); lean_dec(x_2); x_16 = l_Lean_Json_compress(x_1); -x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_18 = lean_string_append(x_17, x_16); lean_dec(x_16); -x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_20 = lean_string_append(x_18, x_19); x_21 = lean_string_append(x_20, x_15); lean_dec(x_15); -x_22 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_22 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_23 = lean_string_append(x_21, x_22); x_24 = 0; x_25 = lean_alloc_ctor(0, 1, 1); @@ -17821,7 +18572,7 @@ return x_29; } } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__12(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__12(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -17846,7 +18597,7 @@ return x_7; } } } -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__13(size_t x_1, size_t x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__13(size_t x_1, size_t x_2, lean_object* x_3) { _start: { uint8_t x_4; @@ -17871,11 +18622,11 @@ goto _start; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__11(x_1); +x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__11(x_1); if (lean_obj_tag(x_2) == 0) { uint8_t x_3; @@ -17925,7 +18676,7 @@ return x_11; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__2(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__2(lean_object* x_1) { _start: { lean_object* x_2; size_t x_3; size_t x_4; lean_object* x_5; lean_object* x_6; @@ -17933,36 +18684,36 @@ x_2 = lean_array_get_size(x_1); x_3 = lean_usize_of_nat(x_2); lean_dec(x_2); x_4 = 0; -x_5 = l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__13(x_3, x_4, x_1); +x_5 = l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__13(x_3, x_4, x_1); x_6 = lean_alloc_ctor(4, 1, 0); lean_ctor_set(x_6, 0, x_5); return x_6; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__2), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__2), 1, 0); return x_1; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3___closed__2() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3___closed__1; +x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3___closed__1; x_2 = lean_alloc_closure((void*)(l_Except_map___rarg), 2, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__11(x_2); -x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__12(x_5, x_3, x_4); +x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__11(x_2); +x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__12(x_5, x_3, x_4); lean_dec(x_5); if (lean_obj_tag(x_6) == 0) { @@ -17981,7 +18732,7 @@ if (x_10 == 0) { lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; x_11 = lean_ctor_get(x_9, 0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3___closed__2; +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3___closed__2; x_13 = l_Task_Priority_default; x_14 = lean_task_map(x_12, x_11, x_13); lean_ctor_set(x_9, 0, x_14); @@ -17995,7 +18746,7 @@ x_16 = lean_ctor_get(x_9, 1); lean_inc(x_16); lean_inc(x_15); lean_dec(x_9); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3___closed__2; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3___closed__2; x_18 = l_Task_Priority_default; x_19 = lean_task_map(x_17, x_15, x_18); x_20 = lean_alloc_ctor(0, 2, 0); @@ -18053,28 +18804,28 @@ return x_28; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__4___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__4___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__1), 1, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3), 4, 1); +x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3), 4, 1); lean_closure_set(x_5, 0, x_1); -x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_7 = lean_st_ref_take(x_6, x_4); x_8 = lean_ctor_get(x_7, 0); lean_inc(x_8); x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); -x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__4___closed__1; +x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__4___closed__1; x_11 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_11, 0, x_10); lean_ctor_set(x_11, 1, x_5); @@ -18100,12 +18851,12 @@ return x_17; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_dec(x_3); -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_6 = lean_st_ref_get(x_5, x_4); x_7 = !lean_is_exclusive(x_6); if (x_7 == 0) @@ -18120,17 +18871,17 @@ if (x_10 == 0) lean_object* x_11; lean_object* x_12; lean_free_object(x_6); x_11 = lean_box(0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__4(x_1, x_2, x_11, x_9); +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__4(x_1, x_2, x_11, x_9); return x_12; } else { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_dec(x_1); -x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_14 = lean_string_append(x_13, x_2); lean_dec(x_2); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_16 = lean_string_append(x_14, x_15); x_17 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_17, 0, x_16); @@ -18153,17 +18904,17 @@ if (x_20 == 0) { lean_object* x_21; lean_object* x_22; x_21 = lean_box(0); -x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__4(x_1, x_2, x_21, x_19); +x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__4(x_1, x_2, x_21, x_19); return x_22; } else { 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_dec(x_1); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_24 = lean_string_append(x_23, x_2); lean_dec(x_2); -x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_26 = lean_string_append(x_24, x_25); x_27 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_27, 0, x_26); @@ -18175,7 +18926,7 @@ return x_28; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; uint8_t x_6; @@ -18194,10 +18945,10 @@ if (x_7 == 0) lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_8 = lean_ctor_get(x_4, 0); lean_dec(x_8); -x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_10 = lean_string_append(x_9, x_1); lean_dec(x_1); -x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_13, 0, x_12); @@ -18211,10 +18962,10 @@ lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean x_14 = lean_ctor_get(x_4, 1); lean_inc(x_14); lean_dec(x_4); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_16 = lean_string_append(x_15, x_1); lean_dec(x_1); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_18 = lean_string_append(x_16, x_17); x_19 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_19, 0, x_18); @@ -18231,12 +18982,12 @@ x_21 = lean_ctor_get(x_4, 1); lean_inc(x_21); lean_dec(x_4); x_22 = lean_box(0); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__5(x_2, x_1, x_22, x_21); +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__5(x_2, x_1, x_22, x_21); return x_23; } } } -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__15(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__15(lean_object* x_1) { _start: { lean_object* x_2; @@ -18250,14 +19001,14 @@ if (x_3 == 0) 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; uint8_t x_13; lean_object* x_14; x_4 = lean_ctor_get(x_2, 0); x_5 = l_Lean_Json_compress(x_1); -x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_7 = lean_string_append(x_6, x_5); lean_dec(x_5); -x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_9 = lean_string_append(x_7, x_8); x_10 = lean_string_append(x_9, x_4); lean_dec(x_4); -x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_11 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = 0; x_14 = lean_alloc_ctor(0, 1, 1); @@ -18273,14 +19024,14 @@ x_15 = lean_ctor_get(x_2, 0); lean_inc(x_15); lean_dec(x_2); x_16 = l_Lean_Json_compress(x_1); -x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_18 = lean_string_append(x_17, x_16); lean_dec(x_16); -x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_20 = lean_string_append(x_18, x_19); x_21 = lean_string_append(x_20, x_15); lean_dec(x_15); -x_22 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_22 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_23 = lean_string_append(x_21, x_22); x_24 = 0; x_25 = lean_alloc_ctor(0, 1, 1); @@ -18313,7 +19064,7 @@ return x_29; } } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__16(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__16(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -18338,7 +19089,7 @@ return x_7; } } } -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__17(size_t x_1, size_t x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__17(size_t x_1, size_t x_2, lean_object* x_3) { _start: { uint8_t x_4; @@ -18363,11 +19114,11 @@ goto _start; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__15(x_1); +x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__15(x_1); if (lean_obj_tag(x_2) == 0) { uint8_t x_3; @@ -18417,7 +19168,7 @@ return x_11; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__2(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__2(lean_object* x_1) { _start: { lean_object* x_2; size_t x_3; size_t x_4; lean_object* x_5; lean_object* x_6; @@ -18425,36 +19176,36 @@ x_2 = lean_array_get_size(x_1); x_3 = lean_usize_of_nat(x_2); lean_dec(x_2); x_4 = 0; -x_5 = l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__17(x_3, x_4, x_1); +x_5 = l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__17(x_3, x_4, x_1); x_6 = lean_alloc_ctor(4, 1, 0); lean_ctor_set(x_6, 0, x_5); return x_6; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__2), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__2), 1, 0); return x_1; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3___closed__2() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3___closed__1; +x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3___closed__1; x_2 = lean_alloc_closure((void*)(l_Except_map___rarg), 2, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__15(x_2); -x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__16(x_5, x_3, x_4); +x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__15(x_2); +x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__16(x_5, x_3, x_4); lean_dec(x_5); if (lean_obj_tag(x_6) == 0) { @@ -18473,7 +19224,7 @@ if (x_10 == 0) { lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; x_11 = lean_ctor_get(x_9, 0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3___closed__2; +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3___closed__2; x_13 = l_Task_Priority_default; x_14 = lean_task_map(x_12, x_11, x_13); lean_ctor_set(x_9, 0, x_14); @@ -18487,7 +19238,7 @@ x_16 = lean_ctor_get(x_9, 1); lean_inc(x_16); lean_inc(x_15); lean_dec(x_9); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3___closed__2; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3___closed__2; x_18 = l_Task_Priority_default; x_19 = lean_task_map(x_17, x_15, x_18); x_20 = lean_alloc_ctor(0, 2, 0); @@ -18545,28 +19296,28 @@ return x_28; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__4___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__4___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__1), 1, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3), 4, 1); +x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3), 4, 1); lean_closure_set(x_5, 0, x_1); -x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_7 = lean_st_ref_take(x_6, x_4); x_8 = lean_ctor_get(x_7, 0); lean_inc(x_8); x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); -x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__4___closed__1; +x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__4___closed__1; x_11 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_11, 0, x_10); lean_ctor_set(x_11, 1, x_5); @@ -18592,12 +19343,12 @@ return x_17; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_dec(x_3); -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_6 = lean_st_ref_get(x_5, x_4); x_7 = !lean_is_exclusive(x_6); if (x_7 == 0) @@ -18612,17 +19363,17 @@ if (x_10 == 0) lean_object* x_11; lean_object* x_12; lean_free_object(x_6); x_11 = lean_box(0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__4(x_1, x_2, x_11, x_9); +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__4(x_1, x_2, x_11, x_9); return x_12; } else { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_dec(x_1); -x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_14 = lean_string_append(x_13, x_2); lean_dec(x_2); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_16 = lean_string_append(x_14, x_15); x_17 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_17, 0, x_16); @@ -18645,17 +19396,17 @@ if (x_20 == 0) { lean_object* x_21; lean_object* x_22; x_21 = lean_box(0); -x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__4(x_1, x_2, x_21, x_19); +x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__4(x_1, x_2, x_21, x_19); return x_22; } else { 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_dec(x_1); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_24 = lean_string_append(x_23, x_2); lean_dec(x_2); -x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_26 = lean_string_append(x_24, x_25); x_27 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_27, 0, x_26); @@ -18667,7 +19418,7 @@ return x_28; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; uint8_t x_6; @@ -18686,10 +19437,10 @@ if (x_7 == 0) lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_8 = lean_ctor_get(x_4, 0); lean_dec(x_8); -x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_10 = lean_string_append(x_9, x_1); lean_dec(x_1); -x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_13, 0, x_12); @@ -18703,10 +19454,10 @@ lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean x_14 = lean_ctor_get(x_4, 1); lean_inc(x_14); lean_dec(x_4); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_16 = lean_string_append(x_15, x_1); lean_dec(x_1); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_18 = lean_string_append(x_16, x_17); x_19 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_19, 0, x_18); @@ -18723,12 +19474,12 @@ x_21 = lean_ctor_get(x_4, 1); lean_inc(x_21); lean_dec(x_4); x_22 = lean_box(0); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__5(x_2, x_1, x_22, x_21); +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__5(x_2, x_1, x_22, x_21); return x_23; } } } -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__19(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__19(lean_object* x_1) { _start: { lean_object* x_2; @@ -18742,14 +19493,14 @@ if (x_3 == 0) 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; uint8_t x_13; lean_object* x_14; x_4 = lean_ctor_get(x_2, 0); x_5 = l_Lean_Json_compress(x_1); -x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_7 = lean_string_append(x_6, x_5); lean_dec(x_5); -x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_9 = lean_string_append(x_7, x_8); x_10 = lean_string_append(x_9, x_4); lean_dec(x_4); -x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_11 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = 0; x_14 = lean_alloc_ctor(0, 1, 1); @@ -18765,14 +19516,14 @@ x_15 = lean_ctor_get(x_2, 0); lean_inc(x_15); lean_dec(x_2); x_16 = l_Lean_Json_compress(x_1); -x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_18 = lean_string_append(x_17, x_16); lean_dec(x_16); -x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_20 = lean_string_append(x_18, x_19); x_21 = lean_string_append(x_20, x_15); lean_dec(x_15); -x_22 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_22 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_23 = lean_string_append(x_21, x_22); x_24 = 0; x_25 = lean_alloc_ctor(0, 1, 1); @@ -18805,7 +19556,7 @@ return x_29; } } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__20(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__20(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -18830,11 +19581,11 @@ return x_7; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__19(x_1); +x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__19(x_1); if (lean_obj_tag(x_2) == 0) { uint8_t x_3; @@ -18875,7 +19626,7 @@ return x_8; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__2(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__2(lean_object* x_1) { _start: { lean_object* x_2; size_t x_3; size_t x_4; lean_object* x_5; lean_object* x_6; @@ -18889,30 +19640,30 @@ lean_ctor_set(x_6, 0, x_5); return x_6; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__2), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__2), 1, 0); return x_1; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3___closed__2() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3___closed__1; +x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3___closed__1; x_2 = lean_alloc_closure((void*)(l_Except_map___rarg), 2, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__19(x_2); -x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__20(x_5, x_3, x_4); +x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__19(x_2); +x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__20(x_5, x_3, x_4); lean_dec(x_5); if (lean_obj_tag(x_6) == 0) { @@ -18931,7 +19682,7 @@ if (x_10 == 0) { lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; x_11 = lean_ctor_get(x_9, 0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3___closed__2; +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3___closed__2; x_13 = l_Task_Priority_default; x_14 = lean_task_map(x_12, x_11, x_13); lean_ctor_set(x_9, 0, x_14); @@ -18945,7 +19696,7 @@ x_16 = lean_ctor_get(x_9, 1); lean_inc(x_16); lean_inc(x_15); lean_dec(x_9); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3___closed__2; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3___closed__2; x_18 = l_Task_Priority_default; x_19 = lean_task_map(x_17, x_15, x_18); x_20 = lean_alloc_ctor(0, 2, 0); @@ -19003,28 +19754,28 @@ return x_28; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__4___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__4___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__1), 1, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3), 4, 1); +x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3), 4, 1); lean_closure_set(x_5, 0, x_1); -x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_7 = lean_st_ref_take(x_6, x_4); x_8 = lean_ctor_get(x_7, 0); lean_inc(x_8); x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); -x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__4___closed__1; +x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__4___closed__1; x_11 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_11, 0, x_10); lean_ctor_set(x_11, 1, x_5); @@ -19050,12 +19801,12 @@ return x_17; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_dec(x_3); -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_6 = lean_st_ref_get(x_5, x_4); x_7 = !lean_is_exclusive(x_6); if (x_7 == 0) @@ -19070,17 +19821,17 @@ if (x_10 == 0) lean_object* x_11; lean_object* x_12; lean_free_object(x_6); x_11 = lean_box(0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__4(x_1, x_2, x_11, x_9); +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__4(x_1, x_2, x_11, x_9); return x_12; } else { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_dec(x_1); -x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_14 = lean_string_append(x_13, x_2); lean_dec(x_2); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_16 = lean_string_append(x_14, x_15); x_17 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_17, 0, x_16); @@ -19103,17 +19854,17 @@ if (x_20 == 0) { lean_object* x_21; lean_object* x_22; x_21 = lean_box(0); -x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__4(x_1, x_2, x_21, x_19); +x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__4(x_1, x_2, x_21, x_19); return x_22; } else { 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_dec(x_1); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_24 = lean_string_append(x_23, x_2); lean_dec(x_2); -x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_26 = lean_string_append(x_24, x_25); x_27 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_27, 0, x_26); @@ -19125,7 +19876,7 @@ return x_28; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; uint8_t x_6; @@ -19144,10 +19895,10 @@ if (x_7 == 0) lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_8 = lean_ctor_get(x_4, 0); lean_dec(x_8); -x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_10 = lean_string_append(x_9, x_1); lean_dec(x_1); -x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_13, 0, x_12); @@ -19161,10 +19912,10 @@ lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean x_14 = lean_ctor_get(x_4, 1); lean_inc(x_14); lean_dec(x_4); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_16 = lean_string_append(x_15, x_1); lean_dec(x_1); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_18 = lean_string_append(x_16, x_17); x_19 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_19, 0, x_18); @@ -19181,12 +19932,12 @@ x_21 = lean_ctor_get(x_4, 1); lean_inc(x_21); lean_dec(x_4); x_22 = lean_box(0); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__5(x_2, x_1, x_22, x_21); +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__5(x_2, x_1, x_22, x_21); return x_23; } } } -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__22(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__22(lean_object* x_1) { _start: { lean_object* x_2; @@ -19200,14 +19951,14 @@ if (x_3 == 0) 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; uint8_t x_13; lean_object* x_14; x_4 = lean_ctor_get(x_2, 0); x_5 = l_Lean_Json_compress(x_1); -x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_7 = lean_string_append(x_6, x_5); lean_dec(x_5); -x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_9 = lean_string_append(x_7, x_8); x_10 = lean_string_append(x_9, x_4); lean_dec(x_4); -x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_11 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = 0; x_14 = lean_alloc_ctor(0, 1, 1); @@ -19223,14 +19974,14 @@ x_15 = lean_ctor_get(x_2, 0); lean_inc(x_15); lean_dec(x_2); x_16 = l_Lean_Json_compress(x_1); -x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_18 = lean_string_append(x_17, x_16); lean_dec(x_16); -x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_20 = lean_string_append(x_18, x_19); x_21 = lean_string_append(x_20, x_15); lean_dec(x_15); -x_22 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_22 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_23 = lean_string_append(x_21, x_22); x_24 = 0; x_25 = lean_alloc_ctor(0, 1, 1); @@ -19263,7 +20014,7 @@ return x_29; } } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__23(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__23(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -19288,11 +20039,11 @@ return x_7; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__22(x_1); +x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__22(x_1); if (lean_obj_tag(x_2) == 0) { uint8_t x_3; @@ -19333,7 +20084,7 @@ return x_8; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__1() { _start: { lean_object* x_1; @@ -19341,22 +20092,22 @@ x_1 = lean_alloc_closure((void*)(l___private_Lean_Data_Lsp_LanguageFeatures_0__L return x_1; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__2() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__1; +x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__1; x_2 = lean_alloc_closure((void*)(l_Except_map___rarg), 2, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__22(x_2); -x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__23(x_5, x_3, x_4); +x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__22(x_2); +x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__23(x_5, x_3, x_4); lean_dec(x_5); if (lean_obj_tag(x_6) == 0) { @@ -19375,7 +20126,7 @@ if (x_10 == 0) { lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; x_11 = lean_ctor_get(x_9, 0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__2; +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__2; x_13 = l_Task_Priority_default; x_14 = lean_task_map(x_12, x_11, x_13); lean_ctor_set(x_9, 0, x_14); @@ -19389,7 +20140,7 @@ x_16 = lean_ctor_get(x_9, 1); lean_inc(x_16); lean_inc(x_15); lean_dec(x_9); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__2; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__2; x_18 = l_Task_Priority_default; x_19 = lean_task_map(x_17, x_15, x_18); x_20 = lean_alloc_ctor(0, 2, 0); @@ -19447,28 +20198,28 @@ return x_28; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__3___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__3___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__1), 1, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2), 4, 1); +x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2), 4, 1); lean_closure_set(x_5, 0, x_1); -x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_7 = lean_st_ref_take(x_6, x_4); x_8 = lean_ctor_get(x_7, 0); lean_inc(x_8); x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); -x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__3___closed__1; +x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__3___closed__1; x_11 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_11, 0, x_10); lean_ctor_set(x_11, 1, x_5); @@ -19494,12 +20245,12 @@ return x_17; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_dec(x_3); -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_6 = lean_st_ref_get(x_5, x_4); x_7 = !lean_is_exclusive(x_6); if (x_7 == 0) @@ -19514,17 +20265,17 @@ if (x_10 == 0) lean_object* x_11; lean_object* x_12; lean_free_object(x_6); x_11 = lean_box(0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__3(x_1, x_2, x_11, x_9); +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__3(x_1, x_2, x_11, x_9); return x_12; } else { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_dec(x_1); -x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_14 = lean_string_append(x_13, x_2); lean_dec(x_2); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_16 = lean_string_append(x_14, x_15); x_17 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_17, 0, x_16); @@ -19547,17 +20298,17 @@ if (x_20 == 0) { lean_object* x_21; lean_object* x_22; x_21 = lean_box(0); -x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__3(x_1, x_2, x_21, x_19); +x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__3(x_1, x_2, x_21, x_19); return x_22; } else { 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_dec(x_1); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_24 = lean_string_append(x_23, x_2); lean_dec(x_2); -x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_26 = lean_string_append(x_24, x_25); x_27 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_27, 0, x_26); @@ -19569,7 +20320,7 @@ return x_28; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; uint8_t x_6; @@ -19588,10 +20339,10 @@ if (x_7 == 0) lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_8 = lean_ctor_get(x_4, 0); lean_dec(x_8); -x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_10 = lean_string_append(x_9, x_1); lean_dec(x_1); -x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_13, 0, x_12); @@ -19605,10 +20356,10 @@ lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean x_14 = lean_ctor_get(x_4, 1); lean_inc(x_14); lean_dec(x_4); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_16 = lean_string_append(x_15, x_1); lean_dec(x_1); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_18 = lean_string_append(x_16, x_17); x_19 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_19, 0, x_18); @@ -19625,12 +20376,12 @@ x_21 = lean_ctor_get(x_4, 1); lean_inc(x_21); lean_dec(x_4); x_22 = lean_box(0); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__4(x_2, x_1, x_22, x_21); +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__4(x_2, x_1, x_22, x_21); return x_23; } } } -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__25(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__25(lean_object* x_1) { _start: { lean_object* x_2; @@ -19644,14 +20395,14 @@ if (x_3 == 0) 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; uint8_t x_13; lean_object* x_14; x_4 = lean_ctor_get(x_2, 0); x_5 = l_Lean_Json_compress(x_1); -x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_7 = lean_string_append(x_6, x_5); lean_dec(x_5); -x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_9 = lean_string_append(x_7, x_8); x_10 = lean_string_append(x_9, x_4); lean_dec(x_4); -x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_11 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = 0; x_14 = lean_alloc_ctor(0, 1, 1); @@ -19667,14 +20418,14 @@ x_15 = lean_ctor_get(x_2, 0); lean_inc(x_15); lean_dec(x_2); x_16 = l_Lean_Json_compress(x_1); -x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_18 = lean_string_append(x_17, x_16); lean_dec(x_16); -x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_20 = lean_string_append(x_18, x_19); x_21 = lean_string_append(x_20, x_15); lean_dec(x_15); -x_22 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_22 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_23 = lean_string_append(x_21, x_22); x_24 = 0; x_25 = lean_alloc_ctor(0, 1, 1); @@ -19707,7 +20458,7 @@ return x_29; } } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__26(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__26(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -19732,11 +20483,11 @@ return x_7; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__25(x_1); +x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__25(x_1); if (lean_obj_tag(x_2) == 0) { uint8_t x_3; @@ -19786,12 +20537,12 @@ return x_11; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__25(x_2); -x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__26(x_5, x_3, x_4); +x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__25(x_2); +x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__26(x_5, x_3, x_4); lean_dec(x_5); if (lean_obj_tag(x_6) == 0) { @@ -19810,7 +20561,7 @@ if (x_10 == 0) { lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; x_11 = lean_ctor_get(x_9, 0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__2; +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__2; x_13 = l_Task_Priority_default; x_14 = lean_task_map(x_12, x_11, x_13); lean_ctor_set(x_9, 0, x_14); @@ -19824,7 +20575,7 @@ x_16 = lean_ctor_get(x_9, 1); lean_inc(x_16); lean_inc(x_15); lean_dec(x_9); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__2; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__2; x_18 = l_Task_Priority_default; x_19 = lean_task_map(x_17, x_15, x_18); x_20 = lean_alloc_ctor(0, 2, 0); @@ -19882,28 +20633,28 @@ return x_28; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__3___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__3___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__1), 1, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__2), 4, 1); +x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__2), 4, 1); lean_closure_set(x_5, 0, x_1); -x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_7 = lean_st_ref_take(x_6, x_4); x_8 = lean_ctor_get(x_7, 0); lean_inc(x_8); x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); -x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__3___closed__1; +x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__3___closed__1; x_11 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_11, 0, x_10); lean_ctor_set(x_11, 1, x_5); @@ -19929,12 +20680,12 @@ return x_17; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_dec(x_3); -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_6 = lean_st_ref_get(x_5, x_4); x_7 = !lean_is_exclusive(x_6); if (x_7 == 0) @@ -19949,17 +20700,17 @@ if (x_10 == 0) lean_object* x_11; lean_object* x_12; lean_free_object(x_6); x_11 = lean_box(0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__3(x_1, x_2, x_11, x_9); +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__3(x_1, x_2, x_11, x_9); return x_12; } else { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_dec(x_1); -x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_14 = lean_string_append(x_13, x_2); lean_dec(x_2); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_16 = lean_string_append(x_14, x_15); x_17 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_17, 0, x_16); @@ -19982,17 +20733,17 @@ if (x_20 == 0) { lean_object* x_21; lean_object* x_22; x_21 = lean_box(0); -x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__3(x_1, x_2, x_21, x_19); +x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__3(x_1, x_2, x_21, x_19); return x_22; } else { 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_dec(x_1); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_24 = lean_string_append(x_23, x_2); lean_dec(x_2); -x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_26 = lean_string_append(x_24, x_25); x_27 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_27, 0, x_26); @@ -20004,7 +20755,7 @@ return x_28; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; uint8_t x_6; @@ -20023,10 +20774,10 @@ if (x_7 == 0) lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_8 = lean_ctor_get(x_4, 0); lean_dec(x_8); -x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_10 = lean_string_append(x_9, x_1); lean_dec(x_1); -x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_13, 0, x_12); @@ -20040,10 +20791,10 @@ lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean x_14 = lean_ctor_get(x_4, 1); lean_inc(x_14); lean_dec(x_4); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_16 = lean_string_append(x_15, x_1); lean_dec(x_1); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_18 = lean_string_append(x_16, x_17); x_19 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_19, 0, x_18); @@ -20060,12 +20811,12 @@ x_21 = lean_ctor_get(x_4, 1); lean_inc(x_21); lean_dec(x_4); x_22 = lean_box(0); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__4(x_2, x_1, x_22, x_21); +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__4(x_2, x_1, x_22, x_21); return x_23; } } } -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__28(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__28(lean_object* x_1) { _start: { lean_object* x_2; @@ -20079,14 +20830,14 @@ if (x_3 == 0) 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; uint8_t x_13; lean_object* x_14; x_4 = lean_ctor_get(x_2, 0); x_5 = l_Lean_Json_compress(x_1); -x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_7 = lean_string_append(x_6, x_5); lean_dec(x_5); -x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_9 = lean_string_append(x_7, x_8); x_10 = lean_string_append(x_9, x_4); lean_dec(x_4); -x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_11 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = 0; x_14 = lean_alloc_ctor(0, 1, 1); @@ -20102,14 +20853,14 @@ x_15 = lean_ctor_get(x_2, 0); lean_inc(x_15); lean_dec(x_2); x_16 = l_Lean_Json_compress(x_1); -x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_18 = lean_string_append(x_17, x_16); lean_dec(x_16); -x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_20 = lean_string_append(x_18, x_19); x_21 = lean_string_append(x_20, x_15); lean_dec(x_15); -x_22 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_22 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_23 = lean_string_append(x_21, x_22); x_24 = 0; x_25 = lean_alloc_ctor(0, 1, 1); @@ -20142,7 +20893,7 @@ return x_29; } } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__29(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__29(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -20167,7 +20918,7 @@ return x_7; } } } -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__30(size_t x_1, size_t x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__30(size_t x_1, size_t x_2, lean_object* x_3) { _start: { uint8_t x_4; @@ -20192,11 +20943,11 @@ goto _start; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__28(x_1); +x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__28(x_1); if (lean_obj_tag(x_2) == 0) { uint8_t x_3; @@ -20237,7 +20988,7 @@ return x_8; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__2(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__2(lean_object* x_1) { _start: { lean_object* x_2; size_t x_3; size_t x_4; lean_object* x_5; lean_object* x_6; @@ -20245,36 +20996,36 @@ x_2 = lean_array_get_size(x_1); x_3 = lean_usize_of_nat(x_2); lean_dec(x_2); x_4 = 0; -x_5 = l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__30(x_3, x_4, x_1); +x_5 = l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__30(x_3, x_4, x_1); x_6 = lean_alloc_ctor(4, 1, 0); lean_ctor_set(x_6, 0, x_5); return x_6; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__2), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__2), 1, 0); return x_1; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3___closed__2() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3___closed__1; +x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3___closed__1; x_2 = lean_alloc_closure((void*)(l_Except_map___rarg), 2, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__28(x_2); -x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__29(x_5, x_3, x_4); +x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__28(x_2); +x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__29(x_5, x_3, x_4); lean_dec(x_5); if (lean_obj_tag(x_6) == 0) { @@ -20293,7 +21044,7 @@ if (x_10 == 0) { lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; x_11 = lean_ctor_get(x_9, 0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3___closed__2; +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3___closed__2; x_13 = l_Task_Priority_default; x_14 = lean_task_map(x_12, x_11, x_13); lean_ctor_set(x_9, 0, x_14); @@ -20307,7 +21058,7 @@ x_16 = lean_ctor_get(x_9, 1); lean_inc(x_16); lean_inc(x_15); lean_dec(x_9); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3___closed__2; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3___closed__2; x_18 = l_Task_Priority_default; x_19 = lean_task_map(x_17, x_15, x_18); x_20 = lean_alloc_ctor(0, 2, 0); @@ -20365,28 +21116,28 @@ return x_28; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__4___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__4___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__1), 1, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3), 4, 1); +x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3), 4, 1); lean_closure_set(x_5, 0, x_1); -x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_7 = lean_st_ref_take(x_6, x_4); x_8 = lean_ctor_get(x_7, 0); lean_inc(x_8); x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); -x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__4___closed__1; +x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__4___closed__1; x_11 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_11, 0, x_10); lean_ctor_set(x_11, 1, x_5); @@ -20412,12 +21163,12 @@ return x_17; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_dec(x_3); -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_6 = lean_st_ref_get(x_5, x_4); x_7 = !lean_is_exclusive(x_6); if (x_7 == 0) @@ -20432,17 +21183,17 @@ if (x_10 == 0) lean_object* x_11; lean_object* x_12; lean_free_object(x_6); x_11 = lean_box(0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__4(x_1, x_2, x_11, x_9); +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__4(x_1, x_2, x_11, x_9); return x_12; } else { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_dec(x_1); -x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_14 = lean_string_append(x_13, x_2); lean_dec(x_2); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_16 = lean_string_append(x_14, x_15); x_17 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_17, 0, x_16); @@ -20465,17 +21216,17 @@ if (x_20 == 0) { lean_object* x_21; lean_object* x_22; x_21 = lean_box(0); -x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__4(x_1, x_2, x_21, x_19); +x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__4(x_1, x_2, x_21, x_19); return x_22; } else { 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_dec(x_1); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_24 = lean_string_append(x_23, x_2); lean_dec(x_2); -x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_26 = lean_string_append(x_24, x_25); x_27 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_27, 0, x_26); @@ -20487,7 +21238,7 @@ return x_28; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; uint8_t x_6; @@ -20506,10 +21257,10 @@ if (x_7 == 0) lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_8 = lean_ctor_get(x_4, 0); lean_dec(x_8); -x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_10 = lean_string_append(x_9, x_1); lean_dec(x_1); -x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_13, 0, x_12); @@ -20523,10 +21274,10 @@ lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean x_14 = lean_ctor_get(x_4, 1); lean_inc(x_14); lean_dec(x_4); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_16 = lean_string_append(x_15, x_1); lean_dec(x_1); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_18 = lean_string_append(x_16, x_17); x_19 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_19, 0, x_18); @@ -20543,12 +21294,12 @@ x_21 = lean_ctor_get(x_4, 1); lean_inc(x_21); lean_dec(x_4); x_22 = lean_box(0); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__5(x_2, x_1, x_22, x_21); +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__5(x_2, x_1, x_22, x_21); return x_23; } } } -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__32(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__32(lean_object* x_1) { _start: { lean_object* x_2; @@ -20562,14 +21313,14 @@ if (x_3 == 0) 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; uint8_t x_13; lean_object* x_14; x_4 = lean_ctor_get(x_2, 0); x_5 = l_Lean_Json_compress(x_1); -x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_7 = lean_string_append(x_6, x_5); lean_dec(x_5); -x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_9 = lean_string_append(x_7, x_8); x_10 = lean_string_append(x_9, x_4); lean_dec(x_4); -x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_11 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = 0; x_14 = lean_alloc_ctor(0, 1, 1); @@ -20585,14 +21336,14 @@ x_15 = lean_ctor_get(x_2, 0); lean_inc(x_15); lean_dec(x_2); x_16 = l_Lean_Json_compress(x_1); -x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_18 = lean_string_append(x_17, x_16); lean_dec(x_16); -x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_20 = lean_string_append(x_18, x_19); x_21 = lean_string_append(x_20, x_15); lean_dec(x_15); -x_22 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_22 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_23 = lean_string_append(x_21, x_22); x_24 = 0; x_25 = lean_alloc_ctor(0, 1, 1); @@ -20625,7 +21376,7 @@ return x_29; } } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__33(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__33(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -20650,11 +21401,11 @@ return x_7; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__32(x_1); +x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__32(x_1); if (lean_obj_tag(x_2) == 0) { uint8_t x_3; @@ -20704,7 +21455,7 @@ return x_11; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__2(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__2(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -20724,30 +21475,30 @@ return x_4; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__2), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__2), 1, 0); return x_1; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3___closed__2() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3___closed__1; +x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3___closed__1; x_2 = lean_alloc_closure((void*)(l_Except_map___rarg), 2, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__32(x_2); -x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__33(x_5, x_3, x_4); +x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__32(x_2); +x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__33(x_5, x_3, x_4); lean_dec(x_5); if (lean_obj_tag(x_6) == 0) { @@ -20766,7 +21517,7 @@ if (x_10 == 0) { lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; x_11 = lean_ctor_get(x_9, 0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3___closed__2; +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3___closed__2; x_13 = l_Task_Priority_default; x_14 = lean_task_map(x_12, x_11, x_13); lean_ctor_set(x_9, 0, x_14); @@ -20780,7 +21531,7 @@ x_16 = lean_ctor_get(x_9, 1); lean_inc(x_16); lean_inc(x_15); lean_dec(x_9); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3___closed__2; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3___closed__2; x_18 = l_Task_Priority_default; x_19 = lean_task_map(x_17, x_15, x_18); x_20 = lean_alloc_ctor(0, 2, 0); @@ -20838,28 +21589,28 @@ return x_28; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__4___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__4___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__1), 1, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3), 4, 1); +x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3), 4, 1); lean_closure_set(x_5, 0, x_1); -x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_7 = lean_st_ref_take(x_6, x_4); x_8 = lean_ctor_get(x_7, 0); lean_inc(x_8); x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); -x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__4___closed__1; +x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__4___closed__1; x_11 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_11, 0, x_10); lean_ctor_set(x_11, 1, x_5); @@ -20885,12 +21636,12 @@ return x_17; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_dec(x_3); -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_6 = lean_st_ref_get(x_5, x_4); x_7 = !lean_is_exclusive(x_6); if (x_7 == 0) @@ -20905,17 +21656,17 @@ if (x_10 == 0) lean_object* x_11; lean_object* x_12; lean_free_object(x_6); x_11 = lean_box(0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__4(x_1, x_2, x_11, x_9); +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__4(x_1, x_2, x_11, x_9); return x_12; } else { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_dec(x_1); -x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_14 = lean_string_append(x_13, x_2); lean_dec(x_2); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_16 = lean_string_append(x_14, x_15); x_17 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_17, 0, x_16); @@ -20938,17 +21689,17 @@ if (x_20 == 0) { lean_object* x_21; lean_object* x_22; x_21 = lean_box(0); -x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__4(x_1, x_2, x_21, x_19); +x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__4(x_1, x_2, x_21, x_19); return x_22; } else { 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_dec(x_1); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_24 = lean_string_append(x_23, x_2); lean_dec(x_2); -x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_26 = lean_string_append(x_24, x_25); x_27 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_27, 0, x_26); @@ -20960,7 +21711,7 @@ return x_28; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; uint8_t x_6; @@ -20979,10 +21730,10 @@ if (x_7 == 0) lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_8 = lean_ctor_get(x_4, 0); lean_dec(x_8); -x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_10 = lean_string_append(x_9, x_1); lean_dec(x_1); -x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_13, 0, x_12); @@ -20996,10 +21747,10 @@ lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean x_14 = lean_ctor_get(x_4, 1); lean_inc(x_14); lean_dec(x_4); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_16 = lean_string_append(x_15, x_1); lean_dec(x_1); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_18 = lean_string_append(x_16, x_17); x_19 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_19, 0, x_18); @@ -21016,12 +21767,12 @@ x_21 = lean_ctor_get(x_4, 1); lean_inc(x_21); lean_dec(x_4); x_22 = lean_box(0); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__5(x_2, x_1, x_22, x_21); +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__5(x_2, x_1, x_22, x_21); return x_23; } } } -LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__35(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__35(lean_object* x_1) { _start: { lean_object* x_2; @@ -21035,14 +21786,14 @@ if (x_3 == 0) 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; uint8_t x_13; lean_object* x_14; x_4 = lean_ctor_get(x_2, 0); x_5 = l_Lean_Json_compress(x_1); -x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_6 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_7 = lean_string_append(x_6, x_5); lean_dec(x_5); -x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_8 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_9 = lean_string_append(x_7, x_8); x_10 = lean_string_append(x_9, x_4); lean_dec(x_4); -x_11 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_11 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = 0; x_14 = lean_alloc_ctor(0, 1, 1); @@ -21058,14 +21809,14 @@ x_15 = lean_ctor_get(x_2, 0); lean_inc(x_15); lean_dec(x_2); x_16 = l_Lean_Json_compress(x_1); -x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1; +x_17 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1; x_18 = lean_string_append(x_17, x_16); lean_dec(x_16); -x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2; +x_19 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2; x_20 = lean_string_append(x_18, x_19); x_21 = lean_string_append(x_20, x_15); lean_dec(x_15); -x_22 = l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8; +x_22 = l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1; x_23 = lean_string_append(x_21, x_22); x_24 = 0; x_25 = lean_alloc_ctor(0, 1, 1); @@ -21098,7 +21849,7 @@ return x_29; } } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__36(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__36(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -21123,11 +21874,11 @@ return x_7; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__1(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__35(x_1); +x_2 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__35(x_1); if (lean_obj_tag(x_2) == 0) { uint8_t x_3; @@ -21177,7 +21928,7 @@ return x_11; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__2(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__2(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -21197,30 +21948,30 @@ return x_4; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__2), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__2), 1, 0); return x_1; } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3___closed__2() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3___closed__1; +x_1 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3___closed__1; x_2 = lean_alloc_closure((void*)(l_Except_map___rarg), 2, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; -x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__35(x_2); -x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__36(x_5, x_3, x_4); +x_5 = l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__35(x_2); +x_6 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__36(x_5, x_3, x_4); lean_dec(x_5); if (lean_obj_tag(x_6) == 0) { @@ -21239,7 +21990,7 @@ if (x_10 == 0) { lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; x_11 = lean_ctor_get(x_9, 0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3___closed__2; +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3___closed__2; x_13 = l_Task_Priority_default; x_14 = lean_task_map(x_12, x_11, x_13); lean_ctor_set(x_9, 0, x_14); @@ -21253,7 +22004,7 @@ x_16 = lean_ctor_get(x_9, 1); lean_inc(x_16); lean_inc(x_15); lean_dec(x_9); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3___closed__2; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3___closed__2; x_18 = l_Task_Priority_default; x_19 = lean_task_map(x_17, x_15, x_18); x_20 = lean_alloc_ctor(0, 2, 0); @@ -21311,28 +22062,28 @@ return x_28; } } } -static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__4___closed__1() { +static lean_object* _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__4___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__1), 1, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__1), 1, 0); return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; -x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3), 4, 1); +x_5 = lean_alloc_closure((void*)(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3), 4, 1); lean_closure_set(x_5, 0, x_1); -x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_6 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_7 = lean_st_ref_take(x_6, x_4); x_8 = lean_ctor_get(x_7, 0); lean_inc(x_8); x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); -x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__4___closed__1; +x_10 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__4___closed__1; x_11 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_11, 0, x_10); lean_ctor_set(x_11, 1, x_5); @@ -21358,12 +22109,12 @@ return x_17; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; lean_object* x_6; uint8_t x_7; lean_dec(x_3); -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1; +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1; x_6 = lean_st_ref_get(x_5, x_4); x_7 = !lean_is_exclusive(x_6); if (x_7 == 0) @@ -21378,17 +22129,17 @@ if (x_10 == 0) lean_object* x_11; lean_object* x_12; lean_free_object(x_6); x_11 = lean_box(0); -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__4(x_1, x_2, x_11, x_9); +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__4(x_1, x_2, x_11, x_9); return x_12; } else { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_dec(x_1); -x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_13 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_14 = lean_string_append(x_13, x_2); lean_dec(x_2); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_16 = lean_string_append(x_14, x_15); x_17 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_17, 0, x_16); @@ -21411,17 +22162,17 @@ if (x_20 == 0) { lean_object* x_21; lean_object* x_22; x_21 = lean_box(0); -x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__4(x_1, x_2, x_21, x_19); +x_22 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__4(x_1, x_2, x_21, x_19); return x_22; } else { 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_dec(x_1); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_24 = lean_string_append(x_23, x_2); lean_dec(x_2); -x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2; +x_25 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2; x_26 = lean_string_append(x_24, x_25); x_27 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_27, 0, x_26); @@ -21433,7 +22184,7 @@ return x_28; } } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; lean_object* x_5; uint8_t x_6; @@ -21452,10 +22203,10 @@ if (x_7 == 0) lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_8 = lean_ctor_get(x_4, 0); lean_dec(x_8); -x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_9 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_10 = lean_string_append(x_9, x_1); lean_dec(x_1); -x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_11 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_12 = lean_string_append(x_10, x_11); x_13 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_13, 0, x_12); @@ -21469,10 +22220,10 @@ lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean x_14 = lean_ctor_get(x_4, 1); lean_inc(x_14); lean_dec(x_4); -x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1; +x_15 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1; x_16 = lean_string_append(x_15, x_1); lean_dec(x_1); -x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1; +x_17 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1; x_18 = lean_string_append(x_16, x_17); x_19 = lean_alloc_ctor(18, 1, 0); lean_ctor_set(x_19, 0, x_18); @@ -21489,12 +22240,12 @@ x_21 = lean_ctor_get(x_4, 1); lean_inc(x_21); lean_dec(x_4); x_22 = lean_box(0); -x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__5(x_2, x_1, x_22, x_21); +x_23 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__5(x_2, x_1, x_22, x_21); return x_23; } } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__1() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__1() { _start: { lean_object* x_1; @@ -21502,7 +22253,7 @@ x_1 = lean_mk_string_from_bytes("textDocument/waitForDiagnostics", 31); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__2() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__2() { _start: { lean_object* x_1; @@ -21510,7 +22261,7 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Server_FileWorker_handleWaitForDiagnosti return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__3() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__3() { _start: { lean_object* x_1; @@ -21518,7 +22269,7 @@ x_1 = lean_mk_string_from_bytes("textDocument/completion", 23); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__4() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__4() { _start: { lean_object* x_1; @@ -21526,7 +22277,7 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Server_FileWorker_handleCompletion), 3, return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__5() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__5() { _start: { lean_object* x_1; @@ -21534,7 +22285,7 @@ x_1 = lean_mk_string_from_bytes("textDocument/hover", 18); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__6() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__6() { _start: { lean_object* x_1; @@ -21542,7 +22293,7 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Server_FileWorker_handleHover), 3, 0); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__7() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__7() { _start: { uint8_t x_1; lean_object* x_2; lean_object* x_3; @@ -21553,7 +22304,7 @@ lean_closure_set(x_3, 0, x_2); return x_3; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__8() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__8() { _start: { lean_object* x_1; @@ -21561,7 +22312,7 @@ x_1 = lean_mk_string_from_bytes("textDocument/declaration", 24); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__9() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__9() { _start: { uint8_t x_1; lean_object* x_2; lean_object* x_3; @@ -21572,7 +22323,7 @@ lean_closure_set(x_3, 0, x_2); return x_3; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__10() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__10() { _start: { lean_object* x_1; @@ -21580,7 +22331,7 @@ x_1 = lean_mk_string_from_bytes("textDocument/definition", 23); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__11() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__11() { _start: { uint8_t x_1; lean_object* x_2; lean_object* x_3; @@ -21591,7 +22342,7 @@ lean_closure_set(x_3, 0, x_2); return x_3; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__12() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__12() { _start: { lean_object* x_1; @@ -21599,7 +22350,7 @@ x_1 = lean_mk_string_from_bytes("textDocument/typeDefinition", 27); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__13() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__13() { _start: { lean_object* x_1; @@ -21607,7 +22358,7 @@ x_1 = lean_mk_string_from_bytes("textDocument/documentHighlight", 30); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__14() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__14() { _start: { lean_object* x_1; @@ -21615,7 +22366,7 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Server_FileWorker_handleDocumentHighligh return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__15() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__15() { _start: { lean_object* x_1; @@ -21623,7 +22374,7 @@ x_1 = lean_mk_string_from_bytes("textDocument/documentSymbol", 27); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__16() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__16() { _start: { lean_object* x_1; @@ -21631,7 +22382,7 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Server_FileWorker_handleDocumentSymbol__ return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__17() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__17() { _start: { lean_object* x_1; @@ -21639,7 +22390,7 @@ x_1 = lean_mk_string_from_bytes("textDocument/semanticTokens/full", 32); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__18() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__18() { _start: { lean_object* x_1; @@ -21647,7 +22398,7 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Server_FileWorker_handleSemanticTokensFu return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__19() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__19() { _start: { lean_object* x_1; @@ -21655,7 +22406,7 @@ x_1 = lean_mk_string_from_bytes("textDocument/semanticTokens/range", 33); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__20() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__20() { _start: { lean_object* x_1; @@ -21663,7 +22414,7 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Server_FileWorker_handleSemanticTokensRa return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__21() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__21() { _start: { lean_object* x_1; @@ -21671,7 +22422,7 @@ x_1 = lean_mk_string_from_bytes("textDocument/foldingRange", 25); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__22() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__22() { _start: { lean_object* x_1; @@ -21679,7 +22430,7 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Server_FileWorker_handleFoldingRange___b return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__23() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__23() { _start: { lean_object* x_1; @@ -21687,7 +22438,7 @@ x_1 = lean_mk_string_from_bytes("$/lean/plainGoal", 16); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__24() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__24() { _start: { lean_object* x_1; @@ -21695,7 +22446,7 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Server_FileWorker_handlePlainGoal), 3, 0 return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__25() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__25() { _start: { lean_object* x_1; @@ -21703,7 +22454,7 @@ x_1 = lean_mk_string_from_bytes("$/lean/plainTermGoal", 20); return x_1; } } -static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__26() { +static lean_object* _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__26() { _start: { lean_object* x_1; @@ -21711,121 +22462,121 @@ x_1 = lean_alloc_closure((void*)(l_Lean_Server_FileWorker_handlePlainTermGoal), return x_1; } } -LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189_(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; -x_2 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__1; -x_3 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__2; -x_4 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1(x_2, x_3, x_1); +x_2 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__1; +x_3 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__2; +x_4 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1(x_2, x_3, x_1); if (lean_obj_tag(x_4) == 0) { lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = lean_ctor_get(x_4, 1); lean_inc(x_5); lean_dec(x_4); -x_6 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__3; -x_7 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__4; -x_8 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4(x_6, x_7, x_5); +x_6 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__3; +x_7 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__4; +x_8 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4(x_6, x_7, x_5); if (lean_obj_tag(x_8) == 0) { lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; x_9 = lean_ctor_get(x_8, 1); lean_inc(x_9); lean_dec(x_8); -x_10 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__5; -x_11 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__6; -x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7(x_10, x_11, x_9); +x_10 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__5; +x_11 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__6; +x_12 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7(x_10, x_11, x_9); if (lean_obj_tag(x_12) == 0) { lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; x_13 = lean_ctor_get(x_12, 1); lean_inc(x_13); lean_dec(x_12); -x_14 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__8; -x_15 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__7; -x_16 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10(x_14, x_15, x_13); +x_14 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__8; +x_15 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__7; +x_16 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10(x_14, x_15, x_13); if (lean_obj_tag(x_16) == 0) { lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; x_17 = lean_ctor_get(x_16, 1); lean_inc(x_17); lean_dec(x_16); -x_18 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__10; -x_19 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__9; -x_20 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10(x_18, x_19, x_17); +x_18 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__10; +x_19 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__9; +x_20 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10(x_18, x_19, x_17); if (lean_obj_tag(x_20) == 0) { lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; x_21 = lean_ctor_get(x_20, 1); lean_inc(x_21); lean_dec(x_20); -x_22 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__12; -x_23 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__11; -x_24 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10(x_22, x_23, x_21); +x_22 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__12; +x_23 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__11; +x_24 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10(x_22, x_23, x_21); if (lean_obj_tag(x_24) == 0) { lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; x_25 = lean_ctor_get(x_24, 1); lean_inc(x_25); lean_dec(x_24); -x_26 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__13; -x_27 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__14; -x_28 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14(x_26, x_27, x_25); +x_26 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__13; +x_27 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__14; +x_28 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14(x_26, x_27, x_25); if (lean_obj_tag(x_28) == 0) { lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; x_29 = lean_ctor_get(x_28, 1); lean_inc(x_29); lean_dec(x_28); -x_30 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__15; -x_31 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__16; -x_32 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18(x_30, x_31, x_29); +x_30 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__15; +x_31 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__16; +x_32 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18(x_30, x_31, x_29); if (lean_obj_tag(x_32) == 0) { lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; x_33 = lean_ctor_get(x_32, 1); lean_inc(x_33); lean_dec(x_32); -x_34 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__17; -x_35 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__18; -x_36 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21(x_34, x_35, x_33); +x_34 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__17; +x_35 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__18; +x_36 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21(x_34, x_35, x_33); if (lean_obj_tag(x_36) == 0) { lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; x_37 = lean_ctor_get(x_36, 1); lean_inc(x_37); lean_dec(x_36); -x_38 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__19; -x_39 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__20; -x_40 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24(x_38, x_39, x_37); +x_38 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__19; +x_39 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__20; +x_40 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24(x_38, x_39, x_37); if (lean_obj_tag(x_40) == 0) { lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; x_41 = lean_ctor_get(x_40, 1); lean_inc(x_41); lean_dec(x_40); -x_42 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__21; -x_43 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__22; -x_44 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27(x_42, x_43, x_41); +x_42 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__21; +x_43 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__22; +x_44 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27(x_42, x_43, x_41); if (lean_obj_tag(x_44) == 0) { lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; x_45 = lean_ctor_get(x_44, 1); lean_inc(x_45); lean_dec(x_44); -x_46 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__23; -x_47 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__24; -x_48 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31(x_46, x_47, x_45); +x_46 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__23; +x_47 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__24; +x_48 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31(x_46, x_47, x_45); if (lean_obj_tag(x_48) == 0) { lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; x_49 = lean_ctor_get(x_48, 1); lean_inc(x_49); lean_dec(x_48); -x_50 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__25; -x_51 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__26; -x_52 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34(x_50, x_51, x_49); +x_50 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__25; +x_51 = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__26; +x_52 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34(x_50, x_51, x_49); return x_52; } else @@ -22105,83 +22856,83 @@ return x_100; } } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__3(x_1, x_2, x_3); +x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__3(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__2___boxed(lean_object* x_1) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__2___boxed(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__2(x_1); +x_2 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__2(x_1); lean_dec(x_1); return x_2; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4(x_1, x_2, x_3, x_4); lean_dec(x_3); return x_5; } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__6(x_1, x_2, x_3); +x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__6(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__3(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__3(x_1, x_2, x_3, x_4); lean_dec(x_3); return x_5; } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__9___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__9___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__9(x_1, x_2, x_3); +x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__9(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__4(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__4(x_1, x_2, x_3, x_4); lean_dec(x_3); return x_5; } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__12___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__12___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__12(x_1, x_2, x_3); +x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__12(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__13___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__13___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { size_t x_4; size_t x_5; lean_object* x_6; @@ -22189,30 +22940,30 @@ x_4 = lean_unbox_usize(x_1); lean_dec(x_1); x_5 = lean_unbox_usize(x_2); lean_dec(x_2); -x_6 = l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__13(x_4, x_5, x_3); +x_6 = l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__13(x_4, x_5, x_3); return x_6; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__4(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__4(x_1, x_2, x_3, x_4); lean_dec(x_3); return x_5; } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__16___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__16___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__16(x_1, x_2, x_3); +x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__16(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__17___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__17___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { size_t x_4; size_t x_5; lean_object* x_6; @@ -22220,87 +22971,87 @@ x_4 = lean_unbox_usize(x_1); lean_dec(x_1); x_5 = lean_unbox_usize(x_2); lean_dec(x_2); -x_6 = l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__17(x_4, x_5, x_3); +x_6 = l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__17(x_4, x_5, x_3); return x_6; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__4(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__4(x_1, x_2, x_3, x_4); lean_dec(x_3); return x_5; } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__20___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__20___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__20(x_1, x_2, x_3); +x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__20(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__4(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__4(x_1, x_2, x_3, x_4); lean_dec(x_3); return x_5; } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__23___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__23___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__23(x_1, x_2, x_3); +x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__23(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__3(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__3(x_1, x_2, x_3, x_4); lean_dec(x_3); return x_5; } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__26___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__26___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__26(x_1, x_2, x_3); +x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__26(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__3(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__3(x_1, x_2, x_3, x_4); lean_dec(x_3); return x_5; } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__29___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__29___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__29(x_1, x_2, x_3); +x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__29(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__30___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__30___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { size_t x_4; size_t x_5; lean_object* x_6; @@ -22308,53 +23059,53 @@ x_4 = lean_unbox_usize(x_1); lean_dec(x_1); x_5 = lean_unbox_usize(x_2); lean_dec(x_2); -x_6 = l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__30(x_4, x_5, x_3); +x_6 = l_Array_mapMUnsafe_map___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__30(x_4, x_5, x_3); return x_6; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__4(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__4(x_1, x_2, x_3, x_4); lean_dec(x_3); return x_5; } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__33___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__33___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__33(x_1, x_2, x_3); +x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__33(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__4(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__4(x_1, x_2, x_3, x_4); lean_dec(x_3); return x_5; } } -LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__36___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +LEAN_EXPORT lean_object* l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__36___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__36(x_1, x_2, x_3); +x_4 = l_liftExcept___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__36(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +LEAN_EXPORT lean_object* l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { lean_object* x_5; -x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__4(x_1, x_2, x_3, x_4); +x_5 = l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__4(x_1, x_2, x_3, x_4); lean_dec(x_3); return x_5; } @@ -22502,6 +23253,18 @@ l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__1 lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__10); l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__11 = _init_l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__11(); lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentHighlight_highlightReturn_x3f___closed__11); +l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1 = _init_l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1(); +lean_mark_persistent(l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__1); +l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__2 = _init_l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__2(); +lean_mark_persistent(l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__2); +l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__3 = _init_l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__3(); +lean_mark_persistent(l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__3); +l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__4 = _init_l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__4(); +lean_mark_persistent(l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__4); +l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__5 = _init_l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__5(); +lean_mark_persistent(l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__5); +l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__6 = _init_l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__6(); +lean_mark_persistent(l_Lean_Server_FileWorker_NamespaceEntry_finish___closed__6); l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__1 = _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__1(); lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__1); l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__2 = _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__2(); @@ -22520,8 +23283,6 @@ l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___cl lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__8); l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__9 = _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__9(); lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__9); -l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__10 = _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__10(); -lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__3___closed__10); l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__1 = _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__1(); lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__1); l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__2 = _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___lambda__6___closed__2(); @@ -22556,14 +23317,6 @@ l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__6 = _i lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__6); l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__7 = _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__7(); lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__7); -l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__8 = _init_l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__8(); -lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentSymbol_toDocumentSymbols___closed__8); -l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__1 = _init_l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__1(); -lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__1); -l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__2 = _init_l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__2(); -lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__2); -l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__3 = _init_l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__3(); -lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentSymbol_sectionLikeToDocumentSymbols___closed__3); l_Lean_Server_FileWorker_handleDocumentSymbol___rarg___closed__1 = _init_l_Lean_Server_FileWorker_handleDocumentSymbol___rarg___closed__1(); lean_mark_persistent(l_Lean_Server_FileWorker_handleDocumentSymbol___rarg___closed__1); l_Lean_Server_FileWorker_noHighlightKinds___closed__1 = _init_l_Lean_Server_FileWorker_noHighlightKinds___closed__1(); @@ -22646,135 +23399,135 @@ l_Lean_Server_FileWorker_handleWaitForDiagnostics___lambda__2___closed__1 = _ini lean_mark_persistent(l_Lean_Server_FileWorker_handleWaitForDiagnostics___lambda__2___closed__1); l_Lean_Server_FileWorker_handleWaitForDiagnostics___closed__1 = _init_l_Lean_Server_FileWorker_handleWaitForDiagnostics___closed__1(); lean_mark_persistent(l_Lean_Server_FileWorker_handleWaitForDiagnostics___closed__1); -l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1 = _init_l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1(); -lean_mark_persistent(l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__1); -l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2 = _init_l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2(); -lean_mark_persistent(l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__2___closed__2); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__2___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__2___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__2___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3___closed__2(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__3___closed__2); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__2(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__4___closed__2); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___lambda__5___closed__2); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__1___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2___closed__2(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__2___closed__2); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__3___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__4___lambda__3___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3___closed__2(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__3___closed__2); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__4___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__7___lambda__4___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3___closed__2(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__3___closed__2); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__4___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__10___lambda__4___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3___closed__2(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__3___closed__2); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__4___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__14___lambda__4___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3___closed__2(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__3___closed__2); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__4___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__18___lambda__4___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__2(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__2___closed__2); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__3___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__21___lambda__3___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__3___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__24___lambda__3___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3___closed__2(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__3___closed__2); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__4___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__27___lambda__4___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3___closed__2(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__3___closed__2); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__4___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__31___lambda__4___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3___closed__1); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3___closed__2(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__3___closed__2); -l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__4___closed__1(); -lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____spec__34___lambda__4___closed__1); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__1 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__1(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__1); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__2 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__2(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__2); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__3 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__3(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__3); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__4 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__4(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__4); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__5 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__5(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__5); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__6 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__6(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__6); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__7 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__7(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__7); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__8 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__8(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__8); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__9 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__9(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__9); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__10 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__10(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__10); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__11 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__11(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__11); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__12 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__12(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__12); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__13 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__13(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__13); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__14 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__14(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__14); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__15 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__15(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__15); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__16 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__16(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__16); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__17 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__17(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__17); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__18 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__18(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__18); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__19 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__19(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__19); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__20 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__20(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__20); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__21 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__21(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__21); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__22 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__22(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__22); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__23 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__23(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__23); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__24 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__24(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__24); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__25 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__25(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__25); -l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__26 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__26(); -lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189____closed__26); -res = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10189_(lean_io_mk_world()); +l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1 = _init_l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1(); +lean_mark_persistent(l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__1); +l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2 = _init_l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2(); +lean_mark_persistent(l_Lean_Server_parseRequestParams___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__2___closed__2); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__2___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__2___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__2___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3___closed__2(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__3___closed__2); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__2(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__4___closed__2); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___lambda__5___closed__2); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__1___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2___closed__2(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__2___closed__2); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__3___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__4___lambda__3___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3___closed__2(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__3___closed__2); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__4___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__7___lambda__4___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3___closed__2(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__3___closed__2); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__4___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__10___lambda__4___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3___closed__2(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__3___closed__2); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__4___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__14___lambda__4___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3___closed__2(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__3___closed__2); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__4___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__18___lambda__4___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__2(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__2___closed__2); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__3___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__21___lambda__3___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__3___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__24___lambda__3___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3___closed__2(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__3___closed__2); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__4___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__27___lambda__4___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3___closed__2(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__3___closed__2); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__4___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__31___lambda__4___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3___closed__1); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3___closed__2 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3___closed__2(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__3___closed__2); +l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__4___closed__1 = _init_l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__4___closed__1(); +lean_mark_persistent(l_Lean_Server_registerLspRequestHandler___at_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____spec__34___lambda__4___closed__1); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__1 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__1(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__1); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__2 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__2(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__2); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__3 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__3(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__3); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__4 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__4(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__4); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__5 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__5(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__5); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__6 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__6(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__6); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__7 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__7(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__7); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__8 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__8(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__8); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__9 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__9(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__9); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__10 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__10(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__10); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__11 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__11(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__11); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__12 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__12(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__12); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__13 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__13(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__13); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__14 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__14(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__14); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__15 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__15(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__15); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__16 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__16(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__16); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__17 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__17(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__17); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__18 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__18(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__18); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__19 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__19(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__19); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__20 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__20(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__20); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__21 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__21(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__21); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__22 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__22(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__22); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__23 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__23(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__23); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__24 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__24(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__24); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__25 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__25(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__25); +l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__26 = _init_l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__26(); +lean_mark_persistent(l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644____closed__26); +res = l_Lean_Server_FileWorker_initFn____x40_Lean_Server_FileWorker_RequestHandling___hyg_10644_(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));